From nobody Wed Oct 15 22:31:24 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CCAF42716DB; Sun, 24 Mar 2024 23:35:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323301; cv=none; b=pk1wibud46OMD2PWgmmBx/C7QFQ2ddgmAJdpQbZqSlh7ah63HmGDJ+/eliNKlyRyTzvn9npqwTLc/VuSXzG+/mYxC4dMfBNEoYDplMbLp+HyQ1w751AhxJzpNp2H9/at3E5C6AgegKgE2C3J5nP2ighCjHGtackS4TeegTfwepA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323301; c=relaxed/simple; bh=ELzVn+rRe6bS2yKeO1yNV5To5LEEcDbleSatoALaGSo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=RFrzAAwUZkFiGMQyL1OxokPjwowrsVp2irJryeEMKUSiPChEbfrkrder+jacxMMhS1IyC1zHgims65Vmp9Uf9PnmyFD7OmZHqPdJADAlFaN4VD0rLJ+J8vcbkJn4Lv680S/JI3iQbWg/pqB3S391j65IBX/7r7XFKpbtokQiIw0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=TkGynwkz; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="TkGynwkz" Received: by smtp.kernel.org (Postfix) with ESMTPSA id CBFD8C43390; Sun, 24 Mar 2024 23:35:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323301; bh=ELzVn+rRe6bS2yKeO1yNV5To5LEEcDbleSatoALaGSo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=TkGynwkzZ3DL3PjeKqXAsTDEMIwgXNRPc5rba1NVxbXbu15hEjeETmzTXw8mZfp08 HhMV2w0L1j9g0ALepIXR2/IQn2KFIRvHbG58PV8+BuECOJVKwH0OeNunVf49rzf14G v8Hr/EMXmYOGP1Pmvr9YyjNvBJpNhYSaHhmnLK4CtJY6fkniV9sYzrAw2e92c34EIR PcGVPU9zq3DQfosUA6OSo+8HwdnkV7jDCfDmZ+U8oAkYaylB4FgU4UUe7lLsrJzQfH 5NP0yWy4CXreYAF+wmXQRiotPb0U8rb5Su31QbVDezHgz09SpCr27SgXhl0G2RsfoA ALtS5g7rotzxQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jens Axboe , Sasha Levin Subject: [PATCH 5.15 001/317] io_uring/unix: drop usage of io_uring socket Date: Sun, 24 Mar 2024 19:29:41 -0400 Message-ID: <20240324233458.1352854-2-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Jens Axboe Commit a4104821ad651d8a0b374f0b2474c345bbb42f82 upstream. Since we no longer allow sending io_uring fds over SCM_RIGHTS, move to using io_is_uring_fops() to detect whether this is a io_uring fd or not. With that done, kill off io_uring_get_socket() as nobody calls it anymore. This is in preparation to yanking out the rest of the core related to unix gc with io_uring. Signed-off-by: Jens Axboe Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- include/linux/io_uring.h | 10 +++++----- io_uring/io_uring.c | 18 +++++------------- net/core/scm.c | 2 +- net/unix/scm.c | 4 +--- 4 files changed, 12 insertions(+), 22 deletions(-) diff --git a/include/linux/io_uring.h b/include/linux/io_uring.h index 649a4d7c241bc..55d09f594cd14 100644 --- a/include/linux/io_uring.h +++ b/include/linux/io_uring.h @@ -6,9 +6,9 @@ #include =20 #if defined(CONFIG_IO_URING) -struct sock *io_uring_get_socket(struct file *file); void __io_uring_cancel(bool cancel_all); void __io_uring_free(struct task_struct *tsk); +bool io_is_uring_fops(struct file *file); =20 static inline void io_uring_files_cancel(void) { @@ -26,10 +26,6 @@ static inline void io_uring_free(struct task_struct *tsk) __io_uring_free(tsk); } #else -static inline struct sock *io_uring_get_socket(struct file *file) -{ - return NULL; -} static inline void io_uring_task_cancel(void) { } @@ -39,6 +35,10 @@ static inline void io_uring_files_cancel(void) static inline void io_uring_free(struct task_struct *tsk) { } +static inline bool io_is_uring_fops(struct file *file) +{ + return false; +} #endif =20 #endif diff --git a/io_uring/io_uring.c b/io_uring/io_uring.c index 55fd6d98fe121..541e6a6985ecc 100644 --- a/io_uring/io_uring.c +++ b/io_uring/io_uring.c @@ -1116,19 +1116,6 @@ static struct kmem_cache *req_cachep; =20 static const struct file_operations io_uring_fops; =20 -struct sock *io_uring_get_socket(struct file *file) -{ -#if defined(CONFIG_UNIX) - if (file->f_op =3D=3D &io_uring_fops) { - struct io_ring_ctx *ctx =3D file->private_data; - - return ctx->ring_sock->sk; - } -#endif - return NULL; -} -EXPORT_SYMBOL(io_uring_get_socket); - static inline void io_tw_lock(struct io_ring_ctx *ctx, bool *locked) { if (!*locked) { @@ -10445,6 +10432,11 @@ static const struct file_operations io_uring_fops = =3D { #endif }; =20 +bool io_is_uring_fops(struct file *file) +{ + return file->f_op =3D=3D &io_uring_fops; +} + static int io_allocate_scq_urings(struct io_ring_ctx *ctx, struct io_uring_params *p) { diff --git a/net/core/scm.c b/net/core/scm.c index e762a4b8a1d22..a877c4ef4c256 100644 --- a/net/core/scm.c +++ b/net/core/scm.c @@ -105,7 +105,7 @@ static int scm_fp_copy(struct cmsghdr *cmsg, struct scm= _fp_list **fplp) if (fd < 0 || !(file =3D fget_raw(fd))) return -EBADF; /* don't allow io_uring files */ - if (io_uring_get_socket(file)) { + if (io_is_uring_fops(file)) { fput(file); return -EINVAL; } diff --git a/net/unix/scm.c b/net/unix/scm.c index e8e2a00bb0f58..d1048b4c2baaf 100644 --- a/net/unix/scm.c +++ b/net/unix/scm.c @@ -34,10 +34,8 @@ struct sock *unix_get_socket(struct file *filp) /* PF_UNIX ? */ if (s && sock->ops && sock->ops->family =3D=3D PF_UNIX) u_sock =3D s; - } else { - /* Could be an io_uring instance */ - u_sock =3D io_uring_get_socket(filp); } + return u_sock; } EXPORT_SYMBOL(unix_get_socket); --=20 2.43.0 From nobody Wed Oct 15 22:31:24 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7B06F17495C; Sun, 24 Mar 2024 23:35:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323303; cv=none; b=YRevj+le9W/AuZnG2S51aAoPO+dviucUzlATMijMcHV0X1cAgYUFOBNlzm9wixmvVNNd/YXL2CprEc8iWmRuu8cs6dYcPheablXFQUvIxtgA0MvPmmSQoe0OZV107PCgGyQZ4CZbMXkBZS9kTK+wg1HlOO8QD0+JTfKTRMo0mr4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323303; c=relaxed/simple; bh=H7FLLI4avKTJLorUo/cM4y50p2DgXJ2uNm9FdOmC1sk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=tLm69l4IvnyQrab6fqCZNcBbAxOyOZu9FIktCdEhAO1nwGX/9bNEjzgOLMCafVCdnQWcISIQNgdI2JcoAGiTDi3HrjYoJirbGPitJIc7qe5ejWH1Pe8oB6vxvRQxsFs21J8tC4bNoslPumGty4anNdk4Gub9QqD0NWx6tCeWQJo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=j4lHJDS6; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="j4lHJDS6" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 98E4FC433A6; Sun, 24 Mar 2024 23:35:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323302; bh=H7FLLI4avKTJLorUo/cM4y50p2DgXJ2uNm9FdOmC1sk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=j4lHJDS6XjiVafS/2+zibES1xzkdTwDz2x1AaZZc4+RhOHvi2VjtvagoqfAaK6bTJ UdDgEoyVuTwg+xUsZ+TMN6qRD6oX9YqdA70foSgUHOU6w//6lauJA/7XuV5hLDzuE3 KnXFsN/FYTI6q5wTi9HLQ84TF8oMlw3+dkrsJpG9l8jeR05ufi6Qudp3Wd6E6ZUF0J MDun1S1pQtbSAuCw3UukDiLt7fpmcuqSdpW838202VQ17i/uXPlhdcFmXzu0c/U7Jl zGsCBP56LHtY8FDFgHPkU0jISkLAyzwN0D0Uob5xoKD5+EfDm+f0qOD7S/7ELqHOUT BxQKuLavcPc8w== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jens Axboe , Sasha Levin Subject: [PATCH 5.15 002/317] io_uring: drop any code related to SCM_RIGHTS Date: Sun, 24 Mar 2024 19:29:42 -0400 Message-ID: <20240324233458.1352854-3-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Jens Axboe Commit 6e5e6d274956305f1fc0340522b38f5f5be74bdb upstream. This is dead code after we dropped support for passing io_uring fds over SCM_RIGHTS, get rid of it. Signed-off-by: Jens Axboe Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- io_uring/io_uring.c | 211 +------------------------------------------- 1 file changed, 3 insertions(+), 208 deletions(-) diff --git a/io_uring/io_uring.c b/io_uring/io_uring.c index 541e6a6985ecc..386b32e6fd9a8 100644 --- a/io_uring/io_uring.c +++ b/io_uring/io_uring.c @@ -62,7 +62,6 @@ #include #include #include -#include #include #include #include @@ -440,9 +439,6 @@ struct io_ring_ctx { =20 /* Keep this last, we don't need it for the fast path */ struct { - #if defined(CONFIG_UNIX) - struct socket *ring_sock; - #endif /* hashed buffered write serialization */ struct io_wq_hash *hash_map; =20 @@ -8151,15 +8147,6 @@ static void io_free_file_tables(struct io_file_table= *table) =20 static void __io_sqe_files_unregister(struct io_ring_ctx *ctx) { -#if defined(CONFIG_UNIX) - if (ctx->ring_sock) { - struct sock *sock =3D ctx->ring_sock->sk; - struct sk_buff *skb; - - while ((skb =3D skb_dequeue(&sock->sk_receive_queue)) !=3D NULL) - kfree_skb(skb); - } -#else int i; =20 for (i =3D 0; i < ctx->nr_user_files; i++) { @@ -8169,7 +8156,6 @@ static void __io_sqe_files_unregister(struct io_ring_= ctx *ctx) if (file) fput(file); } -#endif io_free_file_tables(&ctx->file_table); io_rsrc_data_free(ctx->file_data); ctx->file_data =3D NULL; @@ -8321,170 +8307,11 @@ static struct io_sq_data *io_get_sq_data(struct io= _uring_params *p, return sqd; } =20 -#if defined(CONFIG_UNIX) -/* - * Ensure the UNIX gc is aware of our file set, so we are certain that - * the io_uring can be safely unregistered on process exit, even if we have - * loops in the file referencing. - */ -static int __io_sqe_files_scm(struct io_ring_ctx *ctx, int nr, int offset) -{ - struct sock *sk =3D ctx->ring_sock->sk; - struct scm_fp_list *fpl; - struct sk_buff *skb; - int i, nr_files; - - fpl =3D kzalloc(sizeof(*fpl), GFP_KERNEL); - if (!fpl) - return -ENOMEM; - - skb =3D alloc_skb(0, GFP_KERNEL); - if (!skb) { - kfree(fpl); - return -ENOMEM; - } - - skb->sk =3D sk; - skb->scm_io_uring =3D 1; - - nr_files =3D 0; - fpl->user =3D get_uid(current_user()); - for (i =3D 0; i < nr; i++) { - struct file *file =3D io_file_from_index(ctx, i + offset); - - if (!file) - continue; - fpl->fp[nr_files] =3D get_file(file); - unix_inflight(fpl->user, fpl->fp[nr_files]); - nr_files++; - } - - if (nr_files) { - fpl->max =3D SCM_MAX_FD; - fpl->count =3D nr_files; - UNIXCB(skb).fp =3D fpl; - skb->destructor =3D unix_destruct_scm; - refcount_add(skb->truesize, &sk->sk_wmem_alloc); - skb_queue_head(&sk->sk_receive_queue, skb); - - for (i =3D 0; i < nr; i++) { - struct file *file =3D io_file_from_index(ctx, i + offset); - - if (file) - fput(file); - } - } else { - kfree_skb(skb); - free_uid(fpl->user); - kfree(fpl); - } - - return 0; -} - -/* - * If UNIX sockets are enabled, fd passing can cause a reference cycle whi= ch - * causes regular reference counting to break down. We rely on the UNIX - * garbage collection to take care of this problem for us. - */ -static int io_sqe_files_scm(struct io_ring_ctx *ctx) -{ - unsigned left, total; - int ret =3D 0; - - total =3D 0; - left =3D ctx->nr_user_files; - while (left) { - unsigned this_files =3D min_t(unsigned, left, SCM_MAX_FD); - - ret =3D __io_sqe_files_scm(ctx, this_files, total); - if (ret) - break; - left -=3D this_files; - total +=3D this_files; - } - - if (!ret) - return 0; - - while (total < ctx->nr_user_files) { - struct file *file =3D io_file_from_index(ctx, total); - - if (file) - fput(file); - total++; - } - - return ret; -} -#else -static int io_sqe_files_scm(struct io_ring_ctx *ctx) -{ - return 0; -} -#endif - static void io_rsrc_file_put(struct io_ring_ctx *ctx, struct io_rsrc_put *= prsrc) { struct file *file =3D prsrc->file; -#if defined(CONFIG_UNIX) - struct sock *sock =3D ctx->ring_sock->sk; - struct sk_buff_head list, *head =3D &sock->sk_receive_queue; - struct sk_buff *skb; - int i; =20 - __skb_queue_head_init(&list); - - /* - * Find the skb that holds this file in its SCM_RIGHTS. When found, - * remove this entry and rearrange the file array. - */ - skb =3D skb_dequeue(head); - while (skb) { - struct scm_fp_list *fp; - - fp =3D UNIXCB(skb).fp; - for (i =3D 0; i < fp->count; i++) { - int left; - - if (fp->fp[i] !=3D file) - continue; - - unix_notinflight(fp->user, fp->fp[i]); - left =3D fp->count - 1 - i; - if (left) { - memmove(&fp->fp[i], &fp->fp[i + 1], - left * sizeof(struct file *)); - } - fp->count--; - if (!fp->count) { - kfree_skb(skb); - skb =3D NULL; - } else { - __skb_queue_tail(&list, skb); - } - fput(file); - file =3D NULL; - break; - } - - if (!file) - break; - - __skb_queue_tail(&list, skb); - - skb =3D skb_dequeue(head); - } - - if (skb_peek(&list)) { - spin_lock_irq(&head->lock); - while ((skb =3D __skb_dequeue(&list)) !=3D NULL) - __skb_queue_tail(head, skb); - spin_unlock_irq(&head->lock); - } -#else fput(file); -#endif } =20 static void __io_rsrc_put_work(struct io_rsrc_node *ref_node) @@ -8595,12 +8422,6 @@ static int io_sqe_files_register(struct io_ring_ctx = *ctx, void __user *arg, io_fixed_file_set(io_fixed_file_slot(&ctx->file_table, i), file); } =20 - ret =3D io_sqe_files_scm(ctx); - if (ret) { - __io_sqe_files_unregister(ctx); - return ret; - } - io_rsrc_node_switch(ctx, NULL); return ret; out_fput: @@ -9557,12 +9378,6 @@ static void io_ring_ctx_free(struct io_ring_ctx *ctx) WARN_ON_ONCE(!list_empty(&ctx->rsrc_ref_list)); WARN_ON_ONCE(!llist_empty(&ctx->rsrc_put_llist)); =20 -#if defined(CONFIG_UNIX) - if (ctx->ring_sock) { - ctx->ring_sock->file =3D NULL; /* so that iput() is called */ - sock_release(ctx->ring_sock); - } -#endif WARN_ON_ONCE(!list_empty(&ctx->ltimeout_list)); =20 if (ctx->mm_account) { @@ -10499,32 +10314,12 @@ static int io_uring_install_fd(struct io_ring_ctx= *ctx, struct file *file) /* * Allocate an anonymous fd, this is what constitutes the application * visible backing of an io_uring instance. The application mmaps this - * fd to gain access to the SQ/CQ ring details. If UNIX sockets are enable= d, - * we have to tie this fd to a socket for file garbage collection purposes. + * fd to gain access to the SQ/CQ ring details. */ static struct file *io_uring_get_file(struct io_ring_ctx *ctx) { - struct file *file; -#if defined(CONFIG_UNIX) - int ret; - - ret =3D sock_create_kern(&init_net, PF_UNIX, SOCK_RAW, IPPROTO_IP, - &ctx->ring_sock); - if (ret) - return ERR_PTR(ret); -#endif - - file =3D anon_inode_getfile("[io_uring]", &io_uring_fops, ctx, - O_RDWR | O_CLOEXEC); -#if defined(CONFIG_UNIX) - if (IS_ERR(file)) { - sock_release(ctx->ring_sock); - ctx->ring_sock =3D NULL; - } else { - ctx->ring_sock->file =3D file; - } -#endif - return file; + return anon_inode_getfile("[io_uring]", &io_uring_fops, ctx, + O_RDWR | O_CLOEXEC); } =20 static int io_uring_create(unsigned entries, struct io_uring_params *p, --=20 2.43.0 From nobody Wed Oct 15 22:31:24 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B07E32720E8; Sun, 24 Mar 2024 23:35:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323304; cv=none; b=hKCqiSZPQHbBrK86LQUX0Tyq9c9h+6rGkPPLW9x/v4PaWivbwHW9UmQaoND52dIJ4PeHGASATZhHSmCCQMW7UW/ekemGX7ZRvFOz26S80GvFiRJ9txtvwZhEOB8iDSVKBcUld+daFT9yENRmQgfJMdtUh+ShEjq/72lk4LKqkVs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323304; c=relaxed/simple; bh=XKTmuBbNGSq3qZq3k0AUkJ2Hx5fh0J1VoqUv/mzSn9U=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=QrR+m8REJQRw7Otb0Qkfard3WNtOSR4oGkrnZP9oxfMoXv+L9UyeQp+DPiOkd3fRUNvLtjjXvsCymUuKlbfcq0ii1pAYrJjLTs+R6ZFBTgM/ChcRTVfJuixCyOZs5aUR8BHPidWEIGCgSN6b9WCED8Rke7mJQ5ltLoUofN7kna8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=rt8uQE8V; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="rt8uQE8V" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 66730C433F1; Sun, 24 Mar 2024 23:35:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323303; bh=XKTmuBbNGSq3qZq3k0AUkJ2Hx5fh0J1VoqUv/mzSn9U=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=rt8uQE8VRLnOPx4T9F9BoqD9BDPG3Ge6wtvgXYDAIofg93jfgMk+JVH3LJrbbvb4W xYqPOGP03LQoOZcG824h5iDGvjNM7AoHdw2OioAyliU1BJT7WRQkFMf8OvF502Snxc tOeRuUFfV5b2FEwVgJqFZtJb4JeTaCK4paiCRUnkz8Rak9DpvGI2CBciKZIYusA+mg pyW2Iu7qGXd0PYpXlHjbNHYAi4OSTmOxKXWYBDVnMT56PUBr2ooQQgFwwYmPjqGcqp ZCg7F1KsBWsRFH4eYXMSrcA827PGvIm0YiQPffYkWgRfcCC/asnRZ6FFug9kTobTZe mIscEe+ZduHJA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: "Paul E. McKenney" , Hou Tao , Alexei Starovoitov , Martin KaFai Lau , Sasha Levin , Robert Kolchmeyer Subject: [PATCH 5.15 003/317] rcu-tasks: Provide rcu_trace_implies_rcu_gp() Date: Sun, 24 Mar 2024 19:29:43 -0400 Message-ID: <20240324233458.1352854-4-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: "Paul E. McKenney" [ Upstream commit e6c86c513f440bec5f1046539c7e3c6c653842da ] As an accident of implementation, an RCU Tasks Trace grace period also acts as an RCU grace period. However, this could change at any time. This commit therefore creates an rcu_trace_implies_rcu_gp() that currently returns true to codify this accident. Code relying on this accident must call this function to verify that this accident is still happening. Reported-by: Hou Tao Signed-off-by: Paul E. McKenney Cc: Alexei Starovoitov Cc: Martin KaFai Lau Link: https://lore.kernel.org/r/20221014113946.965131-2-houtao@huaweicloud.= com Signed-off-by: Alexei Starovoitov Stable-dep-of: 876673364161 ("bpf: Defer the free of inner map when necessa= ry") Signed-off-by: Sasha Levin (cherry picked from commit 10108826191ab30388e8ae9d54505a628f78a7ec) Signed-off-by: Robert Kolchmeyer Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- include/linux/rcupdate.h | 12 ++++++++++++ kernel/rcu/tasks.h | 2 ++ 2 files changed, 14 insertions(+) diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h index 13bddb841ceb1..e3b12de36e924 100644 --- a/include/linux/rcupdate.h +++ b/include/linux/rcupdate.h @@ -205,6 +205,18 @@ static inline void exit_tasks_rcu_stop(void) { } static inline void exit_tasks_rcu_finish(void) { } #endif /* #else #ifdef CONFIG_TASKS_RCU_GENERIC */ =20 +/** + * rcu_trace_implies_rcu_gp - does an RCU Tasks Trace grace period imply a= n RCU grace period? + * + * As an accident of implementation, an RCU Tasks Trace grace period also + * acts as an RCU grace period. However, this could change at any time. + * Code relying on this accident must call this function to verify that + * this accident is still happening. + * + * You have been warned! + */ +static inline bool rcu_trace_implies_rcu_gp(void) { return true; } + /** * cond_resched_tasks_rcu_qs - Report potential quiescent states to RCU * diff --git a/kernel/rcu/tasks.h b/kernel/rcu/tasks.h index 28f628c702452..b24ef77325eed 100644 --- a/kernel/rcu/tasks.h +++ b/kernel/rcu/tasks.h @@ -1098,6 +1098,8 @@ static void rcu_tasks_trace_postscan(struct list_head= *hop) =20 // Wait for late-stage exiting tasks to finish exiting. // These might have passed the call to exit_tasks_rcu_finish(). + + // If you remove the following line, update rcu_trace_implies_rcu_gp()!!! synchronize_rcu(); // Any tasks that exit after this point will set ->trc_reader_checked. } --=20 2.43.0 From nobody Wed Oct 15 22:31:24 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C07AA2720EA; Sun, 24 Mar 2024 23:35:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323304; cv=none; b=fvQ2j4SR57x2je+p/QL1XGyoiHVCvSvQRE59DK+CNrmyGhbuxWm2AoHtM745o5efl9LPsNDC8UhrJm47Oq2ent9OgCXUfjYpGPXIKoOpwPjG7oirQY/Nnkrcrpv63COfTaBduJUzajuJMeBb0tPtduYSK8HpO0fvFE0ylgRIDVE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323304; c=relaxed/simple; bh=J4fhyG1iQ5vLe+pk9Wp2Byk5gpEXClLC4Qx6nixNZ7g=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=AzQAEGShLhaAuA0UG/Ljd3An88FAUU23+ipaBy4+EaS41q+10Cu6gMg++xmDU8OWvd0WM8Rs0tuTXy//dH7z1I0NJdAhQcMLqAKIVTsLiZE8PSamezUcnTuXaAhFlvm9J9jN+0/3QeZLevriRSswa13ZaKBTOH65oljOedCR5ug= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=nV0ezSB+; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="nV0ezSB+" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9016BC433C7; Sun, 24 Mar 2024 23:35:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323304; bh=J4fhyG1iQ5vLe+pk9Wp2Byk5gpEXClLC4Qx6nixNZ7g=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nV0ezSB+wZvggWlddIcCMw/+fCmx+yI7Onju0GJT7HNGNEg/w2iEFzU57IWukPqn2 63L7KRuVZB9DINhyuFxy4Wz+cwQ+BKJgZI5wgSwPT9T+Iq9VvLAoKF5toocqdvJ5Cq Ds0mT8ei98th5lOLO6qUZZVLtHZZ2vsIqRmpMeaqpURpzqJgiPlbj/K6HzUxUhHZK2 LVhYD5DUlhmJ/wuOLuSu2aj7zKtGn7xqOYOHoOvXwc9wj4zA7wHj/VY7+Uivo8pgwp CmPnH7ZcoG5+PyCeQMmfhe1uRCAAMp4aGLH0XBb5eUW7YoUOgn8xOQkDJZITS49qQo SQ1pFWPbdt/xA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Hou Tao , Alexei Starovoitov , Sasha Levin , Robert Kolchmeyer Subject: [PATCH 5.15 004/317] bpf: Defer the free of inner map when necessary Date: Sun, 24 Mar 2024 19:29:44 -0400 Message-ID: <20240324233458.1352854-5-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Hou Tao [ Upstream commit 876673364161da50eed6b472d746ef88242b2368 ] When updating or deleting an inner map in map array or map htab, the map may still be accessed by non-sleepable program or sleepable program. However bpf_map_fd_put_ptr() decreases the ref-counter of the inner map directly through bpf_map_put(), if the ref-counter is the last one (which is true for most cases), the inner map will be freed by ops->map_free() in a kworker. But for now, most .map_free() callbacks don't use synchronize_rcu() or its variants to wait for the elapse of a RCU grace period, so after the invocation of ops->map_free completes, the bpf program which is accessing the inner map may incur use-after-free problem. Fix the free of inner map by invoking bpf_map_free_deferred() after both one RCU grace period and one tasks trace RCU grace period if the inner map has been removed from the outer map before. The deferment is accomplished by using call_rcu() or call_rcu_tasks_trace() when releasing the last ref-counter of bpf map. The newly-added rcu_head field in bpf_map shares the same storage space with work field to reduce the size of bpf_map. Fixes: bba1dc0b55ac ("bpf: Remove redundant synchronize_rcu.") Fixes: 638e4b825d52 ("bpf: Allows per-cpu maps and map-in-map in sleepable = programs") Signed-off-by: Hou Tao Link: https://lore.kernel.org/r/20231204140425.1480317-5-houtao@huaweicloud= .com Signed-off-by: Alexei Starovoitov Signed-off-by: Sasha Levin (cherry picked from commit 62fca83303d608ad4fec3f7428c8685680bb01b0) Signed-off-by: Robert Kolchmeyer Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- include/linux/bpf.h | 7 ++++++- kernel/bpf/map_in_map.c | 11 ++++++++--- kernel/bpf/syscall.c | 26 ++++++++++++++++++++++++-- 3 files changed, 38 insertions(+), 6 deletions(-) diff --git a/include/linux/bpf.h b/include/linux/bpf.h index 97d94bcba1314..df15d4d445ddc 100644 --- a/include/linux/bpf.h +++ b/include/linux/bpf.h @@ -192,9 +192,14 @@ struct bpf_map { */ atomic64_t refcnt ____cacheline_aligned; atomic64_t usercnt; - struct work_struct work; + /* rcu is used before freeing and work is only used during freeing */ + union { + struct work_struct work; + struct rcu_head rcu; + }; struct mutex freeze_mutex; atomic64_t writecnt; + bool free_after_mult_rcu_gp; }; =20 static inline bool map_value_has_spin_lock(const struct bpf_map *map) diff --git a/kernel/bpf/map_in_map.c b/kernel/bpf/map_in_map.c index af0f15db1bf9a..4cf79f86bf458 100644 --- a/kernel/bpf/map_in_map.c +++ b/kernel/bpf/map_in_map.c @@ -110,10 +110,15 @@ void *bpf_map_fd_get_ptr(struct bpf_map *map, =20 void bpf_map_fd_put_ptr(struct bpf_map *map, void *ptr, bool need_defer) { - /* ptr->ops->map_free() has to go through one - * rcu grace period by itself. + struct bpf_map *inner_map =3D ptr; + + /* The inner map may still be used by both non-sleepable and sleepable + * bpf program, so free it after one RCU grace period and one tasks + * trace RCU grace period. */ - bpf_map_put(ptr); + if (need_defer) + WRITE_ONCE(inner_map->free_after_mult_rcu_gp, true); + bpf_map_put(inner_map); } =20 u32 bpf_map_fd_sys_lookup_elem(void *ptr) diff --git a/kernel/bpf/syscall.c b/kernel/bpf/syscall.c index 64206856a05c4..d4b4a47081b51 100644 --- a/kernel/bpf/syscall.c +++ b/kernel/bpf/syscall.c @@ -487,6 +487,25 @@ static void bpf_map_put_uref(struct bpf_map *map) } } =20 +static void bpf_map_free_in_work(struct bpf_map *map) +{ + INIT_WORK(&map->work, bpf_map_free_deferred); + schedule_work(&map->work); +} + +static void bpf_map_free_rcu_gp(struct rcu_head *rcu) +{ + bpf_map_free_in_work(container_of(rcu, struct bpf_map, rcu)); +} + +static void bpf_map_free_mult_rcu_gp(struct rcu_head *rcu) +{ + if (rcu_trace_implies_rcu_gp()) + bpf_map_free_rcu_gp(rcu); + else + call_rcu(rcu, bpf_map_free_rcu_gp); +} + /* decrement map refcnt and schedule it for freeing via workqueue * (unrelying map implementation ops->map_free() might sleep) */ @@ -496,8 +515,11 @@ static void __bpf_map_put(struct bpf_map *map, bool do= _idr_lock) /* bpf_map_free_id() must be called first */ bpf_map_free_id(map, do_idr_lock); btf_put(map->btf); - INIT_WORK(&map->work, bpf_map_free_deferred); - schedule_work(&map->work); + + if (READ_ONCE(map->free_after_mult_rcu_gp)) + call_rcu_tasks_trace(&map->rcu, bpf_map_free_mult_rcu_gp); + else + bpf_map_free_in_work(map); } } =20 --=20 2.43.0 From nobody Wed Oct 15 22:31:24 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F2A892720F8; Sun, 24 Mar 2024 23:35:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323306; cv=none; b=rxlHktep2/V8BTCC8t+l0FqqjnZwK/1Mpyyid1h5Oy0isVDsjXFRf5HTg0MLYoBaKOXKKQ94uwMSuV6DKT3YtMTBr4Nlzt5AgPQ/3N4qDKygAtTVflTLlSkZwPsbCT+spzHvGkI9lN0IFXah9MS/JYgGuc+TtH6jbGLdJiM+Oe4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323306; c=relaxed/simple; bh=jyUcNQ9GntSGfERNYUd4qRk75zDk8r3yKu0X3vCk3eo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=VKTUWszvMzkTz+gd292Y2Do9QRj86IxaWP8a/w+YUID4XvJqa7O7trDFSX/OR6qrKWDPAjSfebV7laEp8sF9u8bjkXQLbcTLxdu8fFuDseananRgmrU2lUHY78FIj+qx2x3F42Jby2shzsILB+CokbCHrxSxffHVj4ZmhZzGatA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Po35YmbI; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Po35YmbI" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8C66EC43390; Sun, 24 Mar 2024 23:35:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323305; bh=jyUcNQ9GntSGfERNYUd4qRk75zDk8r3yKu0X3vCk3eo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Po35YmbI1RBBrl3w7JjcGXsa0lPOaHsn4XeLGYlyq2ePr7TKba+Mr/KiicCc3K8OF DfmLNP5/Mm20FZgmkQJolz3uYAaq3Kn7uX5Lq/qHuNXPA8dofUx3eLDX+T8t1JgWQu twVmEkB21AfMPGKH8DHk7MsW+x6SwXPVx+IRjSx+gP9bw6f84nUpAVjKpkcwVlqrl4 1BI7zpShvW4k9KBpYt22Bmp3WLHIoepijp/KpFufGeCtBsW1+qi4CgnCJ5yst9DQ5o YwtqqVxNKi6udVk/SQDg1oMl5+6jD6wbQiaGhFzrCcS0LQiia9ruc1STOTb3n+hYI7 la6mTH5rCIUhw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Filipe Manana , Johannes Thumshirn , Josef Bacik , Boris Burkov , David Sterba , Sasha Levin Subject: [PATCH 5.15 005/317] btrfs: add and use helper to check if block group is used Date: Sun, 24 Mar 2024 19:29:45 -0400 Message-ID: <20240324233458.1352854-6-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Filipe Manana [ Upstream commit 1693d5442c458ae8d5b0d58463b873cd879569ed ] Add a helper function to determine if a block group is being used and make use of it at btrfs_delete_unused_bgs(). This helper will also be used in future code changes. Reviewed-by: Johannes Thumshirn Reviewed-by: Josef Bacik Reviewed-by: Boris Burkov Signed-off-by: Filipe Manana Reviewed-by: David Sterba Signed-off-by: David Sterba Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- fs/btrfs/block-group.c | 3 +-- fs/btrfs/block-group.h | 7 +++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/fs/btrfs/block-group.c b/fs/btrfs/block-group.c index 4ca6828586af5..a2bac7196d18b 100644 --- a/fs/btrfs/block-group.c +++ b/fs/btrfs/block-group.c @@ -1330,8 +1330,7 @@ void btrfs_delete_unused_bgs(struct btrfs_fs_info *fs= _info) } =20 spin_lock(&block_group->lock); - if (block_group->reserved || block_group->pinned || - block_group->used || block_group->ro || + if (btrfs_is_block_group_used(block_group) || block_group->ro || list_is_singular(&block_group->list)) { /* * We want to bail if we made new allocations or have diff --git a/fs/btrfs/block-group.h b/fs/btrfs/block-group.h index a15868d607a92..f042c1c85a255 100644 --- a/fs/btrfs/block-group.h +++ b/fs/btrfs/block-group.h @@ -211,6 +211,13 @@ static inline u64 btrfs_block_group_end(struct btrfs_b= lock_group *block_group) return (block_group->start + block_group->length); } =20 +static inline bool btrfs_is_block_group_used(const struct btrfs_block_grou= p *bg) +{ + lockdep_assert_held(&bg->lock); + + return (bg->used > 0 || bg->reserved > 0 || bg->pinned > 0); +} + static inline bool btrfs_is_block_group_data_only( struct btrfs_block_group *block_group) { --=20 2.43.0 From nobody Wed Oct 15 22:31:24 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D1F0127210D; Sun, 24 Mar 2024 23:35:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323307; cv=none; b=XizuyVB5i9nO139HJelbkl2Lb8abJr5Tzz33dy3iSSJtQyWE7J7t6DbQ53mlabXnNXsb1mwShqKeFgrSC25s+YnfYQFFYFSCR8GkZwrwpo/qWE+OwMIClHpIEWCv5FcXaXMCm/QyCr7TWMcrPn5YzVUk7Eqh0wsxaFeopjGDQJ4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323307; c=relaxed/simple; bh=quRhELaf4gAf9OEbPPzuRkgP1qmvcJtfgwZ/JQhXv8M=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=rWDoAE1FsJ/uYjjaz85nUplNpLlPULVh7J/3XdsDwGj9l2ljBgd45rvg/j7B1Uj/UIyEYbqkiF8+C+8o/nj9bewyPXOt/iSOClwnXPv90Ft5kTlJrzUd+VyqB1mUHLPxhxfoEDneyfH009rBmTIutnePqaFwNhSc4QuSvvAwP/s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=h4sZcHZx; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="h4sZcHZx" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B3241C433F1; Sun, 24 Mar 2024 23:35:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323306; bh=quRhELaf4gAf9OEbPPzuRkgP1qmvcJtfgwZ/JQhXv8M=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=h4sZcHZxrf7SonlCIqj3nL0Qx119QYowa02LBGDU3hdar2st46oMMaFAk82t+qSDb 5kmsLDk68PSumJs57uDcABKltWXM8eplYucLSnQ+s+cCiaI3+yW8rcHGkU+seaAZGJ 6Bir8ZhLKr95mxRWnNKzhTTs+YTSdbaF6NfeJCjeKyyXceoUtETQKKM+a+guqAhXIG Uxl/ZEsUTFvEf3v1MZ4aj+4j7p4OGQl8TYGB/yIqX1V07cyX2wzaxlPqmtuW6PA9l1 YyEtrOKUvQOp0aYMza7VWoXyXVTbBoyYC+oBq00bRxEWI5NqYOm++TwJGuRnHFyM0J niIqnYLP9liFg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jakub Kicinski , Simon Horman , "David S . Miller" , Sasha Levin Subject: [PATCH 5.15 006/317] selftests: tls: use exact comparison in recv_partial Date: Sun, 24 Mar 2024 19:29:46 -0400 Message-ID: <20240324233458.1352854-7-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Jakub Kicinski [ Upstream commit 49d821064c44cb5ffdf272905236012ea9ce50e3 ] This exact case was fail for async crypto and we weren't catching it. Signed-off-by: Jakub Kicinski Reviewed-by: Simon Horman Signed-off-by: David S. Miller Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- tools/testing/selftests/net/tls.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tools/testing/selftests/net/tls.c b/tools/testing/selftests/ne= t/tls.c index 3bdb093731358..637f1b8ec13b4 100644 --- a/tools/testing/selftests/net/tls.c +++ b/tools/testing/selftests/net/tls.c @@ -716,12 +716,12 @@ TEST_F(tls, recv_partial) =20 memset(recv_mem, 0, sizeof(recv_mem)); EXPECT_EQ(send(self->fd, test_str, send_len, 0), send_len); - EXPECT_NE(recv(self->cfd, recv_mem, strlen(test_str_first), - MSG_WAITALL), -1); + EXPECT_EQ(recv(self->cfd, recv_mem, strlen(test_str_first), + MSG_WAITALL), strlen(test_str_first)); EXPECT_EQ(memcmp(test_str_first, recv_mem, strlen(test_str_first)), 0); memset(recv_mem, 0, sizeof(recv_mem)); - EXPECT_NE(recv(self->cfd, recv_mem, strlen(test_str_second), - MSG_WAITALL), -1); + EXPECT_EQ(recv(self->cfd, recv_mem, strlen(test_str_second), + MSG_WAITALL), strlen(test_str_second)); EXPECT_EQ(memcmp(test_str_second, recv_mem, strlen(test_str_second)), 0); } --=20 2.43.0 From nobody Wed Oct 15 22:31:24 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CBE1627211F; Sun, 24 Mar 2024 23:35:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323308; cv=none; b=cE77AK0WJkpU5POTvcAs5IRWkiZs3Bcd3hscAKxmowghkKZOT+TgLo0m6FTNYLCT+SAj/ch9gFBt/wHhIUScoso6vWvcD2iPfrJC7qr8R/NB528CJtICG47F7MJH3TyoLk7owKb9AYKFp+mqjicMdz1R+pHIivRGu4+cBGRgYgo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323308; c=relaxed/simple; bh=dZe/VpeCcBYjYoGFpsGrAEwWc/lpdhliT+gbyEeOeBY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=CgyFXXftvNKgs0VlnsJTl1f0hyYANjAZ4X9HFxWAYxL10oSlkEIrB1LqxnmaKCkK5TM7ZY7+nomjO8yXUjKyiAQrbrhelzVB46UpSQU8XSBOS0W3cGFaqcNJ+ckxcuKBh+XevKrLd8zmjAKFIsZQwnZrlW80uHuOlvPp8NzwDfM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=qwJBjcnq; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="qwJBjcnq" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B3E4AC43394; Sun, 24 Mar 2024 23:35:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323307; bh=dZe/VpeCcBYjYoGFpsGrAEwWc/lpdhliT+gbyEeOeBY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qwJBjcnqJWm0vFE7FJdREoPAVUp+DePzFGif/0vlSUGphEGgWyDRraShyaAW6BSuN YjKqZNllSBS6jY1FcbBbskUUYcyAq5DgzGNPMaCnbxH3v02cdQBc12c8xlttoJsBmK az88qtEJ+BKHbDeJI6eM/8Qi6Z8rT+bYTv4dMTaxGC/uUo/e6GhTcdVsJhwtaSrpEG CrBnXVzIGFVKUDcH6SMrxc99bwGPabrirge3CRlwMbEjoMN2V2l9B2JCtecFhw/tci mdTrFTWRWQNp7Qj0HK7FVky3ZOrDAJAbJybJ8OOxzfvXaUvun44nnGCRoh0A5bvPBj 1FbNXiO6tfAZw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Hans de Goede , Mark Brown , Sasha Levin Subject: [PATCH 5.15 007/317] ASoC: rt5645: Make LattePanda board DMI match more precise Date: Sun, 24 Mar 2024 19:29:47 -0400 Message-ID: <20240324233458.1352854-8-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Hans de Goede [ Upstream commit 551539a8606e28cb2a130f8ef3e9834235b456c4 ] The DMI strings used for the LattePanda board DMI quirks are very generic. Using the dmidecode database from https://linux-hardware.org/ shows that the chosen DMI strings also match the following 2 laptops which also have a rt5645 codec: Insignia NS-P11W7100 https://linux-hardware.org/?computer=3DE092FFF8BA04 Insignia NS-P10W8100 https://linux-hardware.org/?computer=3DAFB6C0BF7934 All 4 hw revisions of the LattePanda board have "S70CR" in their BIOS version DMI strings: DF-BI-7-S70CR100-* DF-BI-7-S70CR110-* DF-BI-7-S70CR200-* LP-BS-7-S70CR700-* See e.g. https://linux-hardware.org/?computer=3DD98250A817C0 Add a partial (non exact) DMI match on this string to make the LattePanda board DMI match more precise to avoid false-positive matches. Signed-off-by: Hans de Goede Link: https://msgid.link/r/20240211212736.179605-1-hdegoede@redhat.com Signed-off-by: Mark Brown Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- sound/soc/codecs/rt5645.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/sound/soc/codecs/rt5645.c b/sound/soc/codecs/rt5645.c index f903bee194d5c..2cc3d814bab41 100644 --- a/sound/soc/codecs/rt5645.c +++ b/sound/soc/codecs/rt5645.c @@ -3803,6 +3803,16 @@ static const struct dmi_system_id dmi_platform_data[= ] =3D { DMI_EXACT_MATCH(DMI_BOARD_VENDOR, "AMI Corporation"), DMI_EXACT_MATCH(DMI_BOARD_NAME, "Cherry Trail CR"), DMI_EXACT_MATCH(DMI_BOARD_VERSION, "Default string"), + /* + * Above strings are too generic, LattePanda BIOS versions for + * all 4 hw revisions are: + * DF-BI-7-S70CR100-* + * DF-BI-7-S70CR110-* + * DF-BI-7-S70CR200-* + * LP-BS-7-S70CR700-* + * Do a partial match for S70CR to avoid false positive matches. + */ + DMI_MATCH(DMI_BIOS_VERSION, "S70CR"), }, .driver_data =3D (void *)&lattepanda_board_platform_data, }, --=20 2.43.0 From nobody Wed Oct 15 22:31:24 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CA608217DE7; Sun, 24 Mar 2024 23:35:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323309; cv=none; b=ZLQRaEIJzNOqqNMcMOYHbqNC7hKIViuPGFjdJRWOi6q6cIO5OmgTEeM+g4tfocUxdRaIT2F2JEpllmwVKGwhLzdMk0Yxv9ZUX2oBMUX5C0sAx22cmF7xOusW221UT2MO+lUDMAKy9kLQp8JGae5GTsgavjfi/tIzdpENmdYP4n8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323309; c=relaxed/simple; bh=tjjI2nsFG1aGxXNU8gC7cWP86c+GUyG67wihdRCmajA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=BizfRKNemhy+e/+9kmJOEn0Zf/u0ij5MP9vvhPqkS4Oih1mMrjyaC6kQJBEyzOaomqHjEHzhV3qyizOrJwiCUZZ0hSqj6QcmsieMHGaPEff7D+h5I19KmH4h4euG5PlVudBZCU1g3/903lscMblkmEeXt9TkgRN8t359GjsIWkk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=TchJPrfi; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="TchJPrfi" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9D372C433C7; Sun, 24 Mar 2024 23:35:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323308; bh=tjjI2nsFG1aGxXNU8gC7cWP86c+GUyG67wihdRCmajA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=TchJPrfi46vveoItzDzuorHazSCyztX+qm7hE+CWmaoeVt3ttkkSUM5a23DE/6tWm WhlDZs7rx/3pbpwNsKT5Zd3+HlFRR3d7G/1ga5yBKg0LZF/PNO8vNoHKpzWvztwjLy SlUKCMUm3Eg0qnImdpBfexBrQij+qVCDV0cE8Ytbn15xuJLAnHsY50AB6O0Lu1tPxw O0BK9w+jn5QAAoDWdkzYUHc1KOj6G2dyBv6nuYvBLzy+iwBVG+psmnn7Kg5BWOxAkN P04+NbQkrrWK+K/7B3TZkmnJ8Ko4mc4IjohugnfURGl3KPe+Ye8f2j8gx31djHi739 Ea+htwuOukrxg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Kunwu Chan , kernel test robot , Markus Elfring , Juergen Gross , Sasha Levin Subject: [PATCH 5.15 008/317] x86/xen: Add some null pointer checking to smp.c Date: Sun, 24 Mar 2024 19:29:48 -0400 Message-ID: <20240324233458.1352854-9-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Kunwu Chan [ Upstream commit 3693bb4465e6e32a204a5b86d3ec7e6b9f7e67c2 ] kasprintf() returns a pointer to dynamically allocated memory which can be NULL upon failure. Ensure the allocation was successful by checking the pointer validity. Signed-off-by: Kunwu Chan Reported-by: kernel test robot Closes: https://lore.kernel.org/oe-kbuild-all/202401161119.iof6BQsf-lkp@int= el.com/ Suggested-by: Markus Elfring Reviewed-by: Juergen Gross Link: https://lore.kernel.org/r/20240119094948.275390-1-chentao@kylinos.cn Signed-off-by: Juergen Gross Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- arch/x86/xen/smp.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/arch/x86/xen/smp.c b/arch/x86/xen/smp.c index cdec892b28e2e..a641e0d452194 100644 --- a/arch/x86/xen/smp.c +++ b/arch/x86/xen/smp.c @@ -65,6 +65,8 @@ int xen_smp_intr_init(unsigned int cpu) char *resched_name, *callfunc_name, *debug_name; =20 resched_name =3D kasprintf(GFP_KERNEL, "resched%d", cpu); + if (!resched_name) + goto fail_mem; per_cpu(xen_resched_irq, cpu).name =3D resched_name; rc =3D bind_ipi_to_irqhandler(XEN_RESCHEDULE_VECTOR, cpu, @@ -77,6 +79,8 @@ int xen_smp_intr_init(unsigned int cpu) per_cpu(xen_resched_irq, cpu).irq =3D rc; =20 callfunc_name =3D kasprintf(GFP_KERNEL, "callfunc%d", cpu); + if (!callfunc_name) + goto fail_mem; per_cpu(xen_callfunc_irq, cpu).name =3D callfunc_name; rc =3D bind_ipi_to_irqhandler(XEN_CALL_FUNCTION_VECTOR, cpu, @@ -90,6 +94,9 @@ int xen_smp_intr_init(unsigned int cpu) =20 if (!xen_fifo_events) { debug_name =3D kasprintf(GFP_KERNEL, "debug%d", cpu); + if (!debug_name) + goto fail_mem; + per_cpu(xen_debug_irq, cpu).name =3D debug_name; rc =3D bind_virq_to_irqhandler(VIRQ_DEBUG, cpu, xen_debug_interrupt, @@ -101,6 +108,9 @@ int xen_smp_intr_init(unsigned int cpu) } =20 callfunc_name =3D kasprintf(GFP_KERNEL, "callfuncsingle%d", cpu); + if (!callfunc_name) + goto fail_mem; + per_cpu(xen_callfuncsingle_irq, cpu).name =3D callfunc_name; rc =3D bind_ipi_to_irqhandler(XEN_CALL_FUNCTION_SINGLE_VECTOR, cpu, @@ -114,6 +124,8 @@ int xen_smp_intr_init(unsigned int cpu) =20 return 0; =20 + fail_mem: + rc =3D -ENOMEM; fail: xen_smp_intr_free(cpu); return rc; --=20 2.43.0 From nobody Wed Oct 15 22:31:24 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7568A272968; Sun, 24 Mar 2024 23:35:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323310; cv=none; b=DhIN6fqOrwqT76fWj3z6vgZnAYJdfZl8xHhmnS1fOpqBwmFI3tauIRmnG03eceLV05yMW3moi4/wh30iBzmyMhOL0jJ9esMhTXrO+iAUzOZhLO+WpE64enuGcV2yTlLbqh0v8afvztXCqMOqOBtxLbX+xkqsI4Zgr8pGFSIhq7g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323310; c=relaxed/simple; bh=YPRtis0IXaoNDc9pCeoWs6Weo9a+oWw+h2fuU+s0gXI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=TLb47c7/cN3kZ2td1quwm7iLY0I2TXAlnIzN/+ff9BZjsGJbJFW3gKpBinXF0SaRkbS7qZn2clBCpCmbtmc625C5YuknX8GjPWsL59cUZXlnax858nBSXqz8nRlzVz9MsEoIqhJRLIKWflOTKxJEy6Cd8VcOv1e22EWGj8DP8kM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=BzoR4bmA; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="BzoR4bmA" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B5B0EC433F1; Sun, 24 Mar 2024 23:35:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323309; bh=YPRtis0IXaoNDc9pCeoWs6Weo9a+oWw+h2fuU+s0gXI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=BzoR4bmAyg5A7JU4XOWEnOX1PLPXV2/gj1sPvMWO2pFWgZcgUIj9QG0KLhATiORYj YoAHE5Eekm+gzPRgeIIZeIL/epms5uOBUye1x2XpjxVRpV3jTJiqGq1t7H4DQ6f/Dy XpvVdgMSAhbsoFmFx8SeFaPZqjJOUnfmb9sPDAsgLz+boUkGsaxXY1ey4A0Uh4Dpyz jg+7+DQ84iWlsYMcyb7o0RByuwn2FESAAc8fCwQy7Sg7lvkhJNXWKYTQ1qMCiIzIyE A4eRhZlqhkWVpAv9v8Q3DYDnWZJ9zMIwOrZMd6ZgpmDtBb26m81Ggf8Ws5Ye7Aoevr qU3Lp/raA5LIA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jiaxun Yang , Thomas Bogendoerfer , Sasha Levin Subject: [PATCH 5.15 009/317] MIPS: Clear Cause.BD in instruction_pointer_set Date: Sun, 24 Mar 2024 19:29:49 -0400 Message-ID: <20240324233458.1352854-10-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Jiaxun Yang [ Upstream commit 9d6e21ddf20293b3880ae55b9d14de91c5891c59 ] Clear Cause.BD after we use instruction_pointer_set to override EPC. This can prevent exception_epc check against instruction code at new return address. It won't be considered as "in delay slot" after epc being overridden anyway. Signed-off-by: Jiaxun Yang Signed-off-by: Thomas Bogendoerfer Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- arch/mips/include/asm/ptrace.h | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/mips/include/asm/ptrace.h b/arch/mips/include/asm/ptrace.h index daf3cf244ea97..b3e4dd6be7e20 100644 --- a/arch/mips/include/asm/ptrace.h +++ b/arch/mips/include/asm/ptrace.h @@ -60,6 +60,7 @@ static inline void instruction_pointer_set(struct pt_regs= *regs, unsigned long val) { regs->cp0_epc =3D val; + regs->cp0_cause &=3D ~CAUSEF_BD; } =20 /* Query offset/name of register from its name/offset */ --=20 2.43.0 From nobody Wed Oct 15 22:31:24 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5EB45272974; Sun, 24 Mar 2024 23:35:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323311; cv=none; b=enU2QyJ/uhxuicKGJMq/XCZcL6vtN1+fsy6Lg34yvUMCQ0nJj/wyDJFrQt8uG1H5BCJ/i+wlehCMUkhYHz9iKmZTxmGp3kumlNFQjbibGz4AtzlQV7Brr3DB6lguhIU1scItNnKJO8O9DzH712PmLj2zuYR95tPczZgK85B0KEE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323311; c=relaxed/simple; bh=cALgQIXPRsKE1+5Ub3lHmnVuOotKVtUp6ahf58Vi568=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=OEhIMV1Pb7WgmLRlzQ3qwtd7LyEW/2QHt4q+B5agzW0nnjQ7wOMDde+xeFcapGqq0+IAMoUuMT+oHfdKNl/FRSeM8kCNxDCa2xbbU5nSJxa3tsNN6Z/gQv1P2rdmLq5hsBzf0r5tF7ksYqfc3ki1P6zXon7IJwdcUoBc7Y733cU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=IBaar1a3; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="IBaar1a3" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9A3EAC43394; Sun, 24 Mar 2024 23:35:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323310; bh=cALgQIXPRsKE1+5Ub3lHmnVuOotKVtUp6ahf58Vi568=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=IBaar1a33epz0wm+ebnXc7wcW5tnYKWKtSsHLdScC5ahj3qjYH2mz1IZ5sceHzqU2 cB6FkE8ZTHZxMQCgvP5SrQ/Eidl0y1nr6FQyxshqBKA9ev2oTgSfDyewB9LyR6zIOw sePHdlFDONjOOYWa2LPpyEW1HILyaDqDH4fh2S2iAm9uvKy9ipxUEqfbrebEUMDjiC rV3B1Xfj29zSeTHXW2MK6l6kDzbOi9qIVS+ODFw7oMh4RJ+/pi544S9UsgcNzTk0Qr 0U058Ksyu6FA+hamGWJNLtZXyFEV6iNopi4GMTZ/LWa1u/ivao0ShXX87jKrgYL2AW wSTh4PjtVkx2A== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Manuel Fombuena , Jiri Kosina , Sasha Levin Subject: [PATCH 5.15 010/317] HID: multitouch: Add required quirk for Synaptics 0xcddc device Date: Sun, 24 Mar 2024 19:29:50 -0400 Message-ID: <20240324233458.1352854-11-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Manuel Fombuena [ Upstream commit 1741a8269e1c51fa08d4bfdf34667387a6eb10ec ] Add support for the pointing stick (Accupoint) and 2 mouse buttons. Present on some Toshiba/dynabook Portege X30 and X40 laptops. It should close https://bugzilla.kernel.org/show_bug.cgi?id=3D205817 Signed-off-by: Manuel Fombuena Signed-off-by: Jiri Kosina Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/hid/hid-multitouch.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c index fc04538d93cbb..2e14e3071aa69 100644 --- a/drivers/hid/hid-multitouch.c +++ b/drivers/hid/hid-multitouch.c @@ -2151,6 +2151,10 @@ static const struct hid_device_id mt_devices[] =3D { HID_DEVICE(BUS_I2C, HID_GROUP_MULTITOUCH_WIN_8, USB_VENDOR_ID_SYNAPTICS, 0xcd7e) }, =20 + { .driver_data =3D MT_CLS_WIN_8_FORCE_MULTI_INPUT, + HID_DEVICE(BUS_I2C, HID_GROUP_MULTITOUCH_WIN_8, + USB_VENDOR_ID_SYNAPTICS, 0xcddc) }, + { .driver_data =3D MT_CLS_WIN_8_FORCE_MULTI_INPUT, HID_DEVICE(BUS_I2C, HID_GROUP_MULTITOUCH_WIN_8, USB_VENDOR_ID_SYNAPTICS, 0xce08) }, --=20 2.43.0 From nobody Wed Oct 15 22:31:24 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5B458272973; Sun, 24 Mar 2024 23:35:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323311; cv=none; b=aaTQoZ3Iq9zujildyatln7a4pd18IoVDvl3qSYtk0p80y0WedjlvNWXJJ4UZLYk4C39+BYHd7DJ0c/ILZnGhVUdC3cOKbxVPYLhJAUx92iQIHu7kVZ6ejwi2aE8dP+OOapXgwlqMk+SKUUH8AsVu08z4s5A4y+JJRp8v1lgYqhA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323311; c=relaxed/simple; bh=69LnKLUw/CQjKGQSReO/Q4FoKZ4LF/t7TUj6z3/ixkw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=pl8QKkmQo4ymUJcmLUK+P01vS+rZ0KA6RzGIZ8pmplET6t1488gB+2YbGE7+DS1ZJO2sVpZT+j7UIu/1JOGJ42tNVMQ2rPPI6d8e2n3xI43fcsstfWaWZmVeUBQGuufUDIRnkxB5ZhpF0Xd09GUx+HCUetiofF9tfInB1AWLCGA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=PODXOJQ2; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="PODXOJQ2" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 825B4C433C7; Sun, 24 Mar 2024 23:35:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323311; bh=69LnKLUw/CQjKGQSReO/Q4FoKZ4LF/t7TUj6z3/ixkw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=PODXOJQ27NQFlUkWzhP2zdv+ujxYdrbQGcUHGjPBslHrjqc8Agk4FFuihu6FZ2idb hTIJutnzqgFZXokRMVU2i+0UM7y51fCfJsbWFGFjTe2ZqBoS8/eKrBeh2tG/VnovOT BhlfdlmrFny9qpijpoksM1pUWgK9BW/zCtpjFxil9/ZpmKtRKcuYJpi8PUFXYwaPyl nldESaGaPCm6NBwI2ES4ciFdcup3s6Nbxotawsk9vbuAPcGbLkateioiKH7MKbqbzb 5C1lvFPNzF9/EqzYzL3654BoEXdz9MMNJQi45HJTDLIgZElK4eAtcFQA+Sxno2vSfU FeDN8jshF3sBw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Andrew Ballance , Justin Stitt , Masahiro Yamada , Sasha Levin Subject: [PATCH 5.15 011/317] gen_compile_commands: fix invalid escape sequence warning Date: Sun, 24 Mar 2024 19:29:51 -0400 Message-ID: <20240324233458.1352854-12-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Andrew Ballance [ Upstream commit dae4a0171e25884787da32823b3081b4c2acebb2 ] With python 3.12, '\#' results in this warning SyntaxWarning: invalid escape sequence '\#' Signed-off-by: Andrew Ballance Reviewed-by: Justin Stitt Signed-off-by: Masahiro Yamada Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- scripts/clang-tools/gen_compile_commands.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/clang-tools/gen_compile_commands.py b/scripts/clang-to= ols/gen_compile_commands.py index 1d1bde1fd45eb..3ac949b64b309 100755 --- a/scripts/clang-tools/gen_compile_commands.py +++ b/scripts/clang-tools/gen_compile_commands.py @@ -184,7 +184,7 @@ def process_line(root_directory, command_prefix, file_p= ath): # escape the pound sign '#', either as '\#' or '$(pound)' (depending o= n the # kernel version). The compile_commands.json file is not interepreted # by Make, so this code replaces the escaped version with '#'. - prefix =3D command_prefix.replace('\#', '#').replace('$(pound)', '#') + prefix =3D command_prefix.replace(r'\#', '#').replace('$(pound)', '#') =20 # Use os.path.abspath() to normalize the path resolving '.' and '..' . abs_path =3D os.path.abspath(os.path.join(root_directory, file_path)) --=20 2.43.0 From nobody Wed Oct 15 22:31:24 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8202C272980; Sun, 24 Mar 2024 23:35:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323312; cv=none; b=YqkHOc7XjrruklFwMNinMAwI1M4abG5Hhg7ShJM9zDNmoGAKVQL6eE35N6KvbXpl7NJTgZAmuAmWM8mlpNkwyZllCJlY2OC4HVbpNu6AYYGTvWycIW75KhkS4IPTOITF8We307sbfcjxsIB+zDq/oFdVvVUw8PXVr39KWJmIjZ4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323312; c=relaxed/simple; bh=Kv3JJ0pr7qHUanEQPnFTgZ/Sh7YwzAqjHxcRFJQZKTU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=WV9Stc55AG7NiGoThh5r5zJNbjPmJFpj0Uthl3mmEl65vgm71QovsZjLMFzfjShnDPVxiCl4D8tkTPprAYYFBxjypyO8WE4wVwoUcEsISpwf3/d928NZLVBfXwwHBNYHhRHdZCjqrf/CE+p1F4bJy2HMWmXtEK+BHAFNn34jTzA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=a3g4Xzvi; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="a3g4Xzvi" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 80BF1C43394; Sun, 24 Mar 2024 23:35:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323312; bh=Kv3JJ0pr7qHUanEQPnFTgZ/Sh7YwzAqjHxcRFJQZKTU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=a3g4Xzvi7+QqKWxuKSRDUAMjXsLbciO94FJzzBhwwDjkCku9VNTCnxedSLylLVlF4 wz6VLjxHk3OQz/JVZyhu2vnVWAmtR/wJC2EBq3HSlRDtoD5QGTCwWzH36cWaHhxFmu Mi3IGurfsl8+hcV0qs9L0/7PLUsdeOGpRjUNOrVan5/216r8OwA6tCkfOfOvr4kkz7 /LlGzpi+oPhmAahK8auQRhNSkjp2iMxTIgq3HFmq59/qTxQFRRcEKmn+kgV9lU5LaJ NEPqOIJOdaCzBG1nFYGReZSI921zSl+zU6uzmI5tZpxwoLo4M+nO7DcuZ6MyYxoAcf MlWMo4FM5Yrow== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Leon Romanovsky , Sasha Levin Subject: [PATCH 5.15 012/317] RDMA/mlx5: Fix fortify source warning while accessing Eth segment Date: Sun, 24 Mar 2024 19:29:52 -0400 Message-ID: <20240324233458.1352854-13-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Leon Romanovsky [ Upstream commit 4d5e86a56615cc387d21c629f9af8fb0e958d350 ] ------------[ cut here ]------------ memcpy: detected field-spanning write (size 56) of single field "eseg->inl= ine_hdr.start" at /var/lib/dkms/mlnx-ofed-kernel/5.8/build/drivers/infiniba= nd/hw/mlx5/wr.c:131 (size 2) WARNING: CPU: 0 PID: 293779 at /var/lib/dkms/mlnx-ofed-kernel/5.8/build/dr= ivers/infiniband/hw/mlx5/wr.c:131 mlx5_ib_post_send+0x191b/0x1a60 [mlx5_ib] Modules linked in: 8021q garp mrp stp llc rdma_ucm(OE) rdma_cm(OE) iw_cm(O= E) ib_ipoib(OE) ib_cm(OE) ib_umad(OE) mlx5_ib(OE) ib_uverbs(OE) ib_core(OE)= mlx5_core(OE) pci_hyperv_intf mlxdevm(OE) mlx_compat(OE) tls mlxfw(OE) psa= mple nft_fib_inet nft_fib_ipv4 nft_fib_ipv6 nft_fib nft_reject_inet nf_reje= ct_ipv4 nf_reject_ipv6 nft_reject nft_ct nft_chain_nat nf_nat nf_conntrack = nf_defrag_ipv6 nf_defrag_ipv4 ip_set nf_tables libcrc32c nfnetlink mst_pcic= onf(OE) knem(OE) vfio_pci vfio_pci_core vfio_iommu_type1 vfio iommufd irqby= pass cuse nfsv3 nfs fscache netfs xfrm_user xfrm_algo ipmi_devintf ipmi_msg= handler binfmt_misc crct10dif_pclmul crc32_pclmul polyval_clmulni polyval_g= eneric ghash_clmulni_intel sha512_ssse3 snd_pcsp aesni_intel crypto_simd cr= yptd snd_pcm snd_timer joydev snd soundcore input_leds serio_raw evbug nfsd= auth_rpcgss nfs_acl lockd grace sch_fq_codel sunrpc drm efi_pstore ip_tabl= es x_tables autofs4 psmouse virtio_net net_failover failover floppy [last unloaded: mlx_compat(OE)] CPU: 0 PID: 293779 Comm: ssh Tainted: G OE 6.2.0-32-generic= #32~22.04.1-Ubuntu Hardware name: Red Hat KVM, BIOS 0.5.1 01/01/2011 RIP: 0010:mlx5_ib_post_send+0x191b/0x1a60 [mlx5_ib] Code: 0c 01 00 a8 01 75 25 48 8b 75 a0 b9 02 00 00 00 48 c7 c2 10 5b fd c0= 48 c7 c7 80 5b fd c0 c6 05 57 0c 03 00 01 e8 95 4d 93 da <0f> 0b 44 8b 4d = b0 4c 8b 45 c8 48 8b 4d c0 e9 49 fb ff ff 41 0f b7 RSP: 0018:ffffb5b48478b570 EFLAGS: 00010046 RAX: 0000000000000000 RBX: 0000000000000001 RCX: 0000000000000000 RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000 RBP: ffffb5b48478b628 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000000 R12: ffffb5b48478b5e8 R13: ffff963a3c609b5e R14: ffff9639c3fbd800 R15: ffffb5b480475a80 FS: 00007fc03b444c80(0000) GS:ffff963a3dc00000(0000) knlGS:00000000000000= 00 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000556f46bdf000 CR3: 0000000006ac6003 CR4: 00000000003706f0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace: ? show_regs+0x72/0x90 ? mlx5_ib_post_send+0x191b/0x1a60 [mlx5_ib] ? __warn+0x8d/0x160 ? mlx5_ib_post_send+0x191b/0x1a60 [mlx5_ib] ? report_bug+0x1bb/0x1d0 ? handle_bug+0x46/0x90 ? exc_invalid_op+0x19/0x80 ? asm_exc_invalid_op+0x1b/0x20 ? mlx5_ib_post_send+0x191b/0x1a60 [mlx5_ib] mlx5_ib_post_send_nodrain+0xb/0x20 [mlx5_ib] ipoib_send+0x2ec/0x770 [ib_ipoib] ipoib_start_xmit+0x5a0/0x770 [ib_ipoib] dev_hard_start_xmit+0x8e/0x1e0 ? validate_xmit_skb_list+0x4d/0x80 sch_direct_xmit+0x116/0x3a0 __dev_xmit_skb+0x1fd/0x580 __dev_queue_xmit+0x284/0x6b0 ? _raw_spin_unlock_irq+0xe/0x50 ? __flush_work.isra.0+0x20d/0x370 ? push_pseudo_header+0x17/0x40 [ib_ipoib] neigh_connected_output+0xcd/0x110 ip_finish_output2+0x179/0x480 ? __smp_call_single_queue+0x61/0xa0 __ip_finish_output+0xc3/0x190 ip_finish_output+0x2e/0xf0 ip_output+0x78/0x110 ? __pfx_ip_finish_output+0x10/0x10 ip_local_out+0x64/0x70 __ip_queue_xmit+0x18a/0x460 ip_queue_xmit+0x15/0x30 __tcp_transmit_skb+0x914/0x9c0 tcp_write_xmit+0x334/0x8d0 tcp_push_one+0x3c/0x60 tcp_sendmsg_locked+0x2e1/0xac0 tcp_sendmsg+0x2d/0x50 inet_sendmsg+0x43/0x90 sock_sendmsg+0x68/0x80 sock_write_iter+0x93/0x100 vfs_write+0x326/0x3c0 ksys_write+0xbd/0xf0 ? do_syscall_64+0x69/0x90 __x64_sys_write+0x19/0x30 do_syscall_64+0x59/0x90 ? do_user_addr_fault+0x1d0/0x640 ? exit_to_user_mode_prepare+0x3b/0xd0 ? irqentry_exit_to_user_mode+0x9/0x20 ? irqentry_exit+0x43/0x50 ? exc_page_fault+0x92/0x1b0 entry_SYSCALL_64_after_hwframe+0x72/0xdc RIP: 0033:0x7fc03ad14a37 Code: 10 00 f7 d8 64 89 02 48 c7 c0 ff ff ff ff eb b7 0f 1f 00 f3 0f 1e fa= 64 8b 04 25 18 00 00 00 85 c0 75 10 b8 01 00 00 00 0f 05 <48> 3d 00 f0 ff = ff 77 51 c3 48 83 ec 28 48 89 54 24 18 48 89 74 24 RSP: 002b:00007ffdf8697fe8 EFLAGS: 00000246 ORIG_RAX: 0000000000000001 RAX: ffffffffffffffda RBX: 0000000000008024 RCX: 00007fc03ad14a37 RDX: 0000000000008024 RSI: 0000556f46bd8270 RDI: 0000000000000003 RBP: 0000556f46bb1800 R08: 0000000000007fe3 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000002 R13: 0000556f46bc66b0 R14: 000000000000000a R15: 0000556f46bb2f50 ---[ end trace 0000000000000000 ]--- Link: https://lore.kernel.org/r/8228ad34bd1a25047586270f7b1fb4ddcd046282.17= 06433934.git.leon@kernel.org Signed-off-by: Leon Romanovsky Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/infiniband/hw/mlx5/wr.c | 2 +- include/linux/mlx5/qp.h | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/infiniband/hw/mlx5/wr.c b/drivers/infiniband/hw/mlx5/w= r.c index 8841620af82f1..b81d282fb0d52 100644 --- a/drivers/infiniband/hw/mlx5/wr.c +++ b/drivers/infiniband/hw/mlx5/wr.c @@ -128,7 +128,7 @@ static void set_eth_seg(const struct ib_send_wr *wr, st= ruct mlx5_ib_qp *qp, */ copysz =3D min_t(u64, *cur_edge - (void *)eseg->inline_hdr.start, left); - memcpy(eseg->inline_hdr.start, pdata, copysz); + memcpy(eseg->inline_hdr.data, pdata, copysz); stride =3D ALIGN(sizeof(struct mlx5_wqe_eth_seg) - sizeof(eseg->inline_hdr.start) + copysz, 16); *size +=3D stride / 16; diff --git a/include/linux/mlx5/qp.h b/include/linux/mlx5/qp.h index 61e48d459b23c..693d758f2f1c9 100644 --- a/include/linux/mlx5/qp.h +++ b/include/linux/mlx5/qp.h @@ -261,7 +261,10 @@ struct mlx5_wqe_eth_seg { union { struct { __be16 sz; - u8 start[2]; + union { + u8 start[2]; + DECLARE_FLEX_ARRAY(u8, data); + }; } inline_hdr; struct { __be16 type; --=20 2.43.0 From nobody Wed Oct 15 22:31:24 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7F2BC272994; Sun, 24 Mar 2024 23:35:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323314; cv=none; b=kd051evwCdk06wqA3LS7jQuCJiLRH19n+j2cvpa9J6H7pPZC+q1fjsUC8I4TEG/U3yUHSrTaonJihIHkuJ+UoQ24SlG0ciISehl4IrM9X5puHQwTX4DNCcwUVCYd1lXmFWWQqN6cRFHzfqYQDboUDWNh03YWZPQyZkBLXp90kXI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323314; c=relaxed/simple; bh=8VVwG/bIdg9aEww7zqF3oialBxlZZB4yvhDB3Q+do1g=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mvEJYOmDVVewD0z5/4sxjO7+azIdGOduFjXn31BUfLFA+AnaxX5dC9E75jV7Ds5FIuVjtXRjR/5G6/9cJT2fIWzMylL7pjt7Uo7yyD0TGW+gpKwERJcG0DT+CFOAI2zJRbPWQADKl6aG7QC68QOXnhrOiRayFpMIiK360BC1Qu8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=i8EGJGmJ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="i8EGJGmJ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 52AC8C43390; Sun, 24 Mar 2024 23:35:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323313; bh=8VVwG/bIdg9aEww7zqF3oialBxlZZB4yvhDB3Q+do1g=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=i8EGJGmJSNB3kznwOlcUS5hu+PW1u4J8TxlreTJlc+P2gGMT6ce98CClRumyVfwQM GSlKL0jhF2b9JIj/bixd5Dr+xPlxR0QBdN1K6hFK8NzloqvgKS4ZQneR0fitI9s/VK 9Z8MthU2EfstMRgiZ0qVf6Q+ta+tjbqo9QfZp2N3WqruTTckeOtBTGodqDk5hvfpOe OeVAJKMJvQsmqFA9njkvg8UTbqQfRZMvVM7aftTKkLAn/DjdzG/3NfVn4tPdAXgK8d 6LV59MWx9tLw8TcC4zZ4knEfwrs3w6v3/n9j4fTnajRvpDBTlttd5DkB3mDTwZQi3Y S9izYY0l7f1UQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Yishai Hadas , Tamar Mashiah , Michael Guralnik , Leon Romanovsky , Sasha Levin Subject: [PATCH 5.15 013/317] RDMA/mlx5: Relax DEVX access upon modify commands Date: Sun, 24 Mar 2024 19:29:53 -0400 Message-ID: <20240324233458.1352854-14-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Yishai Hadas [ Upstream commit be551ee1574280ef8afbf7c271212ac3e38933ef ] Relax DEVX access upon modify commands to be UVERBS_ACCESS_READ. The kernel doesn't need to protect what firmware protects, or what causes no damage to anyone but the user. As firmware needs to protect itself from parallel access to the same object, don't block parallel modify/query commands on the same object in the kernel side. This change will allow user space application to run parallel updates to different entries in the same bulk object. Tested-by: Tamar Mashiah Signed-off-by: Yishai Hadas Reviewed-by: Michael Guralnik Link: https://lore.kernel.org/r/7407d5ed35dc427c1097699e12b49c01e1073406.17= 06433934.git.leon@kernel.org Signed-off-by: Leon Romanovsky Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/infiniband/hw/mlx5/devx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/infiniband/hw/mlx5/devx.c b/drivers/infiniband/hw/mlx5= /devx.c index 104e5cbba066b..ef3585af40263 100644 --- a/drivers/infiniband/hw/mlx5/devx.c +++ b/drivers/infiniband/hw/mlx5/devx.c @@ -2922,7 +2922,7 @@ DECLARE_UVERBS_NAMED_METHOD( MLX5_IB_METHOD_DEVX_OBJ_MODIFY, UVERBS_ATTR_IDR(MLX5_IB_ATTR_DEVX_OBJ_MODIFY_HANDLE, UVERBS_IDR_ANY_OBJECT, - UVERBS_ACCESS_WRITE, + UVERBS_ACCESS_READ, UA_MANDATORY), UVERBS_ATTR_PTR_IN( MLX5_IB_ATTR_DEVX_OBJ_MODIFY_CMD_IN, --=20 2.43.0 From nobody Wed Oct 15 22:31:24 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 88DE9272995; Sun, 24 Mar 2024 23:35:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323314; cv=none; b=dhm4hTx2XxeSlAOcbZzsBW1tQacjgdWQOcrG5dclptfb25UySOnavRB8SpZqQjuMas+7bB2A6CT2JNhX3DhRjeTp++JfVx0CcVkbkifqoLOHDeF2P2NSAkjyBvM1zMnzj7EXYJ9GwMoN8lPpcdv+R5HVFqeIutVCgJKDn9C7lto= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323314; c=relaxed/simple; bh=lDJ/WcAUElCfR9BHJ0p9gKCvoLwlAhMexx0r5bWWcn4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=luNOq/dYQAO7IVz4dnFVRX3aPQaf2Tz83kIecVqRLKwuVUhqd9kZMkZCpaqFKSeNDAZd+q9CkmIMZ0sh67D1lWRwYLWdsZ8mS3LA99dNFmAFUuoNSNIgAHIoIGSXZOtD25lLZuIguWsvljChinc74yXUbtfFjGdYrLM538O1Tr4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ScBUdi+4; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ScBUdi+4" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 68B4DC433F1; Sun, 24 Mar 2024 23:35:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323314; bh=lDJ/WcAUElCfR9BHJ0p9gKCvoLwlAhMexx0r5bWWcn4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ScBUdi+4wL1YALfn7MAE8sujdiJbuAcih1JswxcOqy+Rae3NjOocPZB6L8+LOZort I1Nz33Qon2nXZNwZPKPs1eFICET+RTGto5dZ3wng5NXU4Mj/z1RoarBm3THzv5I/IE bVwjOicPg2sm8meki9ZdCjA3rU/i3M0L21RjSkyE6+FsijfWxcdhg8NzUdBJTSTn+L enMl217DZ7s6KZbIzyl0O3UfPOFQ/lyUTzmuLqbYZLwxom1YDOYZCC9yO7Rruq7Qst /iCSirpVCc9SdkvQkFKJNAaeda9JpObyQIhgVwCHMaC0+ypW9bkDcrINNoyCHBFSRv baxvMsilvrcHg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Conor Dooley , Samuel Holland , Sasha Levin Subject: [PATCH 5.15 014/317] riscv: dts: sifive: add missing #interrupt-cells to pmic Date: Sun, 24 Mar 2024 19:29:54 -0400 Message-ID: <20240324233458.1352854-15-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Conor Dooley [ Upstream commit ce6b6d1513965f500a05f3facf223fa01fd74920 ] At W=3D2 dtc complains: hifive-unmatched-a00.dts:120.10-238.4: Warning (interrupt_provider): /soc/i= 2c@10030000/pmic@58: Missing '#interrupt-cells' in interrupt provider Add the missing property. Reviewed-by: Samuel Holland Signed-off-by: Conor Dooley Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- arch/riscv/boot/dts/sifive/hifive-unmatched-a00.dts | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/riscv/boot/dts/sifive/hifive-unmatched-a00.dts b/arch/ris= cv/boot/dts/sifive/hifive-unmatched-a00.dts index b40990210fb50..3c621f31b5fd2 100644 --- a/arch/riscv/boot/dts/sifive/hifive-unmatched-a00.dts +++ b/arch/riscv/boot/dts/sifive/hifive-unmatched-a00.dts @@ -70,6 +70,7 @@ pmic@58 { interrupt-parent =3D <&gpio>; interrupts =3D <1 IRQ_TYPE_LEVEL_LOW>; interrupt-controller; + #interrupt-cells =3D <2>; =20 regulators { vdd_bcore1: bcore1 { --=20 2.43.0 From nobody Wed Oct 15 22:31:24 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 761B2174977; Sun, 24 Mar 2024 23:35:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323316; cv=none; b=tgz2TSOWzdDL9PV5eaKcljSsYdaAGbeCeph9peVBCIt5JzHpATJ2W65nC2uxRJVBDdaLD7RY9QeEsvFR+PGAW4OpDvekuJGcBEhc8jvB5K25V8anmjZij/nT84gCDaON2rMhSgOK7WMGuB1v+67EzTIupo75BU1XVIsl7WG4Vf8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323316; c=relaxed/simple; bh=Ifa5IzyFNPy2F0ERf9CRSKVTAjr0fTtnABmLN3lY9NA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Gffia+PTWp6YKBitvRSM2lIde5k1jrX+vBDrVQSdKCOvw6xvIAf3vm8QlpNH4bmm4IEUGH2gz26y07iYDNrKpri3LPFWQNJUlabH9Mxu1RIdamhmb3eW2MmIY8/2Z1xg57zGOoaqaO4PJ7YMlPo7ABoAM7+m7jY2f6ib8FsdG3M= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=JVHSe2I8; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="JVHSe2I8" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4F920C43394; Sun, 24 Mar 2024 23:35:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323315; bh=Ifa5IzyFNPy2F0ERf9CRSKVTAjr0fTtnABmLN3lY9NA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=JVHSe2I81X1EQwf0YL+moc/IdJkikpeR7aljbedAGhIJETOAmhslXFhAr60KMtJC6 wmPv496cBUVLxg/3HFExfB9WUOOhjSgloUzDqnH1kBgywMD6AVyeG0QQInjJGr4hUP ivpyrXbJAAltybhwvB+kC7IUu07TeMm10USCqaM3QTR/Yt9ML2sZosk2+9aCwpvBB5 /mDTdPFDk7PbLDcaaVoWHzp+1fLm0dapFbH6JfWLwLCxCCJItUXzp07nWkx71o+cvb 7d4K+JYLMacGKmdLZiLtGkwmZKhcAG92eaG5h3sI3WdImMDm+RYgjXVfMOIq8U0Nj1 uqrOpmTVGRTjA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Hou Tao , Sohil Mehta , Alexei Starovoitov , Sasha Levin Subject: [PATCH 5.15 015/317] x86/mm: Move is_vsyscall_vaddr() into asm/vsyscall.h Date: Sun, 24 Mar 2024 19:29:55 -0400 Message-ID: <20240324233458.1352854-16-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Hou Tao [ Upstream commit ee0e39a63b78849f8abbef268b13e4838569f646 ] Move is_vsyscall_vaddr() into asm/vsyscall.h to make it available for copy_from_kernel_nofault_allowed() in arch/x86/mm/maccess.c. Reviewed-by: Sohil Mehta Signed-off-by: Hou Tao Link: https://lore.kernel.org/r/20240202103935.3154011-2-houtao@huaweicloud= .com Signed-off-by: Alexei Starovoitov Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- arch/x86/include/asm/vsyscall.h | 10 ++++++++++ arch/x86/mm/fault.c | 9 --------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/arch/x86/include/asm/vsyscall.h b/arch/x86/include/asm/vsyscal= l.h index ab60a71a8dcb9..472f0263dbc61 100644 --- a/arch/x86/include/asm/vsyscall.h +++ b/arch/x86/include/asm/vsyscall.h @@ -4,6 +4,7 @@ =20 #include #include +#include =20 #ifdef CONFIG_X86_VSYSCALL_EMULATION extern void map_vsyscall(void); @@ -24,4 +25,13 @@ static inline bool emulate_vsyscall(unsigned long error_= code, } #endif =20 +/* + * The (legacy) vsyscall page is the long page in the kernel portion + * of the address space that has user-accessible permissions. + */ +static inline bool is_vsyscall_vaddr(unsigned long vaddr) +{ + return unlikely((vaddr & PAGE_MASK) =3D=3D VSYSCALL_ADDR); +} + #endif /* _ASM_X86_VSYSCALL_H */ diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c index 4bfed53e210ec..abc6fbc3d5f21 100644 --- a/arch/x86/mm/fault.c +++ b/arch/x86/mm/fault.c @@ -787,15 +787,6 @@ show_signal_msg(struct pt_regs *regs, unsigned long er= ror_code, show_opcodes(regs, loglvl); } =20 -/* - * The (legacy) vsyscall page is the long page in the kernel portion - * of the address space that has user-accessible permissions. - */ -static bool is_vsyscall_vaddr(unsigned long vaddr) -{ - return unlikely((vaddr & PAGE_MASK) =3D=3D VSYSCALL_ADDR); -} - static void __bad_area_nosemaphore(struct pt_regs *regs, unsigned long error_code, unsigned long address, u32 pkey, int si_code) --=20 2.43.0 From nobody Wed Oct 15 22:31:24 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B88D3272118; Sun, 24 Mar 2024 23:35:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323317; cv=none; b=RNz07Aa7Jq41nQY38K+E9DsXB6nq+XBjWMqke0GKcmib+sIMcXSO5saKx7jeRWrz9XNGHDoEHid0aVIxWmDiz4Vz+bD2jc+2yLm9bZc9yut1/GVDoYu6XAxqaVyXFuaTBWDaI2c7E8CTMzL0cPBIcxdMrvvoxJkV39hbYyiqBEQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323317; c=relaxed/simple; bh=Vo3k/UgoRrmyUGzlldwCCqinbenvGMIr4yM+BJI4MQQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=XzC5ZbFpL92Najhzejzcts7ETKZONTsNBD+zprgUf55JGuRFDbPgUL0C03NevkhBq/Dh944bZgAkvyrMZ1jqzZblahD3RZdsp8kzTNrLHq6XhVDReTzgvzfry9Z8AMIg7xSex1p9OOFlSX4eAbDTACUrGuHXddqdRW+uTRFfQUI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=nFEYsxC1; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="nFEYsxC1" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4DF75C433C7; Sun, 24 Mar 2024 23:35:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323316; bh=Vo3k/UgoRrmyUGzlldwCCqinbenvGMIr4yM+BJI4MQQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nFEYsxC1qTwrB0y3IuJblqdVxWOalFMRROa6uZVmQab4nK9GiIEr0guab1MFk73QW Ajc0arAXZi1vMjjva+nbl4uBEnI7yVbgpkC9yNDb5GGVG9rWR7fFnF0MaqJ+CCGj14 Dpib13UdzZbYJMgUgAEALUIKQNeJoar+ycnSG0eKZe9iWFa2etpwpu53MDMrRGv3IK pQ34YdSmHLeBU105y/5n+LPLs3A3UCBiu+CBbwvDkJjMkngS9XcE+KZQKsGJ6Ufh83 w1kv0IZ76x0+W1zZtNAFvYNm2vYPx6c/QCzn/Ch/5zBOpUm6xN940tCpGBJMbYjuoH 8Kv0jGPLiWnVQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Hou Tao , Thomas Gleixner , syzbot+72aa0161922eba61b50e@syzkaller.appspotmail.com, xingwei lee , Sohil Mehta , Alexei Starovoitov , Sasha Levin Subject: [PATCH 5.15 016/317] x86/mm: Disallow vsyscall page read for copy_from_kernel_nofault() Date: Sun, 24 Mar 2024 19:29:56 -0400 Message-ID: <20240324233458.1352854-17-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Hou Tao [ Upstream commit 32019c659ecfe1d92e3bf9fcdfbb11a7c70acd58 ] When trying to use copy_from_kernel_nofault() to read vsyscall page through a bpf program, the following oops was reported: BUG: unable to handle page fault for address: ffffffffff600000 #PF: supervisor read access in kernel mode #PF: error_code(0x0000) - not-present page PGD 3231067 P4D 3231067 PUD 3233067 PMD 3235067 PTE 0 Oops: 0000 [#1] PREEMPT SMP PTI CPU: 1 PID: 20390 Comm: test_progs ...... 6.7.0+ #58 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996) ...... RIP: 0010:copy_from_kernel_nofault+0x6f/0x110 ...... Call Trace: ? copy_from_kernel_nofault+0x6f/0x110 bpf_probe_read_kernel+0x1d/0x50 bpf_prog_2061065e56845f08_do_probe_read+0x51/0x8d trace_call_bpf+0xc5/0x1c0 perf_call_bpf_enter.isra.0+0x69/0xb0 perf_syscall_enter+0x13e/0x200 syscall_trace_enter+0x188/0x1c0 do_syscall_64+0xb5/0xe0 entry_SYSCALL_64_after_hwframe+0x6e/0x76 ...... ---[ end trace 0000000000000000 ]--- The oops is triggered when: 1) A bpf program uses bpf_probe_read_kernel() to read from the vsyscall page and invokes copy_from_kernel_nofault() which in turn calls __get_user_asm(). 2) Because the vsyscall page address is not readable from kernel space, a page fault exception is triggered accordingly. 3) handle_page_fault() considers the vsyscall page address as a user space address instead of a kernel space address. This results in the fix-up setup by bpf not being applied and a page_fault_oops() is invoked due to SMAP. Considering handle_page_fault() has already considered the vsyscall page address as a userspace address, fix the problem by disallowing vsyscall page read for copy_from_kernel_nofault(). Originally-by: Thomas Gleixner Reported-by: syzbot+72aa0161922eba61b50e@syzkaller.appspotmail.com Closes: https://lore.kernel.org/bpf/CAG48ez06TZft=3DATH1qh2c5mpS5BT8UakwNkz= i6nvK5_djC-4Nw@mail.gmail.com Reported-by: xingwei lee Closes: https://lore.kernel.org/bpf/CABOYnLynjBoFZOf3Z4BhaZkc5hx_kHfsjiW+UW= LoB=3Dw33LvScw@mail.gmail.com Signed-off-by: Hou Tao Reviewed-by: Sohil Mehta Acked-by: Thomas Gleixner Link: https://lore.kernel.org/r/20240202103935.3154011-3-houtao@huaweicloud= .com Signed-off-by: Alexei Starovoitov Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- arch/x86/mm/maccess.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/arch/x86/mm/maccess.c b/arch/x86/mm/maccess.c index 6993f026adec9..42115ac079cfe 100644 --- a/arch/x86/mm/maccess.c +++ b/arch/x86/mm/maccess.c @@ -3,6 +3,8 @@ #include #include =20 +#include + #ifdef CONFIG_X86_64 bool copy_from_kernel_nofault_allowed(const void *unsafe_src, size_t size) { @@ -15,6 +17,14 @@ bool copy_from_kernel_nofault_allowed(const void *unsafe= _src, size_t size) if (vaddr < TASK_SIZE_MAX + PAGE_SIZE) return false; =20 + /* + * Reading from the vsyscall page may cause an unhandled fault in + * certain cases. Though it is at an address above TASK_SIZE_MAX, it is + * usually considered as a user space address. + */ + if (is_vsyscall_vaddr(vaddr)) + return false; + /* * Allow everything during early boot before 'x86_virt_bits' * is initialized. Needed for instruction decoding in early --=20 2.43.0 From nobody Wed Oct 15 22:31:24 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 72D3E2733C2; Sun, 24 Mar 2024 23:35:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323318; cv=none; b=BELR5ODsVDnZiWG0UmDvXCoMyMYaUm3wLMZMiNHLnqhFXmERx9NtetaSVmcj7dPdNuFLzdtNnAYdRV1wFVfi1o+UCWLn1pFw+HvHAPsCskwoncUZID1Jscu0cNE8twW3prmV29MIBT3lUBxb7DoDIunQ9yjT1ODLXHshdu2OD88= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323318; c=relaxed/simple; bh=+L8wkVGdqLlELuYmKWeEuKakPfIif0WoiIE0dd9miA8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=epwfl1eT1qwSGF8xfejYCTU+A3N93lFz8i22kTSk4c8ohU9UHNtA5d9ST270rz0A36tQDzwBvMV4xuk7ZHQhz6/UACeIK/DpqgNKxlgGeNhL2bzjdIoc6eeDoaP9NK7xeVzqdbmb4BIVGx8ArCMc0Ptg6IKHPA1Te39KafUXE5o= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=bR8vMK08; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="bR8vMK08" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 92400C433F1; Sun, 24 Mar 2024 23:35:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323317; bh=+L8wkVGdqLlELuYmKWeEuKakPfIif0WoiIE0dd9miA8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=bR8vMK08NPVGNXchIRoUgrNDdGbl30bvh16ODIfdboM3ZlJeQZeb4d7RgX6bXCzgW lS4gux5Fj8/mUcWyDGeNbCURE9JwH2Lfbn18wokDJFCsx9fVHVY45gm1LMUso/8GTI 2EnLN+KPnUo7oYmAzbntOtR1AE1IQnlmpZ66GyYbE/XojD1RkFELuvl202oPkHrAjF Do7em8huShpIYvoaeFGtBy92S8kSH0lg0E2ZAbgmnca7C/+wJpq+tgpeBiBtWWfLrp CWcEWUlFufDd70x8QP30YaPyEQHVXgIzI4Y7BOnCYGlUJsSicpef5gsaVwizEBDdSr l4kH3kmeh+kOw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Alexander Gordeev , Alexandra Winter , "David S . Miller" , Sasha Levin Subject: [PATCH 5.15 017/317] net/iucv: fix the allocation size of iucv_path_table array Date: Sun, 24 Mar 2024 19:29:57 -0400 Message-ID: <20240324233458.1352854-18-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Alexander Gordeev [ Upstream commit b4ea9b6a18ebf7f9f3a7a60f82e925186978cfcf ] iucv_path_table is a dynamically allocated array of pointers to struct iucv_path items. Yet, its size is calculated as if it was an array of struct iucv_path items. Signed-off-by: Alexander Gordeev Reviewed-by: Alexandra Winter Signed-off-by: David S. Miller Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- net/iucv/iucv.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/net/iucv/iucv.c b/net/iucv/iucv.c index 8efc369934fc7..68edefed79f16 100644 --- a/net/iucv/iucv.c +++ b/net/iucv/iucv.c @@ -156,7 +156,7 @@ static char iucv_error_pathid[16] =3D "INVALID PATHID"; static LIST_HEAD(iucv_handler_list); =20 /* - * iucv_path_table: an array of iucv_path structures. + * iucv_path_table: array of pointers to iucv_path structures. */ static struct iucv_path **iucv_path_table; static unsigned long iucv_max_pathid; @@ -544,7 +544,7 @@ static int iucv_enable(void) =20 cpus_read_lock(); rc =3D -ENOMEM; - alloc_size =3D iucv_max_pathid * sizeof(struct iucv_path); + alloc_size =3D iucv_max_pathid * sizeof(*iucv_path_table); iucv_path_table =3D kzalloc(alloc_size, GFP_KERNEL); if (!iucv_path_table) goto out; --=20 2.43.0 From nobody Wed Oct 15 22:31:24 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A48572733D0; Sun, 24 Mar 2024 23:35:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323319; cv=none; b=KdMJyuqE8S6pSEAaSw1YYOpUF+3PJGSYy+jckIBSFu4Anplr0k9gn3GV5wHdnt+FNauXDh7pe0SNv0LT/AvqXjWhMa4Cw++RH20z0tDhk6tjyHr4WvWq5aWVNZaolGTYbUspx/TTtdwOY28MntNB+eGatd545Y5/KcdyWXwxK+8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323319; c=relaxed/simple; bh=3VU3H4kuIe/rQdv1ZeQ5FiFnpIIR4BQFW/7JsgHKPno=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=QvkVoe/8ppC71TPvLd03XZ8L/aVhaia2OdVR75kAt9/Q+pR4qqu2iGyANA143ATSj6II87xdUZsPm8+AXolaAYC4Go0c6ncbAr0Afu63JmNpJzChSpwaPahOqBRcGLoPgRR/ZsJwbZKRFH6b3naolO1hd+VN787+GM4yJg40yyM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=QjLpoGUQ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="QjLpoGUQ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 98C67C43399; Sun, 24 Mar 2024 23:35:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323318; bh=3VU3H4kuIe/rQdv1ZeQ5FiFnpIIR4BQFW/7JsgHKPno=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=QjLpoGUQFduNqC/Nogp/vQhns1Tg9rBX+Wu+b4k1f0lC4MXRotmWiIkpl5O2xAhS7 fVDZISlttTs6ul3SMwDPEA8ynTRZZ2r9LdEthAVBmUgEUnoMhIYF++NPOfzliVqoMK EOp+NeLFnHa3vPWBQhFuKBAQrUX7VvM7xvRsE/kHJKgKaETfD5g7VarD+y/sPnm+wN T4LhO4qpzgwg93vkFhLv7T+6GRlrvxTVwJu2L9Mmkk3+1h7gWJoyPtj99XvLWqVaVP AnskGh9FuZ1ag24aYe5V/mNNC9AW6Zc0CAuRlrkCAsdtiFFxU+/BE038wtsX9zZxP5 pK4IqPoTAM/tg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Max Kellermann , Helge Deller , Sasha Levin Subject: [PATCH 5.15 018/317] parisc/ftrace: add missing CONFIG_DYNAMIC_FTRACE check Date: Sun, 24 Mar 2024 19:29:58 -0400 Message-ID: <20240324233458.1352854-19-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Max Kellermann [ Upstream commit 250f5402e636a5cec9e0e95df252c3d54307210f ] Fixes a bug revealed by -Wmissing-prototypes when CONFIG_FUNCTION_GRAPH_TRACER is enabled but not CONFIG_DYNAMIC_FTRACE: arch/parisc/kernel/ftrace.c:82:5: error: no previous prototype for 'ftrace= _enable_ftrace_graph_caller' [-Werror=3Dmissing-prototypes] 82 | int ftrace_enable_ftrace_graph_caller(void) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ arch/parisc/kernel/ftrace.c:88:5: error: no previous prototype for 'ftrace= _disable_ftrace_graph_caller' [-Werror=3Dmissing-prototypes] 88 | int ftrace_disable_ftrace_graph_caller(void) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Signed-off-by: Max Kellermann Signed-off-by: Helge Deller Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- arch/parisc/kernel/ftrace.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/parisc/kernel/ftrace.c b/arch/parisc/kernel/ftrace.c index 0a1e75af5382d..44d70fc30aae5 100644 --- a/arch/parisc/kernel/ftrace.c +++ b/arch/parisc/kernel/ftrace.c @@ -81,7 +81,7 @@ void notrace __hot ftrace_function_trampoline(unsigned lo= ng parent, #endif } =20 -#ifdef CONFIG_FUNCTION_GRAPH_TRACER +#if defined(CONFIG_DYNAMIC_FTRACE) && defined(CONFIG_FUNCTION_GRAPH_TRACER) int ftrace_enable_ftrace_graph_caller(void) { return 0; --=20 2.43.0 From nobody Wed Oct 15 22:31:24 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 56A562733D9; Sun, 24 Mar 2024 23:35:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323320; cv=none; b=IOEXQeMphYTU5GiABRHd8hAJrX1vF+/qF0Xl4V9fej+rce/S+f87rz6lmpJ7R2uWA4+YCEerez24QlCbBArbTFKCpiFQyTGj8ZYTISiFfawpMKdsZ05cTG4DM6CLOzZrjX7byQrERU/rB98nhZcIjyHuiKZ1LktuW+YIwqSOsME= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323320; c=relaxed/simple; bh=/asW2tftmwjIBrAfKoCxa3oRNne3RxOit1L2BaOZ8Jg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=GtaVaGm2xH2iDtVtedwmTta1Y0pQ5GCy8W0KH/niy02I7sEoOBW8vtspS90C2NmM7xb16pZyk0ZvK1Ti2eRL59zb5sk7AZcBhNeGMhOEczP+u/lJ7eHfL8iL/xRkGwJKvD59RNibQYO77mdth7slPZy0rn1tPMIzzWWfxUzZavI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=vGhC0G1O; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="vGhC0G1O" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8C743C43394; Sun, 24 Mar 2024 23:35:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323319; bh=/asW2tftmwjIBrAfKoCxa3oRNne3RxOit1L2BaOZ8Jg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=vGhC0G1OtztXd+GQLrsRdWy1dysfG0kF1U6gxSlT/S0ypJUR1tV6gM0gXyqWEzH80 fP1da8rW439ChaGWzm8hKKgMwlVh5i5ybRSKwcs3mIg4yryFiRVr3by6jXfM4qpnts EplwHfXFzyF1P8ifK0zagVo48cpBnb3DKQjwJLypa1W3JDtkGHqijvVd87lPz+3hnF UMn4kkxnlh2bJaageWylXI6d7H6r4ogefzKAasg/N0GBVc9+/TPRRCtMJUGFQRJXTx yS1OXAHrrKcobxWFEDZsy3K98tXmWD0ENTK9C4iGyu0UvRxY1RouYqP+S5SG0cQYiI c1g0AYTX/XVlg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Greg Joyce , Jens Axboe , Sasha Levin Subject: [PATCH 5.15 019/317] block: sed-opal: handle empty atoms when parsing response Date: Sun, 24 Mar 2024 19:29:59 -0400 Message-ID: <20240324233458.1352854-20-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Greg Joyce [ Upstream commit 5429c8de56f6b2bd8f537df3a1e04e67b9c04282 ] The SED Opal response parsing function response_parse() does not handle the case of an empty atom in the response. This causes the entry count to be too high and the response fails to be parsed. Recognizing, but ignoring, empty atoms allows response handling to succeed. Signed-off-by: Greg Joyce Link: https://lore.kernel.org/r/20240216210417.3526064-2-gjoyce@linux.ibm.c= om Signed-off-by: Jens Axboe Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- block/opal_proto.h | 1 + block/sed-opal.c | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/block/opal_proto.h b/block/opal_proto.h index b486b3ec7dc41..a50191bddbc26 100644 --- a/block/opal_proto.h +++ b/block/opal_proto.h @@ -66,6 +66,7 @@ enum opal_response_token { #define SHORT_ATOM_BYTE 0xBF #define MEDIUM_ATOM_BYTE 0xDF #define LONG_ATOM_BYTE 0xE3 +#define EMPTY_ATOM_BYTE 0xFF =20 #define OPAL_INVAL_PARAM 12 #define OPAL_MANUFACTURED_INACTIVE 0x08 diff --git a/block/sed-opal.c b/block/sed-opal.c index 0ac5a4f3f2261..00e4d23ac49e7 100644 --- a/block/sed-opal.c +++ b/block/sed-opal.c @@ -895,16 +895,20 @@ static int response_parse(const u8 *buf, size_t lengt= h, token_length =3D response_parse_medium(iter, pos); else if (pos[0] <=3D LONG_ATOM_BYTE) /* long atom */ token_length =3D response_parse_long(iter, pos); + else if (pos[0] =3D=3D EMPTY_ATOM_BYTE) /* empty atom */ + token_length =3D 1; else /* TOKEN */ token_length =3D response_parse_token(iter, pos); =20 if (token_length < 0) return token_length; =20 + if (pos[0] !=3D EMPTY_ATOM_BYTE) + num_entries++; + pos +=3D token_length; total -=3D token_length; iter++; - num_entries++; } =20 resp->num =3D num_entries; --=20 2.43.0 From nobody Wed Oct 15 22:31:24 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 429712733E3; Sun, 24 Mar 2024 23:35:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323321; cv=none; b=s6lWh+ZkQ8rYWoUxkckobpK/SY2vJ9BQ857fdX4S79aCpJ5K2PdgCBCK2iOdnPanW+wm7+AjwU9bIaZr3+pbhFw1UGrl0y41nbzpjYLbdMFeukXA5/plq2zGvQrlxKMPfVYdroZMaOYruPsWlxj/Zu4DpSm2hUDDxNRNEkApV68= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323321; c=relaxed/simple; bh=DDOX3T0lZuNLGsUeStj+eXV4HiTTPbTPnMakOgBV/qk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=sBS8hQWYzbvzDj9nd3XbYzRJ0KZxUgy4mAU1aoB8B0luQue60S3cMcN+feP+EIaP6tbSvmnHVA+bFtnAfSh24oa3rFmSrDwvKTIh/EJcznxolMACeb0CJqkc/O8PZ/1VCngurE2G5cgwxnmLJJ0bHSbmjeaa6Jo4r6TnpyiZT5c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=SBLzdHFX; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="SBLzdHFX" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7968DC433C7; Sun, 24 Mar 2024 23:35:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323320; bh=DDOX3T0lZuNLGsUeStj+eXV4HiTTPbTPnMakOgBV/qk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=SBLzdHFXmiH9ehI5qH74+LZuj0Q+858S+VKkJnUUjkcqvFmI+x5PYV3IkUS3jr07C lYB8uVSqHngU6GZ7Seq+nayKRRXat7LfHoP3SyrMRUcq9RzKVkvagWwIvOHcHVEK+2 yDSXGU5lFvdMi8s9G3b30kjUTAHVVFh07JQWSMhwCz0ScLwoGbaQgGc0DosFD777+u +OOJs9wVd6UnRPI2nTPwAVgTdFQCgY/Sc2s56RuKdK7gDkJT6BJZND85PPbQSakIEC TMk5e6yBtA2MaS7aMOsJzHUlcuujGuS1PVL4HyJgVit+XsY/vZwFBHRzmRiv9aAnWU 1j+CQ5Lt59few== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Mikulas Patocka , Mike Snitzer , Sasha Levin Subject: [PATCH 5.15 020/317] dm-verity, dm-crypt: align "struct bvec_iter" correctly Date: Sun, 24 Mar 2024 19:30:00 -0400 Message-ID: <20240324233458.1352854-21-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Mikulas Patocka [ Upstream commit 787f1b2800464aa277236a66eb3c279535edd460 ] "struct bvec_iter" is defined with the __packed attribute, so it is aligned on a single byte. On X86 (and on other architectures that support unaligned addresses in hardware), "struct bvec_iter" is accessed using the 8-byte and 4-byte memory instructions, however these instructions are less efficient if they operate on unaligned addresses. (on RISC machines that don't have unaligned access in hardware, GCC generates byte-by-byte accesses that are very inefficient - see [1]) This commit reorders the entries in "struct dm_verity_io" and "struct convert_context", so that "struct bvec_iter" is aligned on 8 bytes. [1] https://lore.kernel.org/all/ZcLuWUNRZadJr0tQ@fedora/T/ Signed-off-by: Mikulas Patocka Signed-off-by: Mike Snitzer Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/md/dm-crypt.c | 4 ++-- drivers/md/dm-verity.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/md/dm-crypt.c b/drivers/md/dm-crypt.c index 5904af05f6057..a3db76dcdb3ec 100644 --- a/drivers/md/dm-crypt.c +++ b/drivers/md/dm-crypt.c @@ -49,11 +49,11 @@ struct convert_context { struct completion restart; struct bio *bio_in; - struct bio *bio_out; struct bvec_iter iter_in; + struct bio *bio_out; struct bvec_iter iter_out; - u64 cc_sector; atomic_t cc_pending; + u64 cc_sector; union { struct skcipher_request *req; struct aead_request *req_aead; diff --git a/drivers/md/dm-verity.h b/drivers/md/dm-verity.h index 78d1e51195ada..f61c89c79cf5b 100644 --- a/drivers/md/dm-verity.h +++ b/drivers/md/dm-verity.h @@ -74,11 +74,11 @@ struct dm_verity_io { /* original value of bio->bi_end_io */ bio_end_io_t *orig_bi_end_io; =20 + struct bvec_iter iter; + sector_t block; unsigned n_blocks; =20 - struct bvec_iter iter; - struct work_struct work; =20 /* --=20 2.43.0 From nobody Wed Oct 15 22:31:24 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 305012733EC; Sun, 24 Mar 2024 23:35:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323322; cv=none; b=m4h0MEotB0pu8/UVOSpcGNjlgvIyRgcFRiAucLD+cVmcjgTWPn58g5U9A7c5tLEdU94awW3lfSJssponZp+ohDuYPUdh8rh0APhhC/CwmeVkHt3+putiXoRrpwp6xOpT6pJ+I06DzRNyfe5NuqFW2657eG4PHaBPQzg1NSk5YFo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323322; c=relaxed/simple; bh=GnWtl6l52l+gUbfZkM8BRybvjTAPzKv3zjCkOuB8YF4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ERs2z588yUaqfhMJQG/vy5LTw9mc6DJoKyyCFfEu+QE+L0FTz/J6ChnFI80gJKz52j49mSozNYrgVvy7qLJslevqtL9pz5cB2DXBFpYIqMSrGapQDVBixJViJgXFdeKnybUxA6EaeoBowOyYa9gzFMCf/eMWSHqbYfk0bkeQXGU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=WJRMwtCE; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="WJRMwtCE" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 678D0C433A6; Sun, 24 Mar 2024 23:35:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323321; bh=GnWtl6l52l+gUbfZkM8BRybvjTAPzKv3zjCkOuB8YF4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=WJRMwtCEkb9j11WnPVx1r2IxZaUMM0vFrm/TscpzxPjndHUHvcJomQSbZbDo91DYo gPqmLgt+1wGzaKynMcadqrRFRHWIXJDNkXOr7ZkgtmYGqvK4ssryzYf5LSVjO9gmQY vX9MRDBc6y2rsodtxRxm9tH+NUe/wwlAeh86uunOQ5fWK2gHo1okE3QYIgvK1+I3gf h+WOCpc4VMufjRLYrlQrt3ux/ODFSpxE6CahZuYV32yU0zoc7Gj3x30ynDfkdKeSBg oyb4SV/fnA1/6t+9iOYS1YxaNCpJmT7AYqScmJaXCYicXHFxkmKetlZsW62Iw7dQr3 7AgQ+UnF2OYkQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Ranjan Kumar , "Martin K . Petersen" , Sasha Levin Subject: [PATCH 5.15 021/317] scsi: mpt3sas: Prevent sending diag_reset when the controller is ready Date: Sun, 24 Mar 2024 19:30:01 -0400 Message-ID: <20240324233458.1352854-22-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Ranjan Kumar [ Upstream commit ee0017c3ed8a8abfa4d40e42f908fb38c31e7515 ] If the driver detects that the controller is not ready before sending the first IOC facts command, it will wait for a maximum of 10 seconds for it to become ready. However, even if the controller becomes ready within 10 seconds, the driver will still issue a diagnostic reset. Modify the driver to avoid sending a diag reset if the controller becomes ready within the 10-second wait time. Signed-off-by: Ranjan Kumar Link: https://lore.kernel.org/r/20240221071724.14986-1-ranjan.kumar@broadco= m.com Signed-off-by: Martin K. Petersen Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/scsi/mpt3sas/mpt3sas_base.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/scsi/mpt3sas/mpt3sas_base.c b/drivers/scsi/mpt3sas/mpt= 3sas_base.c index e524e1fc53fa3..8325875bfc4ed 100644 --- a/drivers/scsi/mpt3sas/mpt3sas_base.c +++ b/drivers/scsi/mpt3sas/mpt3sas_base.c @@ -7238,7 +7238,9 @@ _base_wait_for_iocstate(struct MPT3SAS_ADAPTER *ioc, = int timeout) return -EFAULT; } =20 - issue_diag_reset: + return 0; + +issue_diag_reset: rc =3D _base_diag_reset(ioc); return rc; } --=20 2.43.0 From nobody Wed Oct 15 22:31:24 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 203562733DF; Sun, 24 Mar 2024 23:35:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323323; cv=none; b=odJNhH6ljvuoOQzPaEy3CFRd7jHudn+jEQB6XgnmBzFZyM9ClxzilftYyxaPWt+C7Snkfu4/qFDW24gSpvqbJBc4cR9CSOqIg+coNGIaa7JJWeM8u9jBcXoAAvH30bMA1xUclCNuSOGBpvuLcEuZd0wd2gcdIANdFCjGA5Rr45w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323323; c=relaxed/simple; bh=aRBHFszry3HcGlRYpmekn9zCgq6YZWmzqSZ5oA0DKuQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=QpjEYczpwMYt2OLAsQhpf5TSfnFOSmk2ku7ZFeqgvC9ZDt6oR6IkaysoKLx3+sP6sE8KIqWKLE/QIwORVB26/g2VEtXESxSrfq8f6VjAuWFoaDxSgMAmba0BmezzQfVc5rwaX+B1ZfdF6xbWkL/ea+Xr+evDnres7GJOX0UtiTc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=B1V/Ccrc; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="B1V/Ccrc" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 58831C43390; Sun, 24 Mar 2024 23:35:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323322; bh=aRBHFszry3HcGlRYpmekn9zCgq6YZWmzqSZ5oA0DKuQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=B1V/CcrcV+tmaSsY37yxHCQj7EbPpW0rcmM0JR3+SclN2wp1iOe0Nrc8zRLgHoZxa l9j8/uVOdWGqINm+sxpOyRv/Y/4li+O6ypNCyWAq7nRQcCOwm0UAb/CryluI+aqEAY y35eSw+/z6AfFo8eToYMj5HoSywsn8oCr3p1hWucU1AAealH/D0NBKM8+ulu3yXgNZ FY6uj8cQERLTbHnOS0lDT2jj1S/IhknpzMwFeAESL9WUx5Yi5jir5KznS2LoIVAMur iKolMxr4TrQ3VONVR3G1KPVxMK1T7buSMFKTfOeCyYqX4gh72wBrc0SPg7ZrMUlNT1 /1+CqP0hYH/Bw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Kailang Yang , Takashi Iwai , Sasha Levin Subject: [PATCH 5.15 022/317] ALSA: hda/realtek - ALC285 reduce pop noise from Headphone port Date: Sun, 24 Mar 2024 19:30:02 -0400 Message-ID: <20240324233458.1352854-23-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Kailang Yang [ Upstream commit b34bf65838f7c6e785f62681605a538b73c2808c ] It had pop noise from Headphone port when system reboot state. If NID 58h Index 0x0 to fill default value, it will reduce pop noise. Signed-off-by: Kailang Yang Link: https://lore.kernel.org/r/7493e207919a4fb3a0599324fd010e3e@realtek.com Signed-off-by: Takashi Iwai Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- sound/pci/hda/patch_realtek.c | 1 + 1 file changed, 1 insertion(+) diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index a6e6ed1355abf..3a86f0fd78278 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -3675,6 +3675,7 @@ static void alc285_hp_init(struct hda_codec *codec) int i, val; int coef38, coef0d, coef36; =20 + alc_write_coefex_idx(codec, 0x58, 0x00, 0x1888); /* write default value */ alc_update_coef_idx(codec, 0x4a, 1<<15, 1<<15); /* Reset HP JD */ coef38 =3D alc_read_coef_idx(codec, 0x38); /* Amp control */ coef0d =3D alc_read_coef_idx(codec, 0x0d); /* Digital Misc control */ --=20 2.43.0 From nobody Wed Oct 15 22:31:24 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 14F772733FB; Sun, 24 Mar 2024 23:35:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323324; cv=none; b=nnPJdrJBfKnrXIerK5LeMac0PfcSX1Jk4md5BqsT/II/VB2Fsef9D995KDsuT5GdM+J0nizA/ypdvM7MyBwC5CRzcVgGMxymJK7WJGaHreNHjagtShvLHJQnoiDxDVfgUkPKdgN8VxYrk8MnN6RryxyRTnE2EVE12k9HDq5985s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323324; c=relaxed/simple; bh=qRNIXQQ0NDPtwb9S2RGzhZvgH/WxePugxAeFOkz8rAs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ejW7ctTWqPbQ+tcaFT0VE8qNyzxXkXLaiHpTFG4pAn5bKNSsoaoa9EVbZfJAFPL2b/6DY9fu7IObNCQBfojKOBY2Xj2Y7PsNno6ifFRrmLPEF61nueC03mgvvPcJgRcCLKxmSQ9UDVRy2XbhrnltAwLL8PzlJ7NlmLowgoZD6Yg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=JuSKSpU2; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="JuSKSpU2" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4931CC433F1; Sun, 24 Mar 2024 23:35:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323323; bh=qRNIXQQ0NDPtwb9S2RGzhZvgH/WxePugxAeFOkz8rAs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=JuSKSpU2T6AqsYtscCKW8kf40BccxAqL5qI/lE1v016uKtkZdXZl2sOGDlkE04Y5S 38FoEVodvOb0BwBd8oZsMYLA/zZLVyBFi83PG517lsM6MduIvy+gRo6S1VpDbXrv9Z 7WAaX73BhuaTXiUw00NhbdBI4ojIOi/4m2F544y5lNxRZ1lSmzHLvOPRFFfwDaYXV+ RiiOt0MHCBfDqRkByfI0kJ79kRn5pUqVzmXfj/OBU9KtaQ0JPECNV+vJvOamlzk3vC moO+FFGg5XS2g/oEnr6ByA5Th85iXcd7mzCcCatMpQRQLpifMEeaciOkj6HAVe4AsM s72zJEUtCvpLw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Prike Liang , Alex Deucher , Sasha Levin Subject: [PATCH 5.15 023/317] drm/amdgpu: Enable gpu reset for S3 abort cases on Raven series Date: Sun, 24 Mar 2024 19:30:03 -0400 Message-ID: <20240324233458.1352854-24-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Prike Liang [ Upstream commit c671ec01311b4744b377f98b0b4c6d033fe569b3 ] Currently, GPU resets can now be performed successfully on the Raven series. While GPU reset is required for the S3 suspend abort case. So now can enable gpu reset for S3 abort cases on the Raven series. Signed-off-by: Prike Liang Acked-by: Alex Deucher Signed-off-by: Alex Deucher Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/gpu/drm/amd/amdgpu/soc15.c | 45 +++++++++++++++++------------- 1 file changed, 25 insertions(+), 20 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/soc15.c b/drivers/gpu/drm/amd/amdgp= u/soc15.c index 6a3486f52d698..ef5b3eedc8615 100644 --- a/drivers/gpu/drm/amd/amdgpu/soc15.c +++ b/drivers/gpu/drm/amd/amdgpu/soc15.c @@ -605,11 +605,34 @@ soc15_asic_reset_method(struct amdgpu_device *adev) return AMD_RESET_METHOD_MODE1; } =20 +static bool soc15_need_reset_on_resume(struct amdgpu_device *adev) +{ + u32 sol_reg; + + sol_reg =3D RREG32_SOC15(MP0, 0, mmMP0_SMN_C2PMSG_81); + + /* Will reset for the following suspend abort cases. + * 1) Only reset limit on APU side, dGPU hasn't checked yet. + * 2) S3 suspend abort and TOS already launched. + */ + if (adev->flags & AMD_IS_APU && adev->in_s3 && + !adev->suspend_complete && + sol_reg) + return true; + + return false; +} + static int soc15_asic_reset(struct amdgpu_device *adev) { /* original raven doesn't have full asic reset */ - if ((adev->apu_flags & AMD_APU_IS_RAVEN) || - (adev->apu_flags & AMD_APU_IS_RAVEN2)) + /* On the latest Raven, the GPU reset can be performed + * successfully. So now, temporarily enable it for the + * S3 suspend abort case. + */ + if (((adev->apu_flags & AMD_APU_IS_RAVEN) || + (adev->apu_flags & AMD_APU_IS_RAVEN2)) && + !soc15_need_reset_on_resume(adev)) return 0; =20 switch (soc15_asic_reset_method(adev)) { @@ -1490,24 +1513,6 @@ static int soc15_common_suspend(void *handle) return soc15_common_hw_fini(adev); } =20 -static bool soc15_need_reset_on_resume(struct amdgpu_device *adev) -{ - u32 sol_reg; - - sol_reg =3D RREG32_SOC15(MP0, 0, mmMP0_SMN_C2PMSG_81); - - /* Will reset for the following suspend abort cases. - * 1) Only reset limit on APU side, dGPU hasn't checked yet. - * 2) S3 suspend abort and TOS already launched. - */ - if (adev->flags & AMD_IS_APU && adev->in_s3 && - !adev->suspend_complete && - sol_reg) - return true; - - return false; -} - static int soc15_common_resume(void *handle) { struct amdgpu_device *adev =3D (struct amdgpu_device *)handle; --=20 2.43.0 From nobody Wed Oct 15 22:31:24 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 03657174EC4; Sun, 24 Mar 2024 23:35:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323325; cv=none; b=GXpBDTyWJM5JQ0HcJHSt942hxviG71OquVK37B4kRL0rCr22sAxqFGC/R1NLuc0MamTFhlDkNC4C5Dy3UNtv9RquSVQzQvki+uT9cY7JUgA7adGD8ZAjIptlZq1J9ZdoUGxWCjOFlmL5BCADqhmcOdhq181rTAOOSN3oEClHNoo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323325; c=relaxed/simple; bh=Du80a8081lcmLcIyq1r2JOmgELaCBxEoYXMTEtF6bGQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Fe1/2iStAu9Ctql+RQ1b+9OPIyS0ZtULPIg4z3vAoMkTxRx93yAn2o5O2nnKjNDDA08yZM/txSRmByq+lurSpvfnZvLny2+6Q5+dwLqzQiRkrXijDuv6xg6E955qKO1F1aTy1S6IelJNopZG6UF7qRvI++2UnIGcfTpUT1r3QmM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=DQ754ujw; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="DQ754ujw" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3B364C433C7; Sun, 24 Mar 2024 23:35:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323323; bh=Du80a8081lcmLcIyq1r2JOmgELaCBxEoYXMTEtF6bGQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=DQ754ujwkfmxaCPWHGP7mCDA0BeVUOyQdyajBS4lKZCG1V1/XW6GdQix1f+ArbBfk gOi+ZdJmslXPyf33cqpBFgW+y8tumz4eVCfam1qTtCoG7maoAqQhcbhLk5aCjbwaK9 E35Riv1iPlsfMCfRYu7fFjFyCzxbotw9gFo3lX/i+PiJK3Oy6NfVONeJ8uNvC5wNw7 4rjppcoT+I5NA0TSRDFyI9UYIwrtu7L0HE1gsgDIrsyYmk8geisAGl0CMufOEr/F23 sgcMyvb2kn0YL+PetS/kj8qNYjWxBm7awzCkK+/Nu3nGyseZQLVI44yuZ5bAThxAfp UHlpXwaCXOE1g== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Yuxuan Hu <20373622@buaa.edu.cn>, Luiz Augusto von Dentz , Sasha Levin Subject: [PATCH 5.15 024/317] Bluetooth: rfcomm: Fix null-ptr-deref in rfcomm_check_security Date: Sun, 24 Mar 2024 19:30:04 -0400 Message-ID: <20240324233458.1352854-25-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Yuxuan Hu <20373622@buaa.edu.cn> [ Upstream commit 2535b848fa0f42ddff3e5255cf5e742c9b77bb26 ] During our fuzz testing of the connection and disconnection process at the RFCOMM layer, we discovered this bug. By comparing the packets from a normal connection and disconnection process with the testcase that triggered a KASAN report. We analyzed the cause of this bug as follows: 1. In the packets captured during a normal connection, the host sends a `Read Encryption Key Size` type of `HCI_CMD` packet (Command Opcode: 0x1408) to the controller to inquire the length of encryption key.After receiving this packet, the controller immediately replies with a Command Completepacket (Event Code: 0x0e) to return the Encryption Key Size. 2. In our fuzz test case, the timing of the controller's response to this packet was delayed to an unexpected point: after the RFCOMM and L2CAP layers had disconnected but before the HCI layer had disconnected. 3. After receiving the Encryption Key Size Response at the time described in point 2, the host still called the rfcomm_check_security function. However, by this time `struct l2cap_conn *conn =3D l2cap_pi(sk)->chan->conn= ;` had already been released, and when the function executed `return hci_conn_security(conn->hcon, d->sec_level, auth_type, d->out);`, specifically when accessing `conn->hcon`, a null-ptr-deref error occurred. To fix this bug, check if `sk->sk_state` is BT_CLOSED before calling rfcomm_recv_frame in rfcomm_process_rx. Signed-off-by: Yuxuan Hu <20373622@buaa.edu.cn> Signed-off-by: Luiz Augusto von Dentz Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- net/bluetooth/rfcomm/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/bluetooth/rfcomm/core.c b/net/bluetooth/rfcomm/core.c index 8d6fce9005bdd..4f54c7df3a94f 100644 --- a/net/bluetooth/rfcomm/core.c +++ b/net/bluetooth/rfcomm/core.c @@ -1937,7 +1937,7 @@ static struct rfcomm_session *rfcomm_process_rx(struc= t rfcomm_session *s) /* Get data directly from socket receive queue without copying it. */ while ((skb =3D skb_dequeue(&sk->sk_receive_queue))) { skb_orphan(skb); - if (!skb_linearize(skb)) { + if (!skb_linearize(skb) && sk->sk_state !=3D BT_CLOSED) { s =3D rfcomm_recv_frame(s, skb); if (!s) break; --=20 2.43.0 From nobody Wed Oct 15 22:31:24 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E47EA174ED2; Sun, 24 Mar 2024 23:35:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323326; cv=none; b=kvLzGZ7U81hfbZw2d7iyxqOTdydTFD83zcQ3fntaIQpmgkKkuaSNgeVeDBgAwt0kVjIITwy/iW59FLgd10zk9F6qTkmlMpbsJJf8jWfRCAN0Fb2nUR/hP1v/wUFtPme7EmZWK6afLWjSTzBmNIlp+JlD8SuOq0ZdDNyYi9d3mb0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323326; c=relaxed/simple; bh=gAqdm49DZG7gHX8FLf99AYsnKM/Po+UYbJY+eyoQle0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Ln0RZRK8jh3/uPqHe7bL+uMf0qva90BxkC5HbMfES3TMeBr7iUWfOo3hjj7nQCewumaOapW4R/Qr3USrgkffiJDBG0AxarajlXCqNtukyKWyiqbHqNEndRUuYGxljWb9SXJtHBIi4zmO+56mWX7kgJBMIXLICeZVNaTtft3ftEY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=fptCTFpw; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="fptCTFpw" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2A787C433A6; Sun, 24 Mar 2024 23:35:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323324; bh=gAqdm49DZG7gHX8FLf99AYsnKM/Po+UYbJY+eyoQle0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=fptCTFpwxF+yiTOQft/RcW2DAuDJBSfEen6HPrQvJwfvp2/GyvYV0claeDUWvDtG7 0/8SJ2j+5d9eVniS9BRb7ZRKhG9LxWbH6SUsf/LGGrmKIBR7CJU7o/R9FvOAOWsqoJ atDUjuckdJbKB9NKGR/rlQC3fhaHgSU4erWRjuLMNEgJL4ariIHMO6Td4xJIEILuO1 WRZagIXB2HYWGr5a7p5Vm3TJyTql00o2nNdadlS3Yrdbi4MPMoGbSqBvWE09dpbKP1 uCkIbXEDP/b5C3z9lrjH0D31Ryu+s011sHXViTQK9+E1+0TlMNpDuRAjFQST7P+rRa t8zxKpwSByLqw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Takashi Sakamoto , Adam Goldman , Sasha Levin Subject: [PATCH 5.15 025/317] firewire: core: use long bus reset on gap count error Date: Sun, 24 Mar 2024 19:30:05 -0400 Message-ID: <20240324233458.1352854-26-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Takashi Sakamoto [ Upstream commit d0b06dc48fb15902d7da09c5c0861e7f042a9381 ] When resetting the bus after a gap count error, use a long rather than short bus reset. IEEE 1394-1995 uses only long bus resets. IEEE 1394a adds the option of short bus resets. When video or audio transmission is in progress and a device is hot-plugged elsewhere on the bus, the resulting bus reset can cause video frame drops or audio dropouts. Short bus resets reduce or eliminate this problem. Accordingly, short bus resets are almost always preferred. However, on a mixed 1394/1394a bus, a short bus reset can trigger an immediate additional bus reset. This double bus reset can be interpreted differently by different nodes on the bus, resulting in an inconsistent gap count after the bus reset. An inconsistent gap count will cause another bus reset, leading to a neverending bus reset loop. This only happens for some bus topologies, not for all mixed 1394/1394a buses. By instead sending a long bus reset after a gap count inconsistency, we avoid the doubled bus reset, restoring the bus to normal operation. Signed-off-by: Adam Goldman Link: https://sourceforge.net/p/linux1394/mailman/message/58741624/ Signed-off-by: Takashi Sakamoto Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/firewire/core-card.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/drivers/firewire/core-card.c b/drivers/firewire/core-card.c index be195ba834632..d446a72629414 100644 --- a/drivers/firewire/core-card.c +++ b/drivers/firewire/core-card.c @@ -500,7 +500,19 @@ static void bm_work(struct work_struct *work) fw_notice(card, "phy config: new root=3D%x, gap_count=3D%d\n", new_root_id, gap_count); fw_send_phy_config(card, new_root_id, generation, gap_count); - reset_bus(card, true); + /* + * Where possible, use a short bus reset to minimize + * disruption to isochronous transfers. But in the event + * of a gap count inconsistency, use a long bus reset. + * + * As noted in 1394a 8.4.6.2, nodes on a mixed 1394/1394a bus + * may set different gap counts after a bus reset. On a mixed + * 1394/1394a bus, a short bus reset can get doubled. Some + * nodes may treat the double reset as one bus reset and others + * may treat it as two, causing a gap count inconsistency + * again. Using a long bus reset prevents this. + */ + reset_bus(card, card->gap_count !=3D 0); /* Will allocate broadcast channel after the reset. */ goto out; } --=20 2.43.0 From nobody Wed Oct 15 22:31:24 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0CABF273D84; Sun, 24 Mar 2024 23:35:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323327; cv=none; b=IB5pSj1cxbi2+jJ86mt1y/wykf0LS1EQClIUVeuoreepkYv5KZY0I4ahx3O4yvBtDsNBxq6mw/HlPADmDEKwpIya4/47NOhwlotpujBRUbzNexeZAUlDy8OYOxUhXgadmWmLORFJJeNbV6sRyrWgFZ6JCxDLiWCIqlXWf0xorZk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323327; c=relaxed/simple; bh=YChU0O4tGvLJPSPKaKY3ehmHRybr4RB0vp5VJLcOpIE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=IdAtNpUQvGvqHWrG8NgRShwFNGWZe1fEdGM8Q3yghLC5p9J53WHLtsdqeYyf/JzCU9zeACk9kmY/ZpcfeMxhk3XU77xLWcsWP+J8D5DWqAdWTR5X6IkMGKRRvDrTL9GpxWjSN2jOLxutB42z1s0VYM1FBeLodz2s4FH71e3WceM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=bJgbZocg; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="bJgbZocg" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 189D5C433F1; Sun, 24 Mar 2024 23:35:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323325; bh=YChU0O4tGvLJPSPKaKY3ehmHRybr4RB0vp5VJLcOpIE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=bJgbZocgG7mlyeej01lr/TyqPn34kFEqaZydEuCD6eJUIdu0RhoyX2xO4MloyEwGV QHp46iCG2Eocsyyw593u9ijq03gK5DKKPPMhhOMs0pARjXwHD0UtUCVTbEmZzzKKN6 /U67/7TZxOiwldWzqYstpF2ENtL3k86xJ6Rol/mKFzI9aMZkxsZLha0jZEQX0HHec7 eIVkowtdIrj6cAP8l0IL2c3YPq9WqYYfcm2sAcI4V4wueMxb6845RPzpwiofeLABMb PwEkDaqqW24YJZDy3I3feMFAyxFvo9C3p36kbHM/aC1AT0BM55sn1B2s5t6HIjVRSS AWAG4u6622A7g== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?Alban=20Boy=C3=A9?= , Cezary Rojewski , Pierre-Louis Bossart , Mark Brown , Sasha Levin Subject: [PATCH 5.15 026/317] ASoC: Intel: bytcr_rt5640: Add an extra entry for the Chuwi Vi8 tablet Date: Sun, 24 Mar 2024 19:30:06 -0400 Message-ID: <20240324233458.1352854-27-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable From: Alban Boy=C3=A9 [ Upstream commit f8b0127aca8c60826e7354e504a12d4a46b1c3bb ] The bios version can differ depending if it is a dual-boot variant of the t= ablet. Therefore another DMI match is required. Signed-off-by: Alban Boy=C3=A9 Reviewed-by: Cezary Rojewski Acked-by: Pierre-Louis Bossart Link: https://msgid.link/r/20240228192807.15130-1-alban.boye@protonmail.com Signed-off-by: Mark Brown Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- sound/soc/intel/boards/bytcr_rt5640.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/sound/soc/intel/boards/bytcr_rt5640.c b/sound/soc/intel/boards= /bytcr_rt5640.c index 49dfbd29c5451..434679afa7e1a 100644 --- a/sound/soc/intel/boards/bytcr_rt5640.c +++ b/sound/soc/intel/boards/bytcr_rt5640.c @@ -668,6 +668,18 @@ static const struct dmi_system_id byt_rt5640_quirk_tab= le[] =3D { BYT_RT5640_SSP0_AIF1 | BYT_RT5640_MCLK_EN), }, + { /* Chuwi Vi8 dual-boot (CWI506) */ + .matches =3D { + DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Insyde"), + DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "i86"), + /* The above are too generic, also match BIOS info */ + DMI_MATCH(DMI_BIOS_VERSION, "CHUWI2.D86JHBNR02"), + }, + .driver_data =3D (void *)(BYTCR_INPUT_DEFAULTS | + BYT_RT5640_MONO_SPEAKER | + BYT_RT5640_SSP0_AIF1 | + BYT_RT5640_MCLK_EN), + }, { /* Chuwi Vi10 (CWI505) */ .matches =3D { --=20 2.43.0 From nobody Wed Oct 15 22:31:24 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1536D273D91; Sun, 24 Mar 2024 23:35:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323328; cv=none; b=qs1TfnWwtWOvxsqQxlGHpm0F/Cdeo/PGbssm+XONi1hdJBwqNJqL4AfZFGAqFamPOeTOal6eOiuUjG60ZJc0uQzNO8ezARhEBgImE5ZfxL29vJ+ae/v/NyL8xl02wsV/KX5bhBkPcDkSNFbtIP6ZvOcquxSWfQ8uvQDkEQ3rdgs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323328; c=relaxed/simple; bh=YEz4yne20Y+PXJLPWPogO6ruSXDx1kKR8hKUaO0QDu8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=LglATiX+7nf+eMYcslDczZ/+o2vT3f5IITcWeZ6NOHLLngP/DUTCG7sYNJHkYUEiJAySjpY8aI2yAcPlkfb1jl3Sh0X0MzVcrWkEM7Kgk17XnwvlsL1Z7P2mhzSWi/cBbizmRBpMoVavc6Qit1gYvCi8zM8JIQIvnhIrL0J5WGY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=o6J92zaw; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="o6J92zaw" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 30EE8C43399; Sun, 24 Mar 2024 23:35:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323326; bh=YEz4yne20Y+PXJLPWPogO6ruSXDx1kKR8hKUaO0QDu8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=o6J92zaw9HIpxsd0LShI1rqs8fkvmp13IuGiFWJPy1PHHpaoRMK5foH1m06vIGjMR 0+CDH4JCmlv0jPiMYzK2RSD27PKuzPuArftZYghti/SisYcbQKHTukRNAaqvW3VNy+ LqEQDgKiNz1hE/u/3fb/Q6cen3s5xbe71EhynWK0m7j7/DLa6KS/G7HY9Uz05e+p7Y sEKLuxwn8BwvKaJkWitrKxkb5tOEXKgCYHqejmY4MeWpwUUt/vJi+lOWKcA6wqXFKE MsH21GK5U2tKx80WCh5H5grZJ7FjdPv40jOgnNUzMS5EieOvHIVGRcsZ1EJzKx7Ui/ qcXarbPeSJtbw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= , Linus Walleij , Dmitry Torokhov , Sasha Levin Subject: [PATCH 5.15 027/317] Input: gpio_keys_polled - suppress deferred probe error for gpio Date: Sun, 24 Mar 2024 19:30:07 -0400 Message-ID: <20240324233458.1352854-28-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable From: Uwe Kleine-K=C3=B6nig [ Upstream commit 963465a33141d0d52338e77f80fe543d2c9dc053 ] On a PC Engines APU our admins are faced with: $ dmesg | grep -c "gpio-keys-polled gpio-keys-polled: unable to claim gpio= 0, err=3D-517" 261 Such a message always appears when e.g. a new USB device is plugged in. Suppress this message which considerably clutters the kernel log for EPROBE_DEFER (i.e. -517). Signed-off-by: Uwe Kleine-K=C3=B6nig Reviewed-by: Linus Walleij Link: https://lore.kernel.org/r/20240305101042.10953-2-u.kleine-koenig@peng= utronix.de Signed-off-by: Dmitry Torokhov Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/input/keyboard/gpio_keys_polled.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/drivers/input/keyboard/gpio_keys_polled.c b/drivers/input/keyb= oard/gpio_keys_polled.c index c3937d2fc7446..a0f9978c68f55 100644 --- a/drivers/input/keyboard/gpio_keys_polled.c +++ b/drivers/input/keyboard/gpio_keys_polled.c @@ -319,12 +319,10 @@ static int gpio_keys_polled_probe(struct platform_dev= ice *pdev) =20 error =3D devm_gpio_request_one(dev, button->gpio, flags, button->desc ? : DRV_NAME); - if (error) { - dev_err(dev, - "unable to claim gpio %u, err=3D%d\n", - button->gpio, error); - return error; - } + if (error) + return dev_err_probe(dev, error, + "unable to claim gpio %u\n", + button->gpio); =20 bdata->gpiod =3D gpio_to_desc(button->gpio); if (!bdata->gpiod) { --=20 2.43.0 From nobody Wed Oct 15 22:31:24 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F3CC0273D9E; Sun, 24 Mar 2024 23:35:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323329; cv=none; b=t7NC/EXbV3gKJeiUfNl3lOmTORAIMkuojeR8RQUkkGFj3L2J3JWdBrTEQ9bziYzwp7jyf16n45ZffX2vRLoJTkJ2mZgmmtYIQlBX/2p6ZSoUvPXGe/gXSWfzE/Ni7mjoeu+GSEUZusNmI1+2M5Oq+7QnoCHk7YMjeyl7LCl8v7E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323329; c=relaxed/simple; bh=sYDEOH0SIb1oJ1rax5oz64WlqG7l/xYsPg5+CTtP2AA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZumohjGa8nu/XAAAqXnwsR6/24mP++sbIqRQfZL8JO/R7Tb8z9mAc/jHnOHSkTLr3eK/jF7SKkWkW9ktZFXc1iaCj5zludIzsIuPo2eyBWVGq3xiC4ycw0mtXmOlcuH2tdcbVeuj/4fV1UyJltte7UQ2tQszrj1Cnf+fbnSFlC0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ffNA3ML8; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ffNA3ML8" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3B64CC43390; Sun, 24 Mar 2024 23:35:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323327; bh=sYDEOH0SIb1oJ1rax5oz64WlqG7l/xYsPg5+CTtP2AA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ffNA3ML843gxEdbhiOQMPhTbeAagJ9VnOdEDqFa8OG4ThCkJ4z85H9Larc9CLpN+j 7TXqaUDrU7voCRqTG3vBXv+iAfriXq0X1ejlFZZOtVp7GeIeTE4zGH4vmE/yWi/NVU VKPR/H8eqTEB1mRnugB1TkqyohuYvPZLQsza0DtoWcURC2qjYmqJ1DWc26LqWo2evU Jb6hPSoc3vwflqWHtcYoonN8VaVdztmnMoJLbRv94vDca+E+k+vl9OM0Gx1AlvoeoP V1XNChr5oy2dqXusbfv2yT1pRSrAqgUSUy2iLhh47o6bceS8LhfHN74kcUDGht1uEh 3IS0m33wTDmrA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Stuart Henderson , Mark Brown , Sasha Levin Subject: [PATCH 5.15 028/317] ASoC: wm8962: Enable oscillator if selecting WM8962_FLL_OSC Date: Sun, 24 Mar 2024 19:30:08 -0400 Message-ID: <20240324233458.1352854-29-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Stuart Henderson [ Upstream commit 03c7874106ca5032a312626b927b1c35f07b1f35 ] Signed-off-by: Stuart Henderson Link: https://msgid.link/r/20240306161439.1385643-1-stuarth@opensource.cirr= us.com Signed-off-by: Mark Brown Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- sound/soc/codecs/wm8962.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sound/soc/codecs/wm8962.c b/sound/soc/codecs/wm8962.c index 779f7097d336c..9f8929cfada22 100644 --- a/sound/soc/codecs/wm8962.c +++ b/sound/soc/codecs/wm8962.c @@ -2901,8 +2901,12 @@ static int wm8962_set_fll(struct snd_soc_component *= component, int fll_id, int s switch (fll_id) { case WM8962_FLL_MCLK: case WM8962_FLL_BCLK: + fll1 |=3D (fll_id - 1) << WM8962_FLL_REFCLK_SRC_SHIFT; + break; case WM8962_FLL_OSC: fll1 |=3D (fll_id - 1) << WM8962_FLL_REFCLK_SRC_SHIFT; + snd_soc_component_update_bits(component, WM8962_PLL2, + WM8962_OSC_ENA, WM8962_OSC_ENA); break; case WM8962_FLL_INT: snd_soc_component_update_bits(component, WM8962_FLL_CONTROL_1, --=20 2.43.0 From nobody Wed Oct 15 22:31:24 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E5F38273DA2; Sun, 24 Mar 2024 23:35:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323330; cv=none; b=c/Ner314JHc7aYs48U58U9yb4PgzK2g6GIUpJS5fAlfDf4O7jn42/ub08h0PM0lRPQJ64kq5IBXC+p7ZJb9VO35pX8i5k48OqWyqXnbYnr/fBtbj4VIoZz0agiZ+vbZVvHeKe0AMbIGWFiT3LvjQsf+rCtKwWsfDoW6po6VHzfA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323330; c=relaxed/simple; bh=Yjja+C6JYVQ892dj0Vf7VSpYjuixy9Pnp4H3s0Y7O5k=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=XF+tgGNDVKKj5studQ1Mm2YM0rgj/dYI22kzFWgQVnCgjYESLNbnYOvo+z4SGcDbUDZf3D7hD/ZkwigyzcQEbOOY1g0SqP6Jp2n1XndvPudrF1pQAsYHgJiG2YZjsQ1HT/3XzMgUljbWu7xgOtoDNFw7ewCzUldOgAT077MIBS0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=JFcauUlW; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="JFcauUlW" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 28E67C433A6; Sun, 24 Mar 2024 23:35:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323328; bh=Yjja+C6JYVQ892dj0Vf7VSpYjuixy9Pnp4H3s0Y7O5k=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=JFcauUlW+bGJdQFe9m7oBUNNm6MIotYjYhxZzI/IUHvZh9nPRTYYH4vvMOyyRwjf8 UoOoWGI2aW9q5ZTKjMIDUsFptOGPl968VDsQkmTYG/2bi2Agx2xfOakF/xrmBgOcMM Xd2ln6YgivvJvFijHHwR8HK+bCGv8niHSIc1qC5HMzX2U7L4TLYyoq+10Bhdz3nADg PWUSV+/OHcO4nzCTP/vGAKVQ4spiGS1X3t81KQScpfcLpkbTCy3DfufklcqnT4CFrF h7tLsGgBQbLrmXiNz1/1b87XLUT39GOIssydrxrI5HagHdioexm6DsujiAoVidSYAC gcAgFrl69FTsg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Stuart Henderson , Mark Brown , Sasha Levin Subject: [PATCH 5.15 029/317] ASoC: wm8962: Enable both SPKOUTR_ENA and SPKOUTL_ENA in mono mode Date: Sun, 24 Mar 2024 19:30:09 -0400 Message-ID: <20240324233458.1352854-30-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Stuart Henderson [ Upstream commit 6fa849e4d78b880e878138bf238e4fd2bac3c4fa ] Signed-off-by: Stuart Henderson Link: https://msgid.link/r/20240306161439.1385643-2-stuarth@opensource.cirr= us.com Signed-off-by: Mark Brown Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- sound/soc/codecs/wm8962.c | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/sound/soc/codecs/wm8962.c b/sound/soc/codecs/wm8962.c index 9f8929cfada22..897f38758a230 100644 --- a/sound/soc/codecs/wm8962.c +++ b/sound/soc/codecs/wm8962.c @@ -2219,6 +2219,9 @@ SND_SOC_DAPM_PGA_E("HPOUT", SND_SOC_NOPM, 0, 0, NULL,= 0, hp_event, =20 SND_SOC_DAPM_OUTPUT("HPOUTL"), SND_SOC_DAPM_OUTPUT("HPOUTR"), + +SND_SOC_DAPM_PGA("SPKOUTL Output", WM8962_CLASS_D_CONTROL_1, 6, 0, NULL, 0= ), +SND_SOC_DAPM_PGA("SPKOUTR Output", WM8962_CLASS_D_CONTROL_1, 7, 0, NULL, 0= ), }; =20 static const struct snd_soc_dapm_widget wm8962_dapm_spk_mono_widgets[] =3D= { @@ -2226,7 +2229,6 @@ SND_SOC_DAPM_MIXER("Speaker Mixer", WM8962_MIXER_ENAB= LES, 1, 0, spkmixl, ARRAY_SIZE(spkmixl)), SND_SOC_DAPM_MUX_E("Speaker PGA", WM8962_PWR_MGMT_2, 4, 0, &spkoutl_mux, out_pga_event, SND_SOC_DAPM_POST_PMU), -SND_SOC_DAPM_PGA("Speaker Output", WM8962_CLASS_D_CONTROL_1, 7, 0, NULL, 0= ), SND_SOC_DAPM_OUTPUT("SPKOUT"), }; =20 @@ -2241,9 +2243,6 @@ SND_SOC_DAPM_MUX_E("SPKOUTL PGA", WM8962_PWR_MGMT_2, = 4, 0, &spkoutl_mux, SND_SOC_DAPM_MUX_E("SPKOUTR PGA", WM8962_PWR_MGMT_2, 3, 0, &spkoutr_mux, out_pga_event, SND_SOC_DAPM_POST_PMU), =20 -SND_SOC_DAPM_PGA("SPKOUTR Output", WM8962_CLASS_D_CONTROL_1, 7, 0, NULL, 0= ), -SND_SOC_DAPM_PGA("SPKOUTL Output", WM8962_CLASS_D_CONTROL_1, 6, 0, NULL, 0= ), - SND_SOC_DAPM_OUTPUT("SPKOUTL"), SND_SOC_DAPM_OUTPUT("SPKOUTR"), }; @@ -2353,12 +2352,18 @@ static const struct snd_soc_dapm_route wm8962_spk_m= ono_intercon[] =3D { { "Speaker PGA", "Mixer", "Speaker Mixer" }, { "Speaker PGA", "DAC", "DACL" }, =20 - { "Speaker Output", NULL, "Speaker PGA" }, - { "Speaker Output", NULL, "SYSCLK" }, - { "Speaker Output", NULL, "TOCLK" }, - { "Speaker Output", NULL, "TEMP_SPK" }, + { "SPKOUTL Output", NULL, "Speaker PGA" }, + { "SPKOUTL Output", NULL, "SYSCLK" }, + { "SPKOUTL Output", NULL, "TOCLK" }, + { "SPKOUTL Output", NULL, "TEMP_SPK" }, + + { "SPKOUTR Output", NULL, "Speaker PGA" }, + { "SPKOUTR Output", NULL, "SYSCLK" }, + { "SPKOUTR Output", NULL, "TOCLK" }, + { "SPKOUTR Output", NULL, "TEMP_SPK" }, =20 - { "SPKOUT", NULL, "Speaker Output" }, + { "SPKOUT", NULL, "SPKOUTL Output" }, + { "SPKOUT", NULL, "SPKOUTR Output" }, }; =20 static const struct snd_soc_dapm_route wm8962_spk_stereo_intercon[] =3D { --=20 2.43.0 From nobody Wed Oct 15 22:31:24 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CB708273DAC; Sun, 24 Mar 2024 23:35:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323330; cv=none; b=GbkaKhOx0SruQASoj62HHOHIzj6u7RzaJp/zsrjQG+SRfT6cSZVKS00EfW33RcadQCEifReKSQOIekSfukgQ61QRtM1DR0JonE2eJPrLjrB3lXEJAUv6Q5kccZuhQ7ZY50r+HbDeOz1ZdX6TyOBsBsL7rQhI3RNVRF3WHXMD0RU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323330; c=relaxed/simple; bh=/13Qo09rKfsJMout/fQ36Ue7hQdaUBOKwc5wkddezjw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=lBhmwqyGiVO+TfawHW9sgPjcCLHrY8XplR4v42Yoe+bloVbjqNkU10XDO+IfRqiFMXdUqDwjqBqxYV/QsOicih+6UmGKwB6/17yLl0xEKvJGA7O2Ie0U465nlR0jdV7X54gGwUjmvW9iQRRR0aHqAYMkXmVzpfmO9+A6st9eHQ8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=jGDZwUzC; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="jGDZwUzC" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1751AC4167D; Sun, 24 Mar 2024 23:35:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323329; bh=/13Qo09rKfsJMout/fQ36Ue7hQdaUBOKwc5wkddezjw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jGDZwUzCek4YOaK20sH7K/ag6ZrvXlk1tD0BZk+keIUdw6BWIK3GG8VZfrSh2972m sY8/7ArB0OpyRRP7YPoJc4Vs27fpFOMUbZ/sA2EV/vBvbw6lmSLlutNdn4xZWJ8/K9 jZsn7rs4ZU4E74p+P3KgmnpNBUlp1agIrpAPowOMiM4mOvX+kkOaGRmkBtzLN2Diwm bTvJ2bh7HsSGOqZ9HdcF2nLF+eoTh2kLjzIZzvwPbTIWwf4yViAh4Qce8eNltqGdBQ 5VPtT/4K3kYaJ33J78wpMaUw3pJCFzwsxQjTnQ2KCncF64bM5GxZBAX8/gjWbipOo7 4zEthU+cvee7A== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Stuart Henderson , Mark Brown , Sasha Levin Subject: [PATCH 5.15 030/317] ASoC: wm8962: Fix up incorrect error message in wm8962_set_fll Date: Sun, 24 Mar 2024 19:30:10 -0400 Message-ID: <20240324233458.1352854-31-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Stuart Henderson [ Upstream commit 96e202f8c52ac49452f83317cf3b34cd1ad81e18 ] Use source instead of ret, which seems to be unrelated and will always be zero. Signed-off-by: Stuart Henderson Link: https://msgid.link/r/20240306161439.1385643-5-stuarth@opensource.cirr= us.com Signed-off-by: Mark Brown Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- sound/soc/codecs/wm8962.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sound/soc/codecs/wm8962.c b/sound/soc/codecs/wm8962.c index 897f38758a230..b5a35999d8dfa 100644 --- a/sound/soc/codecs/wm8962.c +++ b/sound/soc/codecs/wm8962.c @@ -2920,7 +2920,7 @@ static int wm8962_set_fll(struct snd_soc_component *c= omponent, int fll_id, int s WM8962_FLL_FRC_NCO, WM8962_FLL_FRC_NCO); break; default: - dev_err(component->dev, "Unknown FLL source %d\n", ret); + dev_err(component->dev, "Unknown FLL source %d\n", source); return -EINVAL; } =20 --=20 2.43.0 From nobody Wed Oct 15 22:31:24 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5C826273DBB; Sun, 24 Mar 2024 23:35:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323332; cv=none; b=BUlBQj+lIqaFUe8dOIiZfv9Zi1WNyi2rqsuj01N7gZMhqJvXtzTzTP36Dx5TuOlT7kdtXq7a+SYCb0hMjX2aU1QFzNOQW2VyHUsWq9hEqVYjHJGDub8C9vJ3K3AQPVhi9F/JpTgvsKIc49n8Ll9H+gxFzsRzs1B/mAfIzJsR02U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323332; c=relaxed/simple; bh=6p7GtlaV3i7BYeRheWHSBY+UMq556/KqSfeQ7J31cXQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=YAk4Nhr8LuMh3lFOIseM7xxeP9QWYBokTZVSUVdr9GOkMR4gDI2chj33qjDxFXxK8f7QjqxXyEhYvKx+GIRYv2S1xm/eBapjBL8a6VYZTZHQu4ky4r0TDAObdoa+9pQQg9OKFkpsA5iqkfkLtkuyg/yt/6m/q1p2+U+zBGPS1QE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=IdRJcqiW; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="IdRJcqiW" Received: by smtp.kernel.org (Postfix) with ESMTPSA id F149BC3277D; Sun, 24 Mar 2024 23:35:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323330; bh=6p7GtlaV3i7BYeRheWHSBY+UMq556/KqSfeQ7J31cXQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=IdRJcqiWy6UsnxLPkBeN33c9l+l10a2ahaO1CJmqzZ8ApebmgY5cFumCZNIjfk+2Z 7ZPpID3Gc1aQ53SXBWt/p264DAmt+aN/9FB82Zp8amJ+icDp56buQ0CXyK3w8D+dlN TRDX6LGPW7ZZISErlXGXjMlhgTPJKxd9keG7mOlM30fFrKPJrstzzVokw0WZ0eStLO vW2FrxNyidyyzrPsoYJuHT1gvI5vQPwrR38G7Gt7r8Kr4wylyTHsJ5hateVaapoWlg VqC0cK5ah9dmIxv3UYPQb19zUnhL24avS+rvbhkLCCRNARhj/SQJMgG35B9iDerhiV JgotoCfkWwmjQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Nikita Zhandarovich , Chuck Lever III , syzbot+09b349b3066c2e0b1e96@syzkaller.appspotmail.com, Jan Kara , Christian Brauner , Sasha Levin Subject: [PATCH 5.15 031/317] do_sys_name_to_handle(): use kzalloc() to fix kernel-infoleak Date: Sun, 24 Mar 2024 19:30:11 -0400 Message-ID: <20240324233458.1352854-32-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Nikita Zhandarovich [ Upstream commit 3948abaa4e2be938ccdfc289385a27342fb13d43 ] syzbot identified a kernel information leak vulnerability in do_sys_name_to_handle() and issued the following report [1]. [1] "BUG: KMSAN: kernel-infoleak in instrument_copy_to_user include/linux/instr= umented.h:114 [inline] BUG: KMSAN: kernel-infoleak in _copy_to_user+0xbc/0x100 lib/usercopy.c:40 instrument_copy_to_user include/linux/instrumented.h:114 [inline] _copy_to_user+0xbc/0x100 lib/usercopy.c:40 copy_to_user include/linux/uaccess.h:191 [inline] do_sys_name_to_handle fs/fhandle.c:73 [inline] __do_sys_name_to_handle_at fs/fhandle.c:112 [inline] __se_sys_name_to_handle_at+0x949/0xb10 fs/fhandle.c:94 __x64_sys_name_to_handle_at+0xe4/0x140 fs/fhandle.c:94 ... Uninit was created at: slab_post_alloc_hook+0x129/0xa70 mm/slab.h:768 slab_alloc_node mm/slub.c:3478 [inline] __kmem_cache_alloc_node+0x5c9/0x970 mm/slub.c:3517 __do_kmalloc_node mm/slab_common.c:1006 [inline] __kmalloc+0x121/0x3c0 mm/slab_common.c:1020 kmalloc include/linux/slab.h:604 [inline] do_sys_name_to_handle fs/fhandle.c:39 [inline] __do_sys_name_to_handle_at fs/fhandle.c:112 [inline] __se_sys_name_to_handle_at+0x441/0xb10 fs/fhandle.c:94 __x64_sys_name_to_handle_at+0xe4/0x140 fs/fhandle.c:94 ... Bytes 18-19 of 20 are uninitialized Memory access of size 20 starts at ffff888128a46380 Data copied to user address 0000000020000240" Per Chuck Lever's suggestion, use kzalloc() instead of kmalloc() to solve the problem. Fixes: 990d6c2d7aee ("vfs: Add name to file handle conversion support") Suggested-by: Chuck Lever III Reported-and-tested-by: Signed-off-by: Nikita Zhandarovich Link: https://lore.kernel.org/r/20240119153906.4367-1-n.zhandarovich@fintec= h.ru Reviewed-by: Jan Kara Signed-off-by: Christian Brauner Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- fs/fhandle.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/fhandle.c b/fs/fhandle.c index 6630c69c23a2a..55e5ffacc0e40 100644 --- a/fs/fhandle.c +++ b/fs/fhandle.c @@ -37,7 +37,7 @@ static long do_sys_name_to_handle(struct path *path, if (f_handle.handle_bytes > MAX_HANDLE_SZ) return -EINVAL; =20 - handle =3D kmalloc(sizeof(struct file_handle) + f_handle.handle_bytes, + handle =3D kzalloc(sizeof(struct file_handle) + f_handle.handle_bytes, GFP_KERNEL); if (!handle) return -ENOMEM; --=20 2.43.0 From nobody Wed Oct 15 22:31:24 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E53C8273DB6; Sun, 24 Mar 2024 23:35:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323332; cv=none; b=KHL7Ra1mCEUe32317uUg0w7OHukA1Q29YfyL1gLxWIT9ccLFcj0aCraYAGImjeWvl/CWKYbI7d2jV2zZbxwAmvEd1kXSs6v6mETNGI4e/xqI2jJz6DlTQ3votTP8LZAazmiewEsbAfR1ywYK654fnfD6Hd3eI+2I7tlUIoSArwk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323332; c=relaxed/simple; bh=eUZICQioZQV/iRn1btSkWf+yBXugr7Vk+ogZZoY/RBQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=IdGm5dDcrqpcjhZAPc3LgY17ntJOKlarlMGxmsevO+WL7dZifKtIou9Pk/qDOdmU6z0N7sp5M+z8RTS6YYYj9Mr78iT3jLyQb5mCl8ewSVdfwOPs5AzMy02LWtanQqWE+ViAMa4yGEzTwA/wgKmdaP18GzsI3fuevghS6Lgc1bM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=MDnV4c3N; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="MDnV4c3N" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2C1EEC433C7; Sun, 24 Mar 2024 23:35:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323331; bh=eUZICQioZQV/iRn1btSkWf+yBXugr7Vk+ogZZoY/RBQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=MDnV4c3N1TYaadDC5v9kzxvEZjq1K/NLksmOvG9xKek440c2KGc7DlWe1GGyWGn2b Dooc89APsPuUI66RmycPTgk9V8czdAX8ExwjxHmFcdUi3NViX3EIGmsNWGX7NRGMRT Gs74x8CJNsyIxEQDEVaKH7u+bGPDTC6UhFa2qwdFbLudvENUHMMHec2woEJ2eVcAEY A7aSNNC0ZgV0ZbIM934EHrGM5XvIc+B9Q1/3SADKX8ncNeE/phyjoBUNZY8C2iyShg ddHQ6/sil/M3WwWXut+DeY9TgM0/uCw1NjCyZVueOHW/yfCujmbCYP3I5WwcWGgW3+ Yq5raFLFkXSBw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Eric Biggers , Jaegeuk Kim , Sasha Levin Subject: [PATCH 5.15 032/317] f2fs: implement iomap operations Date: Sun, 24 Mar 2024 19:30:12 -0400 Message-ID: <20240324233458.1352854-33-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Eric Biggers [ Upstream commit 1517c1a7a4456f080fabc4ac9853930e4b880d14 ] Implement 'struct iomap_ops' for f2fs, in preparation for making f2fs use iomap for direct I/O. Note that this may be used for other things besides direct I/O in the future; however, for now I've only tested it for direct I/O. Signed-off-by: Eric Biggers Signed-off-by: Jaegeuk Kim Stable-dep-of: ec16b147a55b ("fs: Fix rw_hint validation") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- fs/f2fs/Kconfig | 1 + fs/f2fs/data.c | 56 +++++++++++++++++++++++++++++++++++++++++++++++++ fs/f2fs/f2fs.h | 1 + 3 files changed, 58 insertions(+) diff --git a/fs/f2fs/Kconfig b/fs/f2fs/Kconfig index 7eea3cfd894d1..f46a7339d6cf7 100644 --- a/fs/f2fs/Kconfig +++ b/fs/f2fs/Kconfig @@ -7,6 +7,7 @@ config F2FS_FS select CRYPTO_CRC32 select F2FS_FS_XATTR if FS_ENCRYPTION select FS_ENCRYPTION_ALGS if FS_ENCRYPTION + select FS_IOMAP select LZ4_COMPRESS if F2FS_FS_LZ4 select LZ4_DECOMPRESS if F2FS_FS_LZ4 select LZ4HC_COMPRESS if F2FS_FS_LZ4HC diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c index 73a7906a49b1e..5766a9f0773b1 100644 --- a/fs/f2fs/data.c +++ b/fs/f2fs/data.c @@ -21,6 +21,7 @@ #include #include #include +#include =20 #include "f2fs.h" #include "node.h" @@ -4242,3 +4243,58 @@ void f2fs_destroy_bio_entry_cache(void) { kmem_cache_destroy(bio_entry_slab); } + +static int f2fs_iomap_begin(struct inode *inode, loff_t offset, loff_t len= gth, + unsigned int flags, struct iomap *iomap, + struct iomap *srcmap) +{ + struct f2fs_map_blocks map =3D {}; + pgoff_t next_pgofs =3D 0; + int err; + + map.m_lblk =3D bytes_to_blks(inode, offset); + map.m_len =3D bytes_to_blks(inode, offset + length - 1) - map.m_lblk + 1; + map.m_next_pgofs =3D &next_pgofs; + map.m_seg_type =3D f2fs_rw_hint_to_seg_type(inode->i_write_hint); + if (flags & IOMAP_WRITE) + map.m_may_create =3D true; + + err =3D f2fs_map_blocks(inode, &map, flags & IOMAP_WRITE, + F2FS_GET_BLOCK_DIO); + if (err) + return err; + + iomap->offset =3D blks_to_bytes(inode, map.m_lblk); + + if (map.m_flags & (F2FS_MAP_MAPPED | F2FS_MAP_UNWRITTEN)) { + iomap->length =3D blks_to_bytes(inode, map.m_len); + if (map.m_flags & F2FS_MAP_MAPPED) { + iomap->type =3D IOMAP_MAPPED; + iomap->flags |=3D IOMAP_F_MERGED; + } else { + iomap->type =3D IOMAP_UNWRITTEN; + } + if (WARN_ON_ONCE(!__is_valid_data_blkaddr(map.m_pblk))) + return -EINVAL; + + iomap->bdev =3D map.m_bdev; + iomap->addr =3D blks_to_bytes(inode, map.m_pblk); + } else { + iomap->length =3D blks_to_bytes(inode, next_pgofs) - + iomap->offset; + iomap->type =3D IOMAP_HOLE; + iomap->addr =3D IOMAP_NULL_ADDR; + } + + if (map.m_flags & F2FS_MAP_NEW) + iomap->flags |=3D IOMAP_F_NEW; + if ((inode->i_state & I_DIRTY_DATASYNC) || + offset + length > i_size_read(inode)) + iomap->flags |=3D IOMAP_F_DIRTY; + + return 0; +} + +const struct iomap_ops f2fs_iomap_ops =3D { + .iomap_begin =3D f2fs_iomap_begin, +}; diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h index 835ef98643bd4..4cabc37c20b90 100644 --- a/fs/f2fs/f2fs.h +++ b/fs/f2fs/f2fs.h @@ -3650,6 +3650,7 @@ int f2fs_init_post_read_processing(void); void f2fs_destroy_post_read_processing(void); int f2fs_init_post_read_wq(struct f2fs_sb_info *sbi); void f2fs_destroy_post_read_wq(struct f2fs_sb_info *sbi); +extern const struct iomap_ops f2fs_iomap_ops; =20 /* * gc.c --=20 2.43.0 From nobody Wed Oct 15 22:31:24 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 446B9174EC9; Sun, 24 Mar 2024 23:35:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323333; cv=none; b=sMjWtZJULHi9t0tkXehxpmis12HeJ4p0ZDTeYZLzUO2EN58cONDErkqitgKpJCnTcwLsXSlLDMcQqLHW7OgDABw6pABYv1JtZ80Onvs8+UJpQiFaKZOP4h7+5CZC4Ls3RiFwpNrjC4D2QNuvQhQX7M88xkw6bD9VSx9kvrT9fiY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323333; c=relaxed/simple; bh=RbiGQbM5DV6JGkgA0anqlw12MgJgoMvxfYB2/r2rRRo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PWFZUlLyPPQhuK6OX2bVYKZoMsAVkbIdQ3fPkdu9FBJ0+qNIl5ThFLDYtldo01tFd0kWm1FINijN3L0+xH64vpRpxGvQA+voUynLZ8QUASJghelSFkgqAY9yweziAC03+zUHks9Au9wzDZUpCHQm2IFYdWZlzk3nmu2aBbEcGYg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Fg2SKXg9; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Fg2SKXg9" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 13F04C43399; Sun, 24 Mar 2024 23:35:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323332; bh=RbiGQbM5DV6JGkgA0anqlw12MgJgoMvxfYB2/r2rRRo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Fg2SKXg94aAaQ/XU4VQG41WEy9pB7EQLGCnP51EZ9XC8n2dkY/InTSry+UK1l2PGS kfx7p0W1hubsBbSLeJynQrnAxMsKpQ727QHm6UQjx8m6BhlPDXRiNyb4Bp6JaXih1m +4qF5P66MHCSaK8YbbB+sziSFRIhVCEuUawzou52Nbnu1YZDqV8DH2V4C5FqewaaGf 7kANwRbekXhyK5J9mttkMFpf+/nkbMSCIZ4JfghzL8DKXmfleGGbCzar+1P1+zm7M1 AGNYw5Rljj5kyxd0NNZ6dbfaTpjia0CpiEHxQ7d+ouB6Ir3mQZ/DpXnJAOdv3h2TP4 b+Q+AKL5Af0sQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Stefan Haberland , Jan Hoeppner , Jens Axboe , Sasha Levin Subject: [PATCH 5.15 033/317] s390/dasd: put block allocation in separate function Date: Sun, 24 Mar 2024 19:30:13 -0400 Message-ID: <20240324233458.1352854-34-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Stefan Haberland [ Upstream commit 2b43bf061b2e1b67561cbb1f6f305421f5fc86af ] Put block allocation into a separate function to put some copy pair logic in it in a later patch. Signed-off-by: Stefan Haberland Reviewed-by: Jan Hoeppner Link: https://lore.kernel.org/r/20220920192616.808070-2-sth@linux.ibm.com Signed-off-by: Jens Axboe Stable-dep-of: c3116e62ddef ("s390/dasd: fix double module refcount decreme= nt") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/s390/block/dasd_eckd.c | 38 ++++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/drivers/s390/block/dasd_eckd.c b/drivers/s390/block/dasd_eckd.c index 56ab74aa07f42..cf80db7a74a3d 100644 --- a/drivers/s390/block/dasd_eckd.c +++ b/drivers/s390/block/dasd_eckd.c @@ -2028,6 +2028,25 @@ static void dasd_eckd_kick_validate_server(struct da= sd_device *device) dasd_put_device(device); } =20 +static int dasd_eckd_alloc_block(struct dasd_device *device) +{ + struct dasd_block *block; + struct dasd_uid temp_uid; + + dasd_eckd_get_uid(device, &temp_uid); + if (temp_uid.type =3D=3D UA_BASE_DEVICE) { + block =3D dasd_alloc_block(); + if (IS_ERR(block)) { + DBF_EVENT_DEVID(DBF_WARNING, device->cdev, "%s", + "could not allocate dasd block structure"); + return PTR_ERR(block); + } + device->block =3D block; + block->base =3D device; + } + return 0; +} + /* * Check device characteristics. * If the device is accessible using ECKD discipline, the device is enable= d. @@ -2036,8 +2055,6 @@ static int dasd_eckd_check_characteristics(struct dasd_device *device) { struct dasd_eckd_private *private =3D device->private; - struct dasd_block *block; - struct dasd_uid temp_uid; int rc, i; int readonly; unsigned long value; @@ -2095,19 +2112,10 @@ dasd_eckd_check_characteristics(struct dasd_device = *device) device->default_expires =3D value; } =20 - dasd_eckd_get_uid(device, &temp_uid); - if (temp_uid.type =3D=3D UA_BASE_DEVICE) { - block =3D dasd_alloc_block(); - if (IS_ERR(block)) { - DBF_EVENT_DEVID(DBF_WARNING, device->cdev, "%s", - "could not allocate dasd " - "block structure"); - rc =3D PTR_ERR(block); - goto out_err1; - } - device->block =3D block; - block->base =3D device; - } + /* check if block device is needed and allocate in case */ + rc =3D dasd_eckd_alloc_block(device); + if (rc) + goto out_err1; =20 /* register lcu with alias handling, enable PAV */ rc =3D dasd_alias_make_device_known_to_lcu(device); --=20 2.43.0 From nobody Wed Oct 15 22:31:24 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 28822174EE5; Sun, 24 Mar 2024 23:35:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323335; cv=none; b=FybbMggsRgxpFkPJ/fAgM2HE6bTxUTFDDvOKhIOJKvYq/89sIVi6Iae2nztRO9Sg4TrGbDYypyjD8cTi7yKeSiYsvtleYhi1330J7UlBdnlNJxlcuevfK3AvKDLhGCp+ZPV9UYpavmbEwGB5S9ONVnGnoTzmpHJ6oiAVdIlfFVE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323335; c=relaxed/simple; bh=dU5rKxIRdpARhzb/iQNx1mD2zTtGGTT1rLng1T61/JY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Zj1XY8O4aDIw9AQiVPeWJulTY/JVjEtJnCMu8uDUOpa7qO20KZpZRUmfXO4UvwddMYnj78eBJVtOvGvWiL+0Tl2hJa/jz4viywSJdjFjy/zLQcwFktQofNtHpmSbsjFnzGLEusGhTaNl0iDBOQkHhVuxUfOUsfSIBVzxWSFkCo8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=RhrCD2cp; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="RhrCD2cp" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 13016C43390; Sun, 24 Mar 2024 23:35:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323333; bh=dU5rKxIRdpARhzb/iQNx1mD2zTtGGTT1rLng1T61/JY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=RhrCD2cpwgrBMBsTURsOmmhuJ1hjqufXoVGhkPBAE1VA0Bi36+3JLNKFTOU0IX63G W/6VHyzwRC7a2dB/PvG7wZYvRS1mv7Kj0TBOORC3EUnRhwkIbWQ3WSkmx3kSImO4YM X/4KR2zLr4sUWLCVmPr9dSN4LoOl568dX80cjre8hskyfbBYfImKsXu8ghOXt3AAtq 829aMLfaor6pbj0/TXMVCM9NU8HMY66MN+sNd4cPVOQTpl/HZX6oh0fBROUuJdJg+5 ldC+eVJjKCct2j/+RpTOUaE7aBtSi71fBYtxbndCV0tHERcJIrSqXm6r8+Mm8l9ebk Y97xiEqOyJWBw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Stefan Haberland , Jan Hoeppner , Jens Axboe , Sasha Levin Subject: [PATCH 5.15 034/317] s390/dasd: add query PPRC function Date: Sun, 24 Mar 2024 19:30:14 -0400 Message-ID: <20240324233458.1352854-35-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Stefan Haberland [ Upstream commit 3f217cceb6846e7533511fc69bc774cdba37ff7d ] Add function to query the Peer-to-Peer-Remote-Copy (PPRC) state of a device by reading the related structure through a read subsystem data call. Signed-off-by: Stefan Haberland Reviewed-by: Jan Hoeppner Link: https://lore.kernel.org/r/20220920192616.808070-3-sth@linux.ibm.com Signed-off-by: Jens Axboe Stable-dep-of: c3116e62ddef ("s390/dasd: fix double module refcount decreme= nt") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/s390/block/dasd_eckd.c | 66 ++++++++++++++++++++++++++++++++++ drivers/s390/block/dasd_eckd.h | 6 ++++ drivers/s390/block/dasd_int.h | 32 +++++++++++++++++ 3 files changed, 104 insertions(+) diff --git a/drivers/s390/block/dasd_eckd.c b/drivers/s390/block/dasd_eckd.c index cf80db7a74a3d..76f861c2ce614 100644 --- a/drivers/s390/block/dasd_eckd.c +++ b/drivers/s390/block/dasd_eckd.c @@ -6105,6 +6105,71 @@ static int dasd_hosts_print(struct dasd_device *devi= ce, struct seq_file *m) return 0; } =20 +/* + * Perform Subsystem Function - Peer-to-Peer Remote Copy Extended Query + */ +static int dasd_eckd_query_pprc_status(struct dasd_device *device, + struct dasd_pprc_data_sc4 *data) +{ + struct dasd_pprc_data_sc4 *pprc_data; + struct dasd_psf_prssd_data *prssdp; + struct dasd_ccw_req *cqr; + struct ccw1 *ccw; + int rc; + + cqr =3D dasd_smalloc_request(DASD_ECKD_MAGIC, 1 /* PSF */ + 1 /* RSSD */, + sizeof(*prssdp) + sizeof(*pprc_data) + 1, + device, NULL); + if (IS_ERR(cqr)) { + DBF_EVENT_DEVID(DBF_WARNING, device->cdev, "%s", + "Could not allocate query PPRC status request"); + return PTR_ERR(cqr); + } + cqr->startdev =3D device; + cqr->memdev =3D device; + cqr->block =3D NULL; + cqr->retries =3D 256; + cqr->expires =3D 10 * HZ; + + /* Prepare for Read Subsystem Data */ + prssdp =3D (struct dasd_psf_prssd_data *)cqr->data; + memset(prssdp, 0, sizeof(struct dasd_psf_prssd_data)); + prssdp->order =3D PSF_ORDER_PRSSD; + prssdp->suborder =3D PSF_SUBORDER_PPRCEQ; + prssdp->varies[0] =3D PPRCEQ_SCOPE_4; + pprc_data =3D (struct dasd_pprc_data_sc4 *)(prssdp + 1); + + ccw =3D cqr->cpaddr; + ccw->cmd_code =3D DASD_ECKD_CCW_PSF; + ccw->count =3D sizeof(struct dasd_psf_prssd_data); + ccw->flags |=3D CCW_FLAG_CC; + ccw->flags |=3D CCW_FLAG_SLI; + ccw->cda =3D (__u32)(addr_t)prssdp; + + /* Read Subsystem Data - query host access */ + ccw++; + ccw->cmd_code =3D DASD_ECKD_CCW_RSSD; + ccw->count =3D sizeof(*pprc_data); + ccw->flags |=3D CCW_FLAG_SLI; + ccw->cda =3D (__u32)(addr_t)pprc_data; + + cqr->buildclk =3D get_tod_clock(); + cqr->status =3D DASD_CQR_FILLED; + + rc =3D dasd_sleep_on_interruptible(cqr); + if (rc =3D=3D 0) { + *data =3D *pprc_data; + } else { + DBF_EVENT_DEVID(DBF_WARNING, device->cdev, + "PPRC Extended Query failed with rc=3D%d\n", + rc); + rc =3D -EOPNOTSUPP; + } + + dasd_sfree_request(cqr, cqr->memdev); + return rc; +} + /* * Perform Subsystem Function - CUIR response */ @@ -6723,6 +6788,7 @@ static struct dasd_discipline dasd_eckd_discipline = =3D { .ext_pool_exhaust =3D dasd_eckd_ext_pool_exhaust, .ese_format =3D dasd_eckd_ese_format, .ese_read =3D dasd_eckd_ese_read, + .pprc_status =3D dasd_eckd_query_pprc_status, }; =20 static int __init diff --git a/drivers/s390/block/dasd_eckd.h b/drivers/s390/block/dasd_eckd.h index 65e4630ad2aea..ed83a9a55191b 100644 --- a/drivers/s390/block/dasd_eckd.h +++ b/drivers/s390/block/dasd_eckd.h @@ -66,9 +66,15 @@ * Perform Subsystem Function / Sub-Orders */ #define PSF_SUBORDER_QHA 0x1C /* Query Host Access */ +#define PSF_SUBORDER_PPRCEQ 0x50 /* PPRC Extended Query */ #define PSF_SUBORDER_VSQ 0x52 /* Volume Storage Query */ #define PSF_SUBORDER_LCQ 0x53 /* Logical Configuration Query */ =20 +/* + * PPRC Extended Query Scopes + */ +#define PPRCEQ_SCOPE_4 0x04 /* Scope 4 for PPRC Extended Query */ + /* * CUIR response condition codes */ diff --git a/drivers/s390/block/dasd_int.h b/drivers/s390/block/dasd_int.h index d94ae067f085e..2ee8bc035b34a 100644 --- a/drivers/s390/block/dasd_int.h +++ b/drivers/s390/block/dasd_int.h @@ -260,6 +260,37 @@ struct dasd_uid { char vduit[33]; }; =20 +/* + * PPRC Status data + */ +struct dasd_pprc_header { + __u8 entries; /* 0 Number of device entries */ + __u8 unused; /* 1 unused */ + __u16 entry_length; /* 2-3 Length of device entry */ + __u32 unused2; /* 4-7 unused */ +} __packed; + +struct dasd_pprc_dev_info { + __u8 state; /* 0 Copy State */ + __u8 flags; /* 1 Flags */ + __u8 reserved1[2]; /* 2-3 reserved */ + __u8 prim_lss; /* 4 Primary device LSS */ + __u8 primary; /* 5 Primary device address */ + __u8 sec_lss; /* 6 Secondary device LSS */ + __u8 secondary; /* 7 Secondary device address */ + __u16 pprc_id; /* 8-9 Peer-to-Peer Remote Copy ID */ + __u8 reserved2[12]; /* 10-21 reserved */ + __u16 prim_cu_ssid; /* 22-23 Pimary Control Unit SSID */ + __u8 reserved3[12]; /* 24-35 reserved */ + __u16 sec_cu_ssid; /* 36-37 Secondary Control Unit SSID */ + __u8 reserved4[90]; /* 38-127 reserved */ +} __packed; + +struct dasd_pprc_data_sc4 { + struct dasd_pprc_header header; + struct dasd_pprc_dev_info dev_info[5]; +} __packed; + /* * the struct dasd_discipline is * sth like a table of virtual functions, if you think of dasd_eckd @@ -388,6 +419,7 @@ struct dasd_discipline { struct dasd_ccw_req *(*ese_format)(struct dasd_device *, struct dasd_ccw_req *, struct irb *); int (*ese_read)(struct dasd_ccw_req *, struct irb *); + int (*pprc_status)(struct dasd_device *, struct dasd_pprc_data_sc4 *); }; =20 extern struct dasd_discipline *dasd_diag_discipline_pointer; --=20 2.43.0 From nobody Wed Oct 15 22:31:24 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 483D22745C2; Sun, 24 Mar 2024 23:35:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323336; cv=none; b=FfSRRK00+Xg1OFr6bdu1L5J0z8P01FeK5wvbqoA7QSaF0Nrdd55mURlKI9C+yOKy5Do4dCoKfERKKlcPs6tnrURDE1OmMPFtvZzUM90y0DFTFbpqEgSGzX+XB2TK82+tnWUjlqHfbx5urX1hKo2XS/fPhAF8sn77UqHhiHb/78c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323336; c=relaxed/simple; bh=AlVLB2kkcZvN1L50r41nkoVt8ZMr4jbyk5yP/1fZ3hA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mx6G4cC/lGgU8UzDqQzCO723EgtCpgkPxIMwodzr9SqhJt4jhy+uw5KtWQPKpPoREOk4m9kF3OLiPHK1/ytG+WFU0G0W5iFxjsRoc3266+Opbs+6HME1Lp6r1YoNh4cHtyzps5ibqLf3oGAt/wWotcgRyfPynJaWWvpsATIsEXI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=uJZkUhAJ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="uJZkUhAJ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 14270C433F1; Sun, 24 Mar 2024 23:35:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323334; bh=AlVLB2kkcZvN1L50r41nkoVt8ZMr4jbyk5yP/1fZ3hA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=uJZkUhAJNy9HEOEYlNhTPQlSxAQFNBbUy/W2ssoFtYx+zkYx0fboQp7uNZ3ygoEw+ nvseyKaqRpfDvDiWqkaBz7b1c8v5iiKJH1YXMzaE8lmgmkJBFrgD/4lpMZDnay3u04 J0pjshGvEHhux9IAF4Ps681CvZ0Y7UmIjklRG1FPqg5EhCYGRBR+frMf83TPm92XdQ sL/Z+Cn3ITKp1rEa4TvgHD4YMl2+KXQasgEmusIKzE24kk+8c5yhfeIO1WR+OF0SBe OuNLt+Wah0nZ2D1eEQ1OYU6m7dXDZ95ZVcS37+mTWQIlhGsdAoXoVEGvRV1NIZy+S2 1Z8xvjSm4jWpg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Stefan Haberland , Jan Hoeppner , Jens Axboe , Sasha Levin Subject: [PATCH 5.15 035/317] s390/dasd: add copy pair setup Date: Sun, 24 Mar 2024 19:30:15 -0400 Message-ID: <20240324233458.1352854-36-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Stefan Haberland [ Upstream commit a91ff09d39f9b6545254839ac91f1ff7bd21d39e ] A copy relation that is configured on the storage server side needs to be enabled separately in the device driver. A sysfs interface is created that allows userspace tooling to control such setup. The following sysfs entries are added to store and read copy relation information: copy_pair - Add/Delete a copy pair relation to the DASD device driver - Query all previously added copy pair relations copy_role - Query the copy pair role of the device To add a copy pair to the DASD device driver it has to be specified through the sysfs attribute copy_pair. Only one secondary device can be specified at a time together with the primary device. Both, secondary and primary can be used equally to define the copy pair. The secondary devices have to be offline when adding the copy relation. The primary device needs to be specified first followed by the comma separated secondary device. Read from the copy_pair attribute to get the current setup and write "clear" to the attribute to delete any existing setup. Example: $ echo 0.0.9700,0.0.9740 > /sys/bus/ccw/devices/0.0.9700/copy_pair $ cat /sys/bus/ccw/devices/0.0.9700/copy_pair 0.0.9700,0.0.9740 During device online processing the required data will be read from the storage server and the information will be compared to the setup requested through the copy_pair attribute. The registration of the primary and secondary device will be handled accordingly. A blockdevice is only allocated for copy relation primary devices. To query the copy role of a device read from the copy_role sysfs attribute. Possible values are primary, secondary, and none. Example: $ cat /sys/bus/ccw/devices/0.0.9700/copy_role primary Signed-off-by: Stefan Haberland Reviewed-by: Jan Hoeppner Link: https://lore.kernel.org/r/20220920192616.808070-4-sth@linux.ibm.com Signed-off-by: Jens Axboe Stable-dep-of: c3116e62ddef ("s390/dasd: fix double module refcount decreme= nt") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/s390/block/dasd_devmap.c | 566 ++++++++++++++++++++++++++++++- drivers/s390/block/dasd_eckd.c | 52 ++- drivers/s390/block/dasd_eckd.h | 2 +- drivers/s390/block/dasd_int.h | 20 ++ 4 files changed, 623 insertions(+), 17 deletions(-) diff --git a/drivers/s390/block/dasd_devmap.c b/drivers/s390/block/dasd_dev= map.c index 2c40fe15da552..6f9f7a0723128 100644 --- a/drivers/s390/block/dasd_devmap.c +++ b/drivers/s390/block/dasd_devmap.c @@ -26,7 +26,6 @@ =20 /* This is ugly... */ #define PRINTK_HEADER "dasd_devmap:" -#define DASD_BUS_ID_SIZE 20 #define DASD_MAX_PARAMS 256 =20 #include "dasd_int.h" @@ -50,6 +49,7 @@ struct dasd_devmap { unsigned int devindex; unsigned short features; struct dasd_device *device; + struct dasd_copy_relation *copy; }; =20 /* @@ -130,7 +130,7 @@ __setup ("dasd=3D", dasd_call_setup); /* * Read a device busid/devno from a string. */ -static int __init dasd_busid(char *str, int *id0, int *id1, int *devno) +static int dasd_busid(char *str, int *id0, int *id1, int *devno) { unsigned int val; char *tok; @@ -438,16 +438,12 @@ dasd_add_busid(const char *bus_id, int features) return devmap; } =20 -/* - * Find devmap for device with given bus_id. - */ static struct dasd_devmap * -dasd_find_busid(const char *bus_id) +dasd_find_busid_locked(const char *bus_id) { struct dasd_devmap *devmap, *tmp; int hash; =20 - spin_lock(&dasd_devmap_lock); devmap =3D ERR_PTR(-ENODEV); hash =3D dasd_hash_busid(bus_id); list_for_each_entry(tmp, &dasd_hashlists[hash], list) { @@ -456,6 +452,19 @@ dasd_find_busid(const char *bus_id) break; } } + return devmap; +} + +/* + * Find devmap for device with given bus_id. + */ +static struct dasd_devmap * +dasd_find_busid(const char *bus_id) +{ + struct dasd_devmap *devmap; + + spin_lock(&dasd_devmap_lock); + devmap =3D dasd_find_busid_locked(bus_id); spin_unlock(&dasd_devmap_lock); return devmap; } @@ -584,6 +593,238 @@ dasd_create_device(struct ccw_device *cdev) return device; } =20 +/* + * allocate a PPRC data structure and call the discipline function to fill + */ +static int dasd_devmap_get_pprc_status(struct dasd_device *device, + struct dasd_pprc_data_sc4 **data) +{ + struct dasd_pprc_data_sc4 *temp; + + if (!device->discipline || !device->discipline->pprc_status) { + dev_warn(&device->cdev->dev, "Unable to query copy relation status\n"); + return -EOPNOTSUPP; + } + temp =3D kzalloc(sizeof(*temp), GFP_KERNEL); + if (!temp) + return -ENOMEM; + + /* get PPRC information from storage */ + if (device->discipline->pprc_status(device, temp)) { + dev_warn(&device->cdev->dev, "Error during copy relation status query\n"= ); + kfree(temp); + return -EINVAL; + } + *data =3D temp; + + return 0; +} + +/* + * find an entry in a PPRC device_info array by a given UID + * depending on the primary/secondary state of the device it has to be + * matched with the respective fields + */ +static int dasd_devmap_entry_from_pprc_data(struct dasd_pprc_data_sc4 *dat= a, + struct dasd_uid uid, + bool primary) +{ + int i; + + for (i =3D 0; i < DASD_CP_ENTRIES; i++) { + if (primary) { + if (data->dev_info[i].prim_cu_ssid =3D=3D uid.ssid && + data->dev_info[i].primary =3D=3D uid.real_unit_addr) + return i; + } else { + if (data->dev_info[i].sec_cu_ssid =3D=3D uid.ssid && + data->dev_info[i].secondary =3D=3D uid.real_unit_addr) + return i; + } + } + return -1; +} + +/* + * check the consistency of a specified copy relation by checking + * the following things: + * + * - is the given device part of a copy pair setup + * - does the state of the device match the state in the PPRC status data + * - does the device UID match with the UID in the PPRC status data + * - to prevent misrouted IO check if the given device is present in all + * related PPRC status data + */ +static int dasd_devmap_check_copy_relation(struct dasd_device *device, + struct dasd_copy_entry *entry, + struct dasd_pprc_data_sc4 *data, + struct dasd_copy_relation *copy) +{ + struct dasd_pprc_data_sc4 *tmp_dat; + struct dasd_device *tmp_dev; + struct dasd_uid uid; + int i, j; + + if (!device->discipline || !device->discipline->get_uid || + device->discipline->get_uid(device, &uid)) + return 1; + + i =3D dasd_devmap_entry_from_pprc_data(data, uid, entry->primary); + if (i < 0) { + dev_warn(&device->cdev->dev, "Device not part of a copy relation\n"); + return 1; + } + + /* double check which role the current device has */ + if (entry->primary) { + if (data->dev_info[i].flags & 0x80) { + dev_warn(&device->cdev->dev, "Copy pair secondary is setup as primary\n= "); + return 1; + } + if (data->dev_info[i].prim_cu_ssid !=3D uid.ssid || + data->dev_info[i].primary !=3D uid.real_unit_addr) { + dev_warn(&device->cdev->dev, + "Primary device %s does not match copy pair status primary device %04= x\n", + dev_name(&device->cdev->dev), + data->dev_info[i].prim_cu_ssid | + data->dev_info[i].primary); + return 1; + } + } else { + if (!(data->dev_info[i].flags & 0x80)) { + dev_warn(&device->cdev->dev, "Copy pair primary is setup as secondary\n= "); + return 1; + } + if (data->dev_info[i].sec_cu_ssid !=3D uid.ssid || + data->dev_info[i].secondary !=3D uid.real_unit_addr) { + dev_warn(&device->cdev->dev, + "Secondary device %s does not match copy pair status secondary device= %04x\n", + dev_name(&device->cdev->dev), + data->dev_info[i].sec_cu_ssid | + data->dev_info[i].secondary); + return 1; + } + } + + /* + * the current device has to be part of the copy relation of all + * entries to prevent misrouted IO to another copy pair + */ + for (j =3D 0; j < DASD_CP_ENTRIES; j++) { + if (entry =3D=3D ©->entry[j]) + tmp_dev =3D device; + else + tmp_dev =3D copy->entry[j].device; + + if (!tmp_dev) + continue; + + if (dasd_devmap_get_pprc_status(tmp_dev, &tmp_dat)) + return 1; + + if (dasd_devmap_entry_from_pprc_data(tmp_dat, uid, entry->primary) < 0) { + dev_warn(&tmp_dev->cdev->dev, + "Copy pair relation does not contain device: %s\n", + dev_name(&device->cdev->dev)); + kfree(tmp_dat); + return 1; + } + kfree(tmp_dat); + } + return 0; +} + +/* delete device from copy relation entry */ +static void dasd_devmap_delete_copy_relation_device(struct dasd_device *de= vice) +{ + struct dasd_copy_relation *copy; + int i; + + if (!device->copy) + return; + + copy =3D device->copy; + for (i =3D 0; i < DASD_CP_ENTRIES; i++) { + if (copy->entry[i].device =3D=3D device) + copy->entry[i].device =3D NULL; + } + dasd_put_device(device); + device->copy =3D NULL; +} + +/* + * read all required information for a copy relation setup and setup the d= evice + * accordingly + */ +int dasd_devmap_set_device_copy_relation(struct ccw_device *cdev, + bool pprc_enabled) +{ + struct dasd_pprc_data_sc4 *data =3D NULL; + struct dasd_copy_entry *entry =3D NULL; + struct dasd_copy_relation *copy; + struct dasd_devmap *devmap; + struct dasd_device *device; + int i, rc =3D 0; + + devmap =3D dasd_devmap_from_cdev(cdev); + if (IS_ERR(devmap)) + return PTR_ERR(devmap); + + device =3D devmap->device; + if (!device) + return -ENODEV; + + copy =3D devmap->copy; + /* no copy pair setup for this device */ + if (!copy) + goto out; + + rc =3D dasd_devmap_get_pprc_status(device, &data); + if (rc) + return rc; + + /* print error if PPRC is requested but not enabled on storage server */ + if (!pprc_enabled) { + dev_err(&cdev->dev, "Copy relation not enabled on storage server\n"); + rc =3D -EINVAL; + goto out; + } + + if (!data->dev_info[0].state) { + dev_warn(&device->cdev->dev, "Copy pair setup requested for device not i= n copy relation\n"); + rc =3D -EINVAL; + goto out; + } + /* find entry */ + for (i =3D 0; i < DASD_CP_ENTRIES; i++) { + if (copy->entry[i].configured && + strncmp(dev_name(&cdev->dev), + copy->entry[i].busid, DASD_BUS_ID_SIZE) =3D=3D 0) { + entry =3D ©->entry[i]; + break; + } + } + if (!entry) { + dev_warn(&device->cdev->dev, "Copy relation entry not found\n"); + rc =3D -EINVAL; + goto out; + } + /* check if the copy relation is valid */ + if (dasd_devmap_check_copy_relation(device, entry, data, copy)) { + dev_warn(&device->cdev->dev, "Copy relation faulty\n"); + rc =3D -EINVAL; + goto out; + } + + dasd_get_device(device); + copy->entry[i].device =3D device; + device->copy =3D copy; +out: + kfree(data); + return rc; +} +EXPORT_SYMBOL_GPL(dasd_devmap_set_device_copy_relation); + /* * Wait queue for dasd_delete_device waits. */ @@ -617,6 +858,8 @@ dasd_delete_device(struct dasd_device *device) dev_set_drvdata(&device->cdev->dev, NULL); spin_unlock_irqrestore(get_ccwdev_lock(device->cdev), flags); =20 + /* Removve copy relation */ + dasd_devmap_delete_copy_relation_device(device); /* * Drop ref_count by 3, one for the devmap reference, one for * the cdev reference and one for the passed reference. @@ -1683,6 +1926,313 @@ dasd_path_fcs_show(struct kobject *kobj, struct kob= j_attribute *attr, char *buf) static struct kobj_attribute path_fcs_attribute =3D __ATTR(fc_security, 0444, dasd_path_fcs_show, NULL); =20 +/* + * print copy relation in the form + * primary,secondary[1] primary,secondary[2], ... + */ +static ssize_t +dasd_copy_pair_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + char prim_busid[DASD_BUS_ID_SIZE]; + struct dasd_copy_relation *copy; + struct dasd_devmap *devmap; + int len =3D 0; + int i; + + devmap =3D dasd_find_busid(dev_name(dev)); + if (IS_ERR(devmap)) + return -ENODEV; + + if (!devmap->copy) + return -ENODEV; + + copy =3D devmap->copy; + /* find primary */ + for (i =3D 0; i < DASD_CP_ENTRIES; i++) { + if (copy->entry[i].configured && copy->entry[i].primary) { + strscpy(prim_busid, copy->entry[i].busid, + DASD_BUS_ID_SIZE); + break; + } + } + if (!copy->entry[i].primary) + goto out; + + /* print all secondary */ + for (i =3D 0; i < DASD_CP_ENTRIES; i++) { + if (copy->entry[i].configured && !copy->entry[i].primary) + len +=3D sysfs_emit_at(buf, len, "%s,%s ", prim_busid, + copy->entry[i].busid); + } + + len +=3D sysfs_emit_at(buf, len, "\n"); +out: + return len; +} + +static int dasd_devmap_set_copy_relation(struct dasd_devmap *devmap, + struct dasd_copy_relation *copy, + char *busid, bool primary) +{ + int i; + + /* find free entry */ + for (i =3D 0; i < DASD_CP_ENTRIES; i++) { + /* current bus_id already included, nothing to do */ + if (copy->entry[i].configured && + strncmp(copy->entry[i].busid, busid, DASD_BUS_ID_SIZE) =3D=3D 0) + return 0; + + if (!copy->entry[i].configured) + break; + } + if (i =3D=3D DASD_CP_ENTRIES) + return -EINVAL; + + copy->entry[i].configured =3D true; + strscpy(copy->entry[i].busid, busid, DASD_BUS_ID_SIZE); + if (primary) { + copy->active =3D ©->entry[i]; + copy->entry[i].primary =3D true; + } + if (!devmap->copy) + devmap->copy =3D copy; + + return 0; +} + +static void dasd_devmap_del_copy_relation(struct dasd_copy_relation *copy, + char *busid) +{ + int i; + + spin_lock(&dasd_devmap_lock); + /* find entry */ + for (i =3D 0; i < DASD_CP_ENTRIES; i++) { + if (copy->entry[i].configured && + strncmp(copy->entry[i].busid, busid, DASD_BUS_ID_SIZE) =3D=3D 0) + break; + } + if (i =3D=3D DASD_CP_ENTRIES || !copy->entry[i].configured) { + spin_unlock(&dasd_devmap_lock); + return; + } + + copy->entry[i].configured =3D false; + memset(copy->entry[i].busid, 0, DASD_BUS_ID_SIZE); + if (copy->active =3D=3D ©->entry[i]) { + copy->active =3D NULL; + copy->entry[i].primary =3D false; + } + spin_unlock(&dasd_devmap_lock); +} + +static int dasd_devmap_clear_copy_relation(struct device *dev) +{ + struct dasd_copy_relation *copy; + struct dasd_devmap *devmap; + int i, rc =3D 1; + + devmap =3D dasd_devmap_from_cdev(to_ccwdev(dev)); + if (IS_ERR(devmap)) + return 1; + + spin_lock(&dasd_devmap_lock); + if (!devmap->copy) + goto out; + + copy =3D devmap->copy; + /* first check if all secondary devices are offline*/ + for (i =3D 0; i < DASD_CP_ENTRIES; i++) { + if (!copy->entry[i].configured) + continue; + + if (copy->entry[i].device =3D=3D copy->active->device) + continue; + + if (copy->entry[i].device) + goto out; + } + /* clear all devmap entries */ + for (i =3D 0; i < DASD_CP_ENTRIES; i++) { + if (strlen(copy->entry[i].busid) =3D=3D 0) + continue; + if (copy->entry[i].device) { + dasd_put_device(copy->entry[i].device); + copy->entry[i].device->copy =3D NULL; + copy->entry[i].device =3D NULL; + } + devmap =3D dasd_find_busid_locked(copy->entry[i].busid); + devmap->copy =3D NULL; + memset(copy->entry[i].busid, 0, DASD_BUS_ID_SIZE); + } + kfree(copy); + rc =3D 0; +out: + spin_unlock(&dasd_devmap_lock); + return rc; +} + +/* + * parse BUSIDs from a copy pair + */ +static int dasd_devmap_parse_busid(const char *buf, char *prim_busid, + char *sec_busid) +{ + char *primary, *secondary, *tmp, *pt; + int id0, id1, id2; + + pt =3D kstrdup(buf, GFP_KERNEL); + tmp =3D pt; + if (!tmp) + return -ENOMEM; + + primary =3D strsep(&tmp, ","); + if (!primary) { + kfree(pt); + return -EINVAL; + } + secondary =3D strsep(&tmp, ","); + if (!secondary) { + kfree(pt); + return -EINVAL; + } + if (dasd_busid(primary, &id0, &id1, &id2)) { + kfree(pt); + return -EINVAL; + } + sprintf(prim_busid, "%01x.%01x.%04x", id0, id1, id2); + if (dasd_busid(secondary, &id0, &id1, &id2)) { + kfree(pt); + return -EINVAL; + } + sprintf(sec_busid, "%01x.%01x.%04x", id0, id1, id2); + kfree(pt); + + return 0; +} + +static ssize_t dasd_copy_pair_store(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t count) +{ + struct dasd_devmap *prim_devmap, *sec_devmap; + char prim_busid[DASD_BUS_ID_SIZE]; + char sec_busid[DASD_BUS_ID_SIZE]; + struct dasd_copy_relation *copy; + struct dasd_device *device; + bool pprc_enabled; + int rc; + + if (strncmp(buf, "clear", strlen("clear")) =3D=3D 0) { + if (dasd_devmap_clear_copy_relation(dev)) + return -EINVAL; + return count; + } + + rc =3D dasd_devmap_parse_busid(buf, prim_busid, sec_busid); + if (rc) + return rc; + + if (strncmp(dev_name(dev), prim_busid, DASD_BUS_ID_SIZE) !=3D 0 && + strncmp(dev_name(dev), sec_busid, DASD_BUS_ID_SIZE) !=3D 0) + return -EINVAL; + + /* allocate primary devmap if needed */ + prim_devmap =3D dasd_find_busid(prim_busid); + if (IS_ERR(prim_devmap)) + prim_devmap =3D dasd_add_busid(prim_busid, DASD_FEATURE_DEFAULT); + + /* allocate secondary devmap if needed */ + sec_devmap =3D dasd_find_busid(sec_busid); + if (IS_ERR(sec_devmap)) + sec_devmap =3D dasd_add_busid(sec_busid, DASD_FEATURE_DEFAULT); + + /* setting copy relation is only allowed for offline secondary */ + if (sec_devmap->device) + return -EINVAL; + + if (prim_devmap->copy) { + copy =3D prim_devmap->copy; + } else if (sec_devmap->copy) { + copy =3D sec_devmap->copy; + } else { + copy =3D kzalloc(sizeof(*copy), GFP_KERNEL); + if (!copy) + return -ENOMEM; + } + spin_lock(&dasd_devmap_lock); + rc =3D dasd_devmap_set_copy_relation(prim_devmap, copy, prim_busid, true); + if (rc) { + spin_unlock(&dasd_devmap_lock); + return rc; + } + rc =3D dasd_devmap_set_copy_relation(sec_devmap, copy, sec_busid, false); + if (rc) { + spin_unlock(&dasd_devmap_lock); + return rc; + } + spin_unlock(&dasd_devmap_lock); + + /* if primary device is already online call device setup directly */ + if (prim_devmap->device && !prim_devmap->device->copy) { + device =3D prim_devmap->device; + if (device->discipline->pprc_enabled) { + pprc_enabled =3D device->discipline->pprc_enabled(device); + rc =3D dasd_devmap_set_device_copy_relation(device->cdev, + pprc_enabled); + } else { + rc =3D -EOPNOTSUPP; + } + } + if (rc) { + dasd_devmap_del_copy_relation(copy, prim_busid); + dasd_devmap_del_copy_relation(copy, sec_busid); + count =3D rc; + } + + return count; +} +static DEVICE_ATTR(copy_pair, 0644, dasd_copy_pair_show, + dasd_copy_pair_store); + +static ssize_t +dasd_copy_role_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct dasd_copy_relation *copy; + struct dasd_device *device; + int len, i; + + device =3D dasd_device_from_cdev(to_ccwdev(dev)); + if (IS_ERR(device)) + return -ENODEV; + + if (!device->copy) { + len =3D sysfs_emit(buf, "none\n"); + goto out; + } + copy =3D device->copy; + /* only the active device is primary */ + if (copy->active->device =3D=3D device) { + len =3D sysfs_emit(buf, "primary\n"); + goto out; + } + for (i =3D 0; i < DASD_CP_ENTRIES; i++) { + if (copy->entry[i].device =3D=3D device) { + len =3D sysfs_emit(buf, "secondary\n"); + goto out; + } + } + /* not in the list, no COPY role */ + len =3D sysfs_emit(buf, "none\n"); +out: + dasd_put_device(device); + return len; +} +static DEVICE_ATTR(copy_role, 0444, dasd_copy_role_show, NULL); + #define DASD_DEFINE_ATTR(_name, _func) \ static ssize_t dasd_##_name##_show(struct device *dev, \ struct device_attribute *attr, \ @@ -1739,6 +2289,8 @@ static struct attribute * dasd_attrs[] =3D { &dev_attr_hpf.attr, &dev_attr_ese.attr, &dev_attr_fc_security.attr, + &dev_attr_copy_pair.attr, + &dev_attr_copy_role.attr, NULL, }; =20 diff --git a/drivers/s390/block/dasd_eckd.c b/drivers/s390/block/dasd_eckd.c index 76f861c2ce614..59b11950fb60c 100644 --- a/drivers/s390/block/dasd_eckd.c +++ b/drivers/s390/block/dasd_eckd.c @@ -2028,11 +2028,28 @@ static void dasd_eckd_kick_validate_server(struct d= asd_device *device) dasd_put_device(device); } =20 +/* + * return if the device is the copy relation primary if a copy relation is= active + */ +static int dasd_device_is_primary(struct dasd_device *device) +{ + if (!device->copy) + return 1; + + if (device->copy->active->device =3D=3D device) + return 1; + + return 0; +} + static int dasd_eckd_alloc_block(struct dasd_device *device) { struct dasd_block *block; struct dasd_uid temp_uid; =20 + if (!dasd_device_is_primary(device)) + return 0; + dasd_eckd_get_uid(device, &temp_uid); if (temp_uid.type =3D=3D UA_BASE_DEVICE) { block =3D dasd_alloc_block(); @@ -2047,6 +2064,13 @@ static int dasd_eckd_alloc_block(struct dasd_device = *device) return 0; } =20 +static bool dasd_eckd_pprc_enabled(struct dasd_device *device) +{ + struct dasd_eckd_private *private =3D device->private; + + return private->rdc_data.facilities.PPRC_enabled; +} + /* * Check device characteristics. * If the device is accessible using ECKD discipline, the device is enable= d. @@ -2112,6 +2136,24 @@ dasd_eckd_check_characteristics(struct dasd_device *= device) device->default_expires =3D value; } =20 + /* Read Device Characteristics */ + rc =3D dasd_generic_read_dev_chars(device, DASD_ECKD_MAGIC, + &private->rdc_data, 64); + if (rc) { + DBF_EVENT_DEVID(DBF_WARNING, device->cdev, + "Read device characteristic failed, rc=3D%d", rc); + goto out_err1; + } + + /* setup PPRC for device from devmap */ + rc =3D dasd_devmap_set_device_copy_relation(device->cdev, + dasd_eckd_pprc_enabled(device)); + if (rc) { + DBF_EVENT_DEVID(DBF_WARNING, device->cdev, + "copy relation setup failed, rc=3D%d", rc); + goto out_err1; + } + /* check if block device is needed and allocate in case */ rc =3D dasd_eckd_alloc_block(device); if (rc) @@ -2140,15 +2182,6 @@ dasd_eckd_check_characteristics(struct dasd_device *= device) /* Read Extent Pool Information */ dasd_eckd_read_ext_pool_info(device); =20 - /* Read Device Characteristics */ - rc =3D dasd_generic_read_dev_chars(device, DASD_ECKD_MAGIC, - &private->rdc_data, 64); - if (rc) { - DBF_EVENT_DEVID(DBF_WARNING, device->cdev, - "Read device characteristic failed, rc=3D%d", rc); - goto out_err3; - } - if ((device->features & DASD_FEATURE_USERAW) && !(private->rdc_data.facilities.RT_in_LR)) { dev_err(&device->cdev->dev, "The storage server does not " @@ -6789,6 +6822,7 @@ static struct dasd_discipline dasd_eckd_discipline = =3D { .ese_format =3D dasd_eckd_ese_format, .ese_read =3D dasd_eckd_ese_read, .pprc_status =3D dasd_eckd_query_pprc_status, + .pprc_enabled =3D dasd_eckd_pprc_enabled, }; =20 static int __init diff --git a/drivers/s390/block/dasd_eckd.h b/drivers/s390/block/dasd_eckd.h index ed83a9a55191b..4b869c2bd5195 100644 --- a/drivers/s390/block/dasd_eckd.h +++ b/drivers/s390/block/dasd_eckd.h @@ -267,7 +267,7 @@ struct dasd_eckd_characteristics { unsigned char reserved3:8; unsigned char defect_wr:1; unsigned char XRC_supported:1; - unsigned char reserved4:1; + unsigned char PPRC_enabled:1; unsigned char striping:1; unsigned char reserved5:4; unsigned char cfw:1; diff --git a/drivers/s390/block/dasd_int.h b/drivers/s390/block/dasd_int.h index 2ee8bc035b34a..d743d1d2b38e9 100644 --- a/drivers/s390/block/dasd_int.h +++ b/drivers/s390/block/dasd_int.h @@ -291,6 +291,24 @@ struct dasd_pprc_data_sc4 { struct dasd_pprc_dev_info dev_info[5]; } __packed; =20 +#define DASD_BUS_ID_SIZE 20 +#define DASD_CP_ENTRIES 5 + +struct dasd_copy_entry { + char busid[DASD_BUS_ID_SIZE]; + struct dasd_device *device; + bool primary; + bool configured; +}; + +struct dasd_copy_relation { + struct dasd_copy_entry entry[DASD_CP_ENTRIES]; + struct dasd_copy_entry *active; +}; + +int dasd_devmap_set_device_copy_relation(struct ccw_device *, + bool pprc_enabled); + /* * the struct dasd_discipline is * sth like a table of virtual functions, if you think of dasd_eckd @@ -420,6 +438,7 @@ struct dasd_discipline { struct dasd_ccw_req *, struct irb *); int (*ese_read)(struct dasd_ccw_req *, struct irb *); int (*pprc_status)(struct dasd_device *, struct dasd_pprc_data_sc4 *); + bool (*pprc_enabled)(struct dasd_device *); }; =20 extern struct dasd_discipline *dasd_diag_discipline_pointer; @@ -616,6 +635,7 @@ struct dasd_device { struct dasd_profile profile; struct dasd_format_entry format_entry; struct kset *paths_info; + struct dasd_copy_relation *copy; }; =20 struct dasd_block { --=20 2.43.0 From nobody Wed Oct 15 22:31:24 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5A0F22745CD; Sun, 24 Mar 2024 23:35:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323337; cv=none; b=eWG8w/3nvqXHPsxbbIL0sfMGEMJrzFpgq5lvRAtLI2Wdz0MZgb21x91yBpbBopri61iAUO/teQQ91DEcm6LFdbQCwWlN2J3ABNoJakdyQwWV+pICHSi1BEyJGjv5skzsQrDEowXT3hETXRUiUvsLxhd5lHYF77y2DCrMgjEbxVI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323337; c=relaxed/simple; bh=1uevdEvXHAOsPGA1ADrqF8fzrLL8wCgB7j2/r5OTiSU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PiRcndB8LZCBYLBa2j1ebbAFd2y+2wm+ZNjELufx1ssZWgw4VyjY1zrLBQWPFpGX2836ezrqlA1S0XZKbP9cum9A1sfdJqkevfesTAKjc8eRfv/k6okHVu3kYaGRwJQAGFKRK2XH0vEyVSb5gK9Sr7N6cetYSXm21PrfWdsKyJI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=PagDRjnj; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="PagDRjnj" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 11F2EC43394; Sun, 24 Mar 2024 23:35:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323335; bh=1uevdEvXHAOsPGA1ADrqF8fzrLL8wCgB7j2/r5OTiSU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=PagDRjnjwqWHekpsilm8vDstIyPaVvD89udmSb9zqDYIOhlxZjY5k4zw6dDc4W5m5 FaSXDn5/jqcB/NvQzNCSLFOUHbws4XthCL60ASEhew9pK3+8jl63AaW8F1+CmqbYY/ uagsfHk03ipZFBRti9YAv+y1eyP4N1vGBv98BbsbCfyXYRK/3BSN690o2yDevxQsWz vI2Bj1U35Nvr259t1EMJZGLVqpb11vXIY13QAHtIvWgJliPz5tJXgb6ItKVP770XZu mDN/jd6cyDMtGO/k9WwihCq8C1Hd+cFDXCzu99DBe+OE+0e6F6g3/DyZ1bvs2cllSz uQosrn33IrV9w== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Stefan Haberland , Jan Hoeppner , Halil Pasic , Jens Axboe , Sasha Levin Subject: [PATCH 5.15 036/317] s390/dasd: add autoquiesce feature Date: Sun, 24 Mar 2024 19:30:16 -0400 Message-ID: <20240324233458.1352854-37-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Stefan Haberland [ Upstream commit 1cee2975bbabd89df1097c354867192106b058ea ] Add the internal logic to check for autoquiesce triggers and handle them. Quiesce and resume are functions that tell Linux to stop/resume issuing I/Os to a specific DASD. The DASD driver allows a manual quiesce/resume via ioctl. Autoquiesce will define an amount of triggers that will lead to an automatic quiesce if a certain event occurs. There is no automatic resume. All events will be reported via DASD Extended Error Reporting (EER) if configured. Signed-off-by: Stefan Haberland Reviewed-by: Jan Hoeppner Reviewed-by: Halil Pasic Link: https://lore.kernel.org/r/20230405142017.2446986-3-sth@linux.ibm.com Signed-off-by: Jens Axboe Stable-dep-of: c3116e62ddef ("s390/dasd: fix double module refcount decreme= nt") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- arch/s390/include/uapi/asm/dasd.h | 2 ++ drivers/s390/block/dasd.c | 60 ++++++++++++++++++++++--------- drivers/s390/block/dasd_eer.c | 1 + drivers/s390/block/dasd_int.h | 2 ++ 4 files changed, 48 insertions(+), 17 deletions(-) diff --git a/arch/s390/include/uapi/asm/dasd.h b/arch/s390/include/uapi/asm= /dasd.h index 9ec86fae99805..188d17fc5f0c1 100644 --- a/arch/s390/include/uapi/asm/dasd.h +++ b/arch/s390/include/uapi/asm/dasd.h @@ -78,6 +78,7 @@ typedef struct dasd_information2_t { * 0x040: give access to raw eckd data * 0x080: enable discard support * 0x100: enable autodisable for IFCC errors (default) + * 0x200: enable requeue of all requests on autoquiesce */ #define DASD_FEATURE_READONLY 0x001 #define DASD_FEATURE_USEDIAG 0x002 @@ -88,6 +89,7 @@ typedef struct dasd_information2_t { #define DASD_FEATURE_USERAW 0x040 #define DASD_FEATURE_DISCARD 0x080 #define DASD_FEATURE_PATH_AUTODISABLE 0x100 +#define DASD_FEATURE_REQUEUEQUIESCE 0x200 #define DASD_FEATURE_DEFAULT DASD_FEATURE_PATH_AUTODISABLE =20 #define DASD_PARTN_BITS 2 diff --git a/drivers/s390/block/dasd.c b/drivers/s390/block/dasd.c index dc73b20e7424f..c45b6f3780ebd 100644 --- a/drivers/s390/block/dasd.c +++ b/drivers/s390/block/dasd.c @@ -84,7 +84,8 @@ static void dasd_profile_init(struct dasd_profile *, stru= ct dentry *); static void dasd_profile_exit(struct dasd_profile *); static void dasd_hosts_init(struct dentry *, struct dasd_device *); static void dasd_hosts_exit(struct dasd_device *); - +static int dasd_handle_autoquiesce(struct dasd_device *, struct dasd_ccw_r= eq *, + unsigned int); /* * SECTION: Operations on the device structure. */ @@ -2349,7 +2350,7 @@ static int _dasd_sleep_on(struct dasd_ccw_req *maincq= r, int interruptible) /* Non-temporary stop condition will trigger fail fast */ if (device->stopped & ~DASD_STOPPED_PENDING && test_bit(DASD_CQR_FLAGS_FAILFAST, &cqr->flags) && - (!dasd_eer_enabled(device))) { + !dasd_eer_enabled(device) && device->aq_mask =3D=3D 0) { cqr->status =3D DASD_CQR_FAILED; cqr->intrc =3D -ENOLINK; continue; @@ -2825,20 +2826,18 @@ static void __dasd_process_block_ccw_queue(struct d= asd_block *block, dasd_log_sense(cqr, &cqr->irb); } =20 - /* First of all call extended error reporting. */ - if (dasd_eer_enabled(base) && - cqr->status =3D=3D DASD_CQR_FAILED) { - dasd_eer_write(base, cqr, DASD_EER_FATALERROR); - - /* restart request */ + /* + * First call extended error reporting and check for autoquiesce + */ + spin_lock_irqsave(get_ccwdev_lock(base->cdev), flags); + if (cqr->status =3D=3D DASD_CQR_FAILED && + dasd_handle_autoquiesce(base, cqr, DASD_EER_FATALERROR)) { cqr->status =3D DASD_CQR_FILLED; cqr->retries =3D 255; - spin_lock_irqsave(get_ccwdev_lock(base->cdev), flags); - dasd_device_set_stop_bits(base, DASD_STOPPED_QUIESCE); - spin_unlock_irqrestore(get_ccwdev_lock(base->cdev), - flags); + spin_unlock_irqrestore(get_ccwdev_lock(base->cdev), flags); goto restart; } + spin_unlock_irqrestore(get_ccwdev_lock(base->cdev), flags); =20 /* Process finished ERP request. */ if (cqr->refers) { @@ -2880,7 +2879,7 @@ static void __dasd_block_start_head(struct dasd_block= *block) /* Non-temporary stop condition will trigger fail fast */ if (block->base->stopped & ~DASD_STOPPED_PENDING && test_bit(DASD_CQR_FLAGS_FAILFAST, &cqr->flags) && - (!dasd_eer_enabled(block->base))) { + !dasd_eer_enabled(block->base) && block->base->aq_mask =3D=3D 0) { cqr->status =3D DASD_CQR_FAILED; cqr->intrc =3D -ENOLINK; dasd_schedule_block_bh(block); @@ -3743,8 +3742,8 @@ int dasd_generic_last_path_gone(struct dasd_device *d= evice) dev_warn(&device->cdev->dev, "No operational channel path is left " "for the device\n"); DBF_DEV_EVENT(DBF_WARNING, device, "%s", "last path gone"); - /* First of all call extended error reporting. */ - dasd_eer_write(device, NULL, DASD_EER_NOPATH); + /* First call extended error reporting and check for autoquiesce. */ + dasd_handle_autoquiesce(device, NULL, DASD_EER_NOPATH); =20 if (device->state < DASD_STATE_BASIC) return 0; @@ -3877,7 +3876,8 @@ void dasd_generic_path_event(struct ccw_device *cdev,= int *path_event) "No verified channel paths remain for the device\n"); DBF_DEV_EVENT(DBF_WARNING, device, "%s", "last verified path gone"); - dasd_eer_write(device, NULL, DASD_EER_NOPATH); + /* First call extended error reporting and check for autoquiesce. */ + dasd_handle_autoquiesce(device, NULL, DASD_EER_NOPATH); dasd_device_set_stop_bits(device, DASD_STOPPED_DC_WAIT); } @@ -3899,7 +3899,8 @@ EXPORT_SYMBOL_GPL(dasd_generic_verify_path); void dasd_generic_space_exhaust(struct dasd_device *device, struct dasd_ccw_req *cqr) { - dasd_eer_write(device, NULL, DASD_EER_NOSPC); + /* First call extended error reporting and check for autoquiesce. */ + dasd_handle_autoquiesce(device, NULL, DASD_EER_NOSPC); =20 if (device->state < DASD_STATE_BASIC) return; @@ -3992,6 +3993,31 @@ void dasd_schedule_requeue(struct dasd_device *devic= e) } EXPORT_SYMBOL(dasd_schedule_requeue); =20 +static int dasd_handle_autoquiesce(struct dasd_device *device, + struct dasd_ccw_req *cqr, + unsigned int reason) +{ + /* in any case write eer message with reason */ + if (dasd_eer_enabled(device)) + dasd_eer_write(device, cqr, reason); + + if (!test_bit(reason, &device->aq_mask)) + return 0; + + /* notify eer about autoquiesce */ + if (dasd_eer_enabled(device)) + dasd_eer_write(device, NULL, DASD_EER_AUTOQUIESCE); + + pr_info("%s: The DASD has been put in the quiesce state\n", + dev_name(&device->cdev->dev)); + dasd_device_set_stop_bits(device, DASD_STOPPED_QUIESCE); + + if (device->features & DASD_FEATURE_REQUEUEQUIESCE) + dasd_schedule_requeue(device); + + return 1; +} + static struct dasd_ccw_req *dasd_generic_build_rdc(struct dasd_device *dev= ice, int rdc_buffer_size, int magic) diff --git a/drivers/s390/block/dasd_eer.c b/drivers/s390/block/dasd_eer.c index 5ae64af9ccea3..22338033e6bfb 100644 --- a/drivers/s390/block/dasd_eer.c +++ b/drivers/s390/block/dasd_eer.c @@ -387,6 +387,7 @@ void dasd_eer_write(struct dasd_device *device, struct = dasd_ccw_req *cqr, break; case DASD_EER_NOPATH: case DASD_EER_NOSPC: + case DASD_EER_AUTOQUIESCE: dasd_eer_write_standard_trigger(device, NULL, id); break; case DASD_EER_STATECHANGE: diff --git a/drivers/s390/block/dasd_int.h b/drivers/s390/block/dasd_int.h index d743d1d2b38e9..744e14a81cc48 100644 --- a/drivers/s390/block/dasd_int.h +++ b/drivers/s390/block/dasd_int.h @@ -459,6 +459,7 @@ extern struct dasd_discipline *dasd_diag_discipline_poi= nter; #define DASD_EER_STATECHANGE 3 #define DASD_EER_PPRCSUSPEND 4 #define DASD_EER_NOSPC 5 +#define DASD_EER_AUTOQUIESCE 31 =20 /* DASD path handling */ =20 @@ -636,6 +637,7 @@ struct dasd_device { struct dasd_format_entry format_entry; struct kset *paths_info; struct dasd_copy_relation *copy; + unsigned long aq_mask; }; =20 struct dasd_block { --=20 2.43.0 From nobody Wed Oct 15 22:31:24 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 03A4D2745D8; Sun, 24 Mar 2024 23:35:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323338; cv=none; b=Z6ozjCr8n4Zy+5VXD8EjP3rYEh73+UwMzvxMEdZd/HyRnIlXY3T8ydzopn4QOyzj4rPn2vDGiOkl7IjhzN3+B3+YH0sNMDzifaJGw2AXeYqLxyU1vJj2ppQ4uqNNPVwmdRYqPFF9e2rf7oJzBPXNE+QZpiJZxAPjsENHJs/4M8A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323338; c=relaxed/simple; bh=r6eqhgNkcb6EWkbMq2RF9hCEaxcmYhz8AHP6dwZcsOU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=jm/qmC3oOTQdeuUO1CV+9IRrY3PvAdTnwyWj7XHNRz0HVtZUKJV4tloVeNfBr7OGg23HW6fGNVKlnVKrIisCcvCObWPW1Qfrv2wHMoGWM/4rutYDbT/WNoTjc3ICjbSdPH2wGyTiU6ZrYgghA1UbG9S93JyF+RileMLdZeZe3E0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=bmoNW9w0; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="bmoNW9w0" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2B34BC433C7; Sun, 24 Mar 2024 23:35:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323336; bh=r6eqhgNkcb6EWkbMq2RF9hCEaxcmYhz8AHP6dwZcsOU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=bmoNW9w0JIS07CvdoDSrDxDla1HlezC4KuHUTMRQNwjLZX8bgrrl3n9o+jY4BJwe3 Pg+Mm7xO+ZcOQ6a9PiOWncBxyrcc3stTgNt5WNH2zCvdvyFUWvOr8EhuufhiQ2z33E YiJPxhttFAVbl/hv6EDJt/2rH9hcEW2z4hyrVm8xeJX9XaVp/TBUIXxz/vcd8heXz5 7hf66JKCydaaz6gxY+7+P3zBoM85x0i8RfrRi2ae3nmlnqOV8y4E8hDG0U8gD3Q3jf pBjQrxkBUBzbdWOIC05ND2gsj069B907RhTHtMxPOOEMhIkgw7FtCk89vQfHrfjMBB oQE1KT5ne5Fkw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?Jan=20H=C3=B6ppner?= , Stefan Haberland , Jens Axboe , Sasha Levin Subject: [PATCH 5.15 037/317] s390/dasd: Use dev_*() for device log messages Date: Sun, 24 Mar 2024 19:30:17 -0400 Message-ID: <20240324233458.1352854-38-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable From: Jan H=C3=B6ppner [ Upstream commit 79ae56fc475869d636071f66d9e4ef2a3819eee6 ] All log messages in dasd.c use the printk variants of pr_*(). They all add the name of the affected device manually to the log message. This can be simplified by using the dev_*() variants of printk, which include the device information and make a separate call to dev_name() unnecessary. The KMSG_COMPONENT and the pr_fmt() definition can be dropped. Note that this removes the "dasd: " prefix from the one pr_info() call in dasd_init(). However, the log message already provides all relevant information. Signed-off-by: Jan H=C3=B6ppner Reviewed-by: Stefan Haberland Signed-off-by: Stefan Haberland Link: https://lore.kernel.org/r/20240208164248.540985-10-sth@linux.ibm.com Signed-off-by: Jens Axboe Stable-dep-of: c3116e62ddef ("s390/dasd: fix double module refcount decreme= nt") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/s390/block/dasd.c | 50 +++++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 26 deletions(-) diff --git a/drivers/s390/block/dasd.c b/drivers/s390/block/dasd.c index c45b6f3780ebd..f13f76fe3f2e2 100644 --- a/drivers/s390/block/dasd.c +++ b/drivers/s390/block/dasd.c @@ -8,9 +8,6 @@ * Copyright IBM Corp. 1999, 2009 */ =20 -#define KMSG_COMPONENT "dasd" -#define pr_fmt(fmt) KMSG_COMPONENT ": " fmt - #include #include #include @@ -3451,8 +3448,7 @@ static void dasd_generic_auto_online(void *data, asyn= c_cookie_t cookie) =20 ret =3D ccw_device_set_online(cdev); if (ret) - pr_warn("%s: Setting the DASD online failed with rc=3D%d\n", - dev_name(&cdev->dev), ret); + dev_warn(&cdev->dev, "Setting the DASD online failed with rc=3D%d\n", re= t); } =20 /* @@ -3539,8 +3535,11 @@ int dasd_generic_set_online(struct ccw_device *cdev, { struct dasd_discipline *discipline; struct dasd_device *device; + struct device *dev; int rc; =20 + dev =3D &cdev->dev; + /* first online clears initial online feature flag */ dasd_set_feature(cdev, DASD_FEATURE_INITIAL_ONLINE, 0); device =3D dasd_create_device(cdev); @@ -3553,11 +3552,10 @@ int dasd_generic_set_online(struct ccw_device *cdev, /* Try to load the required module. */ rc =3D request_module(DASD_DIAG_MOD); if (rc) { - pr_warn("%s Setting the DASD online failed " - "because the required module %s " - "could not be loaded (rc=3D%d)\n", - dev_name(&cdev->dev), DASD_DIAG_MOD, - rc); + dev_warn(dev, "Setting the DASD online failed " + "because the required module %s " + "could not be loaded (rc=3D%d)\n", + DASD_DIAG_MOD, rc); dasd_delete_device(device); return -ENODEV; } @@ -3565,8 +3563,7 @@ int dasd_generic_set_online(struct ccw_device *cdev, /* Module init could have failed, so check again here after * request_module(). */ if (!dasd_diag_discipline_pointer) { - pr_warn("%s Setting the DASD online failed because of missing DIAG disc= ipline\n", - dev_name(&cdev->dev)); + dev_warn(dev, "Setting the DASD online failed because of missing DIAG d= iscipline\n"); dasd_delete_device(device); return -ENODEV; } @@ -3587,8 +3584,8 @@ int dasd_generic_set_online(struct ccw_device *cdev, /* check_device will allocate block device if necessary */ rc =3D discipline->check_device(device); if (rc) { - pr_warn("%s Setting the DASD online with discipline %s failed with rc=3D= %i\n", - dev_name(&cdev->dev), discipline->name, rc); + dev_warn(dev, "Setting the DASD online with discipline %s failed with rc= =3D%i\n", + discipline->name, rc); module_put(discipline->owner); module_put(base_discipline->owner); dasd_delete_device(device); @@ -3597,16 +3594,15 @@ int dasd_generic_set_online(struct ccw_device *cdev, =20 dasd_set_target_state(device, DASD_STATE_ONLINE); if (device->state <=3D DASD_STATE_KNOWN) { - pr_warn("%s Setting the DASD online failed because of a missing discipli= ne\n", - dev_name(&cdev->dev)); + dev_warn(dev, "Setting the DASD online failed because of a missing disci= pline\n"); rc =3D -ENODEV; dasd_set_target_state(device, DASD_STATE_NEW); if (device->block) dasd_free_block(device->block); dasd_delete_device(device); - } else - pr_debug("dasd_generic device %s found\n", - dev_name(&cdev->dev)); + } else { + dev_dbg(dev, "dasd_generic device found\n"); + } =20 wait_event(dasd_init_waitq, _wait_for_device(device)); =20 @@ -3617,10 +3613,13 @@ EXPORT_SYMBOL_GPL(dasd_generic_set_online); =20 int dasd_generic_set_offline(struct ccw_device *cdev) { + int max_count, open_count, rc; struct dasd_device *device; struct dasd_block *block; - int max_count, open_count, rc; unsigned long flags; + struct device *dev; + + dev =3D &cdev->dev; =20 rc =3D 0; spin_lock_irqsave(get_ccwdev_lock(cdev), flags); @@ -3641,11 +3640,10 @@ int dasd_generic_set_offline(struct ccw_device *cde= v) open_count =3D atomic_read(&device->block->open_count); if (open_count > max_count) { if (open_count > 0) - pr_warn("%s: The DASD cannot be set offline with open count %i\n", - dev_name(&cdev->dev), open_count); + dev_warn(dev, "The DASD cannot be set offline with open count %i\n", + open_count); else - pr_warn("%s: The DASD cannot be set offline while it is in use\n", - dev_name(&cdev->dev)); + dev_warn(dev, "The DASD cannot be set offline while it is in use\n"); rc =3D -EBUSY; goto out_err; } @@ -4008,8 +4006,8 @@ static int dasd_handle_autoquiesce(struct dasd_device= *device, if (dasd_eer_enabled(device)) dasd_eer_write(device, NULL, DASD_EER_AUTOQUIESCE); =20 - pr_info("%s: The DASD has been put in the quiesce state\n", - dev_name(&device->cdev->dev)); + dev_info(&device->cdev->dev, + "The DASD has been put in the quiesce state\n"); dasd_device_set_stop_bits(device, DASD_STOPPED_QUIESCE); =20 if (device->features & DASD_FEATURE_REQUEUEQUIESCE) --=20 2.43.0 From nobody Wed Oct 15 22:31:24 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 157572745CC; Sun, 24 Mar 2024 23:35:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323339; cv=none; b=MNweMFpuAmZUXRmdj8ZvNM+ZxaT5Asp2iQRE+d6eT41aN8bXiq9Em/U6NlsAQhP9Vo79il67Y6Ca/kO4OWT1yJ/gt+T8MV/SV0n9rWlfG+6RtKM/SLh7rAlVO1o8w4DNBKnTvZTgdNB2kNQDiznxAlIWq5M0cSeW2T4SwOf67xQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323339; c=relaxed/simple; bh=hwIpP3qFl5s5BGxFTDGp89V5e0EC0KgQIiH23cBoz3s=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=rTxnz1QHyI/aeYrKO4DZW3TFQWlW9OIf9WFsuOYSPYHX/7cwb67YjeZBjDla//qYtxuJCBI7UnhXbaIRmleTiqGGEwAPawaIEwEUL0fG+zmGZ0JOgfklviLceUQ5BR/C9PoDGyz60yN08F4hA4N9f/xzqvp2PWSjKvOK/LUXIw8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=i2Eo4NcG; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="i2Eo4NcG" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 27C0AC433F1; Sun, 24 Mar 2024 23:35:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323338; bh=hwIpP3qFl5s5BGxFTDGp89V5e0EC0KgQIiH23cBoz3s=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=i2Eo4NcGzA/T3wcROh2KYKsjDLcjRf3eGUG2MlSowtBSkMHe1T/OhS72om/3GsNvE CotWsUFNjioOPP7BHowrJ33qbQHuoNxYsm7Gycfxq5+H85q/lkv56quaTm3XTfZIST Fy2e4jRDBTOj+mj/tT5BmNPWNY0CEzfvnKdvX5NvTbX+501zfI7nN1XpZuW7ZsFFAH kANRkewje0gBQW1bXggtQ4/gCc0S7g3W5j21eP0tNFI5Oi4fu/43wpxowdsaRYxvkX b/+3dhuRPWhVHxSIpTJ0lK7u12tY98TPKPDNy0VGZ1aoQ+pCVBBjwx5hUa4C3ymrna Q/qrd3LwfgN0Q== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Miroslav Franc , =?UTF-8?q?Jan=20H=C3=B6ppner?= , Stefan Haberland , Jens Axboe , Sasha Levin Subject: [PATCH 5.15 038/317] s390/dasd: fix double module refcount decrement Date: Sun, 24 Mar 2024 19:30:18 -0400 Message-ID: <20240324233458.1352854-39-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable From: Miroslav Franc [ Upstream commit c3116e62ddeff79cae342147753ce596f01fcf06 ] Once the discipline is associated with the device, deleting the device takes care of decrementing the module's refcount. Doing it manually on this error path causes refcount to artificially decrease on each error while it should just stay the same. Fixes: c020d722b110 ("s390/dasd: fix panic during offline processing") Signed-off-by: Miroslav Franc Signed-off-by: Jan H=C3=B6ppner Signed-off-by: Stefan Haberland Link: https://lore.kernel.org/r/20240209124522.3697827-3-sth@linux.ibm.com Signed-off-by: Jens Axboe Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/s390/block/dasd.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/drivers/s390/block/dasd.c b/drivers/s390/block/dasd.c index f13f76fe3f2e2..fc33474271115 100644 --- a/drivers/s390/block/dasd.c +++ b/drivers/s390/block/dasd.c @@ -3573,12 +3573,11 @@ int dasd_generic_set_online(struct ccw_device *cdev, dasd_delete_device(device); return -EINVAL; } + device->base_discipline =3D base_discipline; if (!try_module_get(discipline->owner)) { - module_put(base_discipline->owner); dasd_delete_device(device); return -EINVAL; } - device->base_discipline =3D base_discipline; device->discipline =3D discipline; =20 /* check_device will allocate block device if necessary */ @@ -3586,8 +3585,6 @@ int dasd_generic_set_online(struct ccw_device *cdev, if (rc) { dev_warn(dev, "Setting the DASD online with discipline %s failed with rc= =3D%i\n", discipline->name, rc); - module_put(discipline->owner); - module_put(base_discipline->owner); dasd_delete_device(device); return rc; } --=20 2.43.0 From nobody Wed Oct 15 22:31:24 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 374C62745E5; Sun, 24 Mar 2024 23:35:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323339; cv=none; b=WLBIqKWz/mHhYSNTP6wyW5+1mSb3u1fs3fUStq6kI3lNEg/+NuBIaqLD7zvIF3E3ZVcWdeGgGLMTKngcwEYGY+/SyRFLcQhSNwlysdhlWjVKWzECwSewqFoP9hmXmFKXtAsr5RGDfY3Y38cX346j2bQCqVU2MfPtG6G2UlZGgeY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323339; c=relaxed/simple; bh=FkizrhtMRdtl9haji7fZL+aV1FSNBAZUfsIZg0FBaI0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=N+v+h8oYyYWBCG1xGzAmvzTqpRDBr7x6XNZslTRNDqASnlNu1m8OOeZyvIAwPNwrApzJkgI0629C9yTDKNTdWMBHY4d+qZmj8kiFP63Ws2BE2HKrF02GwK8qEhYVwsZRxHS2tDIrsSU5wYfPtpTTMGefHWNBCOO6PDvYkiCEg9I= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=mIjDvsZM; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="mIjDvsZM" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3D56BC433C7; Sun, 24 Mar 2024 23:35:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323339; bh=FkizrhtMRdtl9haji7fZL+aV1FSNBAZUfsIZg0FBaI0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=mIjDvsZMvox5tLjCb4mYs78qvkwNH2iX4IFtQ1+mNXk5dhxYzaCjAKAl6+0P2vFy3 5zZw0EfKb8m0Kul7Klp7STPzgOrrFdekA8eCB165HEKIh3TwgKfhXvRSbylAes6sPv 31g/VMnbnys6/DFpSomlKSrZBJtyy4gKSU5F+KWawuwkABoJ1VJO9yOievX0eF6mA9 G2dA2A8pSPb2TvmX0S95Qmz6E9KcA/hYHrU6/87/4aP43p7UsZr0tn2kvO5kb17lrP GtnPoCwf2zq8FoLBDPydDwN0mgQAwS9e6ig4THg2Zct2kRILG8tjLyN8NBZNBItAV8 OMljFvmCm3VFw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Navid Emamdoost , Michal Kubecek , Kees Cook , Jens Axboe , Sasha Levin Subject: [PATCH 5.15 039/317] nbd: null check for nla_nest_start Date: Sun, 24 Mar 2024 19:30:19 -0400 Message-ID: <20240324233458.1352854-40-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Navid Emamdoost [ Upstream commit 31edf4bbe0ba27fd03ac7d87eb2ee3d2a231af6d ] nla_nest_start() may fail and return NULL. Insert a check and set errno based on other call sites within the same source code. Signed-off-by: Navid Emamdoost Reviewed-by: Michal Kubecek Fixes: 47d902b90a32 ("nbd: add a status netlink command") Signed-off-by: Kees Cook Link: https://lore.kernel.org/r/20240218042534.it.206-kees@kernel.org Signed-off-by: Jens Axboe Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/block/nbd.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c index d379a047d4273..d12e9f1721c8e 100644 --- a/drivers/block/nbd.c +++ b/drivers/block/nbd.c @@ -2344,6 +2344,12 @@ static int nbd_genl_status(struct sk_buff *skb, stru= ct genl_info *info) } =20 dev_list =3D nla_nest_start_noflag(reply, NBD_ATTR_DEVICE_LIST); + if (!dev_list) { + nlmsg_free(reply); + ret =3D -EMSGSIZE; + goto out; + } + if (index =3D=3D -1) { ret =3D idr_for_each(&nbd_index_idr, &status_cb, reply); if (ret) { --=20 2.43.0 From nobody Wed Oct 15 22:31:24 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 645022745F4; Sun, 24 Mar 2024 23:35:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323341; cv=none; b=Xg99jLeMFxPc5NDyAZRRw1IZYVGGSCXmxZAaiS8DlKPfEKfPPDrgtDlafHREbDYnkMLpIx+cxWxO4eioHclZLim09JwlN8OPylJscpTXzeM51uQJ4z+Mafc0geZk3yTSNsp5KIV75humqlLB7ULtbETRYii1OEF1BnIk4OOCKBA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323341; c=relaxed/simple; bh=2QmnBqFaoclGLhXwzEZp6wAs7/ysaG7ABlc3lWoqZTU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=cim4bmchLD6GISOTSRFzXLiHJfsDVHwKj7OgLsS7kNdAjo3t2XiG+eR4YJJ9qa4H80MIq3Q9pUOxYvKJE+g5zsfVqC6RKKhJb1V/D0eZSLMnJ4NqD8RQ81Dxc9f2AVA208fXbKLCQ3WrJyx6YP9v+nTb0XxQwgPMO8Pk4O84NGM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=PF3YOJ0v; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="PF3YOJ0v" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5B9A3C433F1; Sun, 24 Mar 2024 23:35:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323340; bh=2QmnBqFaoclGLhXwzEZp6wAs7/ysaG7ABlc3lWoqZTU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=PF3YOJ0vVObS5Tx1DLsAa53Pyjo9FjTL+cHht6Y0SYuuKE6Fp/7utSp+1hHlswRSU bn4d+Ty6ysShrwymK6WDVOt7Jk7Lxm93iF2bI+Xwi2pAEwqA6n7Eb4KPijwu6g80DA QGg8PJqOHC0bmBqeg5fC++1KwtgeVXJ2uQb7nbpy5gFJ+StmIIHVhPQypWa6fmPIOo c1FBERr8ZjJHC5qpuuHBCxGH1tpCyFHvIwpkTgpnqnbht9je3xYcQNwP0vZnWv/tgb NdJ43hOZvJvcSUxsMnrea6Kvt+NK1xqUb1ROKzwAGh6CFMDk7CoIQxVfJzbt90MeYU L/1kBhAE23KHw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Arnd Bergmann , Kees Cook , Andi Kleen , Jan Kara , Christian Brauner , Sasha Levin Subject: [PATCH 5.15 040/317] fs/select: rework stack allocation hack for clang Date: Sun, 24 Mar 2024 19:30:20 -0400 Message-ID: <20240324233458.1352854-41-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Arnd Bergmann [ Upstream commit ddb9fd7a544088ed70eccbb9f85e9cc9952131c1 ] A while ago, we changed the way that select() and poll() preallocate a temporary buffer just under the size of the static warning limit of 1024 bytes, as clang was frequently going slightly above that limit. The warnings have recently returned and I took another look. As it turns out, clang is not actually inherently worse at reserving stack space, it just happens to inline do_select() into core_sys_select(), while gcc never inlines it. Annotate do_select() to never be inlined and in turn remove the special case for the allocation size. This should give the same behavior for both clang and gcc all the time and once more avoids those warnings. Fixes: ad312f95d41c ("fs/select: avoid clang stack usage warning") Signed-off-by: Arnd Bergmann Link: https://lore.kernel.org/r/20240216202352.2492798-1-arnd@kernel.org Reviewed-by: Kees Cook Reviewed-by: Andi Kleen Reviewed-by: Jan Kara Signed-off-by: Christian Brauner Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- fs/select.c | 2 +- include/linux/poll.h | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/fs/select.c b/fs/select.c index 5edffee1162c2..668a5200503ae 100644 --- a/fs/select.c +++ b/fs/select.c @@ -475,7 +475,7 @@ static inline void wait_key_set(poll_table *wait, unsig= ned long in, wait->_key |=3D POLLOUT_SET; } =20 -static int do_select(int n, fd_set_bits *fds, struct timespec64 *end_time) +static noinline_for_stack int do_select(int n, fd_set_bits *fds, struct ti= mespec64 *end_time) { ktime_t expire, *to =3D NULL; struct poll_wqueues table; diff --git a/include/linux/poll.h b/include/linux/poll.h index 1cdc32b1f1b08..7e0fdcf905d2e 100644 --- a/include/linux/poll.h +++ b/include/linux/poll.h @@ -16,11 +16,7 @@ extern struct ctl_table epoll_table[]; /* for sysctl */ /* ~832 bytes of stack space used max in sys_select/sys_poll before alloca= ting additional memory. */ -#ifdef __clang__ -#define MAX_STACK_ALLOC 768 -#else #define MAX_STACK_ALLOC 832 -#endif #define FRONTEND_STACK_ALLOC 256 #define SELECT_STACK_ALLOC FRONTEND_STACK_ALLOC #define POLL_STACK_ALLOC FRONTEND_STACK_ALLOC --=20 2.43.0 From nobody Wed Oct 15 22:31:24 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 65D6D2745F5; Sun, 24 Mar 2024 23:35:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323341; cv=none; b=iW8085G+lhepst0L2+uer9ObLAy+OAjH0sbFiXuWqypAQkPeXDt13Be0wt89th4EdRRIUPrTB4L6dO5aUO10HtQqcyCFa0ihKNDAXqKRijd7+Yqki9tckasZAjFMMLpcXQJvip5/Q9Dss8/EWwzSxsLJw1mPtrjSzRhb8ugYDSA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323341; c=relaxed/simple; bh=VKz/S+EARHQkPHWZCbtg1WoF8qFHQoAanzE/UknEQCQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=fMd/g/xP2Ly0DRUBM6hxVX9ufTnlHkCmCKQDqIq5sxYu1AAE6JL5HEUfJrlNJGW7EINLQ/Sk86DudSo7EJ/bRTFS4MbEJWnktkUuyA7o8DqEm91sy/lx2psmWHHS454N8Ymk7nR9RcMa0zUm9FsJwqvYnYk7FIBO4Tv5OMb5T/Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=iXMahLPX; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="iXMahLPX" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 87277C43399; Sun, 24 Mar 2024 23:35:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323341; bh=VKz/S+EARHQkPHWZCbtg1WoF8qFHQoAanzE/UknEQCQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=iXMahLPXUuLXXk9sUBETqjRifE1L5uORE6TjkGvAdzgwu2PP6cvyUYRFG0x60zU1o 8g4ZwF1Y1d/eyanNihoP/dR2Di7UCaCTqVZ4WqwVB8/TW9FBfYjhgI/eGWko4cogAT pwDbITKJuAm9GLCvwEnNJBG76DHl0E2lPncSbMHGA9bFMLMqC/cX8R0DMXIjUoxlvD VP030y4G8oHPdb1K6EjYO4KYxWdn4C7LoxmUHvezMpG/8AAzWXdTx8ww73mnpLPR1q kSxzvfrbV1XBqKnnnBA2xfSauhEGlwG4RlnLD7qfwRNn4iKQ5Fn5vSs6Y4ple3WtMM 9pJVYpKN+PaBQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Li Nan , Yu Kuai , Song Liu , Sasha Levin Subject: [PATCH 5.15 041/317] md: Don't clear MD_CLOSING when the raid is about to stop Date: Sun, 24 Mar 2024 19:30:21 -0400 Message-ID: <20240324233458.1352854-42-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Li Nan [ Upstream commit 9674f54e41fffaf06f6a60202e1fa4cc13de3cf5 ] The raid should not be opened anymore when it is about to be stopped. However, other processes can open it again if the flag MD_CLOSING is cleared before exiting. From now on, this flag will not be cleared when the raid will be stopped. Fixes: 065e519e71b2 ("md: MD_CLOSING needs to be cleared after called md_se= t_readonly or do_md_stop") Signed-off-by: Li Nan Reviewed-by: Yu Kuai Signed-off-by: Song Liu Link: https://lore.kernel.org/r/20240226031444.3606764-6-linan666@huaweiclo= ud.com Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/md/md.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/drivers/md/md.c b/drivers/md/md.c index a17f2f725822a..c937ad7f6b73a 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c @@ -6230,7 +6230,15 @@ static void md_clean(struct mddev *mddev) mddev->persistent =3D 0; mddev->level =3D LEVEL_NONE; mddev->clevel[0] =3D 0; - mddev->flags =3D 0; + /* + * Don't clear MD_CLOSING, or mddev can be opened again. + * 'hold_active !=3D 0' means mddev is still in the creation + * process and will be used later. + */ + if (mddev->hold_active) + mddev->flags =3D 0; + else + mddev->flags &=3D BIT_ULL_MASK(MD_CLOSING); mddev->sb_flags =3D 0; mddev->ro =3D MD_RDWR; mddev->metadata_type[0] =3D 0; @@ -7550,7 +7558,6 @@ static int md_ioctl(struct block_device *bdev, fmode_= t mode, int err =3D 0; void __user *argp =3D (void __user *)arg; struct mddev *mddev =3D NULL; - bool did_set_md_closing =3D false; =20 if (!md_ioctl_valid(cmd)) return -ENOTTY; @@ -7637,7 +7644,6 @@ static int md_ioctl(struct block_device *bdev, fmode_= t mode, err =3D -EBUSY; goto out; } - did_set_md_closing =3D true; mutex_unlock(&mddev->open_mutex); sync_blockdev(bdev); } @@ -7800,7 +7806,7 @@ static int md_ioctl(struct block_device *bdev, fmode_= t mode, mddev->hold_active =3D 0; mddev_unlock(mddev); out: - if(did_set_md_closing) + if (cmd =3D=3D STOP_ARRAY_RO || (err && cmd =3D=3D STOP_ARRAY)) clear_bit(MD_CLOSING, &mddev->flags); return err; } --=20 2.43.0 From nobody Wed Oct 15 22:31:24 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7A8A1174EF0; Sun, 24 Mar 2024 23:35:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323343; cv=none; b=G06Re2bJIR1QM6LOhq9mgW1e71gGF1WbUT0a9gnmbLZKj1/nDp44wMZjYeaea0NO+nl0wjYNpwY8kGgOhrpunu3Uqb+LBIuNpDMUZjdye2JDq1JJt+mbu/PDmF6w/y8TqOzYF3Tk2qsnd3q7EYCoZ19V58uNLoBGqM4pU9b0GfY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323343; c=relaxed/simple; bh=n7Nw90Gp/WYZo0MmZIPnH/OngeW6HI544oQSyDnp0Bg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=T5mw7OsSgt4jV3kYCnItNel9dve1Bk6b4rFdcDGm+hQ0ynzmBS/c3pF6WNxhGj6QPVrsOvvfnwF7PdoBtsvpWBZEFG1+wqZy80DO0qJyHvbJVb7aiSm/M9nEip4C7x0uxWTassyp72IiUmxKb5BOHNxGAAzZDnOwj6lKQmBPrhc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=MhAOVAFK; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="MhAOVAFK" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8A9A9C433F1; Sun, 24 Mar 2024 23:35:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323342; bh=n7Nw90Gp/WYZo0MmZIPnH/OngeW6HI544oQSyDnp0Bg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=MhAOVAFKFT38GdF2lwEfvSNo3GFyZkPNPfzbF8H0pfGlDvvoxrufP/S7k+DB8Iw7R E+Ntu++uPkc09zEJVy0HUkIRKXNCJfaoVHkbyfiUC5d1Q7FrHGtfNMdHLInpa7cbY7 7szUEm2/4M2ZgIYSQ7DgAgQ19Kj4bPM08VumCK+SK3MET2m/Itu21WXGOf44xduZDj BtNYC4vidvX07EPmS2BBsZlhisKCuDnb/3HbuLMko9n8OETmSThKwBtnaUQQQhZgkQ xfzwRc6e2vAkMPrDjt/qeKzgtSAprdjSzRO3YepvgiwgBFMX6mS6MhNrOYknubDlrK jpvyge2nxhc/g== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: David Gow , Guenter Roeck , Daniel Latypov , Shuah Khan , Sasha Levin Subject: [PATCH 5.15 042/317] lib/cmdline: Fix an invalid format specifier in an assertion msg Date: Sun, 24 Mar 2024 19:30:22 -0400 Message-ID: <20240324233458.1352854-43-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: David Gow [ Upstream commit d2733a026fc7247ba42d7a8e1b737cf14bf1df21 ] The correct format specifier for p - n (both p and n are pointers) is %td, as the type should be ptrdiff_t. This was discovered by annotating KUnit assertion macros with gcc's printf specifier, but note that gcc incorrectly suggested a %d or %ld specifier (depending on the pointer size of the architecture being built). Fixes: 0ea09083116d ("lib/cmdline: Allow get_options() to take 0 to validat= e the input") Signed-off-by: David Gow Tested-by: Guenter Roeck Reviewed-by: Daniel Latypov Signed-off-by: Shuah Khan Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- lib/cmdline_kunit.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/cmdline_kunit.c b/lib/cmdline_kunit.c index a72a2c16066ef..de7fb7476cb9a 100644 --- a/lib/cmdline_kunit.c +++ b/lib/cmdline_kunit.c @@ -124,7 +124,7 @@ static void cmdline_do_one_range_test(struct kunit *tes= t, const char *in, n, e[0], r[0]); =20 p =3D memchr_inv(&r[1], 0, sizeof(r) - sizeof(r[0])); - KUNIT_EXPECT_PTR_EQ_MSG(test, p, NULL, "in test %u at %u out of bound", n= , p - r); + KUNIT_EXPECT_PTR_EQ_MSG(test, p, NULL, "in test %u at %td out of bound", = n, p - r); } =20 static void cmdline_test_range(struct kunit *test) --=20 2.43.0 From nobody Wed Oct 15 22:31:24 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E5B861EFFEA; Sun, 24 Mar 2024 23:35:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323345; cv=none; b=MI6JIH3YdJeAwvDp6+SFFBPQcUQ1mrtdezFGQ3MHq7SVdOKaT/E/YyNUvPTBhhv5eka5Qif5PJ8RHc8v9bCYPmTwN6+F5AmaNON7Rehzqo+mrDyJ2oDS/loWm5bjZTE1g/4Lt1VOk/A12G92+uQhAluo1DXdH7xlxEjeiF1EiHU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323345; c=relaxed/simple; bh=m0x71HP1+3WNaL21MuUBueBIDkfZI+lwGDAXS1dSDuM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MJN1A14VDd4+heo31pCCLBpUniGG+SbA3AUbQWDSgl/IvfgQOCmtPQRyvEX+uKEngQXpg7vdl7QmVk65VuPbzJC69DajJoJq1Mrdt+wVU8oxRZAmgrYSL/4w6EML4hnSA3ZX5M3WFRzV/HaCea8PVLGUjjo1r8vgpj6ZKzg3rdI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Xj/UwNUG; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Xj/UwNUG" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9C8F6C43394; Sun, 24 Mar 2024 23:35:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323343; bh=m0x71HP1+3WNaL21MuUBueBIDkfZI+lwGDAXS1dSDuM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Xj/UwNUGqX6n94OjCDdl7lsHXvkw4AyPKjPDoAf5d/KdU3zNI2GWoIIQEs3zXRqKn Coa4dirrH8/Xbb3095l5B7pXNryKinxOU29dxgecRmsb50593OVuzAK/Y0vau7U2WG gGn3r5eYl2I8C+dQkzvIMXLo/49yG1RkdHNnF9pDFwkqC1RAljmfBuQzxzT+N2staD u6laoHi8IZKm5CMBkplUV+VtK1XrJ/miaAbSXKhVkaxTi6ALVQPKVmulThzg2I+svr HBFlKjWxkaqK100leDnicVuxUvECOGA7QPw0UN8ST1eK+Ql3QM9lSmOBk5qHYwD6IZ skxERhMoY6v7g== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: David Gow , Guenter Roeck , Justin Stitt , Shuah Khan , Sasha Levin Subject: [PATCH 5.15 043/317] time: test: Fix incorrect format specifier Date: Sun, 24 Mar 2024 19:30:23 -0400 Message-ID: <20240324233458.1352854-44-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: David Gow [ Upstream commit 133e267ef4a26d19c93996a874714e9f3f8c70aa ] 'days' is a s64 (from div_s64), and so should use a %lld specifier. This was found by extending KUnit's assertion macros to use gcc's __printf attribute. Fixes: 276010551664 ("time: Improve performance of time64_to_tm()") Signed-off-by: David Gow Tested-by: Guenter Roeck Reviewed-by: Justin Stitt Signed-off-by: Shuah Khan Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- kernel/time/time_test.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/time/time_test.c b/kernel/time/time_test.c index 831e8e779acef..f7c3de01197c9 100644 --- a/kernel/time/time_test.c +++ b/kernel/time/time_test.c @@ -73,7 +73,7 @@ static void time64_to_tm_test_date_range(struct kunit *te= st) =20 days =3D div_s64(secs, 86400); =20 - #define FAIL_MSG "%05ld/%02d/%02d (%2d) : %ld", \ + #define FAIL_MSG "%05ld/%02d/%02d (%2d) : %lld", \ year, month, mdday, yday, days =20 KUNIT_ASSERT_EQ_MSG(test, year - 1900, result.tm_year, FAIL_MSG); --=20 2.43.0 From nobody Wed Oct 15 22:31:24 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BD60C174EFF; Sun, 24 Mar 2024 23:35:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323344; cv=none; b=DwqlejjGhdyQDgMHE9UyiVKqsK6jJn4bkjfCDNRr2RA5YHsWsCmlqRlUVeIqgQushogQppC2XTbnPthewnY4F79XoAkMZw4PBjVRwErr9sVb6LugBYsl7ILBznzqGMx3r5GsyMPLAoo9D0rzwZrj3NxOVYtRyeQDnBsiAye4NtE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323344; c=relaxed/simple; bh=5C+htp1cj21cUDOBsDFxDwPW3yx1GRI9GjuFvV4teBA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PC4mzST8rBBNlBmhb4GhqzORGEsVmwuBxYvN/TmGXsHBv1j8L8wwN3OkT7h0nDk+FWx+gHYqUeHhJucGi48cucDMM2vc1DJQpveLnygamtmVDp+g7tY+kJRlAlOD5/zFjD+AnNoccpHFcPIIyNWIZrsLiSosIP4bHCTG87RWHGM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=tSiBD3OZ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="tSiBD3OZ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B031FC433F1; Sun, 24 Mar 2024 23:35:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323344; bh=5C+htp1cj21cUDOBsDFxDwPW3yx1GRI9GjuFvV4teBA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=tSiBD3OZj88DAG+3Q/p1lrEilovdZYivkfsvGXrA2O4bWx2Plh0KKN8KjyRXuc0sJ L0fSc2UQpQ+QKYDHkVi71wJRNsQgIXaqXJ+toEadmy0t7SPk6/y8T6qFGxMvGuRBnu W247i/vLlycMTqayVqlKDtx4wQvD8XhNY7mEx8tcodwh5ejUlcDXraRW+jbRRMxaEa 5waE0OqP8LMu+3tysXr7x8HfJB+p98pUEeoaz6+oPtvnXWuodB90RNz8hSjCz0I4MY 16kby4CcJSRSaNe04h3+ESqPPiKPSFT0lQSsm2otv8D39ezNynm0mVLVl6VdqBbjh/ qzLL65o5mn2tw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: David Gow , Guenter Roeck , Justin Stitt , Alexandre Belloni , Shuah Khan , Sasha Levin Subject: [PATCH 5.15 044/317] rtc: test: Fix invalid format specifier. Date: Sun, 24 Mar 2024 19:30:24 -0400 Message-ID: <20240324233458.1352854-45-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: David Gow [ Upstream commit 8a904a3caa88118744062e872ae90f37748a8fd8 ] 'days' is a s64 (from div_s64), and so should use a %lld specifier. This was found by extending KUnit's assertion macros to use gcc's __printf attribute. Fixes: 1d1bb12a8b18 ("rtc: Improve performance of rtc_time64_to_tm(). Add t= ests.") Signed-off-by: David Gow Tested-by: Guenter Roeck Reviewed-by: Justin Stitt Acked-by: Alexandre Belloni Signed-off-by: Shuah Khan Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/rtc/lib_test.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/rtc/lib_test.c b/drivers/rtc/lib_test.c index d5caf36c56cdc..225c859d6da55 100644 --- a/drivers/rtc/lib_test.c +++ b/drivers/rtc/lib_test.c @@ -54,7 +54,7 @@ static void rtc_time64_to_tm_test_date_range(struct kunit= *test) =20 days =3D div_s64(secs, 86400); =20 - #define FAIL_MSG "%d/%02d/%02d (%2d) : %ld", \ + #define FAIL_MSG "%d/%02d/%02d (%2d) : %lld", \ year, month, mday, yday, days =20 KUNIT_ASSERT_EQ_MSG(test, year - 1900, result.tm_year, FAIL_MSG); --=20 2.43.0 From nobody Wed Oct 15 22:31:24 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0112B219521; Sun, 24 Mar 2024 23:35:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323346; cv=none; b=trI5K1Cp4UFdfW2OX9s28hLUAhVBPF0A2fEtTZlhr7zzSJczneJTVT3yv32LOo02JXz6sZsdSI4QMItl9eHwORlU3wNoaEmUHOpXewH0q72MQZoFj1EdHetzmxbzcmiqPn3wHsvIJWzj0M5iKuichaXsL0QnTo72mCJdUyZtZWI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323346; c=relaxed/simple; bh=tR+/pQgPNGlMpnpUddcw+FzraRN/IlRHOrQOqXly7Sk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=HTUcp+5MS1J9tEsAelIHspZVjcJngGbyA7QCeTzNyK71t66zhJsIf5+GONk9y+/FUONHZKltH+hoMWGIA8vdXUko/MN7vlYN5Mp3pfe+ADVpyrZZ1k0du9Y3BHPIs++ex1BquY2QyR+WxHnKs4o0NynEX7n4hWfOGWXARqhlRmA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=l4c7SHC5; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="l4c7SHC5" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E2BE7C433C7; Sun, 24 Mar 2024 23:35:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323345; bh=tR+/pQgPNGlMpnpUddcw+FzraRN/IlRHOrQOqXly7Sk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=l4c7SHC5XyYU7AGsVjZJHuLjUjVfW8huSzBMg4NM3QGPeF/sEo3T9UwGLItubwT4p 3TTSGU+lXq/woEuRcF0O0zg0+BVyKxYNIHjxkahfBHtvK3vhqLkrWL56P4z7mZOfnj iaREIn3R3bXPN1SJVeUro2IgBkUFOpct9fBRxAytadabkx+75Njtv1lEoZo6ZmWJ/f vamW9eAboujTU3goS3ctjanRgir+ozTxoJ/R96kwDRpfRkD2/7k0wIB0SNr91QlSQd zFtN/B6tcpEiBsY2o02GssG3X/X9DOVXgbe90L2iDbO2M4cBQ9Ms+n2DySn6bbN/6F djGO6e4e6O5aQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Chun-Yi Lee , Jens Axboe , Sasha Levin Subject: [PATCH 5.15 045/317] aoe: fix the potential use-after-free problem in aoecmd_cfg_pkts Date: Sun, 24 Mar 2024 19:30:25 -0400 Message-ID: <20240324233458.1352854-46-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Chun-Yi Lee [ Upstream commit f98364e926626c678fb4b9004b75cacf92ff0662 ] This patch is against CVE-2023-6270. The description of cve is: A flaw was found in the ATA over Ethernet (AoE) driver in the Linux kernel. The aoecmd_cfg_pkts() function improperly updates the refcnt on `struct net_device`, and a use-after-free can be triggered by racing between the free on the struct and the access through the `skbtxq` global queue. This could lead to a denial of service condition or potential code execution. In aoecmd_cfg_pkts(), it always calls dev_put(ifp) when skb initial code is finished. But the net_device ifp will still be used in later tx()->dev_queue_xmit() in kthread. Which means that the dev_put(ifp) should NOT be called in the success path of skb initial code in aoecmd_cfg_pkts(). Otherwise tx() may run into use-after-free because the net_device is freed. This patch removed the dev_put(ifp) in the success path in aoecmd_cfg_pkts(), and added dev_put() after skb xmit in tx(). Link: https://nvd.nist.gov/vuln/detail/CVE-2023-6270 Fixes: 7562f876cd93 ("[NET]: Rework dev_base via list_head (v3)") Signed-off-by: Chun-Yi Lee Link: https://lore.kernel.org/r/20240305082048.25526-1-jlee@suse.com Signed-off-by: Jens Axboe Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/block/aoe/aoecmd.c | 12 ++++++------ drivers/block/aoe/aoenet.c | 1 + 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/block/aoe/aoecmd.c b/drivers/block/aoe/aoecmd.c index 588889bea7c30..a6e5306f725b3 100644 --- a/drivers/block/aoe/aoecmd.c +++ b/drivers/block/aoe/aoecmd.c @@ -420,13 +420,16 @@ aoecmd_cfg_pkts(ushort aoemajor, unsigned char aoemin= or, struct sk_buff_head *qu rcu_read_lock(); for_each_netdev_rcu(&init_net, ifp) { dev_hold(ifp); - if (!is_aoe_netif(ifp)) - goto cont; + if (!is_aoe_netif(ifp)) { + dev_put(ifp); + continue; + } =20 skb =3D new_skb(sizeof *h + sizeof *ch); if (skb =3D=3D NULL) { printk(KERN_INFO "aoe: skb alloc failure\n"); - goto cont; + dev_put(ifp); + continue; } skb_put(skb, sizeof *h + sizeof *ch); skb->dev =3D ifp; @@ -441,9 +444,6 @@ aoecmd_cfg_pkts(ushort aoemajor, unsigned char aoeminor= , struct sk_buff_head *qu h->major =3D cpu_to_be16(aoemajor); h->minor =3D aoeminor; h->cmd =3D AOECMD_CFG; - -cont: - dev_put(ifp); } rcu_read_unlock(); } diff --git a/drivers/block/aoe/aoenet.c b/drivers/block/aoe/aoenet.c index 63773a90581dd..1e66c7a188a12 100644 --- a/drivers/block/aoe/aoenet.c +++ b/drivers/block/aoe/aoenet.c @@ -64,6 +64,7 @@ tx(int id) __must_hold(&txlock) pr_warn("aoe: packet could not be sent on %s. %s\n", ifp ? ifp->name : "netif", "consider increasing tx_queue_len"); + dev_put(ifp); spin_lock_irq(&txlock); } return 0; --=20 2.43.0 From nobody Wed Oct 15 22:31:24 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A7F04219533; Sun, 24 Mar 2024 23:35:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323347; cv=none; b=fKtHDCv+2oScg3N0EYFJBRJUJ5CLdW/yKnVASv9yjhGRxxMniYyO896RU2lN3xxns7XG35BB5IY7CWM+VftVKBMhWnikGYy2mYFBzTnvPhqO2y0fly2Wo+HEEAC+6keOz9y4KXlZ7I9IGUVPAUYaAU1+8UEkhM2VXxRRsawGdWI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323347; c=relaxed/simple; bh=cNs+3/cbxq/GxMxjAmY9I2UQAXHhTV2V/4AaQn7m6nI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=KOodsMW+KgPRgEX1qSqvl7WbkU+WIcQdSVUWTPkcCD8dZNr53AonnultiT+3ZrgPgMQ7SDQoLxK6LXTH7q23rPggKN8vTmGkFWWlN5zwLtsL38TqQVW8q8plMhpdz1tUmKzJr7jO2VsIe2RIC9+04HZscwE/HN6Ov8C8NwGLD54= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=VElcKbyE; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="VElcKbyE" Received: by smtp.kernel.org (Postfix) with ESMTPSA id CB04FC43394; Sun, 24 Mar 2024 23:35:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323346; bh=cNs+3/cbxq/GxMxjAmY9I2UQAXHhTV2V/4AaQn7m6nI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=VElcKbyE7RgO/NCEzTdIhsGmsPxjqw3jhfjY2291cA9deAyv9k0RHmGQ6rnGNWziH cktP1/6THbhnHZLXqYCClPUOqwTofMOARNtuAeuV/BQTJttdnrub1TMLPrfnhilul4 oM32gC6Fzi9Aun6+oP8j1K2FwRsDblAaCmnah78WEyh4dEOzXhVBvPHdESr+43ybLJ 2R7q22TiLRpzmpRsQDSKZYcU4aHMBJu+jmdpcLuJNyFO8veyyEhdSBsUvL4fV8ahmX 2GE28qvrJkobmpMJrxYXC5I4civq/bb2Ne0KNEgik9eFcyjoaqkGfvA/6nwY2voBs4 cdoauM7u34GKQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Peter Hilber , Thomas Gleixner , John Stultz , Sasha Levin Subject: [PATCH 5.15 046/317] timekeeping: Fix cross-timestamp interpolation on counter wrap Date: Sun, 24 Mar 2024 19:30:26 -0400 Message-ID: <20240324233458.1352854-47-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Peter Hilber [ Upstream commit 84dccadd3e2a3f1a373826ad71e5ced5e76b0c00 ] cycle_between() decides whether get_device_system_crosststamp() will interpolate for older counter readings. cycle_between() yields wrong results for a counter wrap-around where after < before < test, and for the case after < test < before. Fix the comparison logic. Fixes: 2c756feb18d9 ("time: Add history to cross timestamp interface suppor= ting slower devices") Signed-off-by: Peter Hilber Signed-off-by: Thomas Gleixner Acked-by: John Stultz Link: https://lore.kernel.org/r/20231218073849.35294-2-peter.hilber@opensyn= ergy.com Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- kernel/time/timekeeping.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c index d921c1b256cf5..985aa75eedb24 100644 --- a/kernel/time/timekeeping.c +++ b/kernel/time/timekeeping.c @@ -1169,7 +1169,7 @@ static bool cycle_between(u64 before, u64 test, u64 a= fter) { if (test > before && test < after) return true; - if (test < before && before > after) + if (before > after && (test > before || test < after)) return true; return false; } --=20 2.43.0 From nobody Wed Oct 15 22:31:24 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D0F43219534; Sun, 24 Mar 2024 23:35:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323347; cv=none; b=g4daSh9PEqkjwlFGOQFV071ZwzUMPobkiPvqQTTvjwUEIhWENcZaTep+rdBbL5fXBZdK3hHq3t2ktZauZ+FkK63NbjeJL/U67gFJGZ9hIj8bUrmjlMLknl48jWKxqno9dyioyhJmu8W0QMcGP/+2M/BmchGBhdXDd3LNffeqWzM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323347; c=relaxed/simple; bh=Ys1n7KO/doY4y5NcqibK4xwVEo5LrW7J0qV0kpbP6Ts=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=F601oaDswYJ66YYJ5KhL6yePG6Hxs7ZFeccd2sDkV+gSW/d3U3PQxUPZDxqkolCKTRGQJB4nWIXYFowXhIRh0M4GM+sXgrwDEBZxpWNs059Z69aXbeYWYaa0GkuWUueXlQtGetIqPDj5RJREsDad8J8tBbyeadnOFYe+dNvlZ8g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ql0tLyGU; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ql0tLyGU" Received: by smtp.kernel.org (Postfix) with ESMTPSA id CC391C433C7; Sun, 24 Mar 2024 23:35:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323347; bh=Ys1n7KO/doY4y5NcqibK4xwVEo5LrW7J0qV0kpbP6Ts=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ql0tLyGUOsE5mmja6c+Wpl/kmH2ORNFqCiGhKIbSVAdL4y8L581CLC/YCjKVuawD9 iSrxndixtJ+VIkz7yUyvOuXpCqJZrhFRyUejigLRRpkM5I8lfu++YoCHW4cJMtxu5n ZRcmM81bZqn1qhqQuQtWZCZPn3g72dSvFJVMGhHnyzhWR3R7SkD78dbUDtptNzuNmn KvpLNU8+VzXme0xX7ka9v0+LRFP8lypfTPZ03aeO3SBs2b/bFV3hxDi4aMZVCkxS0x cckawjNfqRh6DvCnkqsyFm9IyP3a+/0woDQDAiOPA5UQK/QMUjYjRdPRYN9Il8t65a YepGTBNbEg0eQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Peter Hilber , Thomas Gleixner , Sasha Levin Subject: [PATCH 5.15 047/317] timekeeping: Fix cross-timestamp interpolation corner case decision Date: Sun, 24 Mar 2024 19:30:27 -0400 Message-ID: <20240324233458.1352854-48-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Peter Hilber [ Upstream commit 87a41130881995f82f7adbafbfeddaebfb35f0ef ] The cycle_between() helper checks if parameter test is in the open interval (before, after). Colloquially speaking, this also applies to the counter wrap-around special case before > after. get_device_system_crosststamp() currently uses cycle_between() at the first call site to decide whether to interpolate for older counter readings. get_device_system_crosststamp() has the following problem with cycle_between() testing against an open interval: Assume that, by chance, cycles =3D=3D tk->tkr_mono.cycle_last (in the following, "cycle_last" for brevity). Then, cycle_between() at the first call site, with effective argument values cycle_between(cycle_last, cycles, now), returns false, enabling interpolation. During interpolation, get_device_system_crosststamp() will then call cycle_between() at the second call site (if a history_begin was supplied). The effective argument values are cycle_between(history_begin->cycles, cycles, cycles), since system_counterval.cycles =3D=3D interval_start =3D=3D cycles, per the assum= ption. Due to the test against the open interval, cycle_between() returns false again. This causes get_device_system_crosststamp() to return -EINVAL. This failure should be avoided, since get_device_system_crosststamp() works both when cycles follows cycle_last (no interpolation), and when cycles precedes cycle_last (interpolation). For the case cycles =3D=3D cycle_last, interpolation is actually unneeded. Fix this by changing cycle_between() into timestamp_in_interval(), which now checks against the closed interval, rather than the open interval. This changes the get_device_system_crosststamp() behavior for three corner cases: 1. Bypass interpolation in the case cycles =3D=3D tk->tkr_mono.cycle_last, fixing the problem described above. 2. At the first timestamp_in_interval() call site, cycles =3D=3D now no lon= ger causes failure. 3. At the second timestamp_in_interval() call site, history_begin->cycles =3D=3D system_counterval.cycles no longer causes failure. adjust_historical_crosststamp() also works for this corner case, where partial_history_cycles =3D=3D total_history_cycles. These behavioral changes should not cause any problems. Fixes: 2c756feb18d9 ("time: Add history to cross timestamp interface suppor= ting slower devices") Signed-off-by: Peter Hilber Signed-off-by: Thomas Gleixner Link: https://lore.kernel.org/r/20231218073849.35294-3-peter.hilber@opensyn= ergy.com Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- kernel/time/timekeeping.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c index 985aa75eedb24..d21280b3b2ea7 100644 --- a/kernel/time/timekeeping.c +++ b/kernel/time/timekeeping.c @@ -1163,13 +1163,15 @@ static int adjust_historical_crosststamp(struct sys= tem_time_snapshot *history, } =20 /* - * cycle_between - true if test occurs chronologically between before and = after + * timestamp_in_interval - true if ts is chronologically in [start, end] + * + * True if ts occurs chronologically at or after start, and before or at e= nd. */ -static bool cycle_between(u64 before, u64 test, u64 after) +static bool timestamp_in_interval(u64 start, u64 end, u64 ts) { - if (test > before && test < after) + if (ts >=3D start && ts <=3D end) return true; - if (before > after && (test > before || test < after)) + if (start > end && (ts >=3D start || ts <=3D end)) return true; return false; } @@ -1229,7 +1231,7 @@ int get_device_system_crosststamp(int (*get_time_fn) */ now =3D tk_clock_read(&tk->tkr_mono); interval_start =3D tk->tkr_mono.cycle_last; - if (!cycle_between(interval_start, cycles, now)) { + if (!timestamp_in_interval(interval_start, now, cycles)) { clock_was_set_seq =3D tk->clock_was_set_seq; cs_was_changed_seq =3D tk->cs_was_changed_seq; cycles =3D interval_start; @@ -1260,13 +1262,13 @@ int get_device_system_crosststamp(int (*get_time_fn) bool discontinuity; =20 /* - * Check that the counter value occurs after the provided + * Check that the counter value is not before the provided * history reference and that the history doesn't cross a * clocksource change */ if (!history_begin || - !cycle_between(history_begin->cycles, - system_counterval.cycles, cycles) || + !timestamp_in_interval(history_begin->cycles, + cycles, system_counterval.cycles) || history_begin->cs_was_changed_seq !=3D cs_was_changed_seq) return -EINVAL; partial_history_cycles =3D cycles - system_counterval.cycles; --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9042821953A; Sun, 24 Mar 2024 23:35:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323349; cv=none; b=LfUvWYuRgOtOQyRzYQLpw5/o9kprUB7EX7GaSMckYHS2rVnDslRnQEJz5S9Ei38wGH1Swt/+tIF558DlJcZ7HEXfSvwYUXkBrNDp9xpeenvWA8mR79mXggUIkKijI0Yu39d7LH6cDAND5XP+U2LiyyHjk7aF10Nk3VeUHeGwOZs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323349; c=relaxed/simple; bh=2REYRR3vG1n+VWSclweLeQyiFhonzjceeaMjCWgigcQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=WQW6DXAa8QqWgBpNxTxoWmmUZimgYmkgaWwZMwCqFJJz/8t+ERMaSzaBhNlCXzjxYhb8fRVwHp3W4A+8lzhXcNv3QRcSa1cOfj2WMAt5dlGk7t+FEl7Oouu4xFVvV1UNrtPOMy/IEQ1LNdLIFqnzpDJWD9f1nl4UfYLYN0L16E8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=EuFP+JKw; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="EuFP+JKw" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B12A9C43399; Sun, 24 Mar 2024 23:35:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323348; bh=2REYRR3vG1n+VWSclweLeQyiFhonzjceeaMjCWgigcQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=EuFP+JKwDWZ2QMxy3PlPHv9vBrij9FvmvMZrzwgHa2UxoEbo4FAo4obU4ljN9NzXy QLer94242o2sxl0ww4i2AIMS+vQAxuowBaaUbYRknp5YnTcID2Pd7xgsaTdRuSgqPB qCBU7WrUlnIY97Vmoa+44MCS3pbGULXWPObuBcTzclwpnuXgJecismKhnk5SdryZlq naxs/BAh+KEBvVceKdOWbCZbBAK4oPHXcqyH3p6YXVBru0NoYVm2PKiBhMywcAKpBY oX+BgWNG5cq2Wj0zexOAYeDC8H4leEV3d9gbq5waJH31wNQH+KvQlHAOuEycGQ4zAD MoIzDaw+lJJvA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Peter Hilber , Thomas Gleixner , John Stultz , Sasha Levin Subject: [PATCH 5.15 048/317] timekeeping: Fix cross-timestamp interpolation for non-x86 Date: Sun, 24 Mar 2024 19:30:28 -0400 Message-ID: <20240324233458.1352854-49-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Peter Hilber [ Upstream commit 14274d0bd31b4debf28284604589f596ad2e99f2 ] So far, get_device_system_crosststamp() unconditionally passes system_counterval.cycles to timekeeping_cycles_to_ns(). But when interpolating system time (do_interp =3D=3D true), system_counterval.cycles= is before tkr_mono.cycle_last, contrary to the timekeeping_cycles_to_ns() expectations. On x86, CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE will mitigate on interpolating, setting delta to 0. With delta =3D=3D 0, xtstamp->sys_monoraw and xtstamp->sys_realtime are then set to the last update time, as implicitly expected by adjust_historical_crosststamp(). On other architectures, the resulting nonsense xtstamp->sys_monoraw and xtstamp->sys_realtime corrupt the xtstamp (ts) adjustment in adjust_historical_crosststamp(). Fix this by deriving xtstamp->sys_monoraw and xtstamp->sys_realtime from the last update time when interpolating, by using the local variable "cycles". The local variable already has the right value when interpolating, unlike system_counterval.cycles. Fixes: 2c756feb18d9 ("time: Add history to cross timestamp interface suppor= ting slower devices") Signed-off-by: Peter Hilber Signed-off-by: Thomas Gleixner Acked-by: John Stultz Link: https://lore.kernel.org/r/20231218073849.35294-4-peter.hilber@opensyn= ergy.com Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- kernel/time/timekeeping.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c index d21280b3b2ea7..dfa6649c490de 100644 --- a/kernel/time/timekeeping.c +++ b/kernel/time/timekeeping.c @@ -1244,10 +1244,8 @@ int get_device_system_crosststamp(int (*get_time_fn) tk_core.timekeeper.offs_real); base_raw =3D tk->tkr_raw.base; =20 - nsec_real =3D timekeeping_cycles_to_ns(&tk->tkr_mono, - system_counterval.cycles); - nsec_raw =3D timekeeping_cycles_to_ns(&tk->tkr_raw, - system_counterval.cycles); + nsec_real =3D timekeeping_cycles_to_ns(&tk->tkr_mono, cycles); + nsec_raw =3D timekeeping_cycles_to_ns(&tk->tkr_raw, cycles); } while (read_seqcount_retry(&tk_core.seq, seq)); =20 xtstamp->sys_realtime =3D ktime_add_ns(base_real, nsec_real); --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 92F39219542; Sun, 24 Mar 2024 23:35:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323350; cv=none; b=st3gsPTb74AiTLGGeEl/NH07NL7TdPSdzZPxtKl/Svus16snX1SKblne9sLBa9p9BfKbkblEJpFj9QJ7dbuaDP51PdnpWmv+TwEu88IxAFP0vGI117qYQW2R2jRFuInxC4e0QbonFLGdqgLO2HkFPuSPDDWr4WTvavxNp0myIu4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323350; c=relaxed/simple; bh=Pym40Mvyrep7NQDgHM/rPOEdnrvgk4WaB7EzFAhrMDA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=AIHN/GmjGgOusZ0WGpHyBD1fQjSWJAjO13V9m0PyXnQ87ITFNiue0QzPMkyOpIKb0jW6qSa6MQYqB9sBzjiFudQix9SWtarM7u3o/Q6ESpcznKuRKB5E0KhdptyYwik++k5kqnJaNe3blzXPoHGJWTSMcWJqKYIsM9Rje9jb9XQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=cKvp1USC; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="cKvp1USC" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B65C7C433C7; Sun, 24 Mar 2024 23:35:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323349; bh=Pym40Mvyrep7NQDgHM/rPOEdnrvgk4WaB7EzFAhrMDA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cKvp1USCugjwSb5gECxI7l3u3cQIdzqFo/JZ9XDB6AQZHvc55lT0+aYhXUi45ymFW xtNOsa5iqdO93gQ3koE48Ck11jQJf5iRdtqGCSpCPhuxzKZuauY9Sc7lmtoC0Bg6vJ xd9WWTxmnlQXfhf+mm+9QtyYlp3T0V+sPXP5DA74dGJFAHzYQUvlsv4hncJjkRMabF aL9ce+izv/nAqCQmc1WSY2xLDdeP6nY4xuqmZU/CCvm5aj+fdcqJA2v6YUuW56oIfT JnHJqg5qpC7TJ6c12lKr62ohnLAgACW3NTLWc19r0nBrRZjFpnpx8w7jupZ7mHcARk TT8A/y0Pxi5Vw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Keisuke Nishimura , Julia Lawall , Ingo Molnar , Sasha Levin Subject: [PATCH 5.15 049/317] sched/fair: Take the scheduling domain into account in select_idle_core() Date: Sun, 24 Mar 2024 19:30:29 -0400 Message-ID: <20240324233458.1352854-50-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Keisuke Nishimura [ Upstream commit 23d04d8c6b8ec339057264659b7834027f3e6a63 ] When picking a CPU on task wakeup, select_idle_core() has to take into account the scheduling domain where the function looks for the CPU. This is because the "isolcpus" kernel command line option can remove CPUs from the domain to isolate them from other SMT siblings. This change replaces the set of CPUs allowed to run the task from p->cpus_ptr by the intersection of p->cpus_ptr and sched_domain_span(sd) which is stored in the 'cpus' argument provided by select_idle_cpu(). Fixes: 9fe1f127b913 ("sched/fair: Merge select_idle_core/cpu()") Signed-off-by: Keisuke Nishimura Signed-off-by: Julia Lawall Signed-off-by: Ingo Molnar Link: https://lore.kernel.org/r/20240110131707.437301-2-keisuke.nishimura@i= nria.fr Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- kernel/sched/fair.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index b55d51b4105cd..4a1393405a6fe 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -6394,7 +6394,7 @@ static int select_idle_core(struct task_struct *p, in= t core, struct cpumask *cpu if (!available_idle_cpu(cpu)) { idle =3D false; if (*idle_cpu =3D=3D -1) { - if (sched_idle_cpu(cpu) && cpumask_test_cpu(cpu, p->cpus_ptr)) { + if (sched_idle_cpu(cpu) && cpumask_test_cpu(cpu, cpus)) { *idle_cpu =3D cpu; break; } @@ -6402,7 +6402,7 @@ static int select_idle_core(struct task_struct *p, in= t core, struct cpumask *cpu } break; } - if (*idle_cpu =3D=3D -1 && cpumask_test_cpu(cpu, p->cpus_ptr)) + if (*idle_cpu =3D=3D -1 && cpumask_test_cpu(cpu, cpus)) *idle_cpu =3D cpu; } =20 --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 94132219543; Sun, 24 Mar 2024 23:35:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323350; cv=none; b=Tq4aB4bPRUEaka2S3wP0kuwGdzBGtHA4w0Z1oA36GSJt2Jl8hk7Dl4sKMIjHNbLByAwjY8DMNyl47QEF1FKdTfNa5T0uiTOexupRyJ+Osh02pWiljIhMsivf1YfawDHGdEin2SyrBN6/UgFKWzqwSJ7lo691BizYDvGR8tb9wvk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323350; c=relaxed/simple; bh=xmtqkWTODmXjADlJwYaL6d+EDtCCdjOUJyLKvhJG4/M=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=eiEuITcp6uTmW9WLyxDPit073NVDLiLlAYCtp0NEWBmXR2dU/Egy2+/MWPqekyC1+RJpuKACUN0Mx51KnZqOv5CnzuwEX21JUbqGXfZN7KxYBZFhJCA10tD1ZdmflJPsqvyL355q32FdCZk6F8LbumGIY2g0b/cfAb1EogZblQw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=nK9QyzRo; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="nK9QyzRo" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B872DC43399; Sun, 24 Mar 2024 23:35:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323350; bh=xmtqkWTODmXjADlJwYaL6d+EDtCCdjOUJyLKvhJG4/M=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nK9QyzRoYruGQffyGtTLrPHNSQ2H3ua9UWVc8C94VlVLQWrI7pol5lepGZggnG5Dg VwzWdGoe5GvWleXiP1k0nW0FCHEBiNKFH0dOJ8n+GltqieRWJI6UOT68FBg8dTN9a+ Lkl5FPXP2w1aXNRPB+y93hnJtg9Ki1pFWoPzZm1UKb9TQj8Sn/1xhWgXr24C2lF1C/ ERVP5fcLS3ob3XcMh7/PJRJ/TYjn1Y0FXb4pSwk4LCbyVQBf2q0DfjbQhZBfaWg9B8 EdE4o9Jx2+5UxJG+oHwvImrTWQNAoMgGszV3ScUt0644tYLjhO9i0RoRJbFR0iM+NI gFKC23raE3TxQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Xingyuan Mo , Jeff Johnson , Kalle Valo , Sasha Levin Subject: [PATCH 5.15 050/317] wifi: ath10k: fix NULL pointer dereference in ath10k_wmi_tlv_op_pull_mgmt_tx_compl_ev() Date: Sun, 24 Mar 2024 19:30:30 -0400 Message-ID: <20240324233458.1352854-51-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Xingyuan Mo [ Upstream commit ad25ee36f00172f7d53242dc77c69fff7ced0755 ] We should check whether the WMI_TLV_TAG_STRUCT_MGMT_TX_COMPL_EVENT tlv is present before accessing it, otherwise a null pointer deference error will occur. Fixes: dc405152bb64 ("ath10k: handle mgmt tx completion event") Signed-off-by: Xingyuan Mo Acked-by: Jeff Johnson Signed-off-by: Kalle Valo Link: https://msgid.link/20231208043433.271449-1-hdthky0@gmail.com Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/net/wireless/ath/ath10k/wmi-tlv.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/net/wireless/ath/ath10k/wmi-tlv.c b/drivers/net/wirele= ss/ath/ath10k/wmi-tlv.c index 7efbe03fbca82..d5dafbecc1845 100644 --- a/drivers/net/wireless/ath/ath10k/wmi-tlv.c +++ b/drivers/net/wireless/ath/ath10k/wmi-tlv.c @@ -844,6 +844,10 @@ ath10k_wmi_tlv_op_pull_mgmt_tx_compl_ev(struct ath10k = *ar, struct sk_buff *skb, } =20 ev =3D tb[WMI_TLV_TAG_STRUCT_MGMT_TX_COMPL_EVENT]; + if (!ev) { + kfree(tb); + return -EPROTO; + } =20 arg->desc_id =3D ev->desc_id; arg->status =3D ev->status; --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9795821954C; Sun, 24 Mar 2024 23:35:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323352; cv=none; b=n67H+FTVuvJTXjg9VoM0W4iHyHaOOrb2vZ80KemrTtmSlKJMagVJurAGUzEdUGVlj2ueBtvBS60vRSThtaNQor/PyRHyUA9frPxKR4tStA3eaXSLnr+2Mpmx3xCvrhLH6egZU9SQNEJ7w6ti1jwiamQ6Tqb2EOTsf3pADEZvnQ0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323352; c=relaxed/simple; bh=b/5s7QGVGOrCuOtXOJt/WL9bT1hmlf6/D8yCh5Oa4Bo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=GtlF36FidGRD6kq1vJSwqAb0FfHc1spxUb4s91/yu7PcgfvETLWVbN/QRSK5x0AARbdmEqw+d50PfXQQqoXila9YG1JbTekOxtlDvvlo2eur711/LpInEW3CtGw+JRJUjD+9PAPE6Ia8aihr0sHVlE8U0cNOZWtCcDSA/PVJu1Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Il73URGv; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Il73URGv" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B94F8C433F1; Sun, 24 Mar 2024 23:35:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323351; bh=b/5s7QGVGOrCuOtXOJt/WL9bT1hmlf6/D8yCh5Oa4Bo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Il73URGvN0oX2XdM4eXuooacPVhhef7Hn3oDM+hOXmYwTd41bc7jjad7YjarAq2sv ciH1WbIfjDFidcEo47j0D7iyHPN70/8wPzYifU0ObIz+3cjtc6A97qhGhkmLL7yJUL XBy2XbwpVB/0eSGOzUuerJMWZA3O+n+qFRlx5uaThFcbh90qoCfcKNauMqota3gguv QekZDf1yWe9nKXdQDdhc0zlYRhJ2ZAJpmFUPcDGXslOnH0SUDR26Z6jdAn9I049kCB qrV4Qd8gX1AbmH1XJ23KnGOxzagic4wQMWgPN3YUxPHkpvIf2gK1SXzrmO3qFli00u k8hk6dOJTQTng== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Rahul Rameshbabu , Julian Calaby , Kalle Valo , Sasha Levin Subject: [PATCH 5.15 051/317] wifi: b43: Stop/wake correct queue in DMA Tx path when QoS is disabled Date: Sun, 24 Mar 2024 19:30:31 -0400 Message-ID: <20240324233458.1352854-52-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Rahul Rameshbabu [ Upstream commit 9636951e4468f02c72cc75a82dc65d003077edbc ] When QoS is disabled, the queue priority value will not map to the correct ieee80211 queue since there is only one queue. Stop/wake queue 0 when QoS is disabled to prevent trying to stop/wake a non-existent queue and failing to stop/wake the actual queue instantiated. Log of issue before change (with kernel parameter qos=3D0): [ +5.112651] ------------[ cut here ]------------ [ +0.000005] WARNING: CPU: 7 PID: 25513 at net/mac80211/util.c:449 __i= eee80211_wake_queue+0xd5/0x180 [mac80211] [ +0.000067] Modules linked in: b43(O) snd_seq_dummy snd_hrtimer snd_s= eq snd_seq_device nft_chain_nat xt_MASQUERADE nf_nat xfrm_user xfrm_algo xt= _addrtype overlay ccm af_packet amdgpu snd_hda_codec_cirrus snd_hda_codec_g= eneric ledtrig_audio drm_exec amdxcp gpu_sched xt_conntrack nf_conntrack nf= _defrag_ipv6 nf_defrag_ipv4 ip6t_rpfilter ipt_rpfilter xt_pkttype xt_LOG nf= _log_syslog xt_tcpudp nft_compat nf_tables nfnetlink sch_fq_codel btusb uin= put iTCO_wdt ctr btrtl intel_pmc_bxt i915 intel_rapl_msr mei_hdcp mei_pxp j= oydev at24 watchdog btintel atkbd libps2 serio radeon btbcm vivaldi_fmap bt= mtk intel_rapl_common snd_hda_codec_hdmi bluetooth uvcvideo nls_iso8859_1 a= pplesmc nls_cp437 x86_pkg_temp_thermal snd_hda_intel intel_powerclamp vfat = videobuf2_vmalloc coretemp fat snd_intel_dspcfg crc32_pclmul uvc polyval_cl= mulni snd_intel_sdw_acpi loop videobuf2_memops snd_hda_codec tun drm_suball= oc_helper polyval_generic drm_ttm_helper drm_buddy tap ecdh_generic videobu= f2_v4l2 gf128mul macvlan ttm ghash_clmulni_intel ecc tg3 [ +0.000044] videodev bridge snd_hda_core rapl crc16 drm_display_help= er cec mousedev snd_hwdep evdev intel_cstate bcm5974 hid_appleir videobuf2_= common stp mac_hid libphy snd_pcm drm_kms_helper acpi_als mei_me intel_unco= re llc mc snd_timer intel_gtt industrialio_triggered_buffer apple_mfi_fastc= harge i2c_i801 mei snd lpc_ich agpgart ptp i2c_smbus thunderbolt apple_gmux= i2c_algo_bit kfifo_buf video industrialio soundcore pps_core wmi tiny_powe= r_button sbs sbshc button ac cordic bcma mac80211 cfg80211 ssb rfkill libar= c4 kvm_intel kvm drm irqbypass fuse backlight firmware_class efi_pstore con= figfs efivarfs dmi_sysfs ip_tables x_tables autofs4 dm_crypt cbc encrypted_= keys trusted asn1_encoder tee tpm rng_core input_leds hid_apple led_class h= id_generic usbhid hid sd_mod t10_pi crc64_rocksoft crc64 crc_t10dif crct10d= if_generic ahci libahci libata uhci_hcd ehci_pci ehci_hcd crct10dif_pclmul = crct10dif_common sha512_ssse3 sha512_generic sha256_ssse3 sha1_ssse3 aesni_= intel usbcore scsi_mod libaes crypto_simd cryptd scsi_common [ +0.000055] usb_common rtc_cmos btrfs blake2b_generic libcrc32c crc3= 2c_generic crc32c_intel xor raid6_pq dm_snapshot dm_bufio dm_mod dax [last = unloaded: b43(O)] [ +0.000009] CPU: 7 PID: 25513 Comm: irq/17-b43 Tainted: G W O= 6.6.7 #1-NixOS [ +0.000003] Hardware name: Apple Inc. MacBookPro8,3/Mac-942459F5819B1= 71B, BIOS 87.0.0.0.0 06/13/2019 [ +0.000001] RIP: 0010:__ieee80211_wake_queue+0xd5/0x180 [mac80211] [ +0.000046] Code: 00 45 85 e4 0f 85 9b 00 00 00 48 8d bd 40 09 00 00 = f0 48 0f ba ad 48 09 00 00 00 72 0f 5b 5d 41 5c 41 5d 41 5e e9 cb 6d 3c d0 = <0f> 0b 5b 5d 41 5c 41 5d 41 5e c3 cc cc cc cc 48 8d b4 16 94 00 00 [ +0.000002] RSP: 0018:ffffc90003c77d60 EFLAGS: 00010097 [ +0.000001] RAX: 0000000000000001 RBX: 0000000000000002 RCX: 00000000= 00000000 [ +0.000001] RDX: 0000000000000000 RSI: 0000000000000002 RDI: ffff8882= 0b924900 [ +0.000002] RBP: ffff88820b924900 R08: ffffc90003c77d90 R09: 00000000= 0003bfd0 [ +0.000001] R10: ffff88820b924900 R11: ffffc90003c77c68 R12: 00000000= 00000000 [ +0.000001] R13: 0000000000000000 R14: ffffc90003c77d90 R15: ffffffff= c0fa6f40 [ +0.000001] FS: 0000000000000000(0000) GS:ffff88846fb80000(0000) knl= GS:0000000000000000 [ +0.000001] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ +0.000001] CR2: 00007fafda7ae008 CR3: 000000046d220005 CR4: 00000000= 000606e0 [ +0.000002] Call Trace: [ +0.000003] [ +0.000001] ? __ieee80211_wake_queue+0xd5/0x180 [mac80211] [ +0.000044] ? __warn+0x81/0x130 [ +0.000005] ? __ieee80211_wake_queue+0xd5/0x180 [mac80211] [ +0.000045] ? report_bug+0x171/0x1a0 [ +0.000004] ? handle_bug+0x41/0x70 [ +0.000004] ? exc_invalid_op+0x17/0x70 [ +0.000003] ? asm_exc_invalid_op+0x1a/0x20 [ +0.000005] ? __ieee80211_wake_queue+0xd5/0x180 [mac80211] [ +0.000043] ieee80211_wake_queue+0x4a/0x80 [mac80211] [ +0.000044] b43_dma_handle_txstatus+0x29c/0x3a0 [b43] [ +0.000016] ? __pfx_irq_thread_fn+0x10/0x10 [ +0.000002] b43_handle_txstatus+0x61/0x80 [b43] [ +0.000012] b43_interrupt_thread_handler+0x3f9/0x6b0 [b43] [ +0.000011] irq_thread_fn+0x23/0x60 [ +0.000002] irq_thread+0xfe/0x1c0 [ +0.000002] ? __pfx_irq_thread_dtor+0x10/0x10 [ +0.000001] ? __pfx_irq_thread+0x10/0x10 [ +0.000001] kthread+0xe8/0x120 [ +0.000003] ? __pfx_kthread+0x10/0x10 [ +0.000003] ret_from_fork+0x34/0x50 [ +0.000002] ? __pfx_kthread+0x10/0x10 [ +0.000002] ret_from_fork_asm+0x1b/0x30 [ +0.000004] [ +0.000001] ---[ end trace 0000000000000000 ]--- [ +0.000065] ------------[ cut here ]------------ [ +0.000001] WARNING: CPU: 0 PID: 56077 at net/mac80211/util.c:514 __i= eee80211_stop_queue+0xcc/0xe0 [mac80211] [ +0.000077] Modules linked in: b43(O) snd_seq_dummy snd_hrtimer snd_s= eq snd_seq_device nft_chain_nat xt_MASQUERADE nf_nat xfrm_user xfrm_algo xt= _addrtype overlay ccm af_packet amdgpu snd_hda_codec_cirrus snd_hda_codec_g= eneric ledtrig_audio drm_exec amdxcp gpu_sched xt_conntrack nf_conntrack nf= _defrag_ipv6 nf_defrag_ipv4 ip6t_rpfilter ipt_rpfilter xt_pkttype xt_LOG nf= _log_syslog xt_tcpudp nft_compat nf_tables nfnetlink sch_fq_codel btusb uin= put iTCO_wdt ctr btrtl intel_pmc_bxt i915 intel_rapl_msr mei_hdcp mei_pxp j= oydev at24 watchdog btintel atkbd libps2 serio radeon btbcm vivaldi_fmap bt= mtk intel_rapl_common snd_hda_codec_hdmi bluetooth uvcvideo nls_iso8859_1 a= pplesmc nls_cp437 x86_pkg_temp_thermal snd_hda_intel intel_powerclamp vfat = videobuf2_vmalloc coretemp fat snd_intel_dspcfg crc32_pclmul uvc polyval_cl= mulni snd_intel_sdw_acpi loop videobuf2_memops snd_hda_codec tun drm_suball= oc_helper polyval_generic drm_ttm_helper drm_buddy tap ecdh_generic videobu= f2_v4l2 gf128mul macvlan ttm ghash_clmulni_intel ecc tg3 [ +0.000073] videodev bridge snd_hda_core rapl crc16 drm_display_help= er cec mousedev snd_hwdep evdev intel_cstate bcm5974 hid_appleir videobuf2_= common stp mac_hid libphy snd_pcm drm_kms_helper acpi_als mei_me intel_unco= re llc mc snd_timer intel_gtt industrialio_triggered_buffer apple_mfi_fastc= harge i2c_i801 mei snd lpc_ich agpgart ptp i2c_smbus thunderbolt apple_gmux= i2c_algo_bit kfifo_buf video industrialio soundcore pps_core wmi tiny_powe= r_button sbs sbshc button ac cordic bcma mac80211 cfg80211 ssb rfkill libar= c4 kvm_intel kvm drm irqbypass fuse backlight firmware_class efi_pstore con= figfs efivarfs dmi_sysfs ip_tables x_tables autofs4 dm_crypt cbc encrypted_= keys trusted asn1_encoder tee tpm rng_core input_leds hid_apple led_class h= id_generic usbhid hid sd_mod t10_pi crc64_rocksoft crc64 crc_t10dif crct10d= if_generic ahci libahci libata uhci_hcd ehci_pci ehci_hcd crct10dif_pclmul = crct10dif_common sha512_ssse3 sha512_generic sha256_ssse3 sha1_ssse3 aesni_= intel usbcore scsi_mod libaes crypto_simd cryptd scsi_common [ +0.000084] usb_common rtc_cmos btrfs blake2b_generic libcrc32c crc3= 2c_generic crc32c_intel xor raid6_pq dm_snapshot dm_bufio dm_mod dax [last = unloaded: b43] [ +0.000012] CPU: 0 PID: 56077 Comm: kworker/u16:17 Tainted: G = W O 6.6.7 #1-NixOS [ +0.000003] Hardware name: Apple Inc. MacBookPro8,3/Mac-942459F5819B1= 71B, BIOS 87.0.0.0.0 06/13/2019 [ +0.000001] Workqueue: phy7 b43_tx_work [b43] [ +0.000019] RIP: 0010:__ieee80211_stop_queue+0xcc/0xe0 [mac80211] [ +0.000076] Code: 74 11 48 8b 78 08 0f b7 d6 89 e9 4c 89 e6 e8 ab f4 = 00 00 65 ff 0d 9c b7 34 3f 0f 85 55 ff ff ff 0f 1f 44 00 00 e9 4b ff ff ff = <0f> 0b 5b 5d 41 5c 41 5d c3 cc cc cc cc 0f 1f 80 00 00 00 00 90 90 [ +0.000002] RSP: 0000:ffffc90004157d50 EFLAGS: 00010097 [ +0.000002] RAX: 0000000000000001 RBX: 0000000000000002 RCX: 00000000= 00000000 [ +0.000002] RDX: 0000000000000000 RSI: 0000000000000002 RDI: ffff8882= d65d0900 [ +0.000002] RBP: 0000000000000000 R08: 0000000000000001 R09: 00000000= 00000001 [ +0.000001] R10: 00000000000000ff R11: ffff88814d0155a0 R12: ffff8882= d65d0900 [ +0.000002] R13: 0000000000000000 R14: ffff8881002d2800 R15: 00000000= 000000d0 [ +0.000002] FS: 0000000000000000(0000) GS:ffff88846f800000(0000) knl= GS:0000000000000000 [ +0.000003] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ +0.000002] CR2: 00007f2e8c10c880 CR3: 0000000385b66005 CR4: 00000000= 000606f0 [ +0.000002] Call Trace: [ +0.000001] [ +0.000001] ? __ieee80211_stop_queue+0xcc/0xe0 [mac80211] [ +0.000075] ? __warn+0x81/0x130 [ +0.000004] ? __ieee80211_stop_queue+0xcc/0xe0 [mac80211] [ +0.000075] ? report_bug+0x171/0x1a0 [ +0.000005] ? handle_bug+0x41/0x70 [ +0.000003] ? exc_invalid_op+0x17/0x70 [ +0.000004] ? asm_exc_invalid_op+0x1a/0x20 [ +0.000004] ? __ieee80211_stop_queue+0xcc/0xe0 [mac80211] [ +0.000076] ieee80211_stop_queue+0x36/0x50 [mac80211] [ +0.000077] b43_dma_tx+0x550/0x780 [b43] [ +0.000023] b43_tx_work+0x90/0x130 [b43] [ +0.000018] process_one_work+0x174/0x340 [ +0.000003] worker_thread+0x27b/0x3a0 [ +0.000004] ? __pfx_worker_thread+0x10/0x10 [ +0.000002] kthread+0xe8/0x120 [ +0.000003] ? __pfx_kthread+0x10/0x10 [ +0.000004] ret_from_fork+0x34/0x50 [ +0.000002] ? __pfx_kthread+0x10/0x10 [ +0.000003] ret_from_fork_asm+0x1b/0x30 [ +0.000006] [ +0.000001] ---[ end trace 0000000000000000 ]--- Fixes: e6f5b934fba8 ("b43: Add QOS support") Signed-off-by: Rahul Rameshbabu Reviewed-by: Julian Calaby Signed-off-by: Kalle Valo Link: https://msgid.link/20231231050300.122806-2-sergeantsagara@protonmail.= com Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/net/wireless/broadcom/b43/b43.h | 16 ++++++++++++++++ drivers/net/wireless/broadcom/b43/dma.c | 4 ++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/broadcom/b43/b43.h b/drivers/net/wireless= /broadcom/b43/b43.h index 67b4bac048e58..c0d8fc0b22fb2 100644 --- a/drivers/net/wireless/broadcom/b43/b43.h +++ b/drivers/net/wireless/broadcom/b43/b43.h @@ -1082,6 +1082,22 @@ static inline bool b43_using_pio_transfers(struct b4= 3_wldev *dev) return dev->__using_pio_transfers; } =20 +static inline void b43_wake_queue(struct b43_wldev *dev, int queue_prio) +{ + if (dev->qos_enabled) + ieee80211_wake_queue(dev->wl->hw, queue_prio); + else + ieee80211_wake_queue(dev->wl->hw, 0); +} + +static inline void b43_stop_queue(struct b43_wldev *dev, int queue_prio) +{ + if (dev->qos_enabled) + ieee80211_stop_queue(dev->wl->hw, queue_prio); + else + ieee80211_stop_queue(dev->wl->hw, 0); +} + /* Message printing */ __printf(2, 3) void b43info(struct b43_wl *wl, const char *fmt, ...); __printf(2, 3) void b43err(struct b43_wl *wl, const char *fmt, ...); diff --git a/drivers/net/wireless/broadcom/b43/dma.c b/drivers/net/wireless= /broadcom/b43/dma.c index 9a7c62bd5e431..cfaf2f9d67b22 100644 --- a/drivers/net/wireless/broadcom/b43/dma.c +++ b/drivers/net/wireless/broadcom/b43/dma.c @@ -1399,7 +1399,7 @@ int b43_dma_tx(struct b43_wldev *dev, struct sk_buff = *skb) should_inject_overflow(ring)) { /* This TX ring is full. */ unsigned int skb_mapping =3D skb_get_queue_mapping(skb); - ieee80211_stop_queue(dev->wl->hw, skb_mapping); + b43_stop_queue(dev, skb_mapping); dev->wl->tx_queue_stopped[skb_mapping] =3D true; ring->stopped =3D true; if (b43_debug(dev, B43_DBG_DMAVERBOSE)) { @@ -1570,7 +1570,7 @@ void b43_dma_handle_txstatus(struct b43_wldev *dev, } else { /* If the driver queue is running wake the corresponding * mac80211 queue. */ - ieee80211_wake_queue(dev->wl->hw, ring->queue_prio); + b43_wake_queue(dev, ring->queue_prio); if (b43_debug(dev, B43_DBG_DMAVERBOSE)) { b43dbg(dev->wl, "Woke up TX ring %d\n", ring->index); } --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A9E4C219556; Sun, 24 Mar 2024 23:35:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323353; cv=none; b=TtL8SAMQrWOClpmwtFEtugNjcG21kslOFMqCBtFzpmsTsBD9ukrR/gHZgmS2pTg6f3gNQXGdBCP3oPAeCMFksG/aE2a+xcQurry6QYeZG5TmCsboTrymnD6q51nUDUKD2TKD2z0bQaVC5XBhWkJypth5uaYYu87lfhkCxFg3KDI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323353; c=relaxed/simple; bh=KJVDxpizcfGR7aOIB8U3FFHOvETVfc+6GQRhnboy+Eo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=tdEx131CBAUx+N4i93nqy0z+NaF5+JiCgM9gkZWpgRNSGlZWOm2f1WqRLZTH9t4MGnyOOHpLSgIypaioyG/lBnUGhtA8/F/RqB2drHgCxHX7gfdENFu4KOWSnU57WziC3p+Dj46T2JNT/rCjJAqIxY1TQTA11PPytVOzdaaakAs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=aE2wHj6O; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="aE2wHj6O" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B9723C433C7; Sun, 24 Mar 2024 23:35:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323352; bh=KJVDxpizcfGR7aOIB8U3FFHOvETVfc+6GQRhnboy+Eo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=aE2wHj6ONGxx/9CYf8qMFGYGlQBSrt8QORWUDSzjwYUy+gpG+C6LHAUiJk5dUxEFG opWlKw217Yx2YaY7k9Epk+urjibvtasT6H/62zGRnYCtK40v7OWHrcP+AIa84uxg1X W+/2nhOpDhVhE6N1RicjxAlJfo+C3jxcon8DuFXh0vyiUp5NkH8GOZYo4lhstd3miH S/R/QxPmibMh9tJtff6U9BofcyGGMurnor7CcHX5m2/9ZI2QO0cBQWCqSvh02B5/MP EMr/X4pFzr3g7yYqxdrUpxQ2EqedotSm9cpoF9y2JRTF8a3ib4ToIHBaJN/DrDdQQD GgUvg5K430/Qw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Rahul Rameshbabu , Julian Calaby , Kalle Valo , Sasha Levin Subject: [PATCH 5.15 052/317] wifi: b43: Stop/wake correct queue in PIO Tx path when QoS is disabled Date: Sun, 24 Mar 2024 19:30:32 -0400 Message-ID: <20240324233458.1352854-53-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Rahul Rameshbabu [ Upstream commit 77135a38f6c2f950d2306ac3d37cbb407e6243f2 ] When QoS is disabled, the queue priority value will not map to the correct ieee80211 queue since there is only one queue. Stop/wake queue 0 when QoS is disabled to prevent trying to stop/wake a non-existent queue and failing to stop/wake the actual queue instantiated. Fixes: 5100d5ac81b9 ("b43: Add PIO support for PCMCIA devices") Signed-off-by: Rahul Rameshbabu Reviewed-by: Julian Calaby Signed-off-by: Kalle Valo Link: https://msgid.link/20231231050300.122806-3-sergeantsagara@protonmail.= com Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/net/wireless/broadcom/b43/pio.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/net/wireless/broadcom/b43/pio.c b/drivers/net/wireless= /broadcom/b43/pio.c index 8c28a9250cd19..cc19b589fa70d 100644 --- a/drivers/net/wireless/broadcom/b43/pio.c +++ b/drivers/net/wireless/broadcom/b43/pio.c @@ -525,7 +525,7 @@ int b43_pio_tx(struct b43_wldev *dev, struct sk_buff *s= kb) if (total_len > (q->buffer_size - q->buffer_used)) { /* Not enough memory on the queue. */ err =3D -EBUSY; - ieee80211_stop_queue(dev->wl->hw, skb_get_queue_mapping(skb)); + b43_stop_queue(dev, skb_get_queue_mapping(skb)); q->stopped =3D true; goto out; } @@ -552,7 +552,7 @@ int b43_pio_tx(struct b43_wldev *dev, struct sk_buff *s= kb) if (((q->buffer_size - q->buffer_used) < roundup(2 + 2 + 6, 4)) || (q->free_packet_slots =3D=3D 0)) { /* The queue is full. */ - ieee80211_stop_queue(dev->wl->hw, skb_get_queue_mapping(skb)); + b43_stop_queue(dev, skb_get_queue_mapping(skb)); q->stopped =3D true; } =20 @@ -587,7 +587,7 @@ void b43_pio_handle_txstatus(struct b43_wldev *dev, list_add(&pack->list, &q->packets_list); =20 if (q->stopped) { - ieee80211_wake_queue(dev->wl->hw, q->queue_prio); + b43_wake_queue(dev, q->queue_prio); q->stopped =3D false; } } --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9718C21955C; Sun, 24 Mar 2024 23:35:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323354; cv=none; b=XRVTCIU1ws+ARmt0lM6L6fYLeGcPkazib2pVeoWUwJSo3/722TysFLusJhO1nGFedvbD/7oqjcL+lk6zKuG3ibRMl7RBw4z8dR3AVcUnFPXpki0wnMUoxNyYk6ZU6D1BPNjiUlH8ub302bkFPG3anWjqPCrJMQJellD97+4FihM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323354; c=relaxed/simple; bh=Rj2ijQ4i0yZThypPmZvOKZv3r5j3+FgiUs0tYEWgb0U=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Fxeq5pNUNuS+3NILOHOg1I9OECkMKBXJ8q0b9oUTRmUcUNXW7PieQ9+bdWHUyRtMFPR/foZChHIio4vfXE2mgyb1ekybrHcBqyAjuzUbxuvRpAXw8VDsvUjZpMGpfwWtex/EP4+yPkPU3t/7IeHtmKtZey98Cor+jtkPqB0RqSo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=jTUa7CdL; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="jTUa7CdL" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B7EC4C43394; Sun, 24 Mar 2024 23:35:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323353; bh=Rj2ijQ4i0yZThypPmZvOKZv3r5j3+FgiUs0tYEWgb0U=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jTUa7CdLWja2sS3844ihUZQmGZ5TiGDCq57juEjMSysiYIrvZV19/NEaYOERiwAky 8wEjFeEy3DzjNST6gCHDknXjdkkVLM+6jDZ8uLlt1vY3j0FLmZ/QzEt8tqWS7VeZ4D dJMA+Y/FJA8iw/U/hoCdomWfZFZ8HGSKnDSzB4fNPOmdsErCwtMGAtS1N+0MI4D8WQ jlU0XmtwgiXXjFY94H1syXsOkXnuYFZKjPWsYOVUMA2/GqFZAoVuKFwmcbNuL+3ckJ pWGK5rmZjsPlvVQFeBf+scUidrRnxmh6WRPlajI5JN1Yd81TOsUTpsrnQ8gvmvYH75 Ca7tvDov1o5pA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Rahul Rameshbabu , Julian Calaby , Kalle Valo , Sasha Levin Subject: [PATCH 5.15 053/317] wifi: b43: Stop correct queue in DMA worker when QoS is disabled Date: Sun, 24 Mar 2024 19:30:33 -0400 Message-ID: <20240324233458.1352854-54-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Rahul Rameshbabu [ Upstream commit 581c8967d66c4961076dbbee356834e9c6777184 ] When QoS is disabled, the queue priority value will not map to the correct ieee80211 queue since there is only one queue. Stop queue 0 when QoS is disabled to prevent trying to stop a non-existent queue and failing to stop the actual queue instantiated. Fixes: bad691946966 ("b43: avoid packet losses in the dma worker code.") Signed-off-by: Rahul Rameshbabu Reviewed-by: Julian Calaby Signed-off-by: Kalle Valo Link: https://msgid.link/20231231050300.122806-4-sergeantsagara@protonmail.= com Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/net/wireless/broadcom/b43/main.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/net/wireless/broadcom/b43/main.c b/drivers/net/wireles= s/broadcom/b43/main.c index 17bcec5f3ff75..ad38aabfd5972 100644 --- a/drivers/net/wireless/broadcom/b43/main.c +++ b/drivers/net/wireless/broadcom/b43/main.c @@ -3603,7 +3603,7 @@ static void b43_tx_work(struct work_struct *work) err =3D b43_dma_tx(dev, skb); if (err =3D=3D -ENOSPC) { wl->tx_queue_stopped[queue_num] =3D true; - ieee80211_stop_queue(wl->hw, queue_num); + b43_stop_queue(dev, queue_num); skb_queue_head(&wl->tx_queue[queue_num], skb); break; } @@ -3627,6 +3627,7 @@ static void b43_op_tx(struct ieee80211_hw *hw, struct sk_buff *skb) { struct b43_wl *wl =3D hw_to_b43_wl(hw); + u16 skb_queue_mapping; =20 if (unlikely(skb->len < 2 + 2 + 6)) { /* Too short, this can't be a valid frame. */ @@ -3635,12 +3636,12 @@ static void b43_op_tx(struct ieee80211_hw *hw, } B43_WARN_ON(skb_shinfo(skb)->nr_frags); =20 - skb_queue_tail(&wl->tx_queue[skb->queue_mapping], skb); - if (!wl->tx_queue_stopped[skb->queue_mapping]) { + skb_queue_mapping =3D skb_get_queue_mapping(skb); + skb_queue_tail(&wl->tx_queue[skb_queue_mapping], skb); + if (!wl->tx_queue_stopped[skb_queue_mapping]) ieee80211_queue_work(wl->hw, &wl->tx_work); - } else { - ieee80211_stop_queue(wl->hw, skb->queue_mapping); - } + else + b43_stop_queue(wl->current_dev, skb_queue_mapping); } =20 static void b43_qos_params_upload(struct b43_wldev *dev, --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 994C05A0F9; Sun, 24 Mar 2024 23:35:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323355; cv=none; b=qvNHXQ4KY0KjU2+t9Roo40N7IfVJtumM8/UB9pPXDShyoyjd+It6nP0RfzvCSqSmRDecHIgGwyS3pi0nb9zXcdXIWjFg4wmf6p8DQ2Zl0+FZ4o434Dmdka/Tr1lYfYtvBJur0L+8gN15hSt+kJaZYCRXlE2v+nXkk7UkMdfVr30= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323355; c=relaxed/simple; bh=iBOOEk9l2OEgdp6ukqQgb0EEB1LDW2y0Jd/ziclTJCQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=p0j+vm1U7R4Yy32Ij5BkNReOWpNMREzZym8/UrMzBJe7e+p1i3tbPJfZd/jJfqYGSugyKwzaN8ABJXI6/zSh/ahFwjkHt3G/dBuQ10zBN5C5UQZ2sygnYZVe5NS/s8+gize5V139zkeSsrCWyvLGnQEjv2HUfgmI5ILAPDnbg4Q= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=RFd0t5TR; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="RFd0t5TR" Received: by smtp.kernel.org (Postfix) with ESMTPSA id BC465C433B2; Sun, 24 Mar 2024 23:35:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323354; bh=iBOOEk9l2OEgdp6ukqQgb0EEB1LDW2y0Jd/ziclTJCQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=RFd0t5TRiitn/PKpGLaNq61DsaexvpSdrG9OGMor5HSjOpgkIf/RNmXWt2I5+cqdC BHbmB192ZgKF+/LQB5Q5qpdcpuj8rzKaN5Np1ak1ICGUTLUZ7H4XkQZ+u0QPQxQGyE mcYCBbEs7PnRyn2bSD0350vrs4Wzu4eeZkovQCndElnXUPg3IOh5J0wAPkzwPk6k9D CJh532y9xHjSO3DyWSOz2eyQjiNGGJnIfDumDbJ76rWMNRAbPxgx74h/JrvvfMjGu6 OnJTYN2OS/vhkp7a4vXDOHasoDgXncfgu400WxPsn/NjgCkW3/RVZ/TJ3JgvqmL/Ll ottXKdRbDXw1A== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Rahul Rameshbabu , Julian Calaby , Kalle Valo , Sasha Levin Subject: [PATCH 5.15 054/317] wifi: b43: Disable QoS for bcm4331 Date: Sun, 24 Mar 2024 19:30:34 -0400 Message-ID: <20240324233458.1352854-55-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Rahul Rameshbabu [ Upstream commit 09795bded2e725443fe4a4803cae2079cdaf7b26 ] bcm4331 seems to not function correctly with QoS support. This may be due to issues with currently available firmware or potentially a device specific issue. When queues that are not of the default "best effort" priority are selected, traffic appears to not transmit out of the hardware while no errors are returned. This behavior is present among all the other priority queues: video, voice, and background. While this can be worked around by setting a kernel parameter, the default behavior is problematic for most users and may be difficult to debug. This patch offers a working out-of-box experience for bcm4331 users. Log of the issue (using ssh low-priority traffic as an example): ssh -T -vvvv git@github.com OpenSSH_9.6p1, OpenSSL 3.0.12 24 Oct 2023 debug1: Reading configuration data /etc/ssh/ssh_config debug2: checking match for 'host * exec "/nix/store/q1c2flcykgr4wwg5a6h= 450hxbk4ch589-bash-5.2-p15/bin/bash -c '/nix/store/c015armnkhr6v18za0rypm7s= h1i8js8w-gnupg-2.4.1/bin/gpg-connect-agent --quiet updatestartuptty /bye >/= dev/null 2>&1'"' host github.com originally github.com debug3: /etc/ssh/ssh_config line 5: matched 'host "github.com"' debug1: Executing command: '/nix/store/q1c2flcykgr4wwg5a6h450hxbk4ch589= -bash-5.2-p15/bin/bash -c '/nix/store/c015armnkhr6v18za0rypm7sh1i8js8w-gnup= g-2.4.1/bin/gpg-connect-agent --quiet updatestartuptty /bye >/dev/null 2>&1= '' debug3: command returned status 0 debug3: /etc/ssh/ssh_config line 5: matched 'exec "/nix/store/q1c2flcyk= gr4wwg5a6h450hxbk4ch589-bash-5.2-p15/bin/bash -c '/nix/store/c015armnkhr6v1= 8za0r"' debug2: match found debug1: /etc/ssh/ssh_config line 9: Applying options for * debug3: expanded UserKnownHostsFile '~/.ssh/known_hosts' -> '/home/bina= ry-eater/.ssh/known_hosts' debug3: expanded UserKnownHostsFile '~/.ssh/known_hosts2' -> '/home/bin= ary-eater/.ssh/known_hosts2' debug2: resolving "github.com" port 22 debug3: resolve_host: lookup github.com:22 debug3: channel_clear_timeouts: clearing debug3: ssh_connect_direct: entering debug1: Connecting to github.com [192.30.255.113] port 22. debug3: set_sock_tos: set socket 3 IP_TOS 0x48 Fixes: e6f5b934fba8 ("b43: Add QOS support") Signed-off-by: Rahul Rameshbabu Reviewed-by: Julian Calaby Signed-off-by: Kalle Valo Link: https://msgid.link/20231231050300.122806-5-sergeantsagara@protonmail.= com Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/net/wireless/broadcom/b43/main.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/net/wireless/broadcom/b43/main.c b/drivers/net/wireles= s/broadcom/b43/main.c index ad38aabfd5972..e6e4a18d817a0 100644 --- a/drivers/net/wireless/broadcom/b43/main.c +++ b/drivers/net/wireless/broadcom/b43/main.c @@ -2587,7 +2587,8 @@ static void b43_request_firmware(struct work_struct *= work) =20 start_ieee80211: wl->hw->queues =3D B43_QOS_QUEUE_NUM; - if (!modparam_qos || dev->fw.opensource) + if (!modparam_qos || dev->fw.opensource || + dev->dev->chip_id =3D=3D BCMA_CHIP_ID_BCM4331) wl->hw->queues =3D 1; =20 err =3D ieee80211_register_hw(wl->hw); --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 83CF421955A; Sun, 24 Mar 2024 23:35:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323356; cv=none; b=Ev5TAV+pc/BEiEvuAp0zCsDfYGheUMUc3pALEytyJc1tZjUkE3els7oifmfNRAcW5Afd3XSn6q+LNXQJgYp+9vF8ZT1aUOOmgA4jaN/grm/TvF1RAenRTlT2AcWqwNhpUBb79QbkauFmaV/qFd4RNncH+JP8fyKOZVGT+B5crTg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323356; c=relaxed/simple; bh=eeE4eirE6rYXh0hPl5NvtThXQHpMfWfr+Z/2hnUr1nA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=qY0LNMfz6hksFyTwUEVIUjP8tIuM+9UyDKiYm+hdjbhgxKyeAJBg+flAaNwThjd2oNbYw9+16nlqndqPFAjgp+qR4P5f5926L+z+YAjrzaKaAiweHeHri+i9V+vOAxf6Me1AjodtJ/ZB1mhSDx4usahT7/6iXzQgXdu5NhkDsTY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=EQ3Rwf9N; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="EQ3Rwf9N" Received: by smtp.kernel.org (Postfix) with ESMTPSA id BEDC2C433C7; Sun, 24 Mar 2024 23:35:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323355; bh=eeE4eirE6rYXh0hPl5NvtThXQHpMfWfr+Z/2hnUr1nA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=EQ3Rwf9NsaRt5j7Q/MhdDeSDed2m9m6oFhY/8ON2BPj6wFX6iOr2oV4Aa159Dh7UL jzZgKeMQptzGKKoJVa7DpxtlhrbQbfnOPuRlg0FqmWg3Y6DMyi7op3MgFvNOU6Ft4E cpAzkGrImTYAMcHQVbU3wqG/8j+6VcCTC3m8vhGig6rZaMcVA+xGjviCiXdAeJjxRh D6N0YVI2COEzH6mWnQQ8PaldVNk8a7uIwJN5rDPJpideh6y5LqBRnhP33Ed1ckd50c /VGXBOX2WxwNIF7EnOXTFf6obfku+WcrOO/QzuGlKlDp40EbbyA5W4/Mxl3fCvoq81 RVxayimi4nlBw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?Alexis=20Lothor=C3=A9?= , Kalle Valo , Sasha Levin Subject: [PATCH 5.15 055/317] wifi: wilc1000: fix declarations ordering Date: Sun, 24 Mar 2024 19:30:35 -0400 Message-ID: <20240324233458.1352854-56-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable From: Alexis Lothor=C3=A9 [ Upstream commit 535733e90e5d8912ebeccebb05b354a2d06ff459 ] Reorder parameters declaration in wilc_parse_join_bss_param to enforce reverse christmas tree Signed-off-by: Alexis Lothor=C3=A9 Signed-off-by: Kalle Valo Link: https://msgid.link/20240105075733.36331-2-alexis.lothore@bootlin.com Stable-dep-of: 205c50306acf ("wifi: wilc1000: fix RCU usage in connect path= ") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/net/wireless/microchip/wilc1000/hif.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/net/wireless/microchip/wilc1000/hif.c b/drivers/net/wi= reless/microchip/wilc1000/hif.c index a7bca0475e1ee..edd51592a82da 100644 --- a/drivers/net/wireless/microchip/wilc1000/hif.c +++ b/drivers/net/wireless/microchip/wilc1000/hif.c @@ -359,13 +359,13 @@ static void handle_connect_timeout(struct work_struct= *work) void *wilc_parse_join_bss_param(struct cfg80211_bss *bss, struct cfg80211_crypto_settings *crypto) { - struct wilc_join_bss_param *param; - struct ieee80211_p2p_noa_attr noa_attr; - u8 rates_len =3D 0; + const struct cfg80211_bss_ies *ies =3D rcu_dereference(bss->ies); const u8 *tim_elm, *ssid_elm, *rates_ie, *supp_rates_ie; const u8 *ht_ie, *wpa_ie, *wmm_ie, *rsn_ie; + struct ieee80211_p2p_noa_attr noa_attr; + struct wilc_join_bss_param *param; + u8 rates_len =3D 0; int ret; - const struct cfg80211_bss_ies *ies =3D rcu_dereference(bss->ies); =20 param =3D kzalloc(sizeof(*param), GFP_KERNEL); if (!param) --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6EB1C219555; Sun, 24 Mar 2024 23:35:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323356; cv=none; b=iTLSCID0nlNSv8dNfcFMsY6n5tWIh9OX9WaPPrLCRQujSAyA0xnaEoXio+9wYFYadz7U3K+u8mHgar5IzRZ1rqVShxLwLuMRXMpM9CaHW5IfBUI93uwsGQR/D6nh+PZhCvLEZDAWiwx2SMehDANfqN02r1/D/S8Yc78pYzeRpew= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323356; c=relaxed/simple; bh=AWr/EBV6VlandXtM4GSd7K0+kcZktDfJEz7DRks+Sys=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=ET7LvStpOevwdq8zGEGo3KZFRfY5JioJJI6CG2pMdXX0W7R54DktSf1jSIK59Sh0QZ/eAuLKhWIOlflwCDVD4/W7QGUOCjpOdP6dgXKI2LxGZROd+boni9W2RgtuRmHaqkNrwnannXlsu05NGQ2iJDz68Ug7ZhKj2lRGTY4gWHQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=vRr2W97e; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="vRr2W97e" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A9591C43390; Sun, 24 Mar 2024 23:35:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323356; bh=AWr/EBV6VlandXtM4GSd7K0+kcZktDfJEz7DRks+Sys=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=vRr2W97eto7EBGTS2q0IFFjwK82ZwlIO+v9MwR5+y3cWcqPs1oK2mjw2jhQ9wUUxW JIX6DIrZrVgEBmdMxCBCWkaVEM5nylR3ED8G1mhabPP3Z0dpLbUxuuiS25TJKcXQ1t FfzRfUTzxWfxjdPvOIGMDognOojmA1PYANy6st454tdztiSKJRa8ZSjry5Zc6udKaU gPBLW2yJUqOxAbzmN8CKuLdfoDofRB/zY2Cbm6WjD4LRl/x/bPIA+19YD1G0rkHr3q UvVoTBmCr812q3aFSB3DKoS/T3pT0EcmLolGMbtcr2VLCECKxYP/J1DAwzzDHskLTS iiSeE9ngotIag== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?Alexis=20Lothor=C3=A9?= , Kalle Valo , Sasha Levin Subject: [PATCH 5.15 056/317] wifi: wilc1000: fix RCU usage in connect path Date: Sun, 24 Mar 2024 19:30:36 -0400 Message-ID: <20240324233458.1352854-57-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable From: Alexis Lothor=C3=A9 [ Upstream commit 205c50306acf58a335eb19fa84e40140f4fe814f ] With lockdep enabled, calls to the connect function from cfg802.11 layer lead to the following warning: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D WARNING: suspicious RCU usage 6.7.0-rc1-wt+ #333 Not tainted Reported-by: Linux Kernel Functional Testing ----------------------------- drivers/net/wireless/microchip/wilc1000/hif.c:386 suspicious rcu_dereference_check() usage! [...] stack backtrace: CPU: 0 PID: 100 Comm: wpa_supplicant Not tainted 6.7.0-rc1-wt+ #333 Hardware name: Atmel SAMA5 unwind_backtrace from show_stack+0x18/0x1c show_stack from dump_stack_lvl+0x34/0x48 dump_stack_lvl from wilc_parse_join_bss_param+0x7dc/0x7f4 wilc_parse_join_bss_param from connect+0x2c4/0x648 connect from cfg80211_connect+0x30c/0xb74 cfg80211_connect from nl80211_connect+0x860/0xa94 nl80211_connect from genl_rcv_msg+0x3fc/0x59c genl_rcv_msg from netlink_rcv_skb+0xd0/0x1f8 netlink_rcv_skb from genl_rcv+0x2c/0x3c genl_rcv from netlink_unicast+0x3b0/0x550 netlink_unicast from netlink_sendmsg+0x368/0x688 netlink_sendmsg from ____sys_sendmsg+0x190/0x430 ____sys_sendmsg from ___sys_sendmsg+0x110/0x158 ___sys_sendmsg from sys_sendmsg+0xe8/0x150 sys_sendmsg from ret_fast_syscall+0x0/0x1c This warning is emitted because in the connect path, when trying to parse target BSS parameters, we dereference a RCU pointer whithout being in RCU critical section. Fix RCU dereference usage by moving it to a RCU read critical section. To avoid wrapping the whole wilc_parse_join_bss_param under the critical section, just use the critical section to copy ies data Fixes: c460495ee072 ("staging: wilc1000: fix incorrent type in initializer") Signed-off-by: Alexis Lothor=C3=A9 Signed-off-by: Kalle Valo Link: https://msgid.link/20240105075733.36331-3-alexis.lothore@bootlin.com Signed-off-by: Sasha Levin --- drivers/net/wireless/microchip/wilc1000/hif.c | 36 ++++++++++++------- 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/drivers/net/wireless/microchip/wilc1000/hif.c b/drivers/net/wi= reless/microchip/wilc1000/hif.c index edd51592a82da..fe95a6201a679 100644 --- a/drivers/net/wireless/microchip/wilc1000/hif.c +++ b/drivers/net/wireless/microchip/wilc1000/hif.c @@ -359,38 +359,49 @@ static void handle_connect_timeout(struct work_struct= *work) void *wilc_parse_join_bss_param(struct cfg80211_bss *bss, struct cfg80211_crypto_settings *crypto) { - const struct cfg80211_bss_ies *ies =3D rcu_dereference(bss->ies); - const u8 *tim_elm, *ssid_elm, *rates_ie, *supp_rates_ie; + const u8 *ies_data, *tim_elm, *ssid_elm, *rates_ie, *supp_rates_ie; const u8 *ht_ie, *wpa_ie, *wmm_ie, *rsn_ie; struct ieee80211_p2p_noa_attr noa_attr; + const struct cfg80211_bss_ies *ies; struct wilc_join_bss_param *param; - u8 rates_len =3D 0; + u8 rates_len =3D 0, ies_len; int ret; =20 param =3D kzalloc(sizeof(*param), GFP_KERNEL); if (!param) return NULL; =20 + rcu_read_lock(); + ies =3D rcu_dereference(bss->ies); + ies_data =3D kmemdup(ies->data, ies->len, GFP_ATOMIC); + if (!ies_data) { + rcu_read_unlock(); + kfree(param); + return NULL; + } + ies_len =3D ies->len; + rcu_read_unlock(); + param->beacon_period =3D cpu_to_le16(bss->beacon_interval); param->cap_info =3D cpu_to_le16(bss->capability); param->bss_type =3D WILC_FW_BSS_TYPE_INFRA; param->ch =3D ieee80211_frequency_to_channel(bss->channel->center_freq); ether_addr_copy(param->bssid, bss->bssid); =20 - ssid_elm =3D cfg80211_find_ie(WLAN_EID_SSID, ies->data, ies->len); + ssid_elm =3D cfg80211_find_ie(WLAN_EID_SSID, ies_data, ies_len); if (ssid_elm) { if (ssid_elm[1] <=3D IEEE80211_MAX_SSID_LEN) memcpy(param->ssid, ssid_elm + 2, ssid_elm[1]); } =20 - tim_elm =3D cfg80211_find_ie(WLAN_EID_TIM, ies->data, ies->len); + tim_elm =3D cfg80211_find_ie(WLAN_EID_TIM, ies_data, ies_len); if (tim_elm && tim_elm[1] >=3D 2) param->dtim_period =3D tim_elm[3]; =20 memset(param->p_suites, 0xFF, 3); memset(param->akm_suites, 0xFF, 3); =20 - rates_ie =3D cfg80211_find_ie(WLAN_EID_SUPP_RATES, ies->data, ies->len); + rates_ie =3D cfg80211_find_ie(WLAN_EID_SUPP_RATES, ies_data, ies_len); if (rates_ie) { rates_len =3D rates_ie[1]; if (rates_len > WILC_MAX_RATES_SUPPORTED) @@ -401,7 +412,7 @@ void *wilc_parse_join_bss_param(struct cfg80211_bss *bs= s, =20 if (rates_len < WILC_MAX_RATES_SUPPORTED) { supp_rates_ie =3D cfg80211_find_ie(WLAN_EID_EXT_SUPP_RATES, - ies->data, ies->len); + ies_data, ies_len); if (supp_rates_ie) { u8 ext_rates =3D supp_rates_ie[1]; =20 @@ -416,11 +427,11 @@ void *wilc_parse_join_bss_param(struct cfg80211_bss *= bss, } } =20 - ht_ie =3D cfg80211_find_ie(WLAN_EID_HT_CAPABILITY, ies->data, ies->len); + ht_ie =3D cfg80211_find_ie(WLAN_EID_HT_CAPABILITY, ies_data, ies_len); if (ht_ie) param->ht_capable =3D true; =20 - ret =3D cfg80211_get_p2p_attr(ies->data, ies->len, + ret =3D cfg80211_get_p2p_attr(ies_data, ies_len, IEEE80211_P2P_ATTR_ABSENCE_NOTICE, (u8 *)&noa_attr, sizeof(noa_attr)); if (ret > 0) { @@ -444,7 +455,7 @@ void *wilc_parse_join_bss_param(struct cfg80211_bss *bs= s, } wmm_ie =3D cfg80211_find_vendor_ie(WLAN_OUI_MICROSOFT, WLAN_OUI_TYPE_MICROSOFT_WMM, - ies->data, ies->len); + ies_data, ies_len); if (wmm_ie) { struct ieee80211_wmm_param_ie *ie; =20 @@ -459,13 +470,13 @@ void *wilc_parse_join_bss_param(struct cfg80211_bss *= bss, =20 wpa_ie =3D cfg80211_find_vendor_ie(WLAN_OUI_MICROSOFT, WLAN_OUI_TYPE_MICROSOFT_WPA, - ies->data, ies->len); + ies_data, ies_len); if (wpa_ie) { param->mode_802_11i =3D 1; param->rsn_found =3D true; } =20 - rsn_ie =3D cfg80211_find_ie(WLAN_EID_RSN, ies->data, ies->len); + rsn_ie =3D cfg80211_find_ie(WLAN_EID_RSN, ies_data, ies_len); if (rsn_ie) { int rsn_ie_len =3D sizeof(struct element) + rsn_ie[1]; int offset =3D 8; @@ -499,6 +510,7 @@ void *wilc_parse_join_bss_param(struct cfg80211_bss *bs= s, param->akm_suites[i] =3D crypto->akm_suites[i] & 0xFF; } =20 + kfree(ies_data); return (void *)param; } =20 --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 74B82174979; Sun, 24 Mar 2024 23:35:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323357; cv=none; b=u7NAhxN7Fhc3GEf1sFfiT0LAvBjWw6Q90+KOI+Y+kmhHtcYlgN3vU9ky/S6ficJKdpFLTWgQ5RRccjIEl2GYuXy8IOmTDNC2OBXMtFUmrYoTtszXNGV9CHiNXOa5ilx7WqcOiVxEmXfMe/UbLtD0vcqbmHzaZfAzEgSTqirBckY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323357; c=relaxed/simple; bh=lk9a3sR+Gf80Nc1LTDgoNyiixBCKAWQX3ANl8n28usg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=YGshLRtJrXtbz11oQLc5oekvTF6/D/b79l3ButC6HYILFhymjkEt/+/CoY/kl0swjI3ZvnTagy+c1+Ak9ttPW4+id7FKfY57S3XJMbaCsN6+KKZsBp2lTAC3aL39gElskgpdhe4t5MrxWgF+2tLB2XSOqaUjdGy26dajTN/Nz1s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ZRuh9tCw; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ZRuh9tCw" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 98A78C43394; Sun, 24 Mar 2024 23:35:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323357; bh=lk9a3sR+Gf80Nc1LTDgoNyiixBCKAWQX3ANl8n28usg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ZRuh9tCwhWRvpVA1jNAKN8jBggeF6Kp5Npy9D6GiRiOUpvW3mhmM4qu2Lbmd7P8WS mlvJeR+c6OVadYCmiRlZkdvWutROMzTYNPvt6sYdGRSnMhcvlQVdQzncnNjd2/Lqo3 gly6/UPRioLlOHpyynFy+DsjO8tymGgTuwYR95b3uudAvG3iy55Ijhyf6TzvoNwDTx msAoFYAm2AdOUxllr4KWYVk6IbaSuv9zlWX4EmWd0VFSbTxNlgF0ygScBGBCqS4xRF zRAP8mlitK/oEgV7kE4aNou7rSOIH5tVhHfNTcfY9I+OTgIlT3Q8b2DHVD8PmGrp1a YkyLYBVBk9Wxw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Martin Kaistra , Ping-Ke Shih , Kalle Valo , Sasha Levin Subject: [PATCH 5.15 057/317] wifi: rtl8xxxu: add cancel_work_sync() for c2hcmd_work Date: Sun, 24 Mar 2024 19:30:37 -0400 Message-ID: <20240324233458.1352854-58-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Martin Kaistra [ Upstream commit 1213acb478a7181cd73eeaf00db430f1e45b1361 ] The workqueue might still be running, when the driver is stopped. To avoid a use-after-free, call cancel_work_sync() in rtl8xxxu_stop(). Fixes: e542e66b7c2e ("rtl8xxxu: add bluetooth co-existence support for sing= le antenna") Signed-off-by: Martin Kaistra Reviewed-by: Ping-Ke Shih Signed-off-by: Kalle Valo Link: https://msgid.link/20240111163628.320697-2-martin.kaistra@linutronix.= de Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c b/driver= s/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c index 30d9a195c6fb5..3536b9f8470f4 100644 --- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c +++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c @@ -6484,6 +6484,7 @@ static void rtl8xxxu_stop(struct ieee80211_hw *hw) if (priv->usb_interrupts) rtl8xxxu_write32(priv, REG_USB_HIMR, 0); =20 + cancel_work_sync(&priv->c2hcmd_work); cancel_delayed_work_sync(&priv->ra_watchdog); =20 rtl8xxxu_free_rx_resources(priv); --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 78E08175545; Sun, 24 Mar 2024 23:35:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323358; cv=none; b=iF+Udv4hwPtL7W78TbEpmZSUwb7gCaTNYCnrPqBZz4UrBz6ObNBhMnVqsVo38ABgTMz+Yj6qNNf1P/PR1vrI/fXYsiRq6JCMDrLVNfCUp5MgkzH8wzcfDT4PSOBORLSUitlAP9OqbFOjZiSG2gk9C87oH2PbFogOi94jfeZF960= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323358; c=relaxed/simple; bh=jSETjfA6+4rjPk0c2xR67WmUBQc3t5xsnw2SytfzANc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=CgM7gJg6JlZIL2/1Kn8Jn1qLc62bAg567z8Lff26S/8fdNiacRVZzn+TBLCfauWECMMabxoL6qjR/bqUsdBOLXOYJpKypjJZzeAGaEnPi+wfyOzMzEkcbGlmp1kb0pUxBQyReNc6f4ejOVrabNeL59+I3NxW9ZMjFPS54Lwbcj0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=d4NlJMJq; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="d4NlJMJq" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9CB46C43399; Sun, 24 Mar 2024 23:35:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323358; bh=jSETjfA6+4rjPk0c2xR67WmUBQc3t5xsnw2SytfzANc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=d4NlJMJqBdxmQyww7uM0jQERMoyrAqgiwGVVUaFj4VijVWKRLeDXYkuCCCXMP/QO7 I8zTZWP9YXAZCdTtSLfgazp+PN/DXpJVn+s2niUK7ubgaLGMeY/y7yB2WreM+S17Dn 76Ai6OjJEmEbA7qm1qSeRdrdwD6RrdJ1r3Nsu2kNRv05A2z7TEttUIgsezcXtQHJTO bSbsRCaUyKNH2cLQPWb+R/DgSemup5Uq6jJzlr7A+ulG6BKnUINgedAb1LC9GsezLa D71BJtj64+255tfX+Al3bjYqLL3ap3b4jfr2YlgCRb5bD8vuMZNHvnkj4PTmdN7A2g sgK8G4NWn/7hg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Ajay Singh , =?UTF-8?q?Alexis=20Lothor=C3=A9?= , Kalle Valo , Sasha Levin Subject: [PATCH 5.15 058/317] wifi: wilc1000: fix multi-vif management when deleting a vif Date: Sun, 24 Mar 2024 19:30:38 -0400 Message-ID: <20240324233458.1352854-59-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable From: Ajay Singh [ Upstream commit 12cfc9c8d3faf887a202c89bc312202445fca7e8 ] Adding then removing a second vif currently makes the first vif not working anymore. This is visible for example when we have a first interface connected to some access point: - create a wpa_supplicant.conf with some AP credentials - wpa_supplicant -Dnl80211 -c /etc/wpa_supplicant.conf -i wlan0 - dhclient wlan0 - iw phy phy0 interface add wlan1 type managed - iw dev wlan1 del wlan0 does not manage properly traffic anymore (eg: ping not working) This is due to vif mode being incorrectly reconfigured with some default values in del_virtual_intf, affecting by default first vif. Prevent first vif from being affected on second vif removal by removing vif mode change command in del_virtual_intf Fixes: 9bc061e88054 ("staging: wilc1000: added support to dynamically add/r= emove interfaces") Signed-off-by: Ajay Singh Co-developed-by: Alexis Lothor=C3=A9 Signed-off-by: Alexis Lothor=C3=A9 Signed-off-by: Kalle Valo Link: https://msgid.link/20240115-wilc_1000_fixes-v1-5-54d29463a738@bootlin= .com Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/net/wireless/microchip/wilc1000/cfg80211.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/net/wireless/microchip/wilc1000/cfg80211.c b/drivers/n= et/wireless/microchip/wilc1000/cfg80211.c index 1688144d78475..0f48204e6e0e4 100644 --- a/drivers/net/wireless/microchip/wilc1000/cfg80211.c +++ b/drivers/net/wireless/microchip/wilc1000/cfg80211.c @@ -1562,7 +1562,6 @@ static int del_virtual_intf(struct wiphy *wiphy, stru= ct wireless_dev *wdev) cfg80211_unregister_netdevice(vif->ndev); vif->monitor_flag =3D 0; =20 - wilc_set_operation_mode(vif, 0, 0, 0); mutex_lock(&wl->vif_mutex); list_del_rcu(&vif->list); wl->vif_num--; --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 74711218555; Sun, 24 Mar 2024 23:35:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323360; cv=none; b=uoJQ8Y7sUfsmE/U7RNq0R4cZJAjBf5J2itcyarmdGkfnJcyrqDoWa9Tav0OtlIhDbM7Nxom9f4Z8HDjnGVqhBferNyCTTbsNp96tmioKEYZhSjNratJHdwYt3UlJi8bvqFuROd8QY59xR6BhDzDvZTwtv4IzuHGPHUdt/8J2SDg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323360; c=relaxed/simple; bh=dMAyWF23agArvAO80uHD1LcxVbaqvdgHxmgzfLuynDE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PMjBQW94j7sY+qBkfKjZ4x93TnWInw3uf+sO4WtR8ACaFC9kQl+KbsT04cJ4Wqd/6pWx64fiynvcOvqdyYS0CNR/apfDogdexSEcB16CDcP/gkDfcaTWHA2vycDwFxNDwfGfO5wPncKsbU6coer3yykI5GJs3i6cu8t4Lqy7zZs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=EBBTfRBT; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="EBBTfRBT" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9B0F7C43390; Sun, 24 Mar 2024 23:35:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323359; bh=dMAyWF23agArvAO80uHD1LcxVbaqvdgHxmgzfLuynDE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=EBBTfRBTUnzqc9HLDLHYf0kQNBDBvwkBWJ1c6ZgwsIyJIncBkTio6sYI62XfaeDAy TCGX4URXUne8XMUcVW6GxasETWhxGqMgjZWOtpSlk3jGONeO+p/sYiy+Ygnh0qXLfo A/vhLR3KgCtkwdeH6G0yYRsHvDVmQiWvq8jXxRSmfkW0KjrUdvgZS+cs2VDbzu55VT MRXysIwmFHkxhH5IX6u3d2n6gLe17ibjQ2w2+o1zdI/KE/qafJwnEPPSmypS7eZ3dA E9UUDjmB5noxI/t2PN3NPciTzZNYlt58hDG7oKcgTyxYZYcYiszdhhz0vwlG6/lxTX B/EBj2LSBwh1Q== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jinjie Ruan , Russell King , Kalle Valo , Sasha Levin Subject: [PATCH 5.15 059/317] wifi: mwifiex: debugfs: Drop unnecessary error check for debugfs_create_dir() Date: Sun, 24 Mar 2024 19:30:39 -0400 Message-ID: <20240324233458.1352854-60-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Jinjie Ruan [ Upstream commit 50180c7f8e3de7c2d87f619131776598fcb1478d ] debugfs_create_dir() returns ERR_PTR and never return NULL. As Russell suggested, this patch removes the error checking for debugfs_create_dir(). This is because the DebugFS kernel API is developed in a way that the caller can safely ignore the errors that occur during the creation of DebugFS nodes. The debugfs APIs have a IS_ERR() judge in start_creating() which can handle it gracefully. So these checks are unnecessary. Fixes: 5e6e3a92b9a4 ("wireless: mwifiex: initial commit for Marvell mwifiex= driver") Signed-off-by: Jinjie Ruan Suggested-by: Russell King (Oracle) Signed-off-by: Kalle Valo Link: https://msgid.link/20230903030216.1509013-3-ruanjinjie@huawei.com Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/net/wireless/marvell/mwifiex/debugfs.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/drivers/net/wireless/marvell/mwifiex/debugfs.c b/drivers/net/w= ireless/marvell/mwifiex/debugfs.c index 1e7dc724c6a94..d48a3e0b36060 100644 --- a/drivers/net/wireless/marvell/mwifiex/debugfs.c +++ b/drivers/net/wireless/marvell/mwifiex/debugfs.c @@ -976,9 +976,6 @@ mwifiex_dev_debugfs_init(struct mwifiex_private *priv) priv->dfs_dev_dir =3D debugfs_create_dir(priv->netdev->name, mwifiex_dfs_dir); =20 - if (!priv->dfs_dev_dir) - return; - MWIFIEX_DFS_ADD_FILE(info); MWIFIEX_DFS_ADD_FILE(debug); MWIFIEX_DFS_ADD_FILE(getlog); --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5ACD2275506; Sun, 24 Mar 2024 23:36:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323361; cv=none; b=hoQf2Gk4ZqhUSkjCwp+uM6JY10ZqPQOt6ITz3kNt9pdKcMl4emONJ1MfJ7TaNSu4wNh1TRnu10XSu+y5sr4akFI7Yau23bU0LdsRzVx51DZm1IlZPs/7XAP+CRFYcA1a4CaLa/G8vzNXTucakj1h44kuIqYFwQzsajzioQkzm8Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323361; c=relaxed/simple; bh=BqRZ8WtyK5fDkufOYUbNRatwBSbGsOt68dnAvr75fBs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=fGlwRI0MjKnB2sUGD+uWLdntnOmfSKi7aSCFOsPwnCgJ+bp4lVMjvws8e3Ti0t57+m0y5j4kO9FYhE7whB8lRDAbU5ooXFEDmhILjsbHrNiHSg65aGIMj397javQyB98XJ0wQrSX7J2W+0ppfrpllrLniWV8qqEYiSDr24ok7s4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=oSNZJWaz; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="oSNZJWaz" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9620BC433F1; Sun, 24 Mar 2024 23:35:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323360; bh=BqRZ8WtyK5fDkufOYUbNRatwBSbGsOt68dnAvr75fBs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=oSNZJWazxD9oBwHFaCk8VCGTiRjl5I/GKUdmx13y/59zXgoaYR3gklP6/wJShSTUh x8kB++Qpjh7eeUiFegOENrh1TsFo8rm0IJP7Y5Iu+72VdB4SXr7hdpBiMzLq5XKNS4 JyW6D7iTSAPs7QUcmD5+WBalFwSehTAnHAjW+LESHGs+FDLTE3ZSZImCGJ9h6q50aS EXSjFdfhG28Siw3Nf6BUj7KHFKQCtS2EfR5wBs0PrZuF+93KpySXG2h4+UMzAiimT7 6P50KKAx0k/PgVQGLIMaideyea7gWk8UNSM/qwoMT9stYN/LoPKdyLLZi6uHBE7DaB AwalicZTzDXyg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Geert Uytterhoeven , =?UTF-8?q?Niklas=20S=C3=B6derlund?= , Sasha Levin Subject: [PATCH 5.15 060/317] ARM: dts: renesas: r8a73a4: Fix external clocks and clock rate Date: Sun, 24 Mar 2024 19:30:40 -0400 Message-ID: <20240324233458.1352854-61-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable From: Geert Uytterhoeven [ Upstream commit 090c4094574705b0afc7d37825cdc5d06f0e7e02 ] External clocks should be defined as zero-Hz clocks in the SoC .dtsi, and overridden in the board .dts when present. Correct the clock rate of extal1 from 25 to 26 MHz, to match the crystal oscillator present on the APE6-EVM board. Fixes: a76809a329d6ebae ("ARM: shmobile: r8a73a4: Common clock framework DT= description") Signed-off-by: Geert Uytterhoeven Reviewed-by: Niklas S=C3=B6derlund Link: https://lore.kernel.org/r/1692bc8cd465d62168cbf110522ad62a7af3f606.17= 05315614.git.geert+renesas@glider.be Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- arch/arm/boot/dts/r8a73a4-ape6evm.dts | 12 ++++++++++++ arch/arm/boot/dts/r8a73a4.dtsi | 9 ++++++--- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/arch/arm/boot/dts/r8a73a4-ape6evm.dts b/arch/arm/boot/dts/r8a7= 3a4-ape6evm.dts index b088e8e351d54..1028f721b38b0 100644 --- a/arch/arm/boot/dts/r8a73a4-ape6evm.dts +++ b/arch/arm/boot/dts/r8a73a4-ape6evm.dts @@ -208,6 +208,18 @@ &cmt1 { status =3D "okay"; }; =20 +&extal1_clk { + clock-frequency =3D <26000000>; +}; + +&extal2_clk { + clock-frequency =3D <48000000>; +}; + +&extalr_clk { + clock-frequency =3D <32768>; +}; + &pfc { scifa0_pins: scifa0 { groups =3D "scifa0_data"; diff --git a/arch/arm/boot/dts/r8a73a4.dtsi b/arch/arm/boot/dts/r8a73a4.dtsi index c39066967053f..d1f4cbd099efb 100644 --- a/arch/arm/boot/dts/r8a73a4.dtsi +++ b/arch/arm/boot/dts/r8a73a4.dtsi @@ -450,17 +450,20 @@ clocks { extalr_clk: extalr { compatible =3D "fixed-clock"; #clock-cells =3D <0>; - clock-frequency =3D <32768>; + /* This value must be overridden by the board. */ + clock-frequency =3D <0>; }; extal1_clk: extal1 { compatible =3D "fixed-clock"; #clock-cells =3D <0>; - clock-frequency =3D <25000000>; + /* This value must be overridden by the board. */ + clock-frequency =3D <0>; }; extal2_clk: extal2 { compatible =3D "fixed-clock"; #clock-cells =3D <0>; - clock-frequency =3D <48000000>; + /* This value must be overridden by the board. */ + clock-frequency =3D <0>; }; fsiack_clk: fsiack { compatible =3D "fixed-clock"; --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 41820275504; Sun, 24 Mar 2024 23:36:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323361; cv=none; b=juOHLGIjX73EMqhngHqnngv8UOCRcxPdhda8PrKf5eQqiudGleRpmvfmpAGjS3bKhjG64gCOXBCwh9zPwmspUDoQZmyxEFTQ2jXMuCtseztIXUrhkbHUrizuzRNA7CDEfxH25bkX6Egl5wwrTyoIUk8hHDEAb0cAT+sS22jSve8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323361; c=relaxed/simple; bh=3v2u52gHV9cGUvW7r3oyCpl4u5Lb7Ipc60LXIYLcw5Q=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=FoQfvQ9uIdqJBB3G2Q9LKtIxSNEUVN7/fq7o9Wet2w72Sn0I6Ij+VsGPBR8W54qpc8qNPguUAL8si2Dce1IL88cadcNx79Y6XYud7fOLbzU0I+GNmhR6UjjHWO3X09dh3HHZqPphiOUjwWQs08sAazSxh6qX3VJWBTmGz0fgjFg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=rDEn8gUj; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="rDEn8gUj" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7EC87C43394; Sun, 24 Mar 2024 23:36:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323361; bh=3v2u52gHV9cGUvW7r3oyCpl4u5Lb7Ipc60LXIYLcw5Q=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=rDEn8gUjqpicwmrst9gr7sgS7M73kTq75DswU0f+TSZ1+fAniFHUsnAXMLhuJB0Ql 2SRkfDCp/YOJmcsrntsMxw0bVX1dTBE3ySnfNbXPk3Z+eN4Upzc96jTXc38NpmXWP9 kasywgceejvH0PjH7lcRQ2llvSwnHCIr3H/CZ3ph+Z82EypnEOk9HWOfvjwAtap3OL UMe/s1kv9IMhvV1hiX7J8oK6KDt94IVTIMeFeNvp8fJUJLsEI0oUBiG8evZMryTSh4 TOwtegRP2YjbiV9lntxpbK743Xhnuhst5WEd1e8gg+62VJtluCHxVQ/7nGh6povRF7 0OaD1O2z2kgRQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Anastasia Belova , Viresh Kumar , Sasha Levin Subject: [PATCH 5.15 061/317] cpufreq: brcmstb-avs-cpufreq: add check for cpufreq_cpu_get's return value Date: Sun, 24 Mar 2024 19:30:41 -0400 Message-ID: <20240324233458.1352854-62-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Anastasia Belova [ Upstream commit f661017e6d326ee187db24194cabb013d81bc2a6 ] cpufreq_cpu_get may return NULL. To avoid NULL-dereference check it and return 0 in case of error. Found by Linux Verification Center (linuxtesting.org) with SVACE. Fixes: de322e085995 ("cpufreq: brcmstb-avs-cpufreq: AVS CPUfreq driver for = Broadcom STB SoCs") Signed-off-by: Anastasia Belova Signed-off-by: Viresh Kumar Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/cpufreq/brcmstb-avs-cpufreq.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/cpufreq/brcmstb-avs-cpufreq.c b/drivers/cpufreq/brcmst= b-avs-cpufreq.c index f644c5e325fb2..38ec0fedb247f 100644 --- a/drivers/cpufreq/brcmstb-avs-cpufreq.c +++ b/drivers/cpufreq/brcmstb-avs-cpufreq.c @@ -481,6 +481,8 @@ static bool brcm_avs_is_firmware_loaded(struct private_= data *priv) static unsigned int brcm_avs_cpufreq_get(unsigned int cpu) { struct cpufreq_policy *policy =3D cpufreq_cpu_get(cpu); + if (!policy) + return 0; struct private_data *priv =3D policy->driver_data; =20 cpufreq_cpu_put(policy); --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 476A027550D; Sun, 24 Mar 2024 23:36:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323362; cv=none; b=OeJG8BGW/lwZcX+KfwIJ2l+JAZC3ktj8uBNIk4GP7BsMXxfCHJp+xiZ8eX0BaSMe3TQyeGb3ULmZPGzeWVcUKHUR7qrZ8HYJ6gTmTerQ/83ucaAJFuFYA3JILGNd1hygse1QUvvWxUDGSd03/07U6KmBzeWKBV+Ys07VJwF3qDA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323362; c=relaxed/simple; bh=dXw/GUG7J5HCW2qalxp3eZ8ma51egnwp+1yt6yCWkXQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=NYGOe0/p2it+N21WD2eY1iVZIYFuOcaS0t6kU5TxZiGN0nF0beR5y/+fwgMeEQfHWWp+AJCJSh12vsETT5a8dgaI/HP92ybitDKXZQuOnCYCXVhl3Djqh7Q9rOFfU8C/0agrF/BWCyZZ5bBAcNAVTDTJBuxUV7Ruk9+xUyaR3BY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=WaT0fVCf; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="WaT0fVCf" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 68DC1C43399; Sun, 24 Mar 2024 23:36:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323362; bh=dXw/GUG7J5HCW2qalxp3eZ8ma51egnwp+1yt6yCWkXQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=WaT0fVCf6oeNrWgCTA42B8W9/Uwn52KANgtqmm56MifGTHXlIk3wylICMEwLY7oQq +DJpprBaVN7JXiXSOKZ8c+zVIjAJ31lGMAdgVbNfvjIQPt3IhYHU+RYBrul6bpFI7l 2ZEen6bex1Be23wyucndxi1R/yq57waTBRl6cmOzDFl4yiYk62f7uEqB4cfWNJowzL aSvDvArabQ3iSdwoW6kg6Oa6IoniE3Tz4VG1cXOzv9kX2zqnS9tnmLevYzlS5aq9J7 FcC6J2LJk9uO5Oz/QOns/syBO+yzQrovfi8EJ8AyzRmwZWw7FjL81X1LXVwdfJGnHN 6wf/raKuuz/AA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Rob Herring , "Rafael J . Wysocki" , Viresh Kumar , Sasha Levin Subject: [PATCH 5.15 062/317] cpufreq: Explicitly include correct DT includes Date: Sun, 24 Mar 2024 19:30:42 -0400 Message-ID: <20240324233458.1352854-63-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Rob Herring [ Upstream commit a70eb93a2477371638ef481aaae7bb7b760d3004 ] The DT of_device.h and of_platform.h date back to the separate of_platform_bus_type before it as merged into the regular platform bus. As part of that merge prepping Arm DT support 13 years ago, they "temporarily" include each other. They also include platform_device.h and of.h. As a result, there's a pretty much random mix of those include files used throughout the tree. In order to detangle these headers and replace the implicit includes with struct declarations, users need to explicitly include the correct includes. Signed-off-by: Rob Herring Acked-by: Rafael J. Wysocki Signed-off-by: Viresh Kumar Stable-dep-of: 788715b5f21c ("cpufreq: mediatek-hw: Wait for CPU supplies b= efore probing") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/cpufreq/armada-37xx-cpufreq.c | 4 +--- drivers/cpufreq/mediatek-cpufreq-hw.c | 3 ++- drivers/cpufreq/ppc_cbe_cpufreq.c | 2 +- drivers/cpufreq/ppc_cbe_cpufreq_pmi.c | 1 - drivers/cpufreq/qcom-cpufreq-nvmem.c | 1 - drivers/cpufreq/scpi-cpufreq.c | 2 +- drivers/cpufreq/sti-cpufreq.c | 2 +- drivers/cpufreq/ti-cpufreq.c | 2 +- drivers/cpufreq/vexpress-spc-cpufreq.c | 1 - 9 files changed, 7 insertions(+), 11 deletions(-) diff --git a/drivers/cpufreq/armada-37xx-cpufreq.c b/drivers/cpufreq/armada= -37xx-cpufreq.c index b74289a95a171..bea41ccabf1f0 100644 --- a/drivers/cpufreq/armada-37xx-cpufreq.c +++ b/drivers/cpufreq/armada-37xx-cpufreq.c @@ -14,10 +14,8 @@ #include #include #include +#include #include -#include -#include -#include #include #include #include diff --git a/drivers/cpufreq/mediatek-cpufreq-hw.c b/drivers/cpufreq/mediat= ek-cpufreq-hw.c index 0cf18dd46b923..8a4e52b22eed7 100644 --- a/drivers/cpufreq/mediatek-cpufreq-hw.c +++ b/drivers/cpufreq/mediatek-cpufreq-hw.c @@ -10,8 +10,9 @@ #include #include #include -#include +#include #include +#include #include =20 #define LUT_MAX_ENTRIES 32U diff --git a/drivers/cpufreq/ppc_cbe_cpufreq.c b/drivers/cpufreq/ppc_cbe_cp= ufreq.c index c58abb4cca3a2..acaa8db57812d 100644 --- a/drivers/cpufreq/ppc_cbe_cpufreq.c +++ b/drivers/cpufreq/ppc_cbe_cpufreq.c @@ -9,7 +9,7 @@ =20 #include #include -#include +#include =20 #include #include diff --git a/drivers/cpufreq/ppc_cbe_cpufreq_pmi.c b/drivers/cpufreq/ppc_cb= e_cpufreq_pmi.c index 037fe23bc6ed0..e85fa0f41991c 100644 --- a/drivers/cpufreq/ppc_cbe_cpufreq_pmi.c +++ b/drivers/cpufreq/ppc_cbe_cpufreq_pmi.c @@ -11,7 +11,6 @@ #include #include #include -#include #include =20 #include diff --git a/drivers/cpufreq/qcom-cpufreq-nvmem.c b/drivers/cpufreq/qcom-cp= ufreq-nvmem.c index 6e011e8bfb6a9..63fc879e23096 100644 --- a/drivers/cpufreq/qcom-cpufreq-nvmem.c +++ b/drivers/cpufreq/qcom-cpufreq-nvmem.c @@ -22,7 +22,6 @@ #include #include #include -#include #include #include #include diff --git a/drivers/cpufreq/scpi-cpufreq.c b/drivers/cpufreq/scpi-cpufreq.c index bda3e7d429647..763692e327b18 100644 --- a/drivers/cpufreq/scpi-cpufreq.c +++ b/drivers/cpufreq/scpi-cpufreq.c @@ -22,7 +22,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/cpufreq/sti-cpufreq.c b/drivers/cpufreq/sti-cpufreq.c index fdb0a722d8812..f1cde44670689 100644 --- a/drivers/cpufreq/sti-cpufreq.c +++ b/drivers/cpufreq/sti-cpufreq.c @@ -13,7 +13,7 @@ #include #include #include -#include +#include #include #include =20 diff --git a/drivers/cpufreq/ti-cpufreq.c b/drivers/cpufreq/ti-cpufreq.c index 8f9fdd864391a..88bffa0bd0139 100644 --- a/drivers/cpufreq/ti-cpufreq.c +++ b/drivers/cpufreq/ti-cpufreq.c @@ -12,7 +12,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/cpufreq/vexpress-spc-cpufreq.c b/drivers/cpufreq/vexpr= ess-spc-cpufreq.c index d295f405c4bb0..865e501648034 100644 --- a/drivers/cpufreq/vexpress-spc-cpufreq.c +++ b/drivers/cpufreq/vexpress-spc-cpufreq.c @@ -18,7 +18,6 @@ #include #include #include -#include #include #include #include --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5A8CB27551E; Sun, 24 Mar 2024 23:36:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323364; cv=none; b=A1KGhCDSXtGSqa8HRChgxjHJgktiPPzFX+oVgCZtqrRZqEaUJ3EvZQKM2FktJiGgWzZeUENT7ho+3rjbfoNDExSLjTT9Qp5lAHHXqonNmKsnLapECmpByPqz0oi7vYj4mgyQ/9qqDDUtKZs+EVXj9f/ieOCzjX+rPXQNJ83C4+c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323364; c=relaxed/simple; bh=tSvBj+9fAZrbZVQNSGQIlc8MnLUWAHjaR1WzNmMgebM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=CtplJrlCJW+nbygsSKoqe+UwWzhXTvqbC4FhmtYA2MvTmFTwQnfNf/9fdK2UokY8LI8buFyW9Lycm1MaIr34R21DMIfnlAeHtdhNmgtDGaB2swjJyOuRwwqx4+elp0I/8at0OaqMfDvMc8A8MG+G61F6eW9EiTVHBevuia8mFhk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=IUnooDrj; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="IUnooDrj" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6A4C4C43394; Sun, 24 Mar 2024 23:36:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323363; bh=tSvBj+9fAZrbZVQNSGQIlc8MnLUWAHjaR1WzNmMgebM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=IUnooDrjBp3qpM0cZHfdlzKnyBHBxHTQ226CEmv4RL0QZcE0JosafliPs18BC/5h9 eVN0XcLQrIYtdN7IPqpzESjdIoj6HJsbSb2UhBvubzaOoaSty75+mEdH8vVm15iEj5 DS0j6hxxONBXkfmH/2b3Eb5Lzkxn/NSXRMavcztsmmL52q6kjNysnz1w12R9Ey7oIr 2HCEaLDM4X1WGIiGmcAtAvLdR0CBj763SrOJ/SutsGRWSZKCIjHtQ83cpCetdYWwYW 8bIoc6llgCOvpYHI8ZMQnwU98vsaisCwjpLGADXQ0OLX92q6I0lMQqSoDiN/GOsy/a iW3YEl5YGaL4A== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?N=C3=ADcolas=20F=2E=20R=2E=20A=2E=20Prado?= , AngeloGioacchino Del Regno , Matthias Brugger , Viresh Kumar , Sasha Levin Subject: [PATCH 5.15 063/317] cpufreq: mediatek-hw: Wait for CPU supplies before probing Date: Sun, 24 Mar 2024 19:30:43 -0400 Message-ID: <20240324233458.1352854-64-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable From: N=C3=ADcolas F. R. A. Prado [ Upstream commit 788715b5f21c6455264fe00a1779e61bec407fe2 ] Before proceeding with the probe and enabling frequency scaling for the CPUs, make sure that all supplies feeding the CPUs have probed. This fixes an issue observed on MT8195-Tomato where if the mediatek-cpufreq-hw driver enabled the hardware (by writing to REG_FREQ_ENABLE) before the SPMI controller driver (spmi-mtk-pmif), behind which lies the big CPU supply, probed the platform would hang shortly after with "rcu: INFO: rcu_preempt detected stalls on CPUs/tasks" being printed in the log. Fixes: 4855e26bcf4d ("cpufreq: mediatek-hw: Add support for CPUFREQ HW") Signed-off-by: N=C3=ADcolas F. R. A. Prado Reviewed-by: AngeloGioacchino Del Regno Reviewed-by: Matthias Brugger Signed-off-by: Viresh Kumar Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/cpufreq/mediatek-cpufreq-hw.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/drivers/cpufreq/mediatek-cpufreq-hw.c b/drivers/cpufreq/mediat= ek-cpufreq-hw.c index 8a4e52b22eed7..4a7478a91fb61 100644 --- a/drivers/cpufreq/mediatek-cpufreq-hw.c +++ b/drivers/cpufreq/mediatek-cpufreq-hw.c @@ -13,6 +13,7 @@ #include #include #include +#include #include =20 #define LUT_MAX_ENTRIES 32U @@ -268,7 +269,23 @@ static struct cpufreq_driver cpufreq_mtk_hw_driver =3D= { static int mtk_cpufreq_hw_driver_probe(struct platform_device *pdev) { const void *data; - int ret; + int ret, cpu; + struct device *cpu_dev; + struct regulator *cpu_reg; + + /* Make sure that all CPU supplies are available before proceeding. */ + for_each_possible_cpu(cpu) { + cpu_dev =3D get_cpu_device(cpu); + if (!cpu_dev) + return dev_err_probe(&pdev->dev, -EPROBE_DEFER, + "Failed to get cpu%d device\n", cpu); + + cpu_reg =3D devm_regulator_get_optional(cpu_dev, "cpu"); + if (IS_ERR(cpu_reg)) + return dev_err_probe(&pdev->dev, PTR_ERR(cpu_reg), + "CPU%d regulator get failed\n", cpu); + } + =20 data =3D of_device_get_match_data(&pdev->dev); if (!data) --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8246627551F; Sun, 24 Mar 2024 23:36:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323364; cv=none; b=MW2LbJ5345mhzJHjYH2iitPS6GJIywj1TcWx3BIh6bTyrdlESxkrmvXHYsEAdypTtCn9H84tZSiZOepZp7c/rHn/QOoF90OWAB6uLW6HfLBo1FDJWULkFp8BP6dU96b+V8iWUvz5eijQ5LPAh22+4GbeXgk/tXgth/S+PpKiLiM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323364; c=relaxed/simple; bh=75RTwF1RiKRiyBcXXdqr/7omHTpdRTEVzn66ZABF4OM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=kId1d7G+HBqYuVIVLiEXUNgmIKnDe1ltPACFPfmXd7e75oEkmYJyg4FH/coLt4vZN3dEScTd+anO2sgCgvYIirGqaMSh4r+6FylgSb+yts6lLLe0+w40N112czEcs9lSTMQvF7wUshrRHbrV8r244bS7XyVuOfn4P5hm5LjoKyo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=EVrqHy0R; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="EVrqHy0R" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7C7FEC433C7; Sun, 24 Mar 2024 23:36:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323364; bh=75RTwF1RiKRiyBcXXdqr/7omHTpdRTEVzn66ZABF4OM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=EVrqHy0R+6tplrob/zlwb5yG3T+Gx9ZGC+Jjr6jzY2nHHT9sJpDiwhcBpLyLA/jNf SsR1lNRNNBDoYZrYgKxS7NtKcGEkol1WsUHAzP8y/tsT6IPpcAIqnuNBFcW9BWqrFw w1a/xMzn5CaVKwlwjYtgvZC6cp1uw96bHZVx703d3vZsemx4sQ3BuReiNJmSJFWVxi Doz1i7tWxFJc3tkDCLd71dGTnm1SQ1DSq1oRedwRF8kPHp0z+qbIs0vUSckYM9b5Bo zbLEuYhxx3vBfJRza8niw1mnsY1oFiXV/LltEosXz+BPK19zIxsmUcAZpnQ/xjpOAo +UJ4lqBE+Y5YA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Eric Dumazet , Guillaume Nault , Kuniyuki Iwashima , Willem de Bruijn , Paolo Abeni , Sasha Levin Subject: [PATCH 5.15 064/317] sock_diag: annotate data-races around sock_diag_handlers[family] Date: Sun, 24 Mar 2024 19:30:44 -0400 Message-ID: <20240324233458.1352854-65-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Eric Dumazet [ Upstream commit efd402537673f9951992aea4ef0f5ff51d858f4b ] __sock_diag_cmd() and sock_diag_bind() read sock_diag_handlers[family] without a lock held. Use READ_ONCE()/WRITE_ONCE() annotations to avoid potential issues. Fixes: 8ef874bfc729 ("sock_diag: Move the sock_ code to net/core/") Signed-off-by: Eric Dumazet Reviewed-by: Guillaume Nault Reviewed-by: Kuniyuki Iwashima Reviewed-by: Willem de Bruijn Signed-off-by: Paolo Abeni Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- net/core/sock_diag.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/net/core/sock_diag.c b/net/core/sock_diag.c index c9c45b935f990..bce65b519ee80 100644 --- a/net/core/sock_diag.c +++ b/net/core/sock_diag.c @@ -189,7 +189,7 @@ int sock_diag_register(const struct sock_diag_handler *= hndl) if (sock_diag_handlers[hndl->family]) err =3D -EBUSY; else - sock_diag_handlers[hndl->family] =3D hndl; + WRITE_ONCE(sock_diag_handlers[hndl->family], hndl); mutex_unlock(&sock_diag_table_mutex); =20 return err; @@ -205,7 +205,7 @@ void sock_diag_unregister(const struct sock_diag_handle= r *hnld) =20 mutex_lock(&sock_diag_table_mutex); BUG_ON(sock_diag_handlers[family] !=3D hnld); - sock_diag_handlers[family] =3D NULL; + WRITE_ONCE(sock_diag_handlers[family], NULL); mutex_unlock(&sock_diag_table_mutex); } EXPORT_SYMBOL_GPL(sock_diag_unregister); @@ -223,7 +223,7 @@ static int __sock_diag_cmd(struct sk_buff *skb, struct = nlmsghdr *nlh) return -EINVAL; req->sdiag_family =3D array_index_nospec(req->sdiag_family, AF_MAX); =20 - if (sock_diag_handlers[req->sdiag_family] =3D=3D NULL) + if (READ_ONCE(sock_diag_handlers[req->sdiag_family]) =3D=3D NULL) sock_load_diag_module(req->sdiag_family, 0); =20 mutex_lock(&sock_diag_table_mutex); @@ -282,12 +282,12 @@ static int sock_diag_bind(struct net *net, int group) switch (group) { case SKNLGRP_INET_TCP_DESTROY: case SKNLGRP_INET_UDP_DESTROY: - if (!sock_diag_handlers[AF_INET]) + if (!READ_ONCE(sock_diag_handlers[AF_INET])) sock_load_diag_module(AF_INET, 0); break; case SKNLGRP_INET6_TCP_DESTROY: case SKNLGRP_INET6_UDP_DESTROY: - if (!sock_diag_handlers[AF_INET6]) + if (!READ_ONCE(sock_diag_handlers[AF_INET6])) sock_load_diag_module(AF_INET6, 0); break; } --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AE8A6275530; Sun, 24 Mar 2024 23:36:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323366; cv=none; b=NbTBJ8hsNmRLY6ALPQfwHkEfJxTITdSi3/jK1VNBJq+teqL2fiJf4QL/dfm2/RLf87esQmUfjGj9LfVsU/tp2zQhSKglpy2YwpbiKxmfo1p8fcRWS0WsdcMTxo4ORqDsriNvJkg5ZRl3clkpLbWOfNFT8mHOE0NrX2ZNEERod+w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323366; c=relaxed/simple; bh=H8zz5ZcHDr1oPz9K7S6HANhlVpDysfbtPJ+bRmjTSj4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Qg1OCZL1qiPxXImo52dxdgTvXEWw6oYv6CvEFq2vfav5XI+LZNBn+aYVsuJEyHQrkj5QU5DAkAoJWMljU9vzQSIpPd9PBrIst55xlSjTYXTIF2d1C4JPjqonYM0m6gfKqUVc9LKKM/J9aU8VSoDabb1O54k8hUtGajCxCmwKdvE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=qWaNirCG; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="qWaNirCG" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A464EC43394; Sun, 24 Mar 2024 23:36:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323365; bh=H8zz5ZcHDr1oPz9K7S6HANhlVpDysfbtPJ+bRmjTSj4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qWaNirCGEWxC2D0uQ31qz/TNsYDN5EHBBmbYcU+NfwUztlIHbAA1DBZkh1FBAzgWR nG6C7Px0ZHrC+KyyanubBnjWn6NKf638P7V9aZw4nqqNgrPjE7AOnzdHiSM3YDPsf5 +kB/PLYRVE+uXYEqvyl4kglOW9t6GJArnMuf4zKN+x0ePgzWsvBc2tU4Ybq49etRRx hm2Q47r1tlsjNVGwKdUqRJIGG+LwPL+cPH6OoMICc3/lKeAe1J8MN9Ql2OG0LvI7yR egr4TlWU0D71E/bczZ3ron9DiZIEIweqRzVcw/JuxDnXApli8LGhaHM4mlLVgfzPF0 RD43i1RVkBuHA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Eric Dumazet , Guillaume Nault , Kuniyuki Iwashima , Willem de Bruijn , Paolo Abeni , Sasha Levin Subject: [PATCH 5.15 065/317] inet_diag: annotate data-races around inet_diag_table[] Date: Sun, 24 Mar 2024 19:30:45 -0400 Message-ID: <20240324233458.1352854-66-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Eric Dumazet [ Upstream commit e50e10ae5d81ddb41547114bfdc5edc04422f082 ] inet_diag_lock_handler() reads inet_diag_table[proto] locklessly. Use READ_ONCE()/WRITE_ONCE() annotations to avoid potential issues. Fixes: d523a328fb02 ("[INET]: Fix inet_diag dead-lock regression") Signed-off-by: Eric Dumazet Reviewed-by: Guillaume Nault Reviewed-by: Kuniyuki Iwashima Reviewed-by: Willem de Bruijn Signed-off-by: Paolo Abeni Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- net/ipv4/inet_diag.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/net/ipv4/inet_diag.c b/net/ipv4/inet_diag.c index 09cabed358fd0..3aeba9e2b22cd 100644 --- a/net/ipv4/inet_diag.c +++ b/net/ipv4/inet_diag.c @@ -57,7 +57,7 @@ static const struct inet_diag_handler *inet_diag_lock_han= dler(int proto) return ERR_PTR(-ENOENT); } =20 - if (!inet_diag_table[proto]) + if (!READ_ONCE(inet_diag_table[proto])) sock_load_diag_module(AF_INET, proto); =20 mutex_lock(&inet_diag_table_mutex); @@ -1419,7 +1419,7 @@ int inet_diag_register(const struct inet_diag_handler= *h) mutex_lock(&inet_diag_table_mutex); err =3D -EEXIST; if (!inet_diag_table[type]) { - inet_diag_table[type] =3D h; + WRITE_ONCE(inet_diag_table[type], h); err =3D 0; } mutex_unlock(&inet_diag_table_mutex); @@ -1436,7 +1436,7 @@ void inet_diag_unregister(const struct inet_diag_hand= ler *h) return; =20 mutex_lock(&inet_diag_table_mutex); - inet_diag_table[type] =3D NULL; + WRITE_ONCE(inet_diag_table[type], NULL); mutex_unlock(&inet_diag_table_mutex); } EXPORT_SYMBOL_GPL(inet_diag_unregister); --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C1570275539; Sun, 24 Mar 2024 23:36:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323367; cv=none; b=hW1yOlsBitEVeZROUjVQU8PGQPpAX1uuP8ppZ0Tvr6AhdfY+iV/SoD5WuEsKfXQczve34kGrXVCYtZnG4g2iUe5Av3GdDTVbzKskl/G51V2/rP58sn50XKURZjGbYyCU/wANrK2DXatq9WqpnRjCEX5YwBbGvEwoo2ytxeGxm/Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323367; c=relaxed/simple; bh=k1XW0VZOAX7UoYla65MdW/D5lsy04231QVTFmeLSsgs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=AyxwFRsxsFwlSa1cZQVWz3B6J+V1hHjDeJgY6Ok++QyqXCRuhNERD6Atl1aZOzg37fOr8VghYyWSdxv+O68OYSKW9GhyAf3SS2xGWZJbRlGk7bXdsX3ocrwbvhfXY7fj54UZt6kh9utL3/c5skCFuq7iXH5RPBLdIsusmisZdeo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=TWNlEAtf; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="TWNlEAtf" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D03C7C433C7; Sun, 24 Mar 2024 23:36:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323366; bh=k1XW0VZOAX7UoYla65MdW/D5lsy04231QVTFmeLSsgs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=TWNlEAtfzQTSJOYWcsutbx8++a7fdRdsKZLyo94ZeuHuwrDt1P0vgUQdmIAGgFsPh 47rSowQwsZcXh7DH7AzeCE+c3dw4Q4Lr5pC3zmZcKfSTFdcrIVV+PLoQYmr22bsD8N 8ocXvVGVSyhtmjPUYPoC3u1S89yKldBl3W6+eCGOmPOC8POZx9TtCRb04Rj847wjlg TZjb4tRZi/O1E0A4QctNhQJs9qPW4WH2mpUL/S2o7EdJHBxq5drUuawt21pzzX13rJ yuvP3JoWRJecgSrzMzwkugZZFCcuY0gOExdeggFC/JqQLOeQQHton+u/9Vowi3eFIC Ye8OlBDh39zSQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Tiezhu Yang , Daniel Borkmann , Quentin Monnet , Alexei Starovoitov , Sasha Levin Subject: [PATCH 5.15 066/317] bpftool: Silence build warning about calloc() Date: Sun, 24 Mar 2024 19:30:46 -0400 Message-ID: <20240324233458.1352854-67-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable From: Tiezhu Yang [ Upstream commit f5f30386c78105cba520e443a6a9ee945ec1d066 ] There exists the following warning when building bpftool: CC prog.o prog.c: In function =E2=80=98profile_open_perf_events=E2=80=99: prog.c:2301:24: warning: =E2=80=98calloc=E2=80=99 sizes specified with =E2= =80=98sizeof=E2=80=99 in the earlier argument and not in the later argument= [-Wcalloc-transposed-args] 2301 | sizeof(int), obj->rodata->num_cpu * obj->rodata->nu= m_metric); | ^~~ prog.c:2301:24: note: earlier argument should specify number of elements, l= ater size of each element Tested with the latest upstream GCC which contains a new warning option -Wcalloc-transposed-args. The first argument to calloc is documented to be number of elements in array, while the second argument is size of each element, just switch the first and second arguments of calloc() to silence the build warning, compile tested only. Fixes: 47c09d6a9f67 ("bpftool: Introduce "prog profile" command") Signed-off-by: Tiezhu Yang Signed-off-by: Daniel Borkmann Reviewed-by: Quentin Monnet Link: https://lore.kernel.org/bpf/20240116061920.31172-1-yangtiezhu@loongso= n.cn Signed-off-by: Alexei Starovoitov Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- tools/bpf/bpftool/prog.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/bpf/bpftool/prog.c b/tools/bpf/bpftool/prog.c index bdd4d3b12f6c0..afb28fcc66786 100644 --- a/tools/bpf/bpftool/prog.c +++ b/tools/bpf/bpftool/prog.c @@ -2098,7 +2098,7 @@ static int profile_open_perf_events(struct profiler_b= pf *obj) int map_fd; =20 profile_perf_events =3D calloc( - sizeof(int), obj->rodata->num_cpu * obj->rodata->num_metric); + obj->rodata->num_cpu * obj->rodata->num_metric, sizeof(int)); if (!profile_perf_events) { p_err("failed to allocate memory for perf_event array: %s", strerror(errno)); --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EFF85175552; Sun, 24 Mar 2024 23:36:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323369; cv=none; b=Op9z7og8HHlSyrE3USA7R4ZIUkicmjUT/BLL2F+k5MxRwB54i/dp/nHvm0bJ9QOzhYPk2f8vHweCWIjel4w04HrmHSdGQhphFNr2jyz+ui2/h/OZrnmV1PzzBqvXX0HEsyOms0fP350kAxVkms6IlDw7jues4T0lI39C3A+8UEw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323369; c=relaxed/simple; bh=LJkbQ5Qh4PeIsNFxt7AK6SdngL2bBEqJKWrdeSQHzVk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Tu1NmI+KAJQCIzeuouYicoO4qVD0LqkFJjmaPRGbPu2JLUanL82JyED/IcGGGMMD2rjz5jv105aJ9SGIy3IkVEwJ1ouqhN6HtPM2Bapq7flsd6ys8mfMJ2jc+DVxiWxR0KxZpouZJPKCMi05SnFgW6gMWX2CDvTldGIrD8j87KI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Wh17ZVGN; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Wh17ZVGN" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E416EC433F1; Sun, 24 Mar 2024 23:36:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323367; bh=LJkbQ5Qh4PeIsNFxt7AK6SdngL2bBEqJKWrdeSQHzVk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Wh17ZVGNnnLuK/kZwYJRtDMdChPOM37CJwkiu+f7t+hrdTOkpxK1AVerHhbfqkhbL tTOPGmV363pqTr1xqY2wzOPeDqNfvAmRIy9uM1B5ErAJ7CKj7xeBlLePEI0/6+S/yp w/UG9ktRbpJr8MyG+WMKHV+Ht39ubMHvjFm8WEnj+KB4WyLQLrNFVTUZJ5I1JkUIsK v0VHvmwAVdDyZ1pP98JPLXdyO4uaVb6nBviqRTkaRTX0ICnDFXeS7nOo8wSmCYpGys Xy2DBdZOWAzhGS7mNqc9DibakW9+1YqMua7Jfgl/eZrQbybJetS66tsEj6CvqVF0Zo wFKm5sTFn+aCQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Andrey Grafin , Andrii Nakryiko , Yonghong Song , Hou Tao , Alexei Starovoitov , Sasha Levin Subject: [PATCH 5.15 067/317] libbpf: Apply map_set_def_max_entries() for inner_maps on creation Date: Sun, 24 Mar 2024 19:30:47 -0400 Message-ID: <20240324233458.1352854-68-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Andrey Grafin [ Upstream commit f04deb90e516e8e48bf8693397529bc942a9e80b ] This patch allows to auto create BPF_MAP_TYPE_ARRAY_OF_MAPS and BPF_MAP_TYPE_HASH_OF_MAPS with values of BPF_MAP_TYPE_PERF_EVENT_ARRAY by bpf_object__load(). Previous behaviour created a zero filled btf_map_def for inner maps and tried to use it for a map creation but the linux kernel forbids to create a BPF_MAP_TYPE_PERF_EVENT_ARRAY map with max_entries=3D0. Fixes: 646f02ffdd49 ("libbpf: Add BTF-defined map-in-map support") Signed-off-by: Andrey Grafin Signed-off-by: Andrii Nakryiko Acked-by: Yonghong Song Acked-by: Hou Tao Link: https://lore.kernel.org/bpf/20240117130619.9403-1-conquistador@yandex= -team.ru Signed-off-by: Alexei Starovoitov Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- tools/lib/bpf/libbpf.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c index 0c201f07d8aef..e45f831a12c2b 100644 --- a/tools/lib/bpf/libbpf.c +++ b/tools/lib/bpf/libbpf.c @@ -71,6 +71,7 @@ =20 static struct bpf_map *bpf_object__add_map(struct bpf_object *obj); static bool prog_is_subprog(const struct bpf_object *obj, const struct bpf= _program *prog); +static int map_set_def_max_entries(struct bpf_map *map); =20 static int __base_pr(enum libbpf_print_level level, const char *format, va_list args) @@ -4617,6 +4618,9 @@ static int bpf_object__create_map(struct bpf_object *= obj, struct bpf_map *map, b =20 if (bpf_map_type__is_map_in_map(def->type)) { if (map->inner_map) { + err =3D map_set_def_max_entries(map->inner_map); + if (err) + return err; err =3D bpf_object__create_map(obj, map->inner_map, true); if (err) { pr_warn("map '%s': failed to create inner map: %d\n", --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2AC9E175558; Sun, 24 Mar 2024 23:36:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323369; cv=none; b=QOILzMI8mW/m2aP2svkkChgYLNhpSsKUNDUe/on7llGbb8SGnmWUhpLALw5DlEEIXC3mRgdovOVtm5tdCjkvXp3xWF8W2D1Ns5+T3JgvIKMu0w7C3iTJ3J1XEv57jC88UhR/rd2ql1gmvyXKCgglQuEdsEpL1HVm4JVbEKoWPVI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323369; c=relaxed/simple; bh=PyzAdGm1hzptCH7EM8IRzrHYBDnoj+9zKSyU1/zY8GE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=pdWnfY/RKoMzKkkuY4raakRivw3q4S2pq+6ljozhj5KjmqTw6W5MBAFFEB1kXU4L47UmnhYbLcDlxgPDWboPNrFRLtqZ8vSAry5H1NN+tVZALUinoauqkYi8p3XkRWs9lV0UO4IWDT+gzTJ9No36OMnNxgXSkmD+GGvXheWfq3o= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=fiq+nQpI; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="fiq+nQpI" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1B256C433A6; Sun, 24 Mar 2024 23:36:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323369; bh=PyzAdGm1hzptCH7EM8IRzrHYBDnoj+9zKSyU1/zY8GE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=fiq+nQpI84FafKxd73o+e8DQ7QHF1W4y0FPGhnaq+FBGYAC3i4fpSxdW0HR6R37iC xNeXP70atnOyLiRQscn6+LRGwdm7R5IJzAfkeOS0pduDoc1WI1+oaLDFD2DpC/xjrv xg0s5oTLi9ZTAlfSP0xqUaAkFkVj07As42R0FirgtvI2gY+iawo9hirFLaauObkaAj q4BbSSaRyiuE2GFYVzwRUstb8Xb+9p/hvK7RQroGAB3Dqphb2wpalM4ULotYnaK28v hzyewbpKsHB5ghkppC+txkeTOoZTyQQg8+FIT3Y9K8pB6MFjOC2WNGfwiReSJJYfZK t9A3tom55H7Zw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Andrey Grafin , Andrii Nakryiko , Yonghong Song , Hou Tao , Alexei Starovoitov , Sasha Levin Subject: [PATCH 5.15 068/317] selftest/bpf: Add map_in_maps with BPF_MAP_TYPE_PERF_EVENT_ARRAY values Date: Sun, 24 Mar 2024 19:30:48 -0400 Message-ID: <20240324233458.1352854-69-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Andrey Grafin [ Upstream commit 40628f9fff73adecac77a9aa390f8016724cad99 ] Check that bpf_object__load() successfully creates map_in_maps with BPF_MAP_TYPE_PERF_EVENT_ARRAY values. These changes cover fix in the previous patch "libbpf: Apply map_set_def_max_entries() for inner_maps on creation". A command line output is: - w/o fix $ sudo ./test_maps libbpf: map 'mim_array_pe': failed to create inner map: -22 libbpf: map 'mim_array_pe': failed to create: Invalid argument(-22) libbpf: failed to load object './test_map_in_map.bpf.o' Failed to load test prog - with fix $ sudo ./test_maps ... test_maps: OK, 0 SKIPPED Fixes: 646f02ffdd49 ("libbpf: Add BTF-defined map-in-map support") Signed-off-by: Andrey Grafin Signed-off-by: Andrii Nakryiko Acked-by: Yonghong Song Acked-by: Hou Tao Link: https://lore.kernel.org/bpf/20240117130619.9403-2-conquistador@yandex= -team.ru Signed-off-by: Alexei Starovoitov Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- .../selftests/bpf/progs/test_map_in_map.c | 26 +++++++++++++++++++ tools/testing/selftests/bpf/test_maps.c | 6 ++++- 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/tools/testing/selftests/bpf/progs/test_map_in_map.c b/tools/te= sting/selftests/bpf/progs/test_map_in_map.c index 5f0e0bfc151e5..8a52bc56568d6 100644 --- a/tools/testing/selftests/bpf/progs/test_map_in_map.c +++ b/tools/testing/selftests/bpf/progs/test_map_in_map.c @@ -23,6 +23,32 @@ struct { __uint(value_size, sizeof(__u32)); } mim_hash SEC(".maps"); =20 +/* The following three maps are used to test + * perf_event_array map can be an inner + * map of hash/array_of_maps. + */ +struct perf_event_array { + __uint(type, BPF_MAP_TYPE_PERF_EVENT_ARRAY); + __type(key, __u32); + __type(value, __u32); +} inner_map0 SEC(".maps"); + +struct { + __uint(type, BPF_MAP_TYPE_ARRAY_OF_MAPS); + __uint(max_entries, 1); + __type(key, __u32); + __array(values, struct perf_event_array); +} mim_array_pe SEC(".maps") =3D { + .values =3D {&inner_map0}}; + +struct { + __uint(type, BPF_MAP_TYPE_HASH_OF_MAPS); + __uint(max_entries, 1); + __type(key, __u32); + __array(values, struct perf_event_array); +} mim_hash_pe SEC(".maps") =3D { + .values =3D {&inner_map0}}; + SEC("xdp") int xdp_mimtest0(struct xdp_md *ctx) { diff --git a/tools/testing/selftests/bpf/test_maps.c b/tools/testing/selfte= sts/bpf/test_maps.c index c7a36a9378f8c..a72cc78706eaf 100644 --- a/tools/testing/selftests/bpf/test_maps.c +++ b/tools/testing/selftests/bpf/test_maps.c @@ -1196,7 +1196,11 @@ static void test_map_in_map(void) goto out_map_in_map; } =20 - bpf_object__load(obj); + err =3D bpf_object__load(obj); + if (err) { + printf("Failed to load test prog\n"); + goto out_map_in_map; + } =20 map =3D bpf_object__find_map_by_name(obj, "mim_array"); if (!map) { --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 11CAE175564; Sun, 24 Mar 2024 23:36:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323370; cv=none; b=AxM28JiePh9TCWsmovcNYJD/3g6kY3B31GNT2i6Ru6mWZi69xpRZ72yNhNuPB/Zckzfwa5oFZmfjqQYYSm51UiqjCsR8XguUrEWaff6gieg35/Ixn1H9QUEtl7Xw9eOTWpmOj5PA/mdCksTrv1Fd8ol9ylATkGF/3au7uyrL0u0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323370; c=relaxed/simple; bh=ixIHT+JxOs9u7DVRarGZieExS4raCUeJ/OKOiBYn+fs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qbxXZAcHpTnDwMUutmoTIfy4+tDSzXX9hPDRJle/jhGsNzkul5Zu5/cZDEyRUN9nHitxdp5rniE/2LM06B5A1xI813mieQyK/GfmHxeFgEpYbSSW23ufOdoNXgBl1mAxxTipCXoTjZQhvMKD/O5Bx9AWWMUOnPKjgY8Eo3YmwhA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=atyNmH5P; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="atyNmH5P" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4C195C433C7; Sun, 24 Mar 2024 23:36:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323369; bh=ixIHT+JxOs9u7DVRarGZieExS4raCUeJ/OKOiBYn+fs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=atyNmH5PhO/eXU7ard4GkshlsaK7g7ws8Hx7pTgzBqbf4Xw2kxcugAuZWcRNtmr1a dLoBT+rZx/mMHgb8z1RY0KQGef2Y+EXQozm3iHfyY/Sha5OSymPVE0vRc6VsnYKHUw WWnIxDL0vrx/i8YCg3VuoqutXRj//NCeDNTXhfUFFsBbOGll0f8alQTabDwK1sVP+f gMxaaCuKWC6YwTjPoVy4pBw0Bw3wWC89MRubfttflAnC2r9bhFhy4MK4QJozh0O6mu 8uo314gwjafRZ0qV/iG5zIjIKiwfSdmu47HrRgnobUQ8NeXFBvCkMQCLPuMC83/+qJ WfodMLyyeNRRw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Kuniyuki Iwashima , Jakub Kicinski , Sasha Levin Subject: [PATCH 5.15 069/317] af_unix: Annotate data-race of gc_in_progress in wait_for_unix_gc(). Date: Sun, 24 Mar 2024 19:30:49 -0400 Message-ID: <20240324233458.1352854-70-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Kuniyuki Iwashima [ Upstream commit 31e03207119a535d0b0e3b3a7f91983aeb2cb14d ] gc_in_progress is changed under spin_lock(&unix_gc_lock), but wait_for_unix_gc() reads it locklessly. Let's use READ_ONCE(). Fixes: 5f23b734963e ("net: Fix soft lockups/OOM issues w/ unix garbage coll= ector") Signed-off-by: Kuniyuki Iwashima Link: https://lore.kernel.org/r/20240123170856.41348-2-kuniyu@amazon.com Signed-off-by: Jakub Kicinski Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- net/unix/garbage.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/unix/garbage.c b/net/unix/garbage.c index ab2c83d58b62a..9bfffe2a7f020 100644 --- a/net/unix/garbage.c +++ b/net/unix/garbage.c @@ -198,7 +198,7 @@ void wait_for_unix_gc(void) if (READ_ONCE(unix_tot_inflight) > UNIX_INFLIGHT_TRIGGER_GC && !READ_ONCE(gc_in_progress)) unix_gc(); - wait_event(unix_gc_wait, gc_in_progress =3D=3D false); + wait_event(unix_gc_wait, !READ_ONCE(gc_in_progress)); } =20 /* The external entry point: unix_gc() */ --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7374F175571; Sun, 24 Mar 2024 23:36:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323371; cv=none; b=mgqhy7DKu8d20iG9bnwjsHqWvlhmeUOR7eODYoXW10gr1O2TeUQIsDhXZaAcIdpRp4amkFSl3jNRk+khXpjh4PwPBhXrBAp5rdEEvHcK1btZV5j/iqko8mQWR0tAj/SrSseuo0F1trSyJ1g2z+qHZ106Zu3NuamQ96lPU4ChCDQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323371; c=relaxed/simple; bh=8adNvIanyHu+32HxJ6+7giaA7jD4PnxuKvBVPt8OA2Q=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=pi2VylxvmRCfp3l7E/VJo91AG2LOefEaZG01semVKeDuq9ZGAIeWd722DA9eHsoNlKROsnrOBGF6FX7sJpRvJq1Ivze91MlQARV9UEzLXR9XMtoTm3LmH5NIqHW6xhuowAL8Z9mlKVETwKGnmHKc5qZG44uJ1fPZ2lueOS6YqdY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=V6bHWngr; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="V6bHWngr" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 33733C43390; Sun, 24 Mar 2024 23:36:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323371; bh=8adNvIanyHu+32HxJ6+7giaA7jD4PnxuKvBVPt8OA2Q=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=V6bHWngrn7caz5s5erWj1TDTnw3nYcQH24Zdt6bnRPKLSpzaR/2TB9bhc0MBFisp8 nuWj7n3Ocijt8gVzWu4z+TSObJu4iEyjuOKq7PyXRD+tgvQ9SByXgnUvMWLHeF3A4j 81EP4DCOmUVO+gd+nzRsg4MExxd5OMJSL4qI+PLOAJJaaTVE5Jgjs8xCPk0UMQ38Wz G8N4icNVA44bU8cKGVvszczokv/hGZO6Cv4HoPA2V38bgoI6gZ9GaX5D7AVvx2Wm6K N7ehRHa0rPyS82dHEdVOkEzI4DkYEaAtqhmvgtpAc43poDrqMv/us0ttgDcNKuvZN9 D4i8XB2SdPdRw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?N=C3=ADcolas=20F=2E=20R=2E=20A=2E=20Prado?= , "kernelci . org bot" , AngeloGioacchino Del Regno , Viresh Kumar , Sasha Levin Subject: [PATCH 5.15 070/317] cpufreq: mediatek-hw: Don't error out if supply is not found Date: Sun, 24 Mar 2024 19:30:50 -0400 Message-ID: <20240324233458.1352854-71-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable From: N=C3=ADcolas F. R. A. Prado [ Upstream commit eaffb10b51bf74415c9252fd8fb4dd77122501ee ] devm_regulator_get_optional() returns -ENODEV if no supply can be found. By introducing its usage, commit 788715b5f21c ("cpufreq: mediatek-hw: Wait for CPU supplies before probing") caused the driver to fail probe if no supply was present in any of the CPU DT nodes. Use devm_regulator_get() instead since the CPUs do require supplies even if not described in the DT. It will gracefully return a dummy regulator if none is found in the DT node, allowing probe to succeed. Fixes: 788715b5f21c ("cpufreq: mediatek-hw: Wait for CPU supplies before pr= obing") Reported-by: kernelci.org bot Closes: https://linux.kernelci.org/test/case/id/65b0b169710edea22852a3fa/ Signed-off-by: N=C3=ADcolas F. R. A. Prado Reviewed-by: AngeloGioacchino Del Regno Signed-off-by: Viresh Kumar Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/cpufreq/mediatek-cpufreq-hw.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/cpufreq/mediatek-cpufreq-hw.c b/drivers/cpufreq/mediat= ek-cpufreq-hw.c index 4a7478a91fb61..314c1cb6e8f4d 100644 --- a/drivers/cpufreq/mediatek-cpufreq-hw.c +++ b/drivers/cpufreq/mediatek-cpufreq-hw.c @@ -280,7 +280,7 @@ static int mtk_cpufreq_hw_driver_probe(struct platform_= device *pdev) return dev_err_probe(&pdev->dev, -EPROBE_DEFER, "Failed to get cpu%d device\n", cpu); =20 - cpu_reg =3D devm_regulator_get_optional(cpu_dev, "cpu"); + cpu_reg =3D devm_regulator_get(cpu_dev, "cpu"); if (IS_ERR(cpu_reg)) return dev_err_probe(&pdev->dev, PTR_ERR(cpu_reg), "CPU%d regulator get failed\n", cpu); --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1110321A832; Sun, 24 Mar 2024 23:36:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323373; cv=none; b=P8FBFzl1QEIWcEbtIhn8EkSv6ly/hiRtxmbHNb7NeilEmkT6Ua6k94V2JRPgO37pEV44s1FTBSvYAK8mvJ6nDgrS4+oak+KVKy7LNyEEDT501FCCZNZlA9FrY40jo+QQvyg++U3r+mXDMox6ZvPqnGvGxV92Cq1wjF4SPIo+nLs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323373; c=relaxed/simple; bh=saDXBtUPJ2rQPi4TNk0EkS7ba6nG+1OxrXRpJV7qt9Q=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=oFyi3qAjyNI2KmIA9PAm/jnkbHKFRjxaqtKRP6/EXROeyWi308UZYazkpSB4Cj0PklZM2H1vpKkDMPEn4j/D7src4QZGH9oC9OBIGB9nTifNdxUAIFYTfA/R0GtyJTlv3zAbYDXYl4n3jcQkOnWJq2AMXWkn3V2yX5lUlMVBRfY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=CihZDs/h; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="CihZDs/h" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 44AB2C43394; Sun, 24 Mar 2024 23:36:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323371; bh=saDXBtUPJ2rQPi4TNk0EkS7ba6nG+1OxrXRpJV7qt9Q=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=CihZDs/hPg7Il+TBciNlOtZ0cPupQ4uXZhPhYNT8OVlzKBSz1OlES+vFZA1H268JC 8VbZBdHjP6qTThvUFh/Otg/MVTQSDFTGglhRK3j3QU+GG7eAvP7Gwfbwxpn6EZ4Ub6 mWEbWZRb5xT2vFI4iiDwj1HwyoQu/49qeJ5nXy666abXAsQECsOYSBxpEusgtd21bw Ts3LZtdco8xu6QFmNuGujvPLgkwpVVPYdgz7wmJRKvKVQmjkcDZqxRkM/17L1GL8UD CoxXi8jpEU+6Y13lq74nlBdiiq4NmYdxC82w2bzsGAWgU+/JblG3UGE4k3MSQvEJ22 96dCDhSoZG+yQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Frieder Schrempf , Shawn Guo , Sasha Levin Subject: [PATCH 5.15 071/317] arm64: dts: imx8mm-kontron: Disable pullups for I2C signals on SL/BL i.MX8MM Date: Sun, 24 Mar 2024 19:30:51 -0400 Message-ID: <20240324233458.1352854-72-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Frieder Schrempf [ Upstream commit f19e5bb91d53264d7dac5d845a4825afadf72440 ] There are external pullup resistors on the board and due to silicon errata ERR050080 let's disable the internal ones to prevent any unwanted behavior in case they wear out. Fixes: 8668d8b2e67f ("arm64: dts: Add the Kontron i.MX8M Mini SoMs and base= boards") Signed-off-by: Frieder Schrempf Signed-off-by: Shawn Guo Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts | 4 ++-- arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-som.dtsi | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts b/arc= h/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts index 49d7470812eef..362f9360b4a51 100644 --- a/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts +++ b/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts @@ -275,8 +275,8 @@ MX8MM_IOMUXC_SAI3_MCLK_GPIO5_IO2 0x19 =20 pinctrl_i2c4: i2c4grp { fsl,pins =3D < - MX8MM_IOMUXC_I2C4_SCL_I2C4_SCL 0x400001c3 - MX8MM_IOMUXC_I2C4_SDA_I2C4_SDA 0x400001c3 + MX8MM_IOMUXC_I2C4_SCL_I2C4_SCL 0x40000083 + MX8MM_IOMUXC_I2C4_SDA_I2C4_SDA 0x40000083 >; }; =20 diff --git a/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-som.dtsi b/= arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-som.dtsi index 42bbbb3f532bc..646615ca4b48b 100644 --- a/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-som.dtsi +++ b/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-som.dtsi @@ -220,8 +220,8 @@ MX8MM_IOMUXC_ECSPI1_SS0_GPIO5_IO9 0x19 =20 pinctrl_i2c1: i2c1grp { fsl,pins =3D < - MX8MM_IOMUXC_I2C1_SCL_I2C1_SCL 0x400001c3 - MX8MM_IOMUXC_I2C1_SDA_I2C1_SDA 0x400001c3 + MX8MM_IOMUXC_I2C1_SCL_I2C1_SCL 0x40000083 + MX8MM_IOMUXC_I2C1_SDA_I2C1_SDA 0x40000083 >; }; =20 --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E2BBF21A82E; Sun, 24 Mar 2024 23:36:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323373; cv=none; b=fCgTqGED4IjpxIXe/oHAFRjnYsdDy505Izdziq241m44j7jV58w4+/8islCofyA+JU6JDTCRVI+vLbPS+tUDFTXmM/u7O1yJRg7EePdK8hBlbZXLSE7brwF8QuMmqjfD9uukM60xz1FkYJXAnulNogsRt4+soJyQAvIOSgiiqpU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323373; c=relaxed/simple; bh=t4VgZYcbk0X9lwkENC4ESyD43JJVmn4mAQAetzW2wAU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=gVHib0NW9eAfTx4Om8NkHFpnTMuaEM24Qge0DNyX8XQVdEyqkN/8gqemOatQnrYlF1Ip9jNdhGxvYv7/bDDsfMs+VyDgol5LTgWJjX3SWRFjVsSprTX2K1ZRDwHu5124+zOSEQAznQA3dJGFtg87J7pYjkwm+v410VOCUUW+A0M= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=uBtGziih; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="uBtGziih" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2ED98C433C7; Sun, 24 Mar 2024 23:36:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323372; bh=t4VgZYcbk0X9lwkENC4ESyD43JJVmn4mAQAetzW2wAU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=uBtGziihNVTnkR/31z9CAhTMut1o/Pagmw1Q/HntNSELLARYPQk0kCZmtXqlNNkm+ DjtYOwBEXoirm33qltwzmljDPGCn9rzZdWu9v3IRwbZxXPovjEV6X+JVgpyRNaZgBN tWLlCxqUrGZsgQTUgH2en5Rxd5lFuAjhwxp9JSvMgMRbQLdQpPHV70J1NHpHTzUkWq 0ivw8ZIAQgn7yVsrbonIq9KUoMmqLiOeRJfccB+DC/fjsH+/egqzKLR/eJmMEOX20T T0hIIeIaL6UPXmp3uUiUOPhd7L0vKSlPzTqpmkEFkPprKiZyVPkWOREsxYj2gc/vpZ JbQvlfugaqO/w== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Frieder Schrempf , Shawn Guo , Sasha Levin Subject: [PATCH 5.15 072/317] arm64: dts: imx8mm-kontron: Disable pullups for onboard UART signals on BL board Date: Sun, 24 Mar 2024 19:30:52 -0400 Message-ID: <20240324233458.1352854-73-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Frieder Schrempf [ Upstream commit 162aadaa0df8217b0cc49d919dd00022fef65e78 ] These signals are actively driven by the SoC or by the onboard transceiver. There's no need to enable the internal pull resistors and due to silicon errata ERR050080 let's disable the internal ones to prevent any unwanted behavior in case they wear out. Fixes: 8668d8b2e67f ("arm64: dts: Add the Kontron i.MX8M Mini SoMs and base= boards") Signed-off-by: Frieder Schrempf Signed-off-by: Shawn Guo Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- .../dts/freescale/imx8mm-kontron-n801x-s.dts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts b/arc= h/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts index 362f9360b4a51..67e768032320a 100644 --- a/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts +++ b/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts @@ -288,19 +288,19 @@ MX8MM_IOMUXC_SPDIF_RX_PWM2_OUT 0x19 =20 pinctrl_uart1: uart1grp { fsl,pins =3D < - MX8MM_IOMUXC_SAI2_RXC_UART1_DCE_RX 0x140 - MX8MM_IOMUXC_SAI2_RXFS_UART1_DCE_TX 0x140 - MX8MM_IOMUXC_SAI2_RXD0_UART1_DCE_RTS_B 0x140 - MX8MM_IOMUXC_SAI2_TXFS_UART1_DCE_CTS_B 0x140 + MX8MM_IOMUXC_SAI2_RXC_UART1_DCE_RX 0x0 + MX8MM_IOMUXC_SAI2_RXFS_UART1_DCE_TX 0x0 + MX8MM_IOMUXC_SAI2_RXD0_UART1_DCE_RTS_B 0x0 + MX8MM_IOMUXC_SAI2_TXFS_UART1_DCE_CTS_B 0x0 >; }; =20 pinctrl_uart2: uart2grp { fsl,pins =3D < - MX8MM_IOMUXC_SAI3_TXFS_UART2_DCE_RX 0x140 - MX8MM_IOMUXC_SAI3_TXC_UART2_DCE_TX 0x140 - MX8MM_IOMUXC_SAI3_RXD_UART2_DCE_RTS_B 0x140 - MX8MM_IOMUXC_SAI3_RXC_UART2_DCE_CTS_B 0x140 + MX8MM_IOMUXC_SAI3_TXFS_UART2_DCE_RX 0x0 + MX8MM_IOMUXC_SAI3_TXC_UART2_DCE_TX 0x0 + MX8MM_IOMUXC_SAI3_RXD_UART2_DCE_RTS_B 0x0 + MX8MM_IOMUXC_SAI3_RXC_UART2_DCE_CTS_B 0x0 >; }; =20 --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CCCF721A831; Sun, 24 Mar 2024 23:36:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323374; cv=none; b=RYKLdLezk+bet2HRBc7NfkZzWvtfRTbp3twiq0InjabOiyd+tPnQUWgeO80wo2GCDeDe0cVGsBV+7BZOu4F7cF31RRSQpJIP9G7EIuu+dc0h90K7NarsaKKVZ1nAbapw+aHohv1bRK+uNba02eKpryH2UjLYn0csSd+fo0tBrT4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323374; c=relaxed/simple; bh=/0BMG5w0XrsKasKJ5AD19XQUDouWcqEKSDPr6NyXcZg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=nwVNuBm3Gk2lIU17JZfn/uzTqLVd8y30tXgSwS7XjiDkWM4Y/LYoM03I8mSyFkg+L1fk9dd+HUW0kIaADfBTmPh47+s9dTs3z6kVaz4jrdLZBXf07BAIUTeTUvZf1vI8J70OSEyoA5z1Ip51dQ8lc0UDeKerhPBIT5X73riV5JM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=AdfTYvfk; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="AdfTYvfk" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 125F7C433B1; Sun, 24 Mar 2024 23:36:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323373; bh=/0BMG5w0XrsKasKJ5AD19XQUDouWcqEKSDPr6NyXcZg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=AdfTYvfkK1kS1VgCmXP/21WWRZOp5NzrOOzfIMlPOWBoaQYcSSJTmgA6f/ozDzYT6 FUlUgY0df5zNNhgJqjXqgsYVIV/smntZUVSEQ+d0XyUgGt5oebQHCbJaR8t8gdLfmU KSi2sQkjUXKOfFOBMyeQB5eUPRn78RIG70L1p9jDhJKTS1MWbLhalClU+0zaz3m5sB aXyFMn0xfscLjoT5WL0hn/wYF90ckCcfx9XZOZAU/V/IQThkLRD+Ba/R7xYanAasQk 6pgwkwMfr0uYJYKI1vxG58rkrM8elxW2yv69qnxx1FjH17w6Pn5WMRRgGqU7Dj+VTg Fs77MCsPlVZHw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Frieder Schrempf , Shawn Guo , Sasha Levin Subject: [PATCH 5.15 073/317] arm64: dts: imx8mm-kontron: Add support for ultra high speed modes on SD card Date: Sun, 24 Mar 2024 19:30:53 -0400 Message-ID: <20240324233458.1352854-74-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Frieder Schrempf [ Upstream commit ec1e91d400bf21def54c441552bdf2976ce36e3b ] In order to use ultra high speed modes (UHS) on the SD card slot, we add matching pinctrls and fix the voltage switching for LDO5 of the PMIC, by providing the SD_VSEL pin as GPIO to the PMIC driver. Signed-off-by: Frieder Schrempf Signed-off-by: Shawn Guo Stable-dep-of: 008820524844 ("arm64: dts: imx8mm-kontron: Disable pull resi= stors for SD card signals on BL board") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- .../dts/freescale/imx8mm-kontron-n801x-s.dts | 28 ++++++++++++++++++- .../freescale/imx8mm-kontron-n801x-som.dtsi | 2 ++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts b/arc= h/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts index 67e768032320a..25886622c8c40 100644 --- a/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts +++ b/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts @@ -191,8 +191,10 @@ usbnet: usbether@1 { }; =20 &usdhc2 { - pinctrl-names =3D "default"; + pinctrl-names =3D "default", "state_100mhz", "state_200mhz"; pinctrl-0 =3D <&pinctrl_usdhc2>; + pinctrl-1 =3D <&pinctrl_usdhc2_100mhz>; + pinctrl-2 =3D <&pinctrl_usdhc2_200mhz>; vmmc-supply =3D <®_vdd_3v3>; vqmmc-supply =3D <®_nvcc_sd>; cd-gpios =3D <&gpio2 12 GPIO_ACTIVE_LOW>; @@ -321,4 +323,28 @@ MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d0 MX8MM_IOMUXC_SD2_CD_B_GPIO2_IO12 0x019 >; }; + + pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp { + fsl,pins =3D < + MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK 0x194 + MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD 0x1d4 + MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0 0x1d4 + MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d4 + MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d4 + MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d4 + MX8MM_IOMUXC_SD2_CD_B_GPIO2_IO12 0x019 + >; + }; + + pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp { + fsl,pins =3D < + MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK 0x196 + MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD 0x1d6 + MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0 0x1d6 + MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d6 + MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d6 + MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d6 + MX8MM_IOMUXC_SD2_CD_B_GPIO2_IO12 0x019 + >; + }; }; diff --git a/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-som.dtsi b/= arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-som.dtsi index 646615ca4b48b..1b9fc3a926fcb 100644 --- a/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-som.dtsi +++ b/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-som.dtsi @@ -86,6 +86,7 @@ pca9450: pmic@25 { pinctrl-0 =3D <&pinctrl_pmic>; interrupt-parent =3D <&gpio1>; interrupts =3D <0 IRQ_TYPE_LEVEL_LOW>; + sd-vsel-gpios =3D <&gpio1 4 GPIO_ACTIVE_HIGH>; =20 regulators { reg_vdd_soc: BUCK1 { @@ -228,6 +229,7 @@ MX8MM_IOMUXC_I2C1_SDA_I2C1_SDA 0x40000083 pinctrl_pmic: pmicgrp { fsl,pins =3D < MX8MM_IOMUXC_GPIO1_IO00_GPIO1_IO0 0x141 + MX8MM_IOMUXC_GPIO1_IO04_GPIO1_IO4 0x141 >; }; =20 --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C4FE921A845; Sun, 24 Mar 2024 23:36:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323375; cv=none; b=qY+Fl1vPv7uT8NQB7E4QneAIdUbLa4KOS3ZOG/X6IkL0hq+I5yJvlBMS8emCb0SzTVBNaUi09FrEWE/cG9jvRlCroUWizAbt2577qTOiae4Ua28e6u8vO4NluZTbsxhM6qJnxr4LWX6f04gJWB0EYFDIW7iXv72COYJ2yll91RM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323375; c=relaxed/simple; bh=OS5zuo+iync0mDbQnZFjx0V3Vp7CnOy6d7KfG2EH3YI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=TzpN4PklohrhmW75rhXGim1vzeyUVjp7sjElzohgp0UCKJeRaUlHZ3eW4An2ecXT4D2QoSlKtIg1Qa00w9PnJKNSppq80cnN8KoL6lfE9qqoUqp/LrC4bg01GcNWxgsjPRPb4Q+ME+gJgjytQV0gt8fL77TdssQMFgyD8B24Ecs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=iwHSZ4Gx; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="iwHSZ4Gx" Received: by smtp.kernel.org (Postfix) with ESMTPSA id EFC7BC433C7; Sun, 24 Mar 2024 23:36:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323374; bh=OS5zuo+iync0mDbQnZFjx0V3Vp7CnOy6d7KfG2EH3YI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=iwHSZ4GxOoQxLLrhtQ+SHB0kalt+XeljAZzKHEZcvCQ0btRSxcMfU9cPL0Mb7DNze LN+q0Rl9q/TrQEmo/HC3ncZVHyZwRBE1NA4uWZ+dRqGUBjDQBmL3HuJoGcEVsz+pBB oVqADtYXOJp4gOQpujaW6pTytD5JL3zT+JaO/ov+BkLEIMTYNp0/dU+E1cj+Zx5OoZ RqfHbAy0Ic0XsVGOIs1OszCaGYnS7B6Jcry90H247XtU3UnA1J+dGwtXfiWYjhs4g8 uGOSvPMnZhHLOpvryoCHEagce197EQiJorBGz8Vd+nxNwe3ZMQjtICoucl32/sBLzv 3R9PIfJOn6aCg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Frieder Schrempf , Heiko Thiery , Shawn Guo , Sasha Levin Subject: [PATCH 5.15 074/317] arm64: dts: imx8mm-kontron: Use the VSELECT signal to switch SD card IO voltage Date: Sun, 24 Mar 2024 19:30:54 -0400 Message-ID: <20240324233458.1352854-75-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Frieder Schrempf [ Upstream commit eef2c0217e02b6c7ed5b10b82ea944127145e113 ] It turns out that it is not necessary to declare the VSELECT signal as GPIO and let the PMIC driver set it to a fixed high level. This switches the voltage between 3.3V and 1.8V by setting the PMIC register for LDO5 accordingly. Instead we can do it like other boards already do and simply mux the VSELECT signal of the USDHC interface to the pin. This makes sure that the correct voltage is selected by setting the PMIC's SD_VSEL input to high or low accordingly. Reported-by: Heiko Thiery Signed-off-by: Frieder Schrempf Reviewed-by: Heiko Thiery Signed-off-by: Shawn Guo Stable-dep-of: 008820524844 ("arm64: dts: imx8mm-kontron: Disable pull resi= stors for SD card signals on BL board") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts | 3 +++ arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-som.dtsi | 2 -- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts b/arc= h/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts index 25886622c8c40..00dff7c33310c 100644 --- a/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts +++ b/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts @@ -321,6 +321,7 @@ MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d0 MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d0 MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d0 MX8MM_IOMUXC_SD2_CD_B_GPIO2_IO12 0x019 + MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0x1d0 >; }; =20 @@ -333,6 +334,7 @@ MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d4 MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d4 MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d4 MX8MM_IOMUXC_SD2_CD_B_GPIO2_IO12 0x019 + MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0x1d0 >; }; =20 @@ -345,6 +347,7 @@ MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d6 MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d6 MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d6 MX8MM_IOMUXC_SD2_CD_B_GPIO2_IO12 0x019 + MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0x1d0 >; }; }; diff --git a/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-som.dtsi b/= arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-som.dtsi index 1b9fc3a926fcb..646615ca4b48b 100644 --- a/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-som.dtsi +++ b/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-som.dtsi @@ -86,7 +86,6 @@ pca9450: pmic@25 { pinctrl-0 =3D <&pinctrl_pmic>; interrupt-parent =3D <&gpio1>; interrupts =3D <0 IRQ_TYPE_LEVEL_LOW>; - sd-vsel-gpios =3D <&gpio1 4 GPIO_ACTIVE_HIGH>; =20 regulators { reg_vdd_soc: BUCK1 { @@ -229,7 +228,6 @@ MX8MM_IOMUXC_I2C1_SDA_I2C1_SDA 0x40000083 pinctrl_pmic: pmicgrp { fsl,pins =3D < MX8MM_IOMUXC_GPIO1_IO00_GPIO1_IO0 0x141 - MX8MM_IOMUXC_GPIO1_IO04_GPIO1_IO4 0x141 >; }; =20 --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AD93621A84F; Sun, 24 Mar 2024 23:36:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323376; cv=none; b=IkP/XtmoyrlFfAG/+qSZHVPCQwd5bA2DCbR5dt7wltWDhnbTvo8msSjje50jnThboRNhWebBeIWzwLtsDsqKuFYRbzpEiNd58NMVTLHRvRGtlRl7fGcuVKyjOggBjLKqeEXp5xKLldyrjkbUt5mszgrbQvAa+nmZ0zkXbWJFGMA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323376; c=relaxed/simple; bh=XRpf729cXsjwT4Xlf/JY3c6BiADG5NSdPT1d0YFAVrM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=O0uj/kHdNKVH3ww3VYEGSS+umbstg1bGK4XFkT4DoNhSMcojbOxn1GFWPgN8kPLFjTa7TnGU9fFNr9dyqz/qAPmEUJCOwnNcfsRJNYDryhEgkjbW4uvcOIx+MXz5+f8QdYk1kh/zQr9lpJhex4cLqw3LsOvXCSC7M4hVoFdx/g8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=hzMhaerE; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="hzMhaerE" Received: by smtp.kernel.org (Postfix) with ESMTPSA id EAF07C433F1; Sun, 24 Mar 2024 23:36:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323375; bh=XRpf729cXsjwT4Xlf/JY3c6BiADG5NSdPT1d0YFAVrM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=hzMhaerEaqr8D719dIgAxZjOi/hhr+/WJZHWvu0ZYUpaXoQpDWZQU0FFdP6XKBkHY 8+qC0AmW7FUBm1Kyon4cEkguf5uat+Exgzb2w7kIQm6NYJL30YGHzROoVujcqezZsc UTMNmXB6zcSgVuTTRCPtHNDpRWxaJm3kRKGh/3AkVWsWMruOBx6NfIAoNytLUzLR6B hQ9nspHXAQ6xNRAsFZ7waKIdCVT/xDVt3ii/rOKjiThrHGdYd6oNqdQkTJBss5zF+3 2TqPvWZxPs8jQGi0n4xCUi+406jS9bvGlG2zkhsZlFmDSk1KqMHl05e2ZgqUD0r3O7 udYG5xCMtScKg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Frieder Schrempf , Shawn Guo , Sasha Levin Subject: [PATCH 5.15 075/317] arm64: dts: imx8mm-kontron: Disable pull resistors for SD card signals on BL board Date: Sun, 24 Mar 2024 19:30:55 -0400 Message-ID: <20240324233458.1352854-76-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Frieder Schrempf [ Upstream commit 008820524844326ffb3123cebceba1960c0ad0dc ] Some signals have external pullup resistors on the board and don't need the internal ones to be enabled. Due to silicon errata ERR050080 let's disable the internal pull resistors whererever possible and prevent any unwanted behavior in case they wear out. Fixes: 8668d8b2e67f ("arm64: dts: Add the Kontron i.MX8M Mini SoMs and base= boards") Signed-off-by: Frieder Schrempf Signed-off-by: Shawn Guo Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- .../dts/freescale/imx8mm-kontron-n801x-s.dts | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts b/arc= h/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts index 00dff7c33310c..134192b749942 100644 --- a/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts +++ b/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts @@ -314,40 +314,40 @@ MX8MM_IOMUXC_NAND_CE1_B_GPIO3_IO2 0x19 =20 pinctrl_usdhc2: usdhc2grp { fsl,pins =3D < - MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK 0x190 + MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK 0x90 MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD 0x1d0 MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0 0x1d0 MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d0 MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d0 MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d0 - MX8MM_IOMUXC_SD2_CD_B_GPIO2_IO12 0x019 - MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0x1d0 + MX8MM_IOMUXC_SD2_CD_B_GPIO2_IO12 0x19 + MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0xd0 >; }; =20 pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp { fsl,pins =3D < - MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK 0x194 + MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK 0x94 MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD 0x1d4 MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0 0x1d4 MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d4 MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d4 MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d4 - MX8MM_IOMUXC_SD2_CD_B_GPIO2_IO12 0x019 - MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0x1d0 + MX8MM_IOMUXC_SD2_CD_B_GPIO2_IO12 0x19 + MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0xd0 >; }; =20 pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp { fsl,pins =3D < - MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK 0x196 + MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK 0x96 MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD 0x1d6 MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0 0x1d6 MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d6 MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d6 MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d6 - MX8MM_IOMUXC_SD2_CD_B_GPIO2_IO12 0x019 - MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0x1d0 + MX8MM_IOMUXC_SD2_CD_B_GPIO2_IO12 0x19 + MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0xd0 >; }; }; --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AAA4F21A85E; Sun, 24 Mar 2024 23:36:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323377; cv=none; b=EBNUbnix5NO3ZzvqhyO/8u/6owMV5Tu4li3MFAu429+JF016fg+EyaUlL43rx4GCEy10QCxPMdSna9jEerHSrESWC7ZR6P6VtMT0iGM1dCnvoG7NvZMVzyRvUUQziqma3dy6mV+AjD9j40lm4zpZxW5Yg3TaNzKEvAAanmubOGU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323377; c=relaxed/simple; bh=WCMElm0FEksMpnIVlx+GauY2XrT0KIduJ3+8VE2+36Y=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=cVuhNYwAjAaG4Vsda/3q/7YqQr34U9WIjrH/jdJQcombTYXBVW7Qch0f3bZBdeDps1ELnbY+pGT9dFFmFgXYPSbh5M5uo5FcCjTFAwNelB5nOmjQhh5DIxRNQB8u1/LBVq5H12sfVRhbPBkOWm0Ezcw/1YQx5GN0HBNXFxPydHM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Gj5b2fuK; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Gj5b2fuK" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D1E2EC43394; Sun, 24 Mar 2024 23:36:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323376; bh=WCMElm0FEksMpnIVlx+GauY2XrT0KIduJ3+8VE2+36Y=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Gj5b2fuKqYx1H1ZsVtih9isQsVIVxyfTmc5tcKf4mWzlV50zQ0yJBeRUC593+X4V/ 9JwW1zSN5fUkvgIlcJU+983Pa+rkh8zY8jM9mygrEZ/RqF4c+qBXtriLxH3/WnjSj2 Lhc9l2DPWC1vSmJ+XlHErjDWqcgPTB0yWqZUvjACGME7LCkss7JwTs+D6gnecwboaK OKqBiyEU2IrkZRd1B0DK/Jq8kIGJQY0Lq7pL0U/czfcomX3D661O7rBGmcrY7PpOvd upfBnLas6fVvqU1yEV9WMc02Zix4+0ARKkjFDnIorz03xv5EP8sSWPoyyie7wmcVXh 0wNpvckDGABng== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?Toke=20H=C3=B8iland-J=C3=B8rgensen?= , Ubisectech Sirius , Kalle Valo , Sasha Levin Subject: [PATCH 5.15 076/317] wifi: ath9k: delay all of ath9k_wmi_event_tasklet() until init is complete Date: Sun, 24 Mar 2024 19:30:56 -0400 Message-ID: <20240324233458.1352854-77-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable From: Toke H=C3=B8iland-J=C3=B8rgensen [ Upstream commit 24355fcb0d4cbcb6ddda262596558e8cfba70f11 ] The ath9k_wmi_event_tasklet() used in ath9k_htc assumes that all the data structures have been fully initialised by the time it runs. However, becaus= e of the order in which things are initialised, this is not guaranteed to be the case, because the device is exposed to the USB subsystem before the ath9k d= river initialisation is completed. We already committed a partial fix for this in commit: 8b3046abc99e ("ath9k_htc: fix NULL pointer dereference at ath9k_htc_tx_get_= packet()") However, that commit only aborted the WMI_TXSTATUS_EVENTID command in the e= vent tasklet, pairing it with an "initialisation complete" bit in the TX struct.= It seems syzbot managed to trigger the race for one of the other commands as w= ell, so let's just move the existing synchronisation bit to cover the whole tasklet (setting it at the end of ath9k_htc_probe_device() instead of inside ath9k_tx_init()). Link: https://lore.kernel.org/r/ed1d2c66-1193-4c81-9542-d514c29ba8b8.bugrep= ort@ubisectech.com Fixes: 8b3046abc99e ("ath9k_htc: fix NULL pointer dereference at ath9k_htc_= tx_get_packet()") Reported-by: Ubisectech Sirius Signed-off-by: Toke H=C3=B8iland-J=C3=B8rgensen Signed-off-by: Kalle Valo Link: https://msgid.link/20240126140218.1033443-1-toke@toke.dk Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/net/wireless/ath/ath9k/htc.h | 2 +- drivers/net/wireless/ath/ath9k/htc_drv_init.c | 4 ++++ drivers/net/wireless/ath/ath9k/htc_drv_txrx.c | 4 ---- drivers/net/wireless/ath/ath9k/wmi.c | 10 ++++++---- 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/drivers/net/wireless/ath/ath9k/htc.h b/drivers/net/wireless/at= h/ath9k/htc.h index 237f4ec2cffd7..6c33e898b3000 100644 --- a/drivers/net/wireless/ath/ath9k/htc.h +++ b/drivers/net/wireless/ath/ath9k/htc.h @@ -306,7 +306,6 @@ struct ath9k_htc_tx { DECLARE_BITMAP(tx_slot, MAX_TX_BUF_NUM); struct timer_list cleanup_timer; spinlock_t tx_lock; - bool initialized; }; =20 struct ath9k_htc_tx_ctl { @@ -515,6 +514,7 @@ struct ath9k_htc_priv { unsigned long ps_usecount; bool ps_enabled; bool ps_idle; + bool initialized; =20 #ifdef CONFIG_MAC80211_LEDS enum led_brightness brightness; diff --git a/drivers/net/wireless/ath/ath9k/htc_drv_init.c b/drivers/net/wi= reless/ath/ath9k/htc_drv_init.c index 96a3185a96d75..b014185373f34 100644 --- a/drivers/net/wireless/ath/ath9k/htc_drv_init.c +++ b/drivers/net/wireless/ath/ath9k/htc_drv_init.c @@ -966,6 +966,10 @@ int ath9k_htc_probe_device(struct htc_target *htc_hand= le, struct device *dev, =20 htc_handle->drv_priv =3D priv; =20 + /* Allow ath9k_wmi_event_tasklet() to operate. */ + smp_wmb(); + priv->initialized =3D true; + return 0; =20 err_init: diff --git a/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c b/drivers/net/wi= reless/ath/ath9k/htc_drv_txrx.c index d6a3f001dacb9..2fdd27885f543 100644 --- a/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c +++ b/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c @@ -815,10 +815,6 @@ int ath9k_tx_init(struct ath9k_htc_priv *priv) skb_queue_head_init(&priv->tx.data_vo_queue); skb_queue_head_init(&priv->tx.tx_failed); =20 - /* Allow ath9k_wmi_event_tasklet(WMI_TXSTATUS_EVENTID) to operate. */ - smp_wmb(); - priv->tx.initialized =3D true; - return 0; } =20 diff --git a/drivers/net/wireless/ath/ath9k/wmi.c b/drivers/net/wireless/at= h/ath9k/wmi.c index 1476b42b52a91..805ad31edba2b 100644 --- a/drivers/net/wireless/ath/ath9k/wmi.c +++ b/drivers/net/wireless/ath/ath9k/wmi.c @@ -155,6 +155,12 @@ void ath9k_wmi_event_tasklet(struct tasklet_struct *t) } spin_unlock_irqrestore(&wmi->wmi_lock, flags); =20 + /* Check if ath9k_htc_probe_device() completed. */ + if (!data_race(priv->initialized)) { + kfree_skb(skb); + continue; + } + hdr =3D (struct wmi_cmd_hdr *) skb->data; cmd_id =3D be16_to_cpu(hdr->command_id); wmi_event =3D skb_pull(skb, sizeof(struct wmi_cmd_hdr)); @@ -169,10 +175,6 @@ void ath9k_wmi_event_tasklet(struct tasklet_struct *t) &wmi->drv_priv->fatal_work); break; case WMI_TXSTATUS_EVENTID: - /* Check if ath9k_tx_init() completed. */ - if (!data_race(priv->tx.initialized)) - break; - spin_lock_bh(&priv->tx.tx_lock); if (priv->tx.flags & ATH9K_HTC_OP_TX_DRAIN) { spin_unlock_bh(&priv->tx.tx_lock); --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BBB8E175574; Sun, 24 Mar 2024 23:36:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323378; cv=none; b=Kx5xD5fIcVzg3T3WHae7CTJ06AcCMQtykYNP8PruM/ZYp8ko7poSx9trzIdSscOPL3khDEJV8aOflVbp4UTo+a11kfG/DqWSBoij0I1wR/pY5P/oldHoZ49JqgSdP3Npo3QN/CWIH6ZhO0zG/4as0AwxFhWxSJxM26+vsLhLW7M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323378; c=relaxed/simple; bh=bUp9gv8F2HXyH3Sx38pQGTGmmV2F7SvXCa8AF74hBJY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=M69bcTocT80P5whcCiRG6oYnBfquMjBnIibb6XNjqB4t2HLbOHA4odaBDb+dWwaXkwUmVDfThZbnCEOHCZVy73GZGDia400enr7Lus4HEJ9JyJeWkHItCoeq1a+/OPq0MyR3IXnRo4zkCaeDWdgcazF552Ufe11QiJa49anxZQo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=YwzEhWdQ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="YwzEhWdQ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id CEE3EC433F1; Sun, 24 Mar 2024 23:36:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323377; bh=bUp9gv8F2HXyH3Sx38pQGTGmmV2F7SvXCa8AF74hBJY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=YwzEhWdQ6k7BjOSq4ZPB7nXMPRASYEdHTXsuJ1PNoTgtiXeP+in4xzkFBxZl8PVzD 2xBbLQxm+SXM6ExGUo79iuhdmbWXKJP5HGESKW4uejkvISwfQuN/0PR+LCNqd20tjM 2SI9ZucZwyjk1hdBlx+3HKjX7Q6Feo95775Uuw52ACrdoVcrtQRjB8cdhbOaE32XiQ swLRmibwBcYWQEN9Y6sgA+pEhchIP3P0zmN4369EYVQ6OkRRL48bYOjWU+PAilB0ih 0/o3XJyO0h2XXb15JTXpWjI56cOwgGa04YiNVZFyTNABl7mKlZgPn+kv9djDcMIqJH 4IWyFgdYXQrUw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Johannes Berg , Andrei Otcheretianski , Gregory Greenman , Miri Korenblit , Sasha Levin Subject: [PATCH 5.15 077/317] wifi: iwlwifi: mvm: report beacon protection failures Date: Sun, 24 Mar 2024 19:30:57 -0400 Message-ID: <20240324233458.1352854-78-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Johannes Berg [ Upstream commit 91380f768d7f6e3d003755defa792e9a00a1444a ] Andrei reports that we just silently drop beacons after we report the key counters, but never report to userspace, so wpa_supplicant cannot send the WNM action frame. Fix that. Fixes: b1fdc2505abc ("iwlwifi: mvm: advertise BIGTK client support if avail= able") Reported-by: Andrei Otcheretianski Signed-off-by: Johannes Berg Reviewed-by: Gregory Greenman Signed-off-by: Miri Korenblit Link: https://msgid.link/20240128084842.7d855442cdce.Iba90b26f893dc8c49bfb8= be65373cd0a138af12c@changeid Signed-off-by: Johannes Berg Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c | 26 +++++++++++-------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c b/drivers/net/wi= reless/intel/iwlwifi/mvm/rxmq.c index 2e3eb7402197f..e1d0c79212311 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c @@ -305,6 +305,7 @@ static int iwl_mvm_rx_mgmt_prot(struct ieee80211_sta *s= ta, u32 status, struct ieee80211_rx_status *stats) { + struct wireless_dev *wdev; struct iwl_mvm_sta *mvmsta; struct iwl_mvm_vif *mvmvif; u8 keyid; @@ -326,9 +327,15 @@ static int iwl_mvm_rx_mgmt_prot(struct ieee80211_sta *= sta, if (!ieee80211_is_beacon(hdr->frame_control)) return 0; =20 + if (!sta) + return -1; + + mvmsta =3D iwl_mvm_sta_from_mac80211(sta); + mvmvif =3D iwl_mvm_vif_from_mac80211(mvmsta->vif); + /* key mismatch - will also report !MIC_OK but we shouldn't count it */ if (!(status & IWL_RX_MPDU_STATUS_KEY_VALID)) - return -1; + goto report; =20 /* good cases */ if (likely(status & IWL_RX_MPDU_STATUS_MIC_OK && @@ -337,13 +344,6 @@ static int iwl_mvm_rx_mgmt_prot(struct ieee80211_sta *= sta, return 0; } =20 - if (!sta) - return -1; - - mvmsta =3D iwl_mvm_sta_from_mac80211(sta); - - mvmvif =3D iwl_mvm_vif_from_mac80211(mvmsta->vif); - /* * both keys will have the same cipher and MIC length, use * whichever one is available @@ -352,11 +352,11 @@ static int iwl_mvm_rx_mgmt_prot(struct ieee80211_sta = *sta, if (!key) { key =3D rcu_dereference(mvmvif->bcn_prot.keys[1]); if (!key) - return -1; + goto report; } =20 if (len < key->icv_len + IEEE80211_GMAC_PN_LEN + 2) - return -1; + goto report; =20 /* get the real key ID */ keyid =3D frame[len - key->icv_len - IEEE80211_GMAC_PN_LEN - 2]; @@ -370,7 +370,7 @@ static int iwl_mvm_rx_mgmt_prot(struct ieee80211_sta *s= ta, return -1; key =3D rcu_dereference(mvmvif->bcn_prot.keys[keyid - 6]); if (!key) - return -1; + goto report; } =20 /* Report status to mac80211 */ @@ -378,6 +378,10 @@ static int iwl_mvm_rx_mgmt_prot(struct ieee80211_sta *= sta, ieee80211_key_mic_failure(key); else if (status & IWL_RX_MPDU_STATUS_REPLAY_ERROR) ieee80211_key_replay(key); +report: + wdev =3D ieee80211_vif_to_wdev(mvmsta->vif); + if (wdev->netdev) + cfg80211_rx_unprot_mlme_mgmt(wdev->netdev, (void *)hdr, len); =20 return -1; } --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BDEBA17557A; Sun, 24 Mar 2024 23:36:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323379; cv=none; b=pdSsDHAuq5YJIzeZ3oHFJg5mNb22nzAS6K/CCMr9Tgtxhzfau/ZXwaHl1JWgfs0N3nKMjKPkEsH1uDWVgvlkns+c+HE7pFqYhHF43Bw/jNX7keu2gtB7b0pqqcUDzXQuOkLnHqv22PhKpOSk88UZW+G1hSsK5jJjP63W0emA77c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323379; c=relaxed/simple; bh=TupQ8eyn7/dVfYP6ZIVgExANMk6jJM8HzYOFyaH/OCA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=BYTRODSW9rYr4RUFI8xKBXGhH0vgiMVixnfJW0OtMlMFnxXyrGWFWEBOdxy2ewlj24ZS1rpwdaCgIvsQQmnfm2aArtIFi8VvhufNHZV9dkrKy5dk0u1Vd1VYsmWABOX09naUre6Rhwrn56UGmHK3EZrnG1tCeqv5IuQMmc9SfDY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=LscAOKvJ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="LscAOKvJ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E5B97C433C7; Sun, 24 Mar 2024 23:36:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323378; bh=TupQ8eyn7/dVfYP6ZIVgExANMk6jJM8HzYOFyaH/OCA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=LscAOKvJaeja/wG3S99Hg2i0iY1xcjkQ7nO1MMAKbprQ/cEUeJ0YwP0IZsp0t8F1q TxCU/ORFn6OZO8IblNZrm2KALrQqs4dh5+Uv09bmpMtAgxvuU78mKJJOfmWvdLR7Mn ZwCTObrLay4JuDpiker9QdczjVgWzC1K1B7LjlZQZxgZAfMqA0fAWrKWC4K1aU/rhm lD8xRJ+ciRTOV7WD/1eDkUiV48aROVMnzDa/HLJ4CnTdcDYKNSu29SRGNVjStq3OLR w6FbcSq7YWunvvkyyaIugie1CS/bWKSw6xzRajBnG3WYs/FiYCWoF00137IMqr0QP1 eGQ9yxapMb6Lg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Johannes Berg , Gregory Greenman , Miri Korenblit , Sasha Levin Subject: [PATCH 5.15 078/317] wifi: iwlwifi: dbg-tlv: ensure NUL termination Date: Sun, 24 Mar 2024 19:30:58 -0400 Message-ID: <20240324233458.1352854-79-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Johannes Berg [ Upstream commit ea1d166fae14e05d49ffb0ea9fcd4658f8d3dcea ] The iwl_fw_ini_debug_info_tlv is used as a string, so we must ensure the string is terminated correctly before using it. Fixes: a9248de42464 ("iwlwifi: dbg_ini: add TLV allocation new API support") Signed-off-by: Johannes Berg Reviewed-by: Gregory Greenman Signed-off-by: Miri Korenblit Link: https://msgid.link/20240128084842.be15e858ee89.Ibff93429cf999eafc7b26= f3eef4c055dc84984a0@changeid Signed-off-by: Johannes Berg Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c b/drivers/net= /wireless/intel/iwlwifi/iwl-dbg-tlv.c index 8a610c518082a..fe3239c4607e3 100644 --- a/drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c +++ b/drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c @@ -99,6 +99,12 @@ static int iwl_dbg_tlv_alloc_debug_info(struct iwl_trans= *trans, if (le32_to_cpu(tlv->length) !=3D sizeof(*debug_info)) return -EINVAL; =20 + /* we use this as a string, ensure input was NUL terminated */ + if (strnlen(debug_info->debug_cfg_name, + sizeof(debug_info->debug_cfg_name)) =3D=3D + sizeof(debug_info->debug_cfg_name)) + return -EINVAL; + IWL_DEBUG_FW(trans, "WRT: Loading debug cfg: %s\n", debug_info->debug_cfg_name); =20 --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BC87F5A10A; Sun, 24 Mar 2024 23:36:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323379; cv=none; b=sA0loK3xIsvx84uUaxriQov3932dz985sFgWBj4upAYGPFTiPDswe2vaFl+6hiTOcenjaooybbG9y6Jt4sXzB8gPGcyqeyoOIcu0CtAEeIlMYD8Ac8GdpqtclxNkL3XCdD/4fxYWAIcEbaTSHeK0WO1rjzLJGe/N2wIA7UhKFBI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323379; c=relaxed/simple; bh=CPWd2wkM0tXZLpS+U7hIaux1VywiMZsUyNyuil1yD5A=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=H7/a1ui1vZteIeEt0KAaVx/nGc7KACfvHYxNcwqb6IjmyaHcZSgLGilPHjnryfKEO3gvCVW8t877iHJ3a+caN9+u8Yw745/rBIhH8EbtLdems8jvsPzJDKz3AgsBlD53MjnLEUrvvyvglYC2r4f2tc7PDboPZYw+266fT2ZEmS0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=HXQsLs3p; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="HXQsLs3p" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E551FC433B1; Sun, 24 Mar 2024 23:36:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323379; bh=CPWd2wkM0tXZLpS+U7hIaux1VywiMZsUyNyuil1yD5A=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=HXQsLs3ptCbkwMDIX3ItP3qAyvnFCNtZrsFT2ltSA2sTp9OXjjcDTJAao4CGSmOYE hmqaRctPyFF9UHuyPRAH+ft4t6jB73KV37qr+DBKTYphDCMA+bU2AdhGTmsdWEfhtq N/t5eCRSltTg03PTHEMuhfHwSHpE6z+Svq7uA7a2/XBHyQrNnlMc6fr21J/XpH2VoU hHuv7D2dPIJ/qwxOt2jjIO5+ZY5QC0l2C5mJffxugiPUSmFnaY9Cm7OZTI2eFcv/XH SEDAFlRGnpsUbaQsrmxN4eRaEdLI5/uIP8pDMzSdIHW4E6c/Zpqq7RwRjJkxQVtlPw fovgapojEKk2Q== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Miri Korenblit , Gregory Greenman , Johannes Berg , Sasha Levin Subject: [PATCH 5.15 079/317] wifi: iwlwifi: fix EWRD table validity check Date: Sun, 24 Mar 2024 19:30:59 -0400 Message-ID: <20240324233458.1352854-80-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Miri Korenblit [ Upstream commit c8d8f3911135921ace8e939ea0956b55f74bf8a0 ] EWRD ACPI table contains up to 3 additional sar profiles. According to the BIOS spec, the table contains a n_profile variable indicating how many additional profiles exist in the table. Currently we check that n_profiles is not <=3D 0. But according to the BIOS spec, 0 is a valid value, and it can't be < 0 anyway because we receive that from ACPI as an unsigned integer. Fixes: 39c1a9728f93 ("iwlwifi: refactor the SAR tables from mvm to acpi") Signed-off-by: Miri Korenblit Reviewed-by: Gregory Greenman Link: https://msgid.link/20240129211905.448ea2f40814.Iffd2aadf8e8693e6cb599= bee0406a800a0c1e081@changeid Signed-off-by: Johannes Berg Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/net/wireless/intel/iwlwifi/fw/acpi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/wireless/intel/iwlwifi/fw/acpi.c b/drivers/net/wir= eless/intel/iwlwifi/fw/acpi.c index f0e0d4ccbc091..0b1c6bf729c3e 100644 --- a/drivers/net/wireless/intel/iwlwifi/fw/acpi.c +++ b/drivers/net/wireless/intel/iwlwifi/fw/acpi.c @@ -674,7 +674,7 @@ int iwl_sar_get_ewrd_table(struct iwl_fw_runtime *fwrt) * from index 1, so the maximum value allowed here is * ACPI_SAR_PROFILES_NUM - 1. */ - if (n_profiles <=3D 0 || n_profiles >=3D ACPI_SAR_PROFILE_NUM) { + if (n_profiles >=3D ACPI_SAR_PROFILE_NUM) { ret =3D -EINVAL; goto out_free; } --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A053817497A; Sun, 24 Mar 2024 23:36:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323380; cv=none; b=NenRB2kfkPHJe1B7B2tnjz8jcAs+t44HYO9MyCRGDh6oIiCyK2OHSiBybnmcZhz1DAMRGEYbqhAgnpMJ5+K7NclZTtqBcGDFD1JN0KMlO1LbocPTlxMcvlyHsQsx3tBrScUhBU84xgCULHR8I9srYmWdoS+8I1GpBp639e5nAl8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323380; c=relaxed/simple; bh=p3oAQAnj1GeDzvAmW03RGagMjnmZp0YNL59rgkbV4Sw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ptsMFwkQghPQRgnZO+SFAbhWsR5OJu25GqbULojFC9YyJwruVfhEVE/50ufeX81+QuHU/xEIRvyzcAOhPosGvgaDd9cRNw9kdjrXFlHacaiKrsGKDjkC/qmqzjgCm5a1JJzapCch04OBzGXVDzqNCnPmVjQLjp7B6ekgkd4X+jk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=aFSKgKOV; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="aFSKgKOV" Received: by smtp.kernel.org (Postfix) with ESMTPSA id DF6FAC433C7; Sun, 24 Mar 2024 23:36:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323380; bh=p3oAQAnj1GeDzvAmW03RGagMjnmZp0YNL59rgkbV4Sw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=aFSKgKOVPb0wkPyJBc2qnfuHCBWRbCjYwNgwJP99eyE+slEQqoC0K2T4Lk5Mn8fJm baIMqjEwcHeRnnJAwQ4TtL0PsikGJm6EJzmFItPb++Q4GK51uoI9KmCwhGSd+2liGh knaxYblz322uNoQlmasDzk9PtEhkvqjRoGfHe7eNjN3nQWeXloXtiuzFQ5EMAw5XCG wWbs1zqsGFdDY1dFIJ1t9/8GVhz2nKAAWh4s7QQNRq2I3J6eoxGmO9rQURbDIUxxJh OgKJpaGCZtgeBZOWlcPui9BdQ7loVI47nVd6A7m164JfEaxCk/0cish88TYNVp76Mm Z3KBgz+CDKKuA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Tim Harvey , Shawn Guo , Sasha Levin Subject: [PATCH 5.15 080/317] arm64: dts: imx8mm-venice-gw71xx: fix USB OTG VBUS Date: Sun, 24 Mar 2024 19:31:00 -0400 Message-ID: <20240324233458.1352854-81-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Tim Harvey [ Upstream commit ec2cb52fcfef5d58574f2cfbc9a99ffc20ae5a9d ] The GW71xx does not have a gpio controlled vbus regulator but it does require some pinctrl. Remove the regulator and move the valid pinctrl into the usbotg1 node. Fixes: bd306fdb4e60 ("arm64: dts: imx8mm-venice-gw71xx: fix USB OTG VBUS") Signed-off-by: Tim Harvey Signed-off-by: Shawn Guo Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- .../dts/freescale/imx8mm-venice-gw71xx.dtsi | 29 ++++++------------- 1 file changed, 9 insertions(+), 20 deletions(-) diff --git a/arch/arm64/boot/dts/freescale/imx8mm-venice-gw71xx.dtsi b/arch= /arm64/boot/dts/freescale/imx8mm-venice-gw71xx.dtsi index 7ea909a4c1d5e..6de00c9dcd349 100644 --- a/arch/arm64/boot/dts/freescale/imx8mm-venice-gw71xx.dtsi +++ b/arch/arm64/boot/dts/freescale/imx8mm-venice-gw71xx.dtsi @@ -40,17 +40,6 @@ pps { gpios =3D <&gpio1 15 GPIO_ACTIVE_HIGH>; status =3D "okay"; }; - - reg_usb_otg1_vbus: regulator-usb-otg1 { - pinctrl-names =3D "default"; - pinctrl-0 =3D <&pinctrl_reg_usb1_en>; - compatible =3D "regulator-fixed"; - regulator-name =3D "usb_otg1_vbus"; - gpio =3D <&gpio1 10 GPIO_ACTIVE_HIGH>; - enable-active-high; - regulator-min-microvolt =3D <5000000>; - regulator-max-microvolt =3D <5000000>; - }; }; =20 /* off-board header */ @@ -102,9 +91,10 @@ &uart3 { }; =20 &usbotg1 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_usbotg1>; dr_mode =3D "otg"; over-current-active-low; - vbus-supply =3D <®_usb_otg1_vbus>; status =3D "okay"; }; =20 @@ -156,14 +146,6 @@ MX8MM_IOMUXC_GPIO1_IO15_GPIO1_IO15 0x41 >; }; =20 - pinctrl_reg_usb1_en: regusb1grp { - fsl,pins =3D < - MX8MM_IOMUXC_GPIO1_IO10_GPIO1_IO10 0x41 - MX8MM_IOMUXC_GPIO1_IO12_GPIO1_IO12 0x141 - MX8MM_IOMUXC_GPIO1_IO13_USB1_OTG_OC 0x41 - >; - }; - pinctrl_spi2: spi2grp { fsl,pins =3D < MX8MM_IOMUXC_ECSPI2_SCLK_ECSPI2_SCLK 0xd6 @@ -186,4 +168,11 @@ MX8MM_IOMUXC_UART3_RXD_UART3_DCE_RX 0x140 MX8MM_IOMUXC_UART3_TXD_UART3_DCE_TX 0x140 >; }; + + pinctrl_usbotg1: usbotg1grp { + fsl,pins =3D < + MX8MM_IOMUXC_GPIO1_IO12_GPIO1_IO12 0x141 + MX8MM_IOMUXC_GPIO1_IO13_USB1_OTG_OC 0x41 + >; + }; }; --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D7CD2276292; Sun, 24 Mar 2024 23:36:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323382; cv=none; b=OKzy4l/RrrfqFsfCyKzuvBhRAvRcyjY2GMziTeCeqb9BTZh0hviUH3onE69CFFFyPH4BQQb1r0DgCP1HwzqyC3kxRWcF+nFsTJj+NxCrYDMGMkevk8mk3Bf81y7z+b1ZP7m1LC1gU2yE1eU+9OhwkmMwESGyW4AB//br//+8tPM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323382; c=relaxed/simple; bh=QoO5Sp3xDDn2Bel5GdHMW9VjYekzmEIYKOXYEG2rCNs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=QAfjOwCHQcGrDa/Ufykyd964svXLWdsE8iq6JvgQHY4YertYUMTtMj3lEwV3CaBLtwfA7u/9x5KyByJvw54NRcRx5bISe4t2XVpIFn5XCy5rl5YU8VZXS58k21J+PSPsM33Bmegu+Nlt2pO0yyI8dlCOLfOPbH4aIN4ecfe6aXQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=WV15budV; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="WV15budV" Received: by smtp.kernel.org (Postfix) with ESMTPSA id C5F88C43399; Sun, 24 Mar 2024 23:36:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323381; bh=QoO5Sp3xDDn2Bel5GdHMW9VjYekzmEIYKOXYEG2rCNs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=WV15budVLWQPVb1JDXjQXEIBp79QDY9LCB0eM3xR5DDQ2LngNYWAF3IA9QGo/y9fC rW/APraGlKjS2GsU0ax1sXl8iHHJHIox6143t/gKzGwYM/wOlTrGaqbgdGcrql8X4o EI9FT9g2EIG7VVjlNz9ZCzt52YDa9Snry9jZgrw1u0NdhPbUpoVDNkJGmkKP/5e0Bh dhzmr80p4xRc/Mo1Gfqymfe8FGGDxZak9UOhuXzTI8pWkJEsKAXLqWGS2hLWiDRmwQ VDjH1btU2t2TzqbEIzdK0yQXkuwuB1cWcFWKQMTsVNhphoixmIgrRLrYM0ze2af8GJ oXR2+rZ4XiH7A== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= , Claudiu Beznea , Thierry Reding , Sasha Levin Subject: [PATCH 5.15 081/317] pwm: atmel-hlcdc: Convert to platform remove callback returning void Date: Sun, 24 Mar 2024 19:31:01 -0400 Message-ID: <20240324233458.1352854-82-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable From: Uwe Kleine-K=C3=B6nig [ Upstream commit 5fce94170ad8a67b839f3dd8e8e8a87039ba0251 ] The .remove() callback for a platform driver returns an int which makes many driver authors wrongly assume it's possible to do error handling by returning an error code. However the value returned is (mostly) ignored and this typically results in resource leaks. To improve here there is a quest to make the remove callback return void. In the first step of this quest all drivers are converted to .remove_new() which already returns void. Trivially convert this driver from always returning zero in the remove callback to the void returning variant. Signed-off-by: Uwe Kleine-K=C3=B6nig Reviewed-by: Claudiu Beznea Signed-off-by: Thierry Reding Stable-dep-of: e25ac87d3f83 ("pwm: atmel-hlcdc: Fix clock imbalance related= to suspend support") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/pwm/pwm-atmel-hlcdc.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/pwm/pwm-atmel-hlcdc.c b/drivers/pwm/pwm-atmel-hlcdc.c index a43b2babc8093..96a709a9d49a8 100644 --- a/drivers/pwm/pwm-atmel-hlcdc.c +++ b/drivers/pwm/pwm-atmel-hlcdc.c @@ -278,15 +278,13 @@ static int atmel_hlcdc_pwm_probe(struct platform_devi= ce *pdev) return 0; } =20 -static int atmel_hlcdc_pwm_remove(struct platform_device *pdev) +static void atmel_hlcdc_pwm_remove(struct platform_device *pdev) { struct atmel_hlcdc_pwm *chip =3D platform_get_drvdata(pdev); =20 pwmchip_remove(&chip->chip); =20 clk_disable_unprepare(chip->hlcdc->periph_clk); - - return 0; } =20 static const struct of_device_id atmel_hlcdc_pwm_dt_ids[] =3D { @@ -301,7 +299,7 @@ static struct platform_driver atmel_hlcdc_pwm_driver = =3D { .pm =3D &atmel_hlcdc_pwm_pm_ops, }, .probe =3D atmel_hlcdc_pwm_probe, - .remove =3D atmel_hlcdc_pwm_remove, + .remove_new =3D atmel_hlcdc_pwm_remove, }; module_platform_driver(atmel_hlcdc_pwm_driver); =20 --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 98CE227629D; Sun, 24 Mar 2024 23:36:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323383; cv=none; b=W+zekhUBVM4x8pfWdkwWecs21eLG5JA9p13vOo3WDhua8y/G0DJelGzGEZ9XM2kyrZn8Ae7C5CBWSGs1GgjOOzA3xRDJ6+nU/JfLjoBt1JFAfm0ZX1gJ9fSGa3Rb/FgV+4WtOgbhn+kglasColLI0Em2YuEgJ2UyGw15sj9G+sg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323383; c=relaxed/simple; bh=akUmTWz/zsZ2kenJnJwgx9OQCKZ8/xx+LY8+fSU5Lyw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=MPsQ1o2/ivlME72h7hn1sTCWcZyp9e7hl7Z9px6+DsOu7XWwUaUbfsRh0uokevYb4dCUHhIrkPzWNOWKTJEpctAD5S4MNWcMYf6GiIlyV+0ped1kq+kukSpO0IV7ps47nsrhmNkHICyDbZTO+rmzi12xs6O2FA/BEdiW419Y0OA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Mfu/ZtUU; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Mfu/ZtUU" Received: by smtp.kernel.org (Postfix) with ESMTPSA id C2621C43390; Sun, 24 Mar 2024 23:36:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323382; bh=akUmTWz/zsZ2kenJnJwgx9OQCKZ8/xx+LY8+fSU5Lyw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Mfu/ZtUU/aoIjwTdkLKx9rIvMSHc46ElB9MtMGIrJ9v4cdy5ZJL3hcXlSrQXAPElD HXgvwlm7Lny9TljO+li+D1F2U50TeS7hWIfk6oCXSrvFlUOrOh4NcJKPqV+YH48cx6 HNL+7+nSb1TbDV9Qey6cQDpg3anXY4ZWeahlxZpS0Z5AhGp1+p+FljnBspvuxI3pq+ 1wrrOZTSH7Fom1dXMh5nEgUEOEMqL6KegG+fx3YoR91sy/oFDO23Lnagl2GjwcksMf v86kvXu4qxM+8QMZM1TCvkhlG0UHn1x3yZkAaQ3jh07G9yI4i2oqTGLd0bHcQ/5fcO lW9Bre0A8KqBQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= , Claudiu Beznea , Thierry Reding , Sasha Levin Subject: [PATCH 5.15 082/317] pwm: atmel-hlcdc: Use consistent variable naming Date: Sun, 24 Mar 2024 19:31:02 -0400 Message-ID: <20240324233458.1352854-83-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable From: Uwe Kleine-K=C3=B6nig [ Upstream commit aecab554b6ffa9a94ba796031eb39ea20eb60fb3 ] In PWM drivers the variable name "chip" is usually only used for struct pwm_chip pointers. This driver however used "chip" for its driver data and pwm_chip pointers are named "chip", too, when there is no driver data around and "c" otherwise. Instead use "atmel" for driver data and always "chip" for pwm_chips. Signed-off-by: Uwe Kleine-K=C3=B6nig Reviewed-by: Claudiu Beznea [thierry.reding@gmail.com: replace ddata by atmel] Signed-off-by: Thierry Reding Stable-dep-of: e25ac87d3f83 ("pwm: atmel-hlcdc: Fix clock imbalance related= to suspend support") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/pwm/pwm-atmel-hlcdc.c | 65 ++++++++++++++++++----------------- 1 file changed, 33 insertions(+), 32 deletions(-) diff --git a/drivers/pwm/pwm-atmel-hlcdc.c b/drivers/pwm/pwm-atmel-hlcdc.c index 96a709a9d49a8..4d0b859d0ac13 100644 --- a/drivers/pwm/pwm-atmel-hlcdc.c +++ b/drivers/pwm/pwm-atmel-hlcdc.c @@ -38,11 +38,11 @@ static inline struct atmel_hlcdc_pwm *to_atmel_hlcdc_pw= m(struct pwm_chip *chip) return container_of(chip, struct atmel_hlcdc_pwm, chip); } =20 -static int atmel_hlcdc_pwm_apply(struct pwm_chip *c, struct pwm_device *pw= m, +static int atmel_hlcdc_pwm_apply(struct pwm_chip *chip, struct pwm_device = *pwm, const struct pwm_state *state) { - struct atmel_hlcdc_pwm *chip =3D to_atmel_hlcdc_pwm(c); - struct atmel_hlcdc *hlcdc =3D chip->hlcdc; + struct atmel_hlcdc_pwm *atmel =3D to_atmel_hlcdc_pwm(chip); + struct atmel_hlcdc *hlcdc =3D atmel->hlcdc; unsigned int status; int ret; =20 @@ -54,7 +54,7 @@ static int atmel_hlcdc_pwm_apply(struct pwm_chip *c, stru= ct pwm_device *pwm, u32 pwmcfg; int pres; =20 - if (!chip->errata || !chip->errata->slow_clk_erratum) { + if (!atmel->errata || !atmel->errata->slow_clk_erratum) { clk_freq =3D clk_get_rate(new_clk); if (!clk_freq) return -EINVAL; @@ -64,7 +64,7 @@ static int atmel_hlcdc_pwm_apply(struct pwm_chip *c, stru= ct pwm_device *pwm, } =20 /* Errata: cannot use slow clk on some IP revisions */ - if ((chip->errata && chip->errata->slow_clk_erratum) || + if ((atmel->errata && atmel->errata->slow_clk_erratum) || clk_period_ns > state->period) { new_clk =3D hlcdc->sys_clk; clk_freq =3D clk_get_rate(new_clk); @@ -77,8 +77,8 @@ static int atmel_hlcdc_pwm_apply(struct pwm_chip *c, stru= ct pwm_device *pwm, =20 for (pres =3D 0; pres <=3D ATMEL_HLCDC_PWMPS_MAX; pres++) { /* Errata: cannot divide by 1 on some IP revisions */ - if (!pres && chip->errata && - chip->errata->div1_clk_erratum) + if (!pres && atmel->errata && + atmel->errata->div1_clk_erratum) continue; =20 if ((clk_period_ns << pres) >=3D state->period) @@ -90,7 +90,7 @@ static int atmel_hlcdc_pwm_apply(struct pwm_chip *c, stru= ct pwm_device *pwm, =20 pwmcfg =3D ATMEL_HLCDC_PWMPS(pres); =20 - if (new_clk !=3D chip->cur_clk) { + if (new_clk !=3D atmel->cur_clk) { u32 gencfg =3D 0; int ret; =20 @@ -98,8 +98,8 @@ static int atmel_hlcdc_pwm_apply(struct pwm_chip *c, stru= ct pwm_device *pwm, if (ret) return ret; =20 - clk_disable_unprepare(chip->cur_clk); - chip->cur_clk =3D new_clk; + clk_disable_unprepare(atmel->cur_clk); + atmel->cur_clk =3D new_clk; =20 if (new_clk =3D=3D hlcdc->sys_clk) gencfg =3D ATMEL_HLCDC_CLKPWMSEL; @@ -160,8 +160,8 @@ static int atmel_hlcdc_pwm_apply(struct pwm_chip *c, st= ruct pwm_device *pwm, if (ret) return ret; =20 - clk_disable_unprepare(chip->cur_clk); - chip->cur_clk =3D NULL; + clk_disable_unprepare(atmel->cur_clk); + atmel->cur_clk =3D NULL; } =20 return 0; @@ -183,31 +183,32 @@ static const struct atmel_hlcdc_pwm_errata atmel_hlcd= c_pwm_sama5d3_errata =3D { #ifdef CONFIG_PM_SLEEP static int atmel_hlcdc_pwm_suspend(struct device *dev) { - struct atmel_hlcdc_pwm *chip =3D dev_get_drvdata(dev); + struct atmel_hlcdc_pwm *atmel =3D dev_get_drvdata(dev); =20 /* Keep the periph clock enabled if the PWM is still running. */ - if (pwm_is_enabled(&chip->chip.pwms[0])) - clk_disable_unprepare(chip->hlcdc->periph_clk); + if (pwm_is_enabled(&atmel->chip.pwms[0])) + clk_disable_unprepare(atmel->hlcdc->periph_clk); =20 return 0; } =20 static int atmel_hlcdc_pwm_resume(struct device *dev) { - struct atmel_hlcdc_pwm *chip =3D dev_get_drvdata(dev); + struct atmel_hlcdc_pwm *atmel =3D dev_get_drvdata(dev); struct pwm_state state; int ret; =20 - pwm_get_state(&chip->chip.pwms[0], &state); + pwm_get_state(&atmel->chip.pwms[0], &state); =20 /* Re-enable the periph clock it was stopped during suspend. */ if (!state.enabled) { - ret =3D clk_prepare_enable(chip->hlcdc->periph_clk); + ret =3D clk_prepare_enable(atmel->hlcdc->periph_clk); if (ret) return ret; } =20 - return atmel_hlcdc_pwm_apply(&chip->chip, &chip->chip.pwms[0], &state); + return atmel_hlcdc_pwm_apply(&atmel->chip, &atmel->chip.pwms[0], + &state); } #endif =20 @@ -244,14 +245,14 @@ static int atmel_hlcdc_pwm_probe(struct platform_devi= ce *pdev) { const struct of_device_id *match; struct device *dev =3D &pdev->dev; - struct atmel_hlcdc_pwm *chip; + struct atmel_hlcdc_pwm *atmel; struct atmel_hlcdc *hlcdc; int ret; =20 hlcdc =3D dev_get_drvdata(dev->parent); =20 - chip =3D devm_kzalloc(dev, sizeof(*chip), GFP_KERNEL); - if (!chip) + atmel =3D devm_kzalloc(dev, sizeof(*atmel), GFP_KERNEL); + if (!atmel) return -ENOMEM; =20 ret =3D clk_prepare_enable(hlcdc->periph_clk); @@ -260,31 +261,31 @@ static int atmel_hlcdc_pwm_probe(struct platform_devi= ce *pdev) =20 match =3D of_match_node(atmel_hlcdc_dt_ids, dev->parent->of_node); if (match) - chip->errata =3D match->data; + atmel->errata =3D match->data; =20 - chip->hlcdc =3D hlcdc; - chip->chip.ops =3D &atmel_hlcdc_pwm_ops; - chip->chip.dev =3D dev; - chip->chip.npwm =3D 1; + atmel->hlcdc =3D hlcdc; + atmel->chip.ops =3D &atmel_hlcdc_pwm_ops; + atmel->chip.dev =3D dev; + atmel->chip.npwm =3D 1; =20 - ret =3D pwmchip_add(&chip->chip); + ret =3D pwmchip_add(&atmel->chip); if (ret) { clk_disable_unprepare(hlcdc->periph_clk); return ret; } =20 - platform_set_drvdata(pdev, chip); + platform_set_drvdata(pdev, atmel); =20 return 0; } =20 static void atmel_hlcdc_pwm_remove(struct platform_device *pdev) { - struct atmel_hlcdc_pwm *chip =3D platform_get_drvdata(pdev); + struct atmel_hlcdc_pwm *atmel =3D platform_get_drvdata(pdev); =20 - pwmchip_remove(&chip->chip); + pwmchip_remove(&atmel->chip); =20 - clk_disable_unprepare(chip->hlcdc->periph_clk); + clk_disable_unprepare(atmel->hlcdc->periph_clk); } =20 static const struct of_device_id atmel_hlcdc_pwm_dt_ids[] =3D { --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7C7AF2762A5; Sun, 24 Mar 2024 23:36:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323384; cv=none; b=jMJ+m53x6bPzfF6wS7go8d764/Yxovxm9SFGSFKofQ2TqgcbLerwT9/bNJWfLWlWdGhBNzjDdZsCoxXMlV31QhP60xjE3UdCRXTL6YBOJ4PuBMuSIjCHDX+VojL5Prwr7Eh6H7heYBe/kFRMzJkPyq4kh4A+fdxuddlATS0oqFA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323384; c=relaxed/simple; bh=1ITZQsOA5uH5mLhtqE6Q6ShPQIh0iAuove/4OFBVZ0Q=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=elgZPr1knSrkBeJr2dCmgwQBMszReOvs6gjXUrBANsMVA11tyoIHks32xg3K/NIbKM/weuXeswIU17q9MUXiorX2yn+ip7MWK95wMLgZ2P939hInGn7Yuh5NlbylxLoOWaijIsy3GF9WjuxpVZ+VVrOu2MZpCFKN50PwJeM4ocg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=BYlBG8Gs; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="BYlBG8Gs" Received: by smtp.kernel.org (Postfix) with ESMTPSA id BE940C433C7; Sun, 24 Mar 2024 23:36:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323383; bh=1ITZQsOA5uH5mLhtqE6Q6ShPQIh0iAuove/4OFBVZ0Q=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=BYlBG8GsihYRNzP7lNvsTaG4kLZc9VvRfTniNN5uqShYRquuCoT5G8XYvD81YfJy2 YcV2GyknBaYEYGXafBMDnsYWfWipJIwPADtOo3yhA3ClX5dgpcasdHYFDgmp7uqyo/ vpIpnLOBIRZaLJsXHAOsBpf5+g9D1yWzFKsoreKS7+gSZaqPjx/ymDvWtuRZMrXZ3R q0niAHLLJW2yKlFnH6x0FvmlprcIuice5jnyol66cMIx3+tt0cfQ2BIw2UmVtYX0d6 80OXda3wWw9hXyzC2cyc2Xx0WeEzKSpGVGiwn2u5+T5sIBdwcUjksCp1YtAnDWuUCz M2V5HmDHek2Ew== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= , Claudiu Beznea , Sasha Levin Subject: [PATCH 5.15 083/317] pwm: atmel-hlcdc: Fix clock imbalance related to suspend support Date: Sun, 24 Mar 2024 19:31:03 -0400 Message-ID: <20240324233458.1352854-84-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable From: Uwe Kleine-K=C3=B6nig [ Upstream commit e25ac87d3f831fed002c34aadddaf4ebb4ea45ec ] The suspend callback disables the periph clock when the PWM is enabled and resume reenables this clock if the PWM was disabled before. Judging from the code comment it's suspend that is wrong here. Fix accordingly. Fixes: f9bb9da7c09d ("pwm: atmel-hlcdc: Implement the suspend/resume hooks") Reviewed-by: Claudiu Beznea Link: https://lore.kernel.org/r/b51ea92b0a45eff3dc83b08adefd43d930df996c.17= 06269232.git.u.kleine-koenig@pengutronix.de Signed-off-by: Uwe Kleine-K=C3=B6nig Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/pwm/pwm-atmel-hlcdc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/pwm/pwm-atmel-hlcdc.c b/drivers/pwm/pwm-atmel-hlcdc.c index 4d0b859d0ac13..3e9c94a8d7f72 100644 --- a/drivers/pwm/pwm-atmel-hlcdc.c +++ b/drivers/pwm/pwm-atmel-hlcdc.c @@ -186,7 +186,7 @@ static int atmel_hlcdc_pwm_suspend(struct device *dev) struct atmel_hlcdc_pwm *atmel =3D dev_get_drvdata(dev); =20 /* Keep the periph clock enabled if the PWM is still running. */ - if (pwm_is_enabled(&atmel->chip.pwms[0])) + if (!pwm_is_enabled(&atmel->chip.pwms[0])) clk_disable_unprepare(atmel->hlcdc->periph_clk); =20 return 0; --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7719C2762A3; Sun, 24 Mar 2024 23:36:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323384; cv=none; b=eEqOYluGbhlkWqMPuVxyR12AIbHqADyS/jS4H9gCTzqt2q763CDPtoEmrBiN/uqjgrqYCsk4n3f5uEt7NYKsBQj5CHDFfOuHLHL5lLguKVwgO51UfXAKfNOeuXtO9Jjf8gp+6tO07/2dxq9YX9fUfPD9lO+QzLXX4rQUYBG+xOg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323384; c=relaxed/simple; bh=LvtZg5e0VQtOBT+DmVlIpjevxUc7VebV46SOEb3fPHw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=rJnDq29VePLFwTreV2iJd+SL8iq6Fm6fpLeODuzh7vtpsaScLPO0gklOJvwCLCZBxRjnFVkcjgzxLppVfSGQIgbvaWxLiVDZwXh4AMiKMxfjx7pgeXhLeqS7kfRfxERCF8s6ZOQLUBpq+L3ItM8gqKbhSt/Ivzjh+q/Wq/tekCA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=pW4Q6luP; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="pW4Q6luP" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A1DDBC433A6; Sun, 24 Mar 2024 23:36:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323384; bh=LvtZg5e0VQtOBT+DmVlIpjevxUc7VebV46SOEb3fPHw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=pW4Q6luPYaAQ26nYDDHXb3l//kenFn5SbXy3T3oK3fSLzp3yOECwk6oov2CMJrBRD 2rqYc8iqNGo8qXUvuJh7Uqsl3MROPfXHXvYcaZmnQZBugQE6FpDMEeYxGbEAWqWB4s Hc9dCIF6yv35bzxb+ztlAKmlLORAElI22pYq39IV+ETmtp4y8kc1mobzyR8CXHaAZl yIgP0yyLBopG72WD22YIIvYClH70j7VIbtrARl/XTcMhCgNnYYYvpvXZYJMm6V4Arw z/xgIXfRIciD86baKXyiV95lLSdfUs4VPxjNnOzd9JrD3xEkBsPlXfmcA8MvYI1uXS XBOJRwMYl44Ow== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Breno Leitao , Jiri Pirko , "David S . Miller" , Sasha Levin Subject: [PATCH 5.15 084/317] net: blackhole_dev: fix build warning for ethh set but not used Date: Sun, 24 Mar 2024 19:31:04 -0400 Message-ID: <20240324233458.1352854-85-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Breno Leitao [ Upstream commit 843a8851e89e2e85db04caaf88d8554818319047 ] lib/test_blackhole_dev.c sets a variable that is never read, causing this following building warning: lib/test_blackhole_dev.c:32:17: warning: variable 'ethh' set but not used = [-Wunused-but-set-variable] Remove the variable struct ethhdr *ethh, which is unused. Fixes: 509e56b37cc3 ("blackhole_dev: add a selftest") Signed-off-by: Breno Leitao Reviewed-by: Jiri Pirko Signed-off-by: David S. Miller Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- lib/test_blackhole_dev.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/test_blackhole_dev.c b/lib/test_blackhole_dev.c index 4c40580a99a36..f247089d63c08 100644 --- a/lib/test_blackhole_dev.c +++ b/lib/test_blackhole_dev.c @@ -29,7 +29,6 @@ static int __init test_blackholedev_init(void) { struct ipv6hdr *ip6h; struct sk_buff *skb; - struct ethhdr *ethh; struct udphdr *uh; int data_len; int ret; @@ -61,7 +60,7 @@ static int __init test_blackholedev_init(void) ip6h->saddr =3D in6addr_loopback; ip6h->daddr =3D in6addr_loopback; /* Ether */ - ethh =3D (struct ethhdr *)skb_push(skb, sizeof(struct ethhdr)); + skb_push(skb, sizeof(struct ethhdr)); skb_set_mac_header(skb, 0); =20 skb->protocol =3D htons(ETH_P_IPV6); --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5A8CC2762B2; Sun, 24 Mar 2024 23:36:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323386; cv=none; b=Ws5OYnI7faqnMydUAiSMFv03vkHcyo4f0q3gmQnzduzJDR4U2jNe2lPNHvL5epy1XtswZSZfxZ2KyoRk6XPQ5eI5rOL8rcRsvnvhK7CZSgooiDGsgkMqgl5sJm6Wn7M/bt9v0U3W+npUmk9uSYG1KyF4r1gzB6mlCYfs1gehQfI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323386; c=relaxed/simple; bh=eTI9IOKkvtOB8T26gH1qSqbthfn8ohH424sihv1I7Fk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=QZaWU36lUmxwtCnjELLAzzEbG8ebZye9U88jUj+lvgnLX33SZt3W8msuKhGz2kGCEbVIEo28ibMK5bNbRn7sLXiCJay6ep1/GBpAPcmxHOv9jg9lenydhnytBHqv8ULCp0wnrkEh+MeAcLcszzrNJFWuwnKgGFNaXalgqWGDzNg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=tEsbj28x; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="tEsbj28x" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9ABC5C43399; Sun, 24 Mar 2024 23:36:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323385; bh=eTI9IOKkvtOB8T26gH1qSqbthfn8ohH424sihv1I7Fk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=tEsbj28xp7FODlhEqitMa5fswOPRrLiZ01WPNxZVMbtdqxldSuOWyeSD6fdTGTF0D DT7D5yH9paIkhmisT/rWdeaud7s7pGATCTGNMeO3qj3rLEmwp7wd+dC0cMCIHGzGqM ZuSJCGIcOp6aUDGuATIjcJM7teaZC2enzF7ygzI2fxfiWpLAAkTBKeLmFiqbFXNPP1 W4/8lslv4W++YixO08NsxL0ZZZxUPEhtysVZTj/hfUmJ4qcXAtFgXVQPD/9fsNMFN1 NSIz+mKXR8MAGE4tgJrMd6USd04JOIBL1tPQ+iN53K0ZTXxfc1SuQqldADow0Eh2ZQ rYJcRISiKKB9w== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Zhipeng Lu , Kalle Valo , Sasha Levin Subject: [PATCH 5.15 085/317] wifi: libertas: fix some memleaks in lbs_allocate_cmd_buffer() Date: Sun, 24 Mar 2024 19:31:05 -0400 Message-ID: <20240324233458.1352854-86-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Zhipeng Lu [ Upstream commit 5f0e4aede01cb01fa633171f0533affd25328c3a ] In the for statement of lbs_allocate_cmd_buffer(), if the allocation of cmdarray[i].cmdbuf fails, both cmdarray and cmdarray[i].cmdbuf needs to be freed. Otherwise, there will be memleaks in lbs_allocate_cmd_buffer(). Fixes: 876c9d3aeb98 ("[PATCH] Marvell Libertas 8388 802.11b/g USB driver") Signed-off-by: Zhipeng Lu Signed-off-by: Kalle Valo Link: https://msgid.link/20240126075336.2825608-1-alexious@zju.edu.cn Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/net/wireless/marvell/libertas/cmd.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/marvell/libertas/cmd.c b/drivers/net/wire= less/marvell/libertas/cmd.c index a4d9dd73b2588..db9a852fa58a3 100644 --- a/drivers/net/wireless/marvell/libertas/cmd.c +++ b/drivers/net/wireless/marvell/libertas/cmd.c @@ -1133,7 +1133,7 @@ int lbs_allocate_cmd_buffer(struct lbs_private *priv) if (!cmdarray[i].cmdbuf) { lbs_deb_host("ALLOC_CMD_BUF: ptempvirtualaddr is NULL\n"); ret =3D -1; - goto done; + goto free_cmd_array; } } =20 @@ -1141,8 +1141,17 @@ int lbs_allocate_cmd_buffer(struct lbs_private *priv) init_waitqueue_head(&cmdarray[i].cmdwait_q); lbs_cleanup_and_insert_cmd(priv, &cmdarray[i]); } - ret =3D 0; + return 0; =20 +free_cmd_array: + for (i =3D 0; i < LBS_NUM_CMD_BUFFERS; i++) { + if (cmdarray[i].cmdbuf) { + kfree(cmdarray[i].cmdbuf); + cmdarray[i].cmdbuf =3D NULL; + } + } + kfree(priv->cmd_array); + priv->cmd_array =3D NULL; done: return ret; } --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 412D72762A8; Sun, 24 Mar 2024 23:36:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323387; cv=none; b=YFTtFUO13eaTYOCacLpzsIFsfPmhEOawNDqpoyfUPQvgqaPzgWpv8jOQnzRUBhqQV2soWqibGfF7PHrljRTzkCwqKYIo+yrgUeVoXbhEnFVoJfFBy9Uj7HyCoe5X7Jq759lyBjtvC5lnZrv1nL050tP2AQDDpvEHifqx8NeUY6U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323387; c=relaxed/simple; bh=pvqt9Rttb4MxC0PGUhHxuZJWsfcdR1kS0PvKT8WDe4U=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=kbysAYMkz3cbhw+7kD30MThDY4le0XRLHjxeZnvua9oY208vqlzc9y/EUwdhjdFGE3E8x36UZWLA5Ql1RYJr6dYi/aJuYfa6vQx5QAisbTPsDjGe30f0bwFFN+et0hh+crfmywbLCWx7YpfpkV6Oz8D0dKTGU2lgH9G3sjijXjo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=G81sQT34; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="G81sQT34" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7E4CCC43141; Sun, 24 Mar 2024 23:36:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323386; bh=pvqt9Rttb4MxC0PGUhHxuZJWsfcdR1kS0PvKT8WDe4U=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=G81sQT34SGKN15iu9rFG6ZdM9b0rak38vffH0msC5ythX5uUdDTCkoyoRyRr3y309 gvtxhKhZR0bWfIPT0kvtcC3WGBMsqBwO+otofZAqgw/gGngBivEi2pDyCjrsl29s1v EMn9OqXw4A83TMfdgnHBD5xU78yXyRTZA21xSp2tiz2PN54+027gXTnONdpwAcFg1P K8tT9yiXKppROcpUT0VR2Rt/KLWSDiv1THvJXoA8ldJrYVHTnWzyNZc6uy4dK5PeVO bTz4M8mmpAtKnp7tcJbpaBTY3Qwig22TpZ0IKdz+0763pixC0eJg11LfRtDswhpYBh j/s1lnKmgRn0A== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Shawn Guo , Bjorn Andersson , Sasha Levin Subject: [PATCH 5.15 086/317] arm64: dts: qcom: msm8996: Move '#clock-cells' to QMP PHY child node Date: Sun, 24 Mar 2024 19:31:06 -0400 Message-ID: <20240324233458.1352854-87-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Shawn Guo [ Upstream commit 82d61e19fccbf2fe7c018765b3799791916e7f31 ] '#clock-cells' is a required property of QMP PHY child node, not itself. Move it to fix the dtbs_check warnings. There are only '#clock-cells' removal from SM8350 QMP PHY nodes, because child nodes already have the property. Signed-off-by: Shawn Guo Signed-off-by: Bjorn Andersson Link: https://lore.kernel.org/r/20210929034253.24570-4-shawn.guo@linaro.org Stable-dep-of: fc835b2311d4 ("arm64: dts: qcom: msm8998: declare VLS CLAMP = register for USB3 PHY") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- arch/arm64/boot/dts/qcom/ipq8074.dtsi | 4 ++-- arch/arm64/boot/dts/qcom/msm8996.dtsi | 4 ++-- arch/arm64/boot/dts/qcom/msm8998.dtsi | 2 +- arch/arm64/boot/dts/qcom/sm8350.dtsi | 3 --- 4 files changed, 5 insertions(+), 8 deletions(-) diff --git a/arch/arm64/boot/dts/qcom/ipq8074.dtsi b/arch/arm64/boot/dts/qc= om/ipq8074.dtsi index 17eeff106bab7..0a4c5b847ddd5 100644 --- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi +++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi @@ -91,7 +91,6 @@ soc: soc { ssphy_1: phy@58000 { compatible =3D "qcom,ipq8074-qmp-usb3-phy"; reg =3D <0x00058000 0x1c4>; - #clock-cells =3D <1>; #address-cells =3D <1>; #size-cells =3D <1>; ranges; @@ -112,6 +111,7 @@ usb1_ssphy: phy@58200 { <0x00058800 0x1f8>, /* PCS */ <0x00058600 0x044>; /* PCS misc*/ #phy-cells =3D <0>; + #clock-cells =3D <1>; clocks =3D <&gcc GCC_USB1_PIPE_CLK>; clock-names =3D "pipe0"; clock-output-names =3D "usb3phy_1_cc_pipe_clk"; @@ -134,7 +134,6 @@ qusb_phy_1: phy@59000 { ssphy_0: phy@78000 { compatible =3D "qcom,ipq8074-qmp-usb3-phy"; reg =3D <0x00078000 0x1c4>; - #clock-cells =3D <1>; #address-cells =3D <1>; #size-cells =3D <1>; ranges; @@ -155,6 +154,7 @@ usb0_ssphy: phy@78200 { <0x00078800 0x1f8>, /* PCS */ <0x00078600 0x044>; /* PCS misc*/ #phy-cells =3D <0>; + #clock-cells =3D <1>; clocks =3D <&gcc GCC_USB0_PIPE_CLK>; clock-names =3D "pipe0"; clock-output-names =3D "usb3phy_0_cc_pipe_clk"; diff --git a/arch/arm64/boot/dts/qcom/msm8996.dtsi b/arch/arm64/boot/dts/qc= om/msm8996.dtsi index fd9ffe8448b04..e8fe02f484bf2 100644 --- a/arch/arm64/boot/dts/qcom/msm8996.dtsi +++ b/arch/arm64/boot/dts/qcom/msm8996.dtsi @@ -615,7 +615,6 @@ soc: soc { pcie_phy: phy@34000 { compatible =3D "qcom,msm8996-qmp-pcie-phy"; reg =3D <0x00034000 0x488>; - #clock-cells =3D <1>; #address-cells =3D <1>; #size-cells =3D <1>; ranges; @@ -637,6 +636,7 @@ pciephy_0: phy@35000 { <0x00035400 0x1dc>; #phy-cells =3D <0>; =20 + #clock-cells =3D <1>; clock-output-names =3D "pcie_0_pipe_clk_src"; clocks =3D <&gcc GCC_PCIE_0_PIPE_CLK>; clock-names =3D "pipe0"; @@ -2641,7 +2641,6 @@ usb3_dwc3: dwc3@6a00000 { usb3phy: phy@7410000 { compatible =3D "qcom,msm8996-qmp-usb3-phy"; reg =3D <0x07410000 0x1c4>; - #clock-cells =3D <1>; #address-cells =3D <1>; #size-cells =3D <1>; ranges; @@ -2662,6 +2661,7 @@ ssusb_phy_0: phy@7410200 { <0x07410600 0x1a8>; #phy-cells =3D <0>; =20 + #clock-cells =3D <1>; clock-output-names =3D "usb3_phy_pipe_clk_src"; clocks =3D <&gcc GCC_USB3_PHY_PIPE_CLK>; clock-names =3D "pipe0"; diff --git a/arch/arm64/boot/dts/qcom/msm8998.dtsi b/arch/arm64/boot/dts/qc= om/msm8998.dtsi index 7eadecba0175d..6dbed85fa53e5 100644 --- a/arch/arm64/boot/dts/qcom/msm8998.dtsi +++ b/arch/arm64/boot/dts/qcom/msm8998.dtsi @@ -1993,7 +1993,6 @@ usb3phy: phy@c010000 { compatible =3D "qcom,msm8998-qmp-usb3-phy"; reg =3D <0x0c010000 0x18c>; status =3D "disabled"; - #clock-cells =3D <1>; #address-cells =3D <1>; #size-cells =3D <1>; ranges; @@ -2014,6 +2013,7 @@ usb1_ssphy: phy@c010200 { <0xc010600 0x128>, <0xc010800 0x200>; #phy-cells =3D <0>; + #clock-cells =3D <1>; clocks =3D <&gcc GCC_USB3_PHY_PIPE_CLK>; clock-names =3D "pipe0"; clock-output-names =3D "usb3_phy_pipe_clk_src"; diff --git a/arch/arm64/boot/dts/qcom/sm8350.dtsi b/arch/arm64/boot/dts/qco= m/sm8350.dtsi index b0ba63b5869d2..8506dc841c869 100644 --- a/arch/arm64/boot/dts/qcom/sm8350.dtsi +++ b/arch/arm64/boot/dts/qcom/sm8350.dtsi @@ -1119,7 +1119,6 @@ ufs_mem_phy: phy@1d87000 { reg =3D <0 0x01d87000 0 0x1c4>; #address-cells =3D <2>; #size-cells =3D <2>; - #clock-cells =3D <1>; ranges; clock-names =3D "ref", "ref_aux"; @@ -1254,7 +1253,6 @@ usb_1_qmpphy: phy-wrapper@88e9000 { <0 0x088e8000 0 0x20>; reg-names =3D "reg-base", "dp_com"; status =3D "disabled"; - #clock-cells =3D <1>; #address-cells =3D <2>; #size-cells =3D <2>; ranges; @@ -1287,7 +1285,6 @@ usb_2_qmpphy: phy-wrapper@88eb000 { compatible =3D "qcom,sm8350-qmp-usb3-uni-phy"; reg =3D <0 0x088eb000 0 0x200>; status =3D "disabled"; - #clock-cells =3D <1>; #address-cells =3D <2>; #size-cells =3D <2>; ranges; --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3A9052762BE; Sun, 24 Mar 2024 23:36:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323388; cv=none; b=eRT+y5Bn+jCF/GU7Vz5H2DcCtEB78C1uaGREvcRnFO7Xa4fKnFqY2pknflNx5y5TOdXGm8vPVQn53qy6gU4OfvYoALCukAh6Zpmd1py9Bpn94CbQq5TyenroXcRr+T89z2hWS83IwovaQ2qMgt8kLNvKAmTwxif7ZlpvkIzsvus= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323388; c=relaxed/simple; bh=pIl9FtZqut4b3vzp0F8W5d2QAW/HQiF2glpiPmUwTBY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=m3N+TomN9zUCaNtL8YPdozVLByEvaLuc2Ch8ewfjpkgbKHa+EwJi6+dN7o+LSUPwfL7mPg9tGXgE5wYrSJZfhmSn2OAJr2+ureb5RV+Ij/+VsdW37E11OXWh17o5GE7vXIVjKFKzmoZ2hH8ybQtSm2pKSirwtuOqhsev5M5rCJk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=iENJbFK7; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="iENJbFK7" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 618CFC433B1; Sun, 24 Mar 2024 23:36:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323387; bh=pIl9FtZqut4b3vzp0F8W5d2QAW/HQiF2glpiPmUwTBY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=iENJbFK7PFHE0D2GfJw3Y/N5QFelPaS37E0AUrLUKhfXa4qPaihWcVOIMwvzJnDWp lbcXAh0bYGZ672a/zpQXhn2P3bqqMmeubg+ge11k3hdzRoHUOdZ2xEceFYhyFqA15L ZrVlxN7+eeDvTQp0W+kPIItNQIPEbKEtbQvcl/JiA78sKWhN2wXzrVsnmLRGXj6g+T yeKLuO+Xjbg4YM9MwBgpqZV+fSRhldlvOOHYoX51y432OpXCCoWxdJZOhGx8yrcprZ WfroISQQ0AGaRHCitWd/p3sAkqRt9X9IbjdrArwYVKgRUxQiWZ+VA/Jbo+gmBT70TK 3n7BQsgFGCi0w== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Johan Hovold , Dmitry Baryshkov , Bjorn Andersson , Sasha Levin Subject: [PATCH 5.15 087/317] arm64: dts: qcom: msm8998: drop USB PHY clock index Date: Sun, 24 Mar 2024 19:31:07 -0400 Message-ID: <20240324233458.1352854-88-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Johan Hovold [ Upstream commit ed9cbbcb8c6a1925db7995214602c6a8983ff870 ] The QMP USB PHY provides a single clock so drop the redundant clock index. Signed-off-by: Johan Hovold Reviewed-by: Dmitry Baryshkov Signed-off-by: Bjorn Andersson Link: https://lore.kernel.org/r/20220705114032.22787-7-johan+linaro@kernel.= org Stable-dep-of: fc835b2311d4 ("arm64: dts: qcom: msm8998: declare VLS CLAMP = register for USB3 PHY") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- arch/arm64/boot/dts/qcom/msm8998.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/qcom/msm8998.dtsi b/arch/arm64/boot/dts/qc= om/msm8998.dtsi index 6dbed85fa53e5..e1b744d76251d 100644 --- a/arch/arm64/boot/dts/qcom/msm8998.dtsi +++ b/arch/arm64/boot/dts/qcom/msm8998.dtsi @@ -2013,7 +2013,7 @@ usb1_ssphy: phy@c010200 { <0xc010600 0x128>, <0xc010800 0x200>; #phy-cells =3D <0>; - #clock-cells =3D <1>; + #clock-cells =3D <0>; clocks =3D <&gcc GCC_USB3_PHY_PIPE_CLK>; clock-names =3D "pipe0"; clock-output-names =3D "usb3_phy_pipe_clk_src"; --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1CF65175C81; Sun, 24 Mar 2024 23:36:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323389; cv=none; b=K199zAPDhWIrnJdoKbWH2gJe/HxccOdnHADSOKemQcahaKapCEGf95AmKdTskSzafSb3EsQIJm1lnTNNWNO3zrnUI57S+NW/CmM3Dh66Nyou92l3Gz4wvMkLniu2oWIx9V2sw/UdYzsWcFyY5Jj50t/+GxNsPFwmgZhE6Bx8sIo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323389; c=relaxed/simple; bh=Fy2IfXuEmyWDKc8aoG+7VxfO1DUFtWc51famz17+kRk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=CbUd1SsajblpbiUnFClMZW6tDwFuDbp77vdzTOp9K7byfrKH5WHjRynCh5p8949qu1pOdirj+Kexk3FTKUxrdqVTX4VD7tRqicg4aUzrywjcNmwkBQUfm1w1saMxMmtoXOi/+qk7bnjr/xJEVZ30XPWnM6ug2alCcr1+v+t0ZK8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=u7Jd84PE; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="u7Jd84PE" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5B627C43399; Sun, 24 Mar 2024 23:36:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323388; bh=Fy2IfXuEmyWDKc8aoG+7VxfO1DUFtWc51famz17+kRk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=u7Jd84PEVkgel6U9uOrq2NpJ8IPrV6C7xtb4gJ3JCfhSIY1gKjXvnMPop7VZzwrDb aVZbz1BxQsw4E4ObJ6PHtNTYsCMQIgl5IHjsPEK67bnMWJMFNlLY3L5ECSjn/s/h6J SLFUKeXqmOXBFU832/ysEQVEtYudu7HtZCWxM/s2n+CIYEd3yzsLebyLLw/SlqX45C +axmeKa3jbx7D+oVRZLwakt+lIChZd5ecSvDXQzyOp5zz25Xy8SDbgry13ssnj/05e Em25YA/pyVIM4hunbfjJfoKDx8IsvVtzLSTSTRQIkcoV2h5nTQMnhZH/MhfngRa27f SU1MwFwWq1mjw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Dmitry Baryshkov , Bjorn Andersson , Sasha Levin Subject: [PATCH 5.15 088/317] arm64: dts: qcom: msm8998: switch USB QMP PHY to new style of bindings Date: Sun, 24 Mar 2024 19:31:08 -0400 Message-ID: <20240324233458.1352854-89-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Dmitry Baryshkov [ Upstream commit b7efebfeb2e8ad8187cdabba5f0212ba2e6c1069 ] Change the USB QMP PHY to use newer style of QMP PHY bindings (single resource region, no per-PHY subnodes). Signed-off-by: Dmitry Baryshkov Link: https://lore.kernel.org/r/20230824211952.1397699-11-dmitry.baryshkov@= linaro.org Signed-off-by: Bjorn Andersson Stable-dep-of: fc835b2311d4 ("arm64: dts: qcom: msm8998: declare VLS CLAMP = register for USB3 PHY") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- arch/arm64/boot/dts/qcom/msm8998.dtsi | 35 +++++++++++---------------- 1 file changed, 14 insertions(+), 21 deletions(-) diff --git a/arch/arm64/boot/dts/qcom/msm8998.dtsi b/arch/arm64/boot/dts/qc= om/msm8998.dtsi index e1b744d76251d..b3b1258f2d6f8 100644 --- a/arch/arm64/boot/dts/qcom/msm8998.dtsi +++ b/arch/arm64/boot/dts/qcom/msm8998.dtsi @@ -1982,7 +1982,7 @@ usb3_dwc3: dwc3@a800000 { interrupts =3D ; snps,dis_u2_susphy_quirk; snps,dis_enblslpm_quirk; - phys =3D <&qusb2phy>, <&usb1_ssphy>; + phys =3D <&qusb2phy>, <&usb3phy>; phy-names =3D "usb2-phy", "usb3-phy"; snps,has-lpm-erratum; snps,hird-threshold =3D /bits/ 8 <0x10>; @@ -1991,33 +1991,26 @@ usb3_dwc3: dwc3@a800000 { =20 usb3phy: phy@c010000 { compatible =3D "qcom,msm8998-qmp-usb3-phy"; - reg =3D <0x0c010000 0x18c>; - status =3D "disabled"; - #address-cells =3D <1>; - #size-cells =3D <1>; - ranges; + reg =3D <0x0c010000 0x1000>; =20 clocks =3D <&gcc GCC_USB3_PHY_AUX_CLK>, + <&gcc GCC_USB3_CLKREF_CLK>, <&gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>, - <&gcc GCC_USB3_CLKREF_CLK>; - clock-names =3D "aux", "cfg_ahb", "ref"; + <&gcc GCC_USB3_PHY_PIPE_CLK>; + clock-names =3D "aux", + "ref", + "cfg_ahb", + "pipe"; + clock-output-names =3D "usb3_phy_pipe_clk_src"; + #clock-cells =3D <0>; + #phy-cells =3D <0>; =20 resets =3D <&gcc GCC_USB3_PHY_BCR>, <&gcc GCC_USB3PHY_PHY_BCR>; - reset-names =3D "phy", "common"; + reset-names =3D "phy", + "phy_phy"; =20 - usb1_ssphy: phy@c010200 { - reg =3D <0xc010200 0x128>, - <0xc010400 0x200>, - <0xc010c00 0x20c>, - <0xc010600 0x128>, - <0xc010800 0x200>; - #phy-cells =3D <0>; - #clock-cells =3D <0>; - clocks =3D <&gcc GCC_USB3_PHY_PIPE_CLK>; - clock-names =3D "pipe0"; - clock-output-names =3D "usb3_phy_pipe_clk_src"; - }; + status =3D "disabled"; }; =20 qusb2phy: phy@c012000 { --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2EF13175C84; Sun, 24 Mar 2024 23:36:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323389; cv=none; b=Pmh37daldGYkf602kHvqoSzEn5LFiM4uwVM3YxF99aJF5Lyk4gLUiho3MtI4jpN/cAr7zLMB1qmSInnpMbxDevVlTbc84e24GNNU4HBmmDRcWSQvcWOOckK/Ri+Gf/sqIoPfs/HPoHXVpZ7tMI2Y0pGER2ggFE6uAa4EZJI55go= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323389; c=relaxed/simple; bh=MyT7mOET00kWAGJobb86ugKpx4ruCR/LeO1Hr6qS+UY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=JWEDVcVkJAktCgTZp+6pl44Tt5plGbuV7G5qbfsvf/0ppEV8C6WyPrvpFN87559/CrWbr+oe7c5Hfmt57b3IgGZCTn29enHGncU9T3ttbxWG/BovBECn09dI4RanWDb4M83GcPFyM/Y+zEHHCnPmb6lQE+59YP5GAQKmmdbL6O4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=U3L3Rcv6; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="U3L3Rcv6" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 41492C433F1; Sun, 24 Mar 2024 23:36:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323389; bh=MyT7mOET00kWAGJobb86ugKpx4ruCR/LeO1Hr6qS+UY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=U3L3Rcv6UxaDpCWDZR3jnqsf+VFs+21lBDjvRyVcvcHVMiAlxg0+T3r97fxURbovn 7EJNhwh6Y/RuvAC84z9rzPRcesXoFQYK9Cb7MSG6t7JA7qOQm1RWFOA2iAZlg/L7PS o9Awii2NaKq+TxgQIfzh+MclwF55Y/3H70GfdJdDD15cKya20yKVkZUoqJjkLUVNQQ q1caXwgo/m2WZqBAY3/IPKkupAyGIMF5iAWiM4L/mJW7MblwjyQyj/Sc2yOoGp2BQR 3uskDqG7iTqU1/T7BrrMyG/3Rxl68YlZ2BM1G6tgb2Ga1E+nUkrJIY2LFZdMV4jfUM VGc2GrV2hm8Gg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Dmitry Baryshkov , Jeffrey Hugo , Konrad Dybcio , Bjorn Andersson , Sasha Levin Subject: [PATCH 5.15 089/317] arm64: dts: qcom: msm8998: declare VLS CLAMP register for USB3 PHY Date: Sun, 24 Mar 2024 19:31:09 -0400 Message-ID: <20240324233458.1352854-90-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Dmitry Baryshkov [ Upstream commit fc835b2311d4deb85d776c1d73562338462aa7ac ] The USB3 PHY on the MSM8998 platform doesn't have built-in PCS_MISC_CLAMP_ENABLE register. Instead clamping is handled separately via the register in the TCSR space. Declare corresponding register. Fixes: 026dad8f5873 ("arm64: dts: qcom: msm8998: Add USB-related nodes") Cc: Jeffrey Hugo Signed-off-by: Dmitry Baryshkov Reviewed-by: Konrad Dybcio Reviewed-by: Jeffrey Hugo Link: https://lore.kernel.org/r/20240117-usbc-phy-vls-clamp-v2-4-a950c223f1= 0f@linaro.org Signed-off-by: Bjorn Andersson Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- arch/arm64/boot/dts/qcom/msm8998.dtsi | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/msm8998.dtsi b/arch/arm64/boot/dts/qc= om/msm8998.dtsi index b3b1258f2d6f8..3d32bf0986e1e 100644 --- a/arch/arm64/boot/dts/qcom/msm8998.dtsi +++ b/arch/arm64/boot/dts/qcom/msm8998.dtsi @@ -1081,6 +1081,11 @@ tcsr_mutex_regs: syscon@1f40000 { reg =3D <0x01f40000 0x40000>; }; =20 + tcsr_regs_2: syscon@1fc0000 { + compatible =3D "qcom,msm8998-tcsr", "syscon"; + reg =3D <0x01fc0000 0x26000>; + }; + tlmm: pinctrl@3400000 { compatible =3D "qcom,msm8998-pinctrl"; reg =3D <0x03400000 0xc00000>; @@ -2010,6 +2015,8 @@ usb3phy: phy@c010000 { reset-names =3D "phy", "phy_phy"; =20 + qcom,tcsr-reg =3D <&tcsr_regs_2 0xb244>; + status =3D "disabled"; }; =20 --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2DF37175C8E; Sun, 24 Mar 2024 23:36:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323390; cv=none; b=cGwnlPKLvBdatKG4nf6IHhzb0SYRfIznWj6EN5GBSWlUDa8Ul1kV1HUHykptxylG1Mb0W0WM8gC6w3S8MNCuwhsgnGnJX77VrnTg3afTsv6baxwXjUbtYaq8pjCNwR+aLqEH+OqNEw5A0eLVOTN4RkO3XxiF91tcgSnG8qn8pBs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323390; c=relaxed/simple; bh=uyYm/hTPynukJH3N+FZgPpV/0Ja5FnJGYAm2qYYs7Qo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Hhd68pIQpx1hAmmGz/mSrKBi/q0egW9SPlJXbhbS+d/QKaKl2IY/CQ36pa9BKREvGMcozFSDXfKa3kkY67jg9dRRMSA828vr29P0r9BHP+6wHvljljwl+vPaA34Kjqdw63FOe8QlTf338BGpGExnojJz2rKuf9Sgfm3Ps2LzP54= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=B8/O3aTR; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="B8/O3aTR" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 55CCEC43390; Sun, 24 Mar 2024 23:36:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323390; bh=uyYm/hTPynukJH3N+FZgPpV/0Ja5FnJGYAm2qYYs7Qo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=B8/O3aTRSkKRi9YNVzlYRQGwm71/oUb8nrEZ9pilMtJqKQJEjEwre5ojmILFv6LeN qXUrZmercaIa4ClnMBS1KrQYY5RlVF8G1VYNDti/+qRNRNCrmaLNY2TPOzn+IVuXT0 TBJyXZT3w4Opl5yT1+4kNHkf1fph/Ht0C/5Fr8/5q7AoUrHFaQI4DaDiUYTucutSW6 kWLxt16PrjCs/P3a22PNnQc3c663z0sOSOvXELSRQ3p3kKFnuCq7eJxIQdA6bsL+no BcFZDgv9lA7qs+7LT5jyKFPwxgLPlFufYNGLHfzqvd+8ZlIO2TDMx2pQ6uSxCCE2LA m5BBeDdKmMvUg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Stephen Brennan , Petr Mladek , Sergey Senozhatsky , Sasha Levin Subject: [PATCH 5.15 090/317] printk: Add panic_in_progress helper Date: Sun, 24 Mar 2024 19:31:10 -0400 Message-ID: <20240324233458.1352854-91-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Stephen Brennan [ Upstream commit 77498617857f68496b360081dde1a492d40c28b2 ] This will be used help avoid deadlocks during panics. Although it would be better to include this in linux/panic.h, it would require that header to include linux/atomic.h as well. On some architectures, this results in a circular dependency as well. So instead add the helper directly to printk.c. Suggested-by: Petr Mladek Signed-off-by: Stephen Brennan Reviewed-by: Petr Mladek Reviewed-by: Sergey Senozhatsky Signed-off-by: Petr Mladek Link: https://lore.kernel.org/r/20220202171821.179394-2-stephen.s.brennan@o= racle.com Stable-dep-of: d04d5882cd67 ("printk: Disable passing console lock owner co= mpletely during panic()") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- kernel/printk/printk.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c index 8b110b245d92c..de44ccf9743c1 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -258,6 +258,11 @@ static void __up_console_sem(unsigned long ip) } #define up_console_sem() __up_console_sem(_RET_IP_) =20 +static bool panic_in_progress(void) +{ + return unlikely(atomic_read(&panic_cpu) !=3D PANIC_CPU_INVALID); +} + /* * This is used for debugging the mess that is the VT code by * keeping track if we have the console semaphore held. It's --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 167061F0970; Sun, 24 Mar 2024 23:36:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323392; cv=none; b=hwm0QpORMo9RRTTFfLz6/4R27ZhEIY3auIoFf3dOTTgh4u/WauzM0maA3dwuIGTrfvzpdWkGRXR7jyxQfXLAaByD48wylZwcC6BtjbxCa5zF3WWUuA3dKPgiVkhACdxoBgFUzyO91f+YghBqE0uQUoT/milsg+4tF9go2iKIa2o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323392; c=relaxed/simple; bh=RhExOqD90ay6b6jf70iwXvA+yE4eM00jqamd/5u6OQM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=hx07svKwUsJZ2bw8lQsO7EMTkrUp2VsN9czOBebGSLzSYtHqoe7DVMiuv7Mb1zw3SCQ/qyzrqjvBViGr2smqgTgW3n+kf1jBwM8TWRUIAKRpgxqbe0z2UZo0MEiUtjvyIa+q8aOQsE5bKTEKpSGGZOHY3XCBGkD8DQDLFGwQSL8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=MXnwbUMK; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="MXnwbUMK" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4E1D5C433C7; Sun, 24 Mar 2024 23:36:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323390; bh=RhExOqD90ay6b6jf70iwXvA+yE4eM00jqamd/5u6OQM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=MXnwbUMKZFKPHOOxJcu19sDQsn8+SsR7gw5Db8AjtkU+KiMH0K4VgOEYYnPiEqJQX n+xKeV+N8rC3PY7nbCR0rP7YbfGgmFT63yBJz0IG2w5BLHBpYNTPpKGAH62brcWnHK /1ZWL/WWPjMHA4oIKHMLm+QUCeHLDNDZQ5phUhftO4qFx+ud0HJpCfq/Savo3E+FEf hI9LpqmKu46mwdOwGapHYNps/UAh1jOP2wLg9a4+jiS6zyZ7iQDFPT1TXr4g45q+GW Gln7aP33myLA/gqzq2bzyoPnnJCFzTFaIwQYu3WVL2iJN3O0eW7at6gFvn50v06nhl KwctMYG26KRtQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Petr Mladek , John Ogness , Sasha Levin Subject: [PATCH 5.15 091/317] printk: Disable passing console lock owner completely during panic() Date: Sun, 24 Mar 2024 19:31:11 -0400 Message-ID: <20240324233458.1352854-92-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Petr Mladek [ Upstream commit d04d5882cd678b898a9d7c5aee6afbe9e6e77fcd ] The commit d51507098ff91 ("printk: disable optimistic spin during panic") added checks to avoid becoming a console waiter if a panic is in progress. However, the transition to panic can occur while there is already a waiter. The current owner should not pass the lock to the waiter because it might get stopped or blocked anytime. Also the panic context might pass the console lock owner to an already stopped waiter by mistake. It might happen when console_flush_on_panic() ignores the current lock owner, for example: CPU0 CPU1 Reported-by: Linux Kernel Functional Testing ---- ---- console_lock_spinning_enable() console_trylock_spinning() [CPU1 now console waiter] NMI: panic() panic_other_cpus_shutdown() [stopped as console waiter] console_flush_on_panic() console_lock_spinning_enable() [print 1 record] console_lock_spinning_disable_and_check() [handover to stopped CPU1] This results in panic() not flushing the panic messages. Fix these problems by disabling all spinning operations completely during panic(). Another advantage is that it prevents possible deadlocks caused by "console_owner_lock". The panic() context does not need to take it any longer. The lockless checks are safe because the functions become NOPs when they see the panic in progress. All operations manipulating the state are still synchronized by the lock even when non-panic CPUs would notice the panic synchronously. The current owner might stay spinning. But non-panic() CPUs would get stopped anyway and the panic context will never start spinning. Fixes: dbdda842fe96 ("printk: Add console owner and waiter logic to load ba= lance console writes") Signed-off-by: John Ogness Link: https://lore.kernel.org/r/20240207134103.1357162-12-john.ogness@linut= ronix.de Signed-off-by: Petr Mladek Signed-off-by: Sasha Levin --- kernel/printk/printk.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c index de44ccf9743c1..5ad824b080e27 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -1802,10 +1802,23 @@ static bool console_waiter; */ static void console_lock_spinning_enable(void) { + /* + * Do not use spinning in panic(). The panic CPU wants to keep the lock. + * Non-panic CPUs abandon the flush anyway. + * + * Just keep the lockdep annotation. The panic-CPU should avoid + * taking console_owner_lock because it might cause a deadlock. + * This looks like the easiest way how to prevent false lockdep + * reports without handling races a lockless way. + */ + if (panic_in_progress()) + goto lockdep; + raw_spin_lock(&console_owner_lock); console_owner =3D current; raw_spin_unlock(&console_owner_lock); =20 +lockdep: /* The waiter may spin on us after setting console_owner */ spin_acquire(&console_owner_dep_map, 0, 0, _THIS_IP_); } @@ -1829,6 +1842,22 @@ static int console_lock_spinning_disable_and_check(v= oid) { int waiter; =20 + /* + * Ignore spinning waiters during panic() because they might get stopped + * or blocked at any time, + * + * It is safe because nobody is allowed to start spinning during panic + * in the first place. If there has been a waiter then non panic CPUs + * might stay spinning. They would get stopped anyway. The panic context + * will never start spinning and an interrupted spin on panic CPU will + * never continue. + */ + if (panic_in_progress()) { + /* Keep lockdep happy. */ + spin_release(&console_owner_dep_map, _THIS_IP_); + return 0; + } + raw_spin_lock(&console_owner_lock); waiter =3D READ_ONCE(console_waiter); console_owner =3D NULL; --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E63562197BB; Sun, 24 Mar 2024 23:36:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323393; cv=none; b=qnEZBNb7TmXsOHIDU7u/D89ZgpJwhyJ7jcPTRjt2Ftrg2ZcGUjjJPYkg1M3mqTxFFSnZ1lK72DUyC1kd69EZ3XN8HMiQpeHBl5EtLyX2hXxqDOOPBdPx1dWnxcZflrAt6r73XAfDMLaTDX4DtSxZ6Nz3+VHdVgYdch2jWsRNS6A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323393; c=relaxed/simple; bh=ZO85aW3zlGqioP9YJ8rjMRMntZODEzmJfm/4JlKC8Ao=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=f5HXvmYlzN1sbErNLF2kLNuA6cBOHDdCMcU425NDSd3G5tylyVIBE4cjoIofXAcxG0XWDroRwou82CuRA/o9gpcI4cbmOOMCr57d63Y5SmUMdqy2uStSZgazgGPcRXLDaVWXvbYRMN0MwBn+t1FjnqkGVafkYuQa4K5gYE8evfk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=pKqI4NBD; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="pKqI4NBD" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 30B62C43390; Sun, 24 Mar 2024 23:36:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323391; bh=ZO85aW3zlGqioP9YJ8rjMRMntZODEzmJfm/4JlKC8Ao=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=pKqI4NBDf5FfV2AWmOkrBvrrQRwFP8jy0dGPvkSu3SdOUpkPhC14lzFwTR6LaPHzM jlTiK7Ibl8OTCuva4q2YAhl5HbMFIrnH339rJ8CFZdjTmZcGoHimA0o6nxq38L882N BNmWjr2r4B7Xf/QtwHesM5LAPEu98fTKvoGgBx/xpUm2cMtrGDis1geTiOfYys5h8+ OJ5cDh1GpFBd65kYcXUMkkftWCKDTs7NJkLcvwhQAv1j9c9DVRC3+zRU5IwT82plEn oyj3PW5FRr06lQnh9tJ3OotRS1lr6qCJvQw/JfLfTCj2+D275Hljzcb+gpc4OAs6mm xQe6h/6Kt6Iew== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= , Thierry Reding , Sasha Levin Subject: [PATCH 5.15 092/317] pwm: sti: Implement .apply() callback Date: Sun, 24 Mar 2024 19:31:12 -0400 Message-ID: <20240324233458.1352854-93-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable From: Uwe Kleine-K=C3=B6nig [ Upstream commit b2e60b32b4fe5da4cf7fedd976416b5f47f62332 ] To eventually get rid of all legacy drivers convert this driver to the modern world implementing .apply(). This just pushed a variant of pwm_apply_legacy() into the driver that was slightly simplified because the driver doesn't provide a .set_polarity() callback. Signed-off-by: Uwe Kleine-K=C3=B6nig Signed-off-by: Thierry Reding Stable-dep-of: 5f623835584f ("pwm: sti: Fix capture for st,pwm-num-chan < s= t,capture-num-chan") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/pwm/pwm-sti.c | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/drivers/pwm/pwm-sti.c b/drivers/pwm/pwm-sti.c index f8a3f30e54dd5..652fdb8dc7bfa 100644 --- a/drivers/pwm/pwm-sti.c +++ b/drivers/pwm/pwm-sti.c @@ -392,11 +392,34 @@ static int sti_pwm_capture(struct pwm_chip *chip, str= uct pwm_device *pwm, return ret; } =20 +static int sti_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm, + const struct pwm_state *state) +{ + int err; + + if (state->polarity !=3D PWM_POLARITY_NORMAL) + return -EINVAL; + + if (!state->enabled) { + if (pwm->state.enabled) + sti_pwm_disable(chip, pwm); + + return 0; + } + + err =3D sti_pwm_config(pwm->chip, pwm, state->duty_cycle, state->period); + if (err) + return err; + + if (!pwm->state.enabled) + err =3D sti_pwm_enable(chip, pwm); + + return err; +} + static const struct pwm_ops sti_pwm_ops =3D { .capture =3D sti_pwm_capture, - .config =3D sti_pwm_config, - .enable =3D sti_pwm_enable, - .disable =3D sti_pwm_disable, + .apply =3D sti_pwm_apply, .free =3D sti_pwm_free, .owner =3D THIS_MODULE, }; --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B2B03276C44; Sun, 24 Mar 2024 23:36:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323393; cv=none; b=URLVha1CZDSHOLdmoG4ZLE9zF2RuiuMhcnV1ypm+/EFbKYTrm5Sb1Wf2KhhfmTA+mpNLsqXQJnnPD0XOEqHE+EdkjTZIhXODw4ENUN3mNLvQSfnzwLiuHMnviLJTFuv68dn0QhNyjKs7LwsdshRm/Yq3Mcy2/aRm/1hT6YhY8jE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323393; c=relaxed/simple; bh=tuaO+TMyNegk7atL+7siquVjQWrQBQOb9fB6/Uozhyg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=sq/FjmQ3v3NWYIgCkWTk45DxyvZkdzN+3MvF6kHF+n1ZQcetN0YI2mf1i4V7NWXkUur6OnTQbAdKM2ZI8UVdzb4WWmZ5bPZtUl4BIA3PDLJ/GRqx9/DLXqdfUapD3hxNA3Ay4LjqG41LhMHIJi8GD9aTYA0wAFJePKmXr34sMzk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=OK+nrClZ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="OK+nrClZ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 15DF0C43394; Sun, 24 Mar 2024 23:36:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323392; bh=tuaO+TMyNegk7atL+7siquVjQWrQBQOb9fB6/Uozhyg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=OK+nrClZzAlcqNGCcrast79z/CslPEyhWeGMKjii6/37PnwPNR1cqYdddWFMr6LPw 5Bz2NkNNbqR8h1Trtv3Wh+BwjEHddYnDm6wz3CjER7pYPpW0b/J6ykKJBtKvIFaeoY qr/YJWRjkImsTKrlZYIAphBOyvZX6gbCEQty5CFhy+O6kgbz1QzKbEtbURuy7z6p86 Stlo8bmY6mDPElW2dKuSwEKpMYw5R/4f58Shd87mNJLqNvrNfooi9i6FcNJiK1hr0U 0/qtDl3hen2zJnj12TZyplBBn4uZA9GfqEMz6AxGGPa0vjSOGwYL0tY9dgqh04D2bd 96jdqjC1/R5ZA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= , Sasha Levin Subject: [PATCH 5.15 093/317] pwm: sti: Fix capture for st,pwm-num-chan < st,capture-num-chan Date: Sun, 24 Mar 2024 19:31:13 -0400 Message-ID: <20240324233458.1352854-94-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable From: Uwe Kleine-K=C3=B6nig [ Upstream commit 5f623835584f1c8d1030666796f40c47a448ce0b ] The driver only used the number of pwm channels to set the pwm_chip's npwm member. The result is that if there are more capture channels than PWM channels specified in the device tree, only a part of the capture channel is usable. Fix that by passing the bigger channel count to the pwm framework. This makes it possible that the .apply() callback is called with .hwpwm >=3D pwm_num_devs, catch that case and return an error code. Fixes: c97267ae831d ("pwm: sti: Add PWM capture callback") Link: https://lore.kernel.org/r/20240204212043.2951852-2-u.kleine-koenig@pe= ngutronix.de Signed-off-by: Uwe Kleine-K=C3=B6nig Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/pwm/pwm-sti.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/drivers/pwm/pwm-sti.c b/drivers/pwm/pwm-sti.c index 652fdb8dc7bfa..0a7920cbd4949 100644 --- a/drivers/pwm/pwm-sti.c +++ b/drivers/pwm/pwm-sti.c @@ -395,8 +395,17 @@ static int sti_pwm_capture(struct pwm_chip *chip, stru= ct pwm_device *pwm, static int sti_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm, const struct pwm_state *state) { + struct sti_pwm_chip *pc =3D to_sti_pwmchip(chip); + struct sti_pwm_compat_data *cdata =3D pc->cdata; + struct device *dev =3D pc->dev; int err; =20 + if (pwm->hwpwm >=3D cdata->pwm_num_devs) { + dev_err(dev, "device %u is not valid for pwm mode\n", + pwm->hwpwm); + return -EINVAL; + } + if (state->polarity !=3D PWM_POLARITY_NORMAL) return -EINVAL; =20 @@ -647,7 +656,7 @@ static int sti_pwm_probe(struct platform_device *pdev) =20 pc->chip.dev =3D dev; pc->chip.ops =3D &sti_pwm_ops; - pc->chip.npwm =3D pc->cdata->pwm_num_devs; + pc->chip.npwm =3D max(cdata->pwm_num_devs, cdata->cpt_num_devs); =20 for (i =3D 0; i < cdata->cpt_num_devs; i++) { struct sti_cpt_ddata *ddata =3D &cdata->ddata[i]; --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 95E06276C4B; Sun, 24 Mar 2024 23:36:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323394; cv=none; b=mbLHGv58VC7qNI+bvL+EGSjy9xHrpAvgfN9oIr5eLeqcy8m3wur8/g19ahXwSoMyhzVeAJC2SEqfageT1O0xHfNWgkgpGvbFZp6ASYfOh+XwVkO5ihjJI/mGR0NRRjeb1azLqflSlhJsRzuaLONEAUpePxmtH7aHbhh7z9faCL0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323394; c=relaxed/simple; bh=X4/j2O3DpjXdIuhLxyiVTcZ6Bcd21yeYa7KusoFZdg8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=DGF9pxc8m8q/omf0l1+dJt+y5VpbtJ2j3LgJ5xlwjWArD0QQM8a+rNUuHJeXVrUWkEkNCDB13UB70tssocSIPD+Aadw7FT2WYydhgPMIgVuMcGd4Xv/faVLk39T9fvrR31lcmu3FjhSol5wykevHBHmJCTBhau6YnrscoGUnSTw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=tbSAGosF; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="tbSAGosF" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D5964C433C7; Sun, 24 Mar 2024 23:36:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323393; bh=X4/j2O3DpjXdIuhLxyiVTcZ6Bcd21yeYa7KusoFZdg8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=tbSAGosFjzubcsJ/uch4omVUMfp8E8nqX552/TUqXFFaZ7CmN3seAiy5lsZcv1cVv NVFkdLEYrS+QEanxYgvAWUIT/erVTE8O7BhrQi1ffK/0J81iuaUb4msWRu3h+G3+i9 7QrHx8OpgdgTPv1hKVCV4sbjTuniXvjJ53bQw1wsKkDWfoNQHOdnrRb6BYtUnoYokP Pnx5eh80FRHPS1jyA+EEfrVH90dtKn9OVdF/MPMX4SAQW52dMS1Bu2twtxTYASTEgm Os0Ntl0wUcADS0Ni7kVP5xmzXUZCD3ouwlIukmRUWdarfE6YK4h2j4I+DFXOeWfxoe MtESvk69oQkhw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Johannes Berg , Miri Korenblit , Sasha Levin Subject: [PATCH 5.15 094/317] wifi: iwlwifi: mvm: don't set replay counters to 0xff Date: Sun, 24 Mar 2024 19:31:14 -0400 Message-ID: <20240324233458.1352854-95-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Johannes Berg [ Upstream commit d5bd4041cd70faf26fc9a54bd6f172537bbe77f3 ] The firmware (later) actually uses the values even for keys that are invalid as far as the host is concerned, later in rekeying, and then only sets the low 48 bits since the PNs are only 48 bits over the air. It does, however, compare the full 64 bits later, obviously causing problems. Remove the memset and use kzalloc instead to avoid any old heap data leaking to the firmware. We already init all the other fields in the struct anyway. This leaves the data set to zero for any unused fields, so the firmware can look at them safely even if they're not used right now. Fixes: 79e561f0f05a ("iwlwifi: mvm: d3: implement RSC command version 5") Signed-off-by: Johannes Berg Signed-off-by: Miri Korenblit Link: https://msgid.link/20240206175739.462101146fef.I10f3855b99417af4247cf= f04af78dcbc6cb75c9c@changeid Signed-off-by: Johannes Berg Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/net/wireless/intel/iwlwifi/mvm/d3.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/d3.c b/drivers/net/wire= less/intel/iwlwifi/mvm/d3.c index 27756e47f7caf..c4c62bcbe67de 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/d3.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/d3.c @@ -462,12 +462,10 @@ static int iwl_mvm_wowlan_config_rsc_tsc(struct iwl_m= vm *mvm, struct wowlan_key_rsc_v5_data data =3D {}; int i; =20 - data.rsc =3D kmalloc(sizeof(*data.rsc), GFP_KERNEL); + data.rsc =3D kzalloc(sizeof(*data.rsc), GFP_KERNEL); if (!data.rsc) return -ENOMEM; =20 - memset(data.rsc, 0xff, sizeof(*data.rsc)); - for (i =3D 0; i < ARRAY_SIZE(data.rsc->mcast_key_id_map); i++) data.rsc->mcast_key_id_map[i] =3D IWL_MCAST_KEY_MAP_INVALID; --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8F872276C50; Sun, 24 Mar 2024 23:36:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323395; cv=none; b=nWf2Kx/KNsRXhnGup4JTrMpC7SBNJ2zo489vcVL5QZf3442CV2CiL3lKqlmGXU8KXnIBaWCgJ2uwAdeGSId6sG1fc5yY1u5faoSmnDZ+DXDfDAQcofhXM1pIMBBO/BUrGRVkDEKr8Swno8qkUB0LBmTtTwGp4f9PoPMZllw2lc0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323395; c=relaxed/simple; bh=Ty54UJkyHxXnxmNG3U9Di3z28hRX9+NIx75utLzM6ws=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=GXxZQ/xF0t1+bCu67upWuUZz1WnsesXUDXFanESiGLliZbpZYgBKzAaGpTKWuEZ9X5um8SCvpqc54jIa9jwhgbmmV4MXht+YzNVPpc8BUmw1Jt6ZQNnCjiKCDuWoBYUu/r77BLXDFjc2YMc66svK37yqfN/BJpOkStznMb1PQ7A= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=XnfQPwSr; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="XnfQPwSr" Received: by smtp.kernel.org (Postfix) with ESMTPSA id BB02FC43399; Sun, 24 Mar 2024 23:36:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323394; bh=Ty54UJkyHxXnxmNG3U9Di3z28hRX9+NIx75utLzM6ws=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=XnfQPwSr1FJTU2S377JBE0o4hypQn3viyLNwivR69kR90H3+6HLvz6FbU7d81fU6T 3tZT2Qz23YrcHDrjm76u+SpUxYltE6KhFmWV1pwqft82sG/Qh7jbVimUlnk9EHWhTK eUGc8gQMyP/Dsi/xWB3Ll+IcFe8m1bNgsjykG6q5UDl0ZG+4ByfR3k0r3HM/kYIQWa kWyfPk7pWcFDbPYIys9bpUtEnINDlVKNpK4PjVZU1Qw8r+hVlOX9fgrMuDUNbGwEYb PDfviYfDcw6fRDQmPxUZVBmRSpE7n9XJiz/w4ipciOOTaulzhIadxh4lEKrBfVWBKE bmHLGbXdIGXhQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Nathan Chancellor , Fangrui Song , Heiko Carstens , Sasha Levin Subject: [PATCH 5.15 095/317] s390/vdso: drop '-fPIC' from LDFLAGS Date: Sun, 24 Mar 2024 19:31:15 -0400 Message-ID: <20240324233458.1352854-96-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Nathan Chancellor [ Upstream commit 0628c03934187be33942580e10bb9afcc61adeed ] '-fPIC' as an option to the linker does not do what it seems like it should. With ld.bfd, it is treated as '-f PIC', which does not make sense based on the meaning of '-f': -f SHLIB, --auxiliary SHLIB Auxiliary filter for shared object symbol tab= le When building with ld.lld (currently under review in a GitHub pull request), it just errors out because '-f' means nothing and neither does '-fPIC': ld.lld: error: unknown argument '-fPIC' '-fPIC' was blindly copied from CFLAGS when the vDSO stopped being linked with '$(CC)', it should not be needed. Remove it to clear up the build failure with ld.lld. Fixes: 2b2a25845d53 ("s390/vdso: Use $(LD) instead of $(CC) to link vDSO") Link: https://github.com/llvm/llvm-project/pull/75643 Signed-off-by: Nathan Chancellor Reviewed-by: Fangrui Song Link: https://lore.kernel.org/r/20240130-s390-vdso-drop-fpic-from-ldflags-v= 1-1-094ad104fc55@kernel.org Signed-off-by: Heiko Carstens Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- arch/s390/kernel/vdso32/Makefile | 2 +- arch/s390/kernel/vdso64/Makefile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/s390/kernel/vdso32/Makefile b/arch/s390/kernel/vdso32/Mak= efile index 245bddfe9bc0e..cc513add48eb5 100644 --- a/arch/s390/kernel/vdso32/Makefile +++ b/arch/s390/kernel/vdso32/Makefile @@ -22,7 +22,7 @@ KBUILD_AFLAGS_32 +=3D -m31 -s KBUILD_CFLAGS_32 :=3D $(filter-out -m64,$(KBUILD_CFLAGS)) KBUILD_CFLAGS_32 +=3D -m31 -fPIC -shared -fno-common -fno-builtin =20 -LDFLAGS_vdso32.so.dbg +=3D -fPIC -shared -soname=3Dlinux-vdso32.so.1 \ +LDFLAGS_vdso32.so.dbg +=3D -shared -soname=3Dlinux-vdso32.so.1 \ --hash-style=3Dboth --build-id=3Dsha1 -melf_s390 -T =20 $(targets:%=3D$(obj)/%.dbg): KBUILD_CFLAGS =3D $(KBUILD_CFLAGS_32) diff --git a/arch/s390/kernel/vdso64/Makefile b/arch/s390/kernel/vdso64/Mak= efile index 1605ba45ac4c0..42d918d50a1ff 100644 --- a/arch/s390/kernel/vdso64/Makefile +++ b/arch/s390/kernel/vdso64/Makefile @@ -26,7 +26,7 @@ KBUILD_AFLAGS_64 +=3D -m64 -s =20 KBUILD_CFLAGS_64 :=3D $(filter-out -m64,$(KBUILD_CFLAGS)) KBUILD_CFLAGS_64 +=3D -m64 -fPIC -fno-common -fno-builtin -ldflags-y :=3D -fPIC -shared -soname=3Dlinux-vdso64.so.1 \ +ldflags-y :=3D -shared -soname=3Dlinux-vdso64.so.1 \ --hash-style=3Dboth --build-id=3Dsha1 -T =20 $(targets:%=3D$(obj)/%.dbg): KBUILD_CFLAGS =3D $(KBUILD_CFLAGS_64) --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B2F4C276C52; Sun, 24 Mar 2024 23:36:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323395; cv=none; b=OddUsV1bHiJvVTXwkHUSQxRmJRMeaEIXXDNUc+09J4ksZfLg+ZPpHcJoRwFb26NS7KUMD9xIQ4zjJ4qhfAq1x/GYDhy7c5YL2/2G+yFMIo5vTLLzaxVBD8EV4zw05hBEnuVi1uftIDV+2q5DQQwh7As8VOQmPvZkOPldRJdBTaQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323395; c=relaxed/simple; bh=zWlzrrm/5wQhSozp+1bHo/83+epwrXZElVWrst8o21k=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=cQnh+YOgMH6ec0Lx9PI7mc3c0O8mVppaO/5rQfjXjHpQAHXsg0rolXdZMEZrScycdl0E6TP8jpVGg5d4S3fIEtBX1SNI3LFb8PQFwxoZ0YzuRX3hJ4WNkykwRQ+rvxHPEYtgSRO0wpZqkDvFcGrMG4/sTOu0yZjqG2Y9RzkJ3hM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=d6D15jeP; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="d6D15jeP" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B3A98C433F1; Sun, 24 Mar 2024 23:36:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323395; bh=zWlzrrm/5wQhSozp+1bHo/83+epwrXZElVWrst8o21k=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=d6D15jePQjHcjKyHOqEK9QdipMOL0uYc8UBeHY6GACXglxvJv02XDephX7eZ7yfyD FMX2tQqbGVm90Q3XUWfBSCpG6z+1/KwZg+eiH8Jum09x3lfaLaZIfHixA3W/xqzVD2 3KgMceYiiS2s0eEqqAoROM6vWAwDln58lu4lV1XropV+VhFulFg/rDItxVegqHmjVb gQhmNkUp3OFhCwus8HL0mxcjo4kg78LHymXOMMHrXkRXhFtlQ+LnjTIoJnEeocEQGE ISitSVrME6zS+SDbZA/jz+xSZBouT5hvBEVHcDVD/9VAvt0tVWp5dWLJTHemc3V2Mi tQE4aaxmp+95g== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Eric Dumazet , Taehee Yoo , Cong Wang , David Ahern , "David S . Miller" , Sasha Levin Subject: [PATCH 5.15 096/317] ipv6: mcast: remove one synchronize_net() barrier in ipv6_mc_down() Date: Sun, 24 Mar 2024 19:31:16 -0400 Message-ID: <20240324233458.1352854-97-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Eric Dumazet [ Upstream commit 17ef8efc00b34918b966388b2af0993811895a8c ] As discussed in the past (commit 2d3916f31891 ("ipv6: fix skb drops in igmp6_event_query() and igmp6_event_report()")) I think the synchronize_net() call in ipv6_mc_down() is not needed. Under load, synchronize_net() can last between 200 usec and 5 ms. KASAN seems to agree as well. Fixes: f185de28d9ae ("mld: add new workqueues for process mld events") Signed-off-by: Eric Dumazet Cc: Taehee Yoo Cc: Cong Wang Cc: David Ahern Signed-off-by: David S. Miller Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- net/ipv6/mcast.c | 1 - 1 file changed, 1 deletion(-) diff --git a/net/ipv6/mcast.c b/net/ipv6/mcast.c index 0ea7d97cdc025..6e5d1ade48a89 100644 --- a/net/ipv6/mcast.c +++ b/net/ipv6/mcast.c @@ -2722,7 +2722,6 @@ void ipv6_mc_down(struct inet6_dev *idev) /* Should stop work after group drop. or we will * start work again in mld_ifc_event() */ - synchronize_net(); mld_query_stop_work(idev); mld_report_stop_work(idev); =20 --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C87BC276C59; Sun, 24 Mar 2024 23:36:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323396; cv=none; b=qsgtNwxlvowf4pje7X2WaKHvOEah/6ZIM3COubokKDUNLvbkMz4OKk6DbGxkrikejf4pxsafGN4Z/160Imf9tA26D+KeITUW1EuZTEOA9n17Whxjq6pr95LAV/CDZZPmbt7J10D0flxgV49nwW1cKEDakdIlqA/BNPsBskfWygM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323396; c=relaxed/simple; bh=dd4KnlxxisDWdlAEjMRav2AocqQbAWoZBZFicLAtksc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=sliKImKGLzrVJx5AtdYiiXdrjAOuRX2MWsXhQst4rpS8KZYV6EIGgumoOZaZ8HDb7Rb73MxtY2JEhfaXUs+GyvXXLmb9rakdu0d+lL0l4USkA7XoZecAtTktahQ/+j/7PhJu+zaLFjBeUcvNSaU7f0zveMNEKWbJxKG/96G+hzU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=sbxlGip/; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="sbxlGip/" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D9F69C433C7; Sun, 24 Mar 2024 23:36:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323396; bh=dd4KnlxxisDWdlAEjMRav2AocqQbAWoZBZFicLAtksc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=sbxlGip/27MEpsNNgExaGUGWqpyfcWYIiWHQ0Ula5QmQwdaEBM4Ql91B9ppz7OORO SZbJVQKAtzWPh9mr1GoTRvY1a5h6n0Z/YLiFHOuu12w+pLWN0JUeaQQukEDfN9qdza CGIMMz8ZcpOzjyZGpkyBxnewdFU8ef2g2v8F2gmYUQlGSPufhFlYZOaC5owrFcLS4m nkdg22z9fkTtbSX7981MhOWN0SzaVs73sRkOgF6V1edSifP46pZeoDLHgPZgjcTD0g eHmSU5bGS+WAb7XjrlSzIt8C01FwqixBDE4N2xLCT59OEXom0sY/Mvldk0+o7Xd0Xe UBBOGzeKJXRBw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Prashant Malani , Alexandru M Stan , Benson Leung , Matthias Brugger , Sasha Levin Subject: [PATCH 5.15 097/317] arm64: dts: mt8183: kukui: Add Type C node Date: Sun, 24 Mar 2024 19:31:17 -0400 Message-ID: <20240324233458.1352854-98-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Prashant Malani [ Upstream commit fd31f778da81fec188f3ac8e03da4338642a8f08 ] Add a node describing the USB Type C connector, in order to utilize the Chromium OS USB Type-C driver that enumerates Type-C ports and connected cables/peripherals and makes them visible to userspace. Cc: Alexandru M Stan Cc: Benson Leung Signed-off-by: Prashant Malani Reviewed-by: Alexandru M Stan Reviewed-by: Benson Leung Link: https://lore.kernel.org/r/20211209195112.366176-1-pmalani@chromium.org Signed-off-by: Matthias Brugger Stable-dep-of: 04bd6411f506 ("arm64: dts: mt8183: Move CrosEC base detectio= n node to kukui-based DTs") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi b/arch/arm64/bo= ot/dts/mediatek/mt8183-kukui.dtsi index 6b7a42c5d5153..30a84d888c66c 100644 --- a/arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi +++ b/arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi @@ -831,6 +831,20 @@ usbc_extcon: extcon0 { cbas { compatible =3D "google,cros-cbas"; }; + + typec { + compatible =3D "google,cros-ec-typec"; + #address-cells =3D <1>; + #size-cells =3D <0>; + + usb_c0: connector@0 { + compatible =3D "usb-c-connector"; + reg =3D <0>; + power-role =3D "dual"; + data-role =3D "host"; + try-power-role =3D "sink"; + }; + }; }; }; =20 --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AB831276C5C; Sun, 24 Mar 2024 23:36:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323397; cv=none; b=KrzmcuVcUQqwUbfW9Hf3SUc3V36CvyadvtPfRPQOhtiSsO5XFPwZ1CW4uMl71kE/5Yo8eC9s8a+0Ash9qKXCeMW4vk4l1TmAQHnDqDFBDrT2LqF7uoh6zsKj/gfTmUf/7yGbb5kFdG9Zjc8cLPfIqSP4LwnUSUJq3+KjHvBZIcs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323397; c=relaxed/simple; bh=40LNW5mkr+cn5yL6VNJJ3x2qDezR6Sa5tciUR0reDR8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Y4ELbbFNfwPv3sfJgWY9NjGpqCVnQU1C8wP0E+/CbLFl+fkHK48i06AGRMs75H/qlipvlM1Ry07OjKBVzpGy8a46JcC4QykU1ZLevfR3NjLenVszpWW5kaQN0xJHVBX250L7PWgQLFAAR5JaOvOnLk/d+5oV/mzvBBvwoETQ0Sw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=sKpotazP; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="sKpotazP" Received: by smtp.kernel.org (Postfix) with ESMTPSA id EC41AC433F1; Sun, 24 Mar 2024 23:36:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323397; bh=40LNW5mkr+cn5yL6VNJJ3x2qDezR6Sa5tciUR0reDR8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=sKpotazP5jyuxBWWmkDY9iwGemJabC9Vv9rhxyDcxWzWHlrChjUM2rFC14J7/XmNo guWnwGijQmZmDfqpvajwDRBgEtPIsqeEsBCzDxL6fGoNcqET2F91a3YNZSwkKiN0z6 WCrjrkbURtj1zzoEAuuK+5P3/VGSipZAi9oQcAkLmNFohTxZbCWJChUW5W2phjz+M0 WFWpVABFmtehm1KmfcXZpaa3dQ4roNJZ2WE0ID65CtD5hg8oX7+5iwTKwhzzBKemPe O1XIV+p5Fxu1UR3EX0Tto1SKPpW/3DkH3YQ2BKBROpOvpRs6X0Icb8/GgAL63EQqfD Aw1lpJU/fYutQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Hsin-Yi Wang , Matthias Brugger , Sasha Levin Subject: [PATCH 5.15 098/317] arm64: dts: mt8183: kukui: Split out keyboard node and describe detachables Date: Sun, 24 Mar 2024 19:31:18 -0400 Message-ID: <20240324233458.1352854-99-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Hsin-Yi Wang [ Upstream commit 82492c4ef8f65f93cd4a35c4b52518935acbb2fa ] Kukui devices krane, kodana, and kakadu use detachable keyboards, which only have switches to be registered. Change the keyboard node's compatible of those boards to the newly introduced "google,cros-ec-keyb-switches", which won't include matrix properties. Signed-off-by: Hsin-Yi Wang Link: https://lore.kernel.org/r/20220527045353.2483042-1-hsinyi@chromium.org Signed-off-by: Matthias Brugger Stable-dep-of: 04bd6411f506 ("arm64: dts: mt8183: Move CrosEC base detectio= n node to kukui-based DTs") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi.dtsi | 2 ++ arch/arm64/boot/dts/mediatek/mt8183-kukui-kakadu.dtsi | 6 ++++++ arch/arm64/boot/dts/mediatek/mt8183-kukui-kodama.dtsi | 6 ++++++ arch/arm64/boot/dts/mediatek/mt8183-kukui-krane.dtsi | 6 ++++++ arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi | 1 - 5 files changed, 20 insertions(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi.dtsi b/arch/= arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi.dtsi index c1153580ef958..88fca67dead01 100644 --- a/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi.dtsi +++ b/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi.dtsi @@ -4,6 +4,8 @@ */ =20 #include "mt8183-kukui.dtsi" +/* Must come after mt8183-kukui.dtsi to modify cros_ec */ +#include =20 / { panel: panel { diff --git a/arch/arm64/boot/dts/mediatek/mt8183-kukui-kakadu.dtsi b/arch/a= rm64/boot/dts/mediatek/mt8183-kukui-kakadu.dtsi index 28966a65391b0..4b419623c8dcc 100644 --- a/arch/arm64/boot/dts/mediatek/mt8183-kukui-kakadu.dtsi +++ b/arch/arm64/boot/dts/mediatek/mt8183-kukui-kakadu.dtsi @@ -372,6 +372,12 @@ pen_eject { }; }; =20 +&cros_ec { + keyboard-controller { + compatible =3D "google,cros-ec-keyb-switches"; + }; +}; + &qca_wifi { qcom,ath10k-calibration-variant =3D "GO_KAKADU"; }; diff --git a/arch/arm64/boot/dts/mediatek/mt8183-kukui-kodama.dtsi b/arch/a= rm64/boot/dts/mediatek/mt8183-kukui-kodama.dtsi index 3aa79403c0c2c..e6e017260693c 100644 --- a/arch/arm64/boot/dts/mediatek/mt8183-kukui-kodama.dtsi +++ b/arch/arm64/boot/dts/mediatek/mt8183-kukui-kodama.dtsi @@ -338,6 +338,12 @@ touch_pin_reset: pin_reset { }; }; =20 +&cros_ec { + keyboard-controller { + compatible =3D "google,cros-ec-keyb-switches"; + }; +}; + &qca_wifi { qcom,ath10k-calibration-variant =3D "GO_KODAMA"; }; diff --git a/arch/arm64/boot/dts/mediatek/mt8183-kukui-krane.dtsi b/arch/ar= m64/boot/dts/mediatek/mt8183-kukui-krane.dtsi index 30c183c96a54c..51bb2c23712c4 100644 --- a/arch/arm64/boot/dts/mediatek/mt8183-kukui-krane.dtsi +++ b/arch/arm64/boot/dts/mediatek/mt8183-kukui-krane.dtsi @@ -342,6 +342,12 @@ rst_pin { }; }; =20 +&cros_ec { + keyboard-controller { + compatible =3D "google,cros-ec-keyb-switches"; + }; +}; + &qca_wifi { qcom,ath10k-calibration-variant =3D "LE_Krane"; }; diff --git a/arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi b/arch/arm64/bo= ot/dts/mediatek/mt8183-kukui.dtsi index 30a84d888c66c..f70f0f43aa52b 100644 --- a/arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi +++ b/arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi @@ -931,5 +931,4 @@ hub@1 { }; }; =20 -#include #include --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B3A9E276C69; Sun, 24 Mar 2024 23:36:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323399; cv=none; b=Bncyjmzir+YZFfx1e+jpCxwg9LG8vYQ6u5G+W48ag6qz6OiTFRyAMbdHqE20m6sPUHdT8MZj6POV/ENdQsiOurTz6lWQWCH4iBsSJQaKHwWy1v5yNliEWs1qgIXfjBDrfbGI3tOFt/zXN3gHfvLdPecb/5E5f7gAllFkZ6EVxdw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323399; c=relaxed/simple; bh=76QRHA/+FnKmTG2/ioWBslV02WDzArgzzmcyRPl2P0s=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=EEF3MhRZbnExcmmm3+tkArT4hOyEu11nJm+SWqYINyDJMtecZ3yW8qDuMdQviFjqDX6OgdoIuGxyQ0g48E+Bf3FDdA3luHU9wIMnUVBlGN08yjhG6UXFukSL8muRZnIP+bv9kODjxdkopiiSVfNxc6sULo6xUxa7rUzJ1neq4zo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=GMwyZlr8; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="GMwyZlr8" Received: by smtp.kernel.org (Postfix) with ESMTPSA id DB662C43390; Sun, 24 Mar 2024 23:36:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323398; bh=76QRHA/+FnKmTG2/ioWBslV02WDzArgzzmcyRPl2P0s=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=GMwyZlr8mjeaa57mNCZ4wWHl67HIaUTnx5PRslly5p4jjkH4Plahb4bDjxSPZN3X8 1jhqMqgsfxztpJaNMv/UzaWIceLUb+fv0Kw6im1EmUz5uwnbPRDHOaD2CGMQpSGdDR uAWMSSsXQxawcwLRGn3Y5vhyPuywbMnjEl6qrxPrhXdovNc8WWm2elSNimF2MuXzuF 0FSFvIk0PseJWSoCGQZEoDZKzyEscPIOJR1da34WMRZboRHcetxFB7O4uGYE5hKmyG UCJC/W1/lTmOWO5JuYMEykM5pUS7Gn5juKv88seMfoJuS4lWzRUHaAwOmcWXnQrIQh DnS6xjY7BorGw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?N=C3=ADcolas=20F=2E=20R=2E=20A=2E=20Prado?= , AngeloGioacchino Del Regno , Matthias Brugger , Sasha Levin Subject: [PATCH 5.15 099/317] arm64: dts: mt8183: Move CrosEC base detection node to kukui-based DTs Date: Sun, 24 Mar 2024 19:31:19 -0400 Message-ID: <20240324233458.1352854-100-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable From: N=C3=ADcolas F. R. A. Prado [ Upstream commit 04bd6411f506357fd1faedc2b2156e7ef206aa9a ] The cbas node is used to describe base detection functionality in the ChromeOS EC, which is used for units that have a detachable keyboard and thus rely on this functionality to switch between tablet and laptop mode. Despite the original commit having added the cbas node to the mt8183-kukui.dtsi, not all machines that include it are detachables. In fact all machines that include from mt8183-kukui-jacuzzi.dtsi are either clamshells (ie normal laptops) or convertibles, meaning the keyboard can be flipped but not detached. The detection for the keyboard getting flipped is handled by the driver bound to the keyboard-controller node in the EC. Move the base detection node from the base kukui dtsi to the dtsis where all machines are detachables, and thus actually make use of the node. Fixes: 4fa8492d1e5b ("arm64: dts: mt8183: add cbas node under cros_ec") Signed-off-by: N=C3=ADcolas F. R. A. Prado Reviewed-by: AngeloGioacchino Del Regno Link: https://lore.kernel.org/r/20240116-mt8183-kukui-cbas-remove-v3-1-055e= 21406e86@collabora.com Signed-off-by: Matthias Brugger Signed-off-by: AngeloGioacchino Del Regno Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- arch/arm64/boot/dts/mediatek/mt8183-kukui-kakadu.dtsi | 4 ++++ arch/arm64/boot/dts/mediatek/mt8183-kukui-kodama.dtsi | 4 ++++ arch/arm64/boot/dts/mediatek/mt8183-kukui-krane.dtsi | 4 ++++ arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi | 4 ---- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/arch/arm64/boot/dts/mediatek/mt8183-kukui-kakadu.dtsi b/arch/a= rm64/boot/dts/mediatek/mt8183-kukui-kakadu.dtsi index 4b419623c8dcc..fa90708956945 100644 --- a/arch/arm64/boot/dts/mediatek/mt8183-kukui-kakadu.dtsi +++ b/arch/arm64/boot/dts/mediatek/mt8183-kukui-kakadu.dtsi @@ -373,6 +373,10 @@ pen_eject { }; =20 &cros_ec { + cbas { + compatible =3D "google,cros-cbas"; + }; + keyboard-controller { compatible =3D "google,cros-ec-keyb-switches"; }; diff --git a/arch/arm64/boot/dts/mediatek/mt8183-kukui-kodama.dtsi b/arch/a= rm64/boot/dts/mediatek/mt8183-kukui-kodama.dtsi index e6e017260693c..03724c80c0804 100644 --- a/arch/arm64/boot/dts/mediatek/mt8183-kukui-kodama.dtsi +++ b/arch/arm64/boot/dts/mediatek/mt8183-kukui-kodama.dtsi @@ -339,6 +339,10 @@ touch_pin_reset: pin_reset { }; =20 &cros_ec { + cbas { + compatible =3D "google,cros-cbas"; + }; + keyboard-controller { compatible =3D "google,cros-ec-keyb-switches"; }; diff --git a/arch/arm64/boot/dts/mediatek/mt8183-kukui-krane.dtsi b/arch/ar= m64/boot/dts/mediatek/mt8183-kukui-krane.dtsi index 51bb2c23712c4..be0ac786bcbc9 100644 --- a/arch/arm64/boot/dts/mediatek/mt8183-kukui-krane.dtsi +++ b/arch/arm64/boot/dts/mediatek/mt8183-kukui-krane.dtsi @@ -343,6 +343,10 @@ rst_pin { }; =20 &cros_ec { + cbas { + compatible =3D "google,cros-cbas"; + }; + keyboard-controller { compatible =3D "google,cros-ec-keyb-switches"; }; diff --git a/arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi b/arch/arm64/bo= ot/dts/mediatek/mt8183-kukui.dtsi index f70f0f43aa52b..22a1c66325c29 100644 --- a/arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi +++ b/arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi @@ -828,10 +828,6 @@ usbc_extcon: extcon0 { google,usb-port-id =3D <0>; }; =20 - cbas { - compatible =3D "google,cros-cbas"; - }; - typec { compatible =3D "google,cros-ec-typec"; #address-cells =3D <1>; --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CA70D276C63; Sun, 24 Mar 2024 23:36:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323400; cv=none; b=E07HFcgWnapgm2kfhN50j8LnekFja0FusEY+EMGeuOQlE4cfkazRrTNEZP+Ps5yvK2GXbgVvG+JVwQn0CT93c5E/7n/wBfbjfQtoLN+NCWV454KqOPqfn5UyYCLqO1mACdYZlQfBMjeKFIvPbuTGSqeSUa/rQRkq1Wrk5zubtu8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323400; c=relaxed/simple; bh=kqFJ8GGFE1QaFK5hp69g3hvjiTT4Uo8QimzB2zV/zPU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=YI1gZVEq4kpDOuoBLH8X50b+4/7mt+nYrBGa8EXwkxX0q7sFro0tLieKsTQ0/J1HNueHyta4GEhLlO0bI16l12TZhvTsbFDo0JBfUeTdC8IzVdjA2b7L4JrXs+EwDr9j+5B5pUNcYf7VVF5Fl8qf1R5ruvrj8IM3b+/jqDYhnJQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=DxvqdB3b; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="DxvqdB3b" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D5AD3C433F1; Sun, 24 Mar 2024 23:36:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323399; bh=kqFJ8GGFE1QaFK5hp69g3hvjiTT4Uo8QimzB2zV/zPU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=DxvqdB3b+BNDM5KsvqY7+1RqLPimOxbRPAq6hgATkq2YSb0Ju9W5l40CvBmRmWA6D UH0xfzwVs3q4jePzTOqWwZ7haDS53nxmY2sadTDQ0Q8GSqhA+Y5HXTyYUO/cCmlQac iO/SmYmXGG5yzDulfYN7p/GDL99v3jC9QEzytD1vdEk3JhLSwdivB7QhHxweXqqbf4 ktepzE+LpBeHq4bKLVuU1h5bGY5JzP9TESLbeK1jc1AnY0F0SOFv+9Xx34EKPPBrtv NUGHF9lKiFp9emSuMSOV9OIeSOOpTRKbXxK49mhnsv8Aq6etwChP6f33bAv/xSlnQl f5HPyctoqk02g== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= , Matthias Brugger , AngeloGioacchino Del Regno , Sasha Levin Subject: [PATCH 5.15 100/317] arm64: dts: mediatek: mt7622: add missing "device_type" to memory nodes Date: Sun, 24 Mar 2024 19:31:20 -0400 Message-ID: <20240324233458.1352854-101-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable From: Rafa=C5=82 Mi=C5=82ecki [ Upstream commit 99d100e00144bc01b49a697f4bc4398f2f7e7ce4 ] This fixes: arch/arm64/boot/dts/mediatek/mt7622-rfb1.dtb: /: memory@40000000: 'device_t= ype' is a required property from schema $id: http://devicetree.org/schemas/memory.yaml# arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dtb: /: memory@4000000= 0: 'device_type' is a required property from schema $id: http://devicetree.org/schemas/memory.yaml# Signed-off-by: Rafa=C5=82 Mi=C5=82ecki Reviewed-by: Matthias Brugger Reviewed-by: AngeloGioacchino Del Regno Link: https://lore.kernel.org/r/20240122132357.31264-1-zajec5@gmail.com Signed-off-by: AngeloGioacchino Del Regno Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts | 1 + arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts | 1 + 2 files changed, 2 insertions(+) diff --git a/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts b/arc= h/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts index cdbd70bf5dd9b..483f7ab4f31c7 100644 --- a/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts +++ b/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts @@ -71,6 +71,7 @@ red { =20 memory@40000000 { reg =3D <0 0x40000000 0 0x40000000>; + device_type =3D "memory"; }; =20 reg_1p8v: regulator-1p8v { diff --git a/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts b/arch/arm64/boot= /dts/mediatek/mt7622-rfb1.dts index ee454a26b4597..28e17a7e2a5a6 100644 --- a/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts +++ b/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts @@ -57,6 +57,7 @@ wps { =20 memory@40000000 { reg =3D <0 0x40000000 0 0x20000000>; + device_type =3D "memory"; }; =20 reg_1p8v: regulator-1p8v { --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0D281276C79; Sun, 24 Mar 2024 23:36:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323402; cv=none; b=Hc3L0HI3V6JDrClb6YT9Xe5GWVOq3Lk6V0Cc25oqbN+h6V4viznQGXyANbRN1AYrcwcuCOyGbb/L+mmFbrRXumKp6Tdo3Pgma/kHx2FGItur1c2wGU9n9ucTlIOzlD0p2bKa4eAbqTZgrmR1BAwgSl/PHL8Lge2KHB8UUAw9qt8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323402; c=relaxed/simple; bh=ueJxxuDDS5RyfmB1J6RBeB1mLBEIfmefQSW9qTK6gJg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=WRQkLzdr6qiQjWhfzMDEXsbmPUq91zLwZO3XvLgpKcLhh5jYiY19FoBwimnnrdToRMeE4Tj5s/pnlssMi7s8NrQSndHwejdt6NNYN/TJLE2GBCb1ZHa8aCqL0iZSAZJfIoFPYkIwGBQ+xTGugdoYVO6EUCcgXhVxdRSlbwh1aPk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ObuSZMjB; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ObuSZMjB" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D7320C43390; Sun, 24 Mar 2024 23:36:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323400; bh=ueJxxuDDS5RyfmB1J6RBeB1mLBEIfmefQSW9qTK6gJg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ObuSZMjBGfhP2UjiYgo6nxbxzpHHMAKx4ifB1x/Xw5fp7ydYq8Z7v5QnCGyKtULkW W3guJWy1kxwcT48DFnvjKxl0GNiKHhFoqg88lTz5ceizEKVsQFnUCB5yeycs7FkgpZ WQreoYLdpLVAXmthOyqVCqk/HqZhbnor00wt3CfJIXaJM/cBzProlNZyYe+U0xbRsD Y03cum91kwKy1O9DFSpLqMRIm2CJU6na0ezvjGVXRU//DJIJzoVjlMHC36t2U+gutY 6eTTElxsKVj9WYm5yPoCqOwYyI+kKeOFVa+jvtddCcTOEZYs92vZbvp71ykskNBIPh +AtBEZf5WOljQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Yonghong Song , Andrii Nakryiko , Jiri Olsa , Sasha Levin Subject: [PATCH 5.15 101/317] bpf: Mark bpf_spin_{lock,unlock}() helpers with notrace correctly Date: Sun, 24 Mar 2024 19:31:21 -0400 Message-ID: <20240324233458.1352854-102-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Yonghong Song [ Upstream commit 178c54666f9c4d2f49f2ea661d0c11b52f0ed190 ] Currently tracing is supposed not to allow for bpf_spin_{lock,unlock}() helper calls. This is to prevent deadlock for the following cases: - there is a prog (prog-A) calling bpf_spin_{lock,unlock}(). - there is a tracing program (prog-B), e.g., fentry, attached to bpf_spin_lock() and/or bpf_spin_unlock(). - prog-B calls bpf_spin_{lock,unlock}(). For such a case, when prog-A calls bpf_spin_{lock,unlock}(), a deadlock will happen. The related source codes are below in kernel/bpf/helpers.c: notrace BPF_CALL_1(bpf_spin_lock, struct bpf_spin_lock *, lock) notrace BPF_CALL_1(bpf_spin_unlock, struct bpf_spin_lock *, lock) notrace is supposed to prevent fentry prog from attaching to bpf_spin_{lock,unlock}(). But actually this is not the case and fentry prog can successfully attached to bpf_spin_lock(). Siddharth Chintamaneni reported the issue in [1]. The following is the macro definition for above BPF_CALL_1: #define BPF_CALL_x(x, name, ...) = \ static __always_inline = \ u64 ____##name(__BPF_MAP(x, __BPF_DECL_ARGS, __BPF_V, __VA_ARGS__))= ; \ typedef u64 (*btf_##name)(__BPF_MAP(x, __BPF_DECL_ARGS, __BPF_V, __= VA_ARGS__)); \ u64 name(__BPF_REG(x, __BPF_DECL_REGS, __BPF_N, __VA_ARGS__)); = \ u64 name(__BPF_REG(x, __BPF_DECL_REGS, __BPF_N, __VA_ARGS__)) = \ { = \ return ((btf_##name)____##name)(__BPF_MAP(x,__BPF_CAST,__BP= F_N,__VA_ARGS__));\ } = \ static __always_inline = \ u64 ____##name(__BPF_MAP(x, __BPF_DECL_ARGS, __BPF_V, __VA_ARGS__)) #define BPF_CALL_1(name, ...) BPF_CALL_x(1, name, __VA_ARGS__) The notrace attribute is actually applied to the static always_inline funct= ion ____bpf_spin_{lock,unlock}(). The actual callback function bpf_spin_{lock,unlock}() is not marked with notrace, hence allowing fentry prog to attach to two helpers, and this may cause the above mentioned deadlock. Siddharth Chintamaneni actually has a reproducer in [2]. To fix the issue, a new macro NOTRACE_BPF_CALL_1 is introduced which will add notrace attribute to the original function instead of the hidden always_inline function and this fixed the problem. [1] https://lore.kernel.org/bpf/CAE5sdEigPnoGrzN8WU7Tx-h-iFuMZgW06qp0KHWt= pvoXxf1OAQ@mail.gmail.com/ [2] https://lore.kernel.org/bpf/CAE5sdEg6yUc_Jz50AnUXEEUh6O73yQ1Z6NV2srJn= ef0ZrQkZew@mail.gmail.com/ Fixes: d83525ca62cf ("bpf: introduce bpf_spin_lock") Signed-off-by: Yonghong Song Signed-off-by: Andrii Nakryiko Acked-by: Jiri Olsa Link: https://lore.kernel.org/bpf/20240207070102.335167-1-yonghong.song@lin= ux.dev Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- include/linux/filter.h | 21 ++++++++++++--------- kernel/bpf/helpers.c | 4 ++-- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/include/linux/filter.h b/include/linux/filter.h index a9956b681f090..2b6da8e356aab 100644 --- a/include/linux/filter.h +++ b/include/linux/filter.h @@ -496,24 +496,27 @@ static inline bool insn_is_zext(const struct bpf_insn= *insn) __BPF_MAP(n, __BPF_DECL_ARGS, __BPF_N, u64, __ur_1, u64, __ur_2, \ u64, __ur_3, u64, __ur_4, u64, __ur_5) =20 -#define BPF_CALL_x(x, name, ...) \ +#define BPF_CALL_x(x, attr, name, ...) \ static __always_inline \ u64 ____##name(__BPF_MAP(x, __BPF_DECL_ARGS, __BPF_V, __VA_ARGS__)); \ typedef u64 (*btf_##name)(__BPF_MAP(x, __BPF_DECL_ARGS, __BPF_V, __VA_ARG= S__)); \ - u64 name(__BPF_REG(x, __BPF_DECL_REGS, __BPF_N, __VA_ARGS__)); \ - u64 name(__BPF_REG(x, __BPF_DECL_REGS, __BPF_N, __VA_ARGS__)) \ + attr u64 name(__BPF_REG(x, __BPF_DECL_REGS, __BPF_N, __VA_ARGS__)); \ + attr u64 name(__BPF_REG(x, __BPF_DECL_REGS, __BPF_N, __VA_ARGS__)) \ { \ return ((btf_##name)____##name)(__BPF_MAP(x,__BPF_CAST,__BPF_N,__VA_ARGS= __));\ } \ static __always_inline \ u64 ____##name(__BPF_MAP(x, __BPF_DECL_ARGS, __BPF_V, __VA_ARGS__)) =20 -#define BPF_CALL_0(name, ...) BPF_CALL_x(0, name, __VA_ARGS__) -#define BPF_CALL_1(name, ...) BPF_CALL_x(1, name, __VA_ARGS__) -#define BPF_CALL_2(name, ...) BPF_CALL_x(2, name, __VA_ARGS__) -#define BPF_CALL_3(name, ...) BPF_CALL_x(3, name, __VA_ARGS__) -#define BPF_CALL_4(name, ...) BPF_CALL_x(4, name, __VA_ARGS__) -#define BPF_CALL_5(name, ...) BPF_CALL_x(5, name, __VA_ARGS__) +#define __NOATTR +#define BPF_CALL_0(name, ...) BPF_CALL_x(0, __NOATTR, name, __VA_ARGS__) +#define BPF_CALL_1(name, ...) BPF_CALL_x(1, __NOATTR, name, __VA_ARGS__) +#define BPF_CALL_2(name, ...) BPF_CALL_x(2, __NOATTR, name, __VA_ARGS__) +#define BPF_CALL_3(name, ...) BPF_CALL_x(3, __NOATTR, name, __VA_ARGS__) +#define BPF_CALL_4(name, ...) BPF_CALL_x(4, __NOATTR, name, __VA_ARGS__) +#define BPF_CALL_5(name, ...) BPF_CALL_x(5, __NOATTR, name, __VA_ARGS__) + +#define NOTRACE_BPF_CALL_1(name, ...) BPF_CALL_x(1, notrace, name, __VA_AR= GS__) =20 #define bpf_ctx_range(TYPE, MEMBER) \ offsetof(TYPE, MEMBER) ... offsetofend(TYPE, MEMBER) - 1 diff --git a/kernel/bpf/helpers.c b/kernel/bpf/helpers.c index 870127c895c49..273f2f0deb239 100644 --- a/kernel/bpf/helpers.c +++ b/kernel/bpf/helpers.c @@ -298,7 +298,7 @@ static inline void __bpf_spin_lock_irqsave(struct bpf_s= pin_lock *lock) __this_cpu_write(irqsave_flags, flags); } =20 -notrace BPF_CALL_1(bpf_spin_lock, struct bpf_spin_lock *, lock) +NOTRACE_BPF_CALL_1(bpf_spin_lock, struct bpf_spin_lock *, lock) { __bpf_spin_lock_irqsave(lock); return 0; @@ -320,7 +320,7 @@ static inline void __bpf_spin_unlock_irqrestore(struct = bpf_spin_lock *lock) local_irq_restore(flags); } =20 -notrace BPF_CALL_1(bpf_spin_unlock, struct bpf_spin_lock *, lock) +NOTRACE_BPF_CALL_1(bpf_spin_unlock, struct bpf_spin_lock *, lock) { __bpf_spin_unlock_irqrestore(lock); return 0; --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 99C89276C7F; Sun, 24 Mar 2024 23:36:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323402; cv=none; b=V42S4jO07gJ0VLQTtCd9f3G61kN/FieAmBCfOqYTLPgCA/bWSuc2jPO9CJJsMq9vLyDqpkelaC+6w1X9ruZbrF4hU+wIS/rUkkttVcRuxgxD/pN0VB3L3LvohYTbQaAmqRGn0xSHRyp48gx30reCbdQ3yQay8bsnPgI8NHS3UtM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323402; c=relaxed/simple; bh=Fj4RZVYN42SS7tkI0d9ziQCF24UjPm7Cxt1hwEcWJlE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=GtYekrsXJgVi7OD4Fg1Fq1Dj8HGs4CAhPYJgmawXIi8PeiJbsqj81+PPa5BHa0/TB0dkWfBnGGpwlMQ2/2o2vkrpAA1p33mYPFPn2pl/SJzxdi/rTlRzfB/kGtKATve/QYN2hrm8lNmFsWtXPEx8ifUq9FM3a61QHy04h/BKPfM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ORwZ98Ca; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ORwZ98Ca" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D737FC433C7; Sun, 24 Mar 2024 23:36:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323401; bh=Fj4RZVYN42SS7tkI0d9ziQCF24UjPm7Cxt1hwEcWJlE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ORwZ98Ca3VrjT7MCFyMe1X7RVI2YSQzIQGiyfDa2nt1oQvrG8U+lI53G1fmgIORuG R6r6PC9I01vPXR4PvgITnH1Krqn/DRkAy/68xHXWx7HjpAyPBolV7WsXtEXorMfD1h cpggdyvlVD08C+pgduoaCZek8Gf23Mxp+0Np+f5LnadBc5gF0eOXRTJ7543duwhR2M EsJ6azz5J1V3PiIV3iLgXhTF0vkSFdwRJkYn62kJQOr/lU8BAOLJew+PKlCuxAgjDs y2OSYk6KI9LDxH7tIEwxZUZi1FXGspPbOcLAMloV+NSJt6Jnh6tG4NPXaj5xD9VG9n UfcWbw/YvXiSQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Christophe JAILLET , Kalle Valo , Sasha Levin Subject: [PATCH 5.15 102/317] wireless: Remove redundant 'flush_workqueue()' calls Date: Sun, 24 Mar 2024 19:31:22 -0400 Message-ID: <20240324233458.1352854-103-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Christophe JAILLET [ Upstream commit ff1cc2fa3055ee4c83839f38b74b4ee370a2291c ] 'destroy_workqueue()' already drains the queue before destroying it, so there is no need to flush it explicitly. Remove the redundant 'flush_workqueue()' calls. This was generated with coccinelle: @@ expression E; @@ - flush_workqueue(E); destroy_workqueue(E); Signed-off-by: Christophe JAILLET Signed-off-by: Kalle Valo Link: https://lore.kernel.org/r/0855d51423578ad019c0264dad3fe47a2e8af9c7.16= 33849511.git.christophe.jaillet@wanadoo.fr Stable-dep-of: cb5942b77c05 ("wifi: wilc1000: prevent use-after-free on vif= when cleaning up all interfaces") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/net/wireless/ath/ath10k/core.c | 3 --- drivers/net/wireless/ath/ath10k/sdio.c | 1 - drivers/net/wireless/intel/iwlegacy/3945-mac.c | 1 - drivers/net/wireless/intel/iwlegacy/4965-mac.c | 1 - drivers/net/wireless/intel/iwlwifi/dvm/main.c | 1 - drivers/net/wireless/marvell/mwifiex/cfg80211.c | 2 -- drivers/net/wireless/marvell/mwifiex/main.c | 2 -- drivers/net/wireless/microchip/wilc1000/netdev.c | 1 - drivers/net/wireless/quantenna/qtnfmac/core.c | 2 -- drivers/net/wireless/quantenna/qtnfmac/pcie/pcie.c | 2 -- drivers/net/wireless/realtek/rtlwifi/pci.c | 1 - drivers/net/wireless/rndis_wlan.c | 2 -- drivers/net/wireless/st/cw1200/bh.c | 2 -- 13 files changed, 21 deletions(-) diff --git a/drivers/net/wireless/ath/ath10k/core.c b/drivers/net/wireless/= ath/ath10k/core.c index 58e86e662ab83..eca24a61165ee 100644 --- a/drivers/net/wireless/ath/ath10k/core.c +++ b/drivers/net/wireless/ath/ath10k/core.c @@ -3544,13 +3544,10 @@ EXPORT_SYMBOL(ath10k_core_create); =20 void ath10k_core_destroy(struct ath10k *ar) { - flush_workqueue(ar->workqueue); destroy_workqueue(ar->workqueue); =20 - flush_workqueue(ar->workqueue_aux); destroy_workqueue(ar->workqueue_aux); =20 - flush_workqueue(ar->workqueue_tx_complete); destroy_workqueue(ar->workqueue_tx_complete); =20 ath10k_debug_destroy(ar); diff --git a/drivers/net/wireless/ath/ath10k/sdio.c b/drivers/net/wireless/= ath/ath10k/sdio.c index eb705214f3f0a..63e1c2d783c5f 100644 --- a/drivers/net/wireless/ath/ath10k/sdio.c +++ b/drivers/net/wireless/ath/ath10k/sdio.c @@ -2650,7 +2650,6 @@ static void ath10k_sdio_remove(struct sdio_func *func) =20 ath10k_core_destroy(ar); =20 - flush_workqueue(ar_sdio->workqueue); destroy_workqueue(ar_sdio->workqueue); } =20 diff --git a/drivers/net/wireless/intel/iwlegacy/3945-mac.c b/drivers/net/w= ireless/intel/iwlegacy/3945-mac.c index 04c149ff745e9..dea0012fcdc79 100644 --- a/drivers/net/wireless/intel/iwlegacy/3945-mac.c +++ b/drivers/net/wireless/intel/iwlegacy/3945-mac.c @@ -3827,7 +3827,6 @@ il3945_pci_remove(struct pci_dev *pdev) il3945_unset_hw_params(il); =20 /*netif_stop_queue(dev); */ - flush_workqueue(il->workqueue); =20 /* ieee80211_unregister_hw calls il3945_mac_stop, which flushes * il->workqueue... so we can't take down the workqueue diff --git a/drivers/net/wireless/intel/iwlegacy/4965-mac.c b/drivers/net/w= ireless/intel/iwlegacy/4965-mac.c index ff04282e3db03..ceab7704897de 100644 --- a/drivers/net/wireless/intel/iwlegacy/4965-mac.c +++ b/drivers/net/wireless/intel/iwlegacy/4965-mac.c @@ -6739,7 +6739,6 @@ il4965_pci_remove(struct pci_dev *pdev) il_eeprom_free(il); =20 /*netif_stop_queue(dev); */ - flush_workqueue(il->workqueue); =20 /* ieee80211_unregister_hw calls il_mac_stop, which flushes * il->workqueue... so we can't take down the workqueue diff --git a/drivers/net/wireless/intel/iwlwifi/dvm/main.c b/drivers/net/wi= reless/intel/iwlwifi/dvm/main.c index cc7b69fd14d37..69d1aae96bbb4 100644 --- a/drivers/net/wireless/intel/iwlwifi/dvm/main.c +++ b/drivers/net/wireless/intel/iwlwifi/dvm/main.c @@ -1525,7 +1525,6 @@ static void iwl_op_mode_dvm_stop(struct iwl_op_mode *= op_mode) kfree(priv->nvm_data); =20 /*netif_stop_queue(dev); */ - flush_workqueue(priv->workqueue); =20 /* ieee80211_unregister_hw calls iwlagn_mac_stop, which flushes * priv->workqueue... so we can't take down the workqueue diff --git a/drivers/net/wireless/marvell/mwifiex/cfg80211.c b/drivers/net/= wireless/marvell/mwifiex/cfg80211.c index 109b1bef4c707..017d9e03d652d 100644 --- a/drivers/net/wireless/marvell/mwifiex/cfg80211.c +++ b/drivers/net/wireless/marvell/mwifiex/cfg80211.c @@ -3169,13 +3169,11 @@ int mwifiex_del_virtual_intf(struct wiphy *wiphy, s= truct wireless_dev *wdev) cfg80211_unregister_netdevice(wdev->netdev); =20 if (priv->dfs_cac_workqueue) { - flush_workqueue(priv->dfs_cac_workqueue); destroy_workqueue(priv->dfs_cac_workqueue); priv->dfs_cac_workqueue =3D NULL; } =20 if (priv->dfs_chan_sw_workqueue) { - flush_workqueue(priv->dfs_chan_sw_workqueue); destroy_workqueue(priv->dfs_chan_sw_workqueue); priv->dfs_chan_sw_workqueue =3D NULL; } diff --git a/drivers/net/wireless/marvell/mwifiex/main.c b/drivers/net/wire= less/marvell/mwifiex/main.c index 17399d4aa1290..7943fd3b3058d 100644 --- a/drivers/net/wireless/marvell/mwifiex/main.c +++ b/drivers/net/wireless/marvell/mwifiex/main.c @@ -498,13 +498,11 @@ static void mwifiex_free_adapter(struct mwifiex_adapt= er *adapter) static void mwifiex_terminate_workqueue(struct mwifiex_adapter *adapter) { if (adapter->workqueue) { - flush_workqueue(adapter->workqueue); destroy_workqueue(adapter->workqueue); adapter->workqueue =3D NULL; } =20 if (adapter->rx_workqueue) { - flush_workqueue(adapter->rx_workqueue); destroy_workqueue(adapter->rx_workqueue); adapter->rx_workqueue =3D NULL; } diff --git a/drivers/net/wireless/microchip/wilc1000/netdev.c b/drivers/net= /wireless/microchip/wilc1000/netdev.c index 5e3ec20e24dad..dc91739eff8c6 100644 --- a/drivers/net/wireless/microchip/wilc1000/netdev.c +++ b/drivers/net/wireless/microchip/wilc1000/netdev.c @@ -881,7 +881,6 @@ void wilc_netdev_cleanup(struct wilc *wilc) srcu_read_unlock(&wilc->srcu, srcu_idx); =20 wilc_wfi_deinit_mon_interface(wilc, false); - flush_workqueue(wilc->hif_workqueue); destroy_workqueue(wilc->hif_workqueue); =20 while (ifc_cnt < WILC_NUM_CONCURRENT_IFC) { diff --git a/drivers/net/wireless/quantenna/qtnfmac/core.c b/drivers/net/wi= reless/quantenna/qtnfmac/core.c index b4dd60b2ebc90..01725237836e8 100644 --- a/drivers/net/wireless/quantenna/qtnfmac/core.c +++ b/drivers/net/wireless/quantenna/qtnfmac/core.c @@ -811,13 +811,11 @@ void qtnf_core_detach(struct qtnf_bus *bus) bus->fw_state =3D QTNF_FW_STATE_DETACHED; =20 if (bus->workqueue) { - flush_workqueue(bus->workqueue); destroy_workqueue(bus->workqueue); bus->workqueue =3D NULL; } =20 if (bus->hprio_workqueue) { - flush_workqueue(bus->hprio_workqueue); destroy_workqueue(bus->hprio_workqueue); bus->hprio_workqueue =3D NULL; } diff --git a/drivers/net/wireless/quantenna/qtnfmac/pcie/pcie.c b/drivers/n= et/wireless/quantenna/qtnfmac/pcie/pcie.c index 5d93c874d6669..9ad4c120fa287 100644 --- a/drivers/net/wireless/quantenna/qtnfmac/pcie/pcie.c +++ b/drivers/net/wireless/quantenna/qtnfmac/pcie/pcie.c @@ -387,7 +387,6 @@ static int qtnf_pcie_probe(struct pci_dev *pdev, const = struct pci_device_id *id) return 0; =20 error: - flush_workqueue(pcie_priv->workqueue); destroy_workqueue(pcie_priv->workqueue); pci_set_drvdata(pdev, NULL); return ret; @@ -416,7 +415,6 @@ static void qtnf_pcie_remove(struct pci_dev *dev) qtnf_core_detach(bus); =20 netif_napi_del(&bus->mux_napi); - flush_workqueue(priv->workqueue); destroy_workqueue(priv->workqueue); tasklet_kill(&priv->reclaim_tq); =20 diff --git a/drivers/net/wireless/realtek/rtlwifi/pci.c b/drivers/net/wirel= ess/realtek/rtlwifi/pci.c index 679ae786cf450..6d9f2a6233a21 100644 --- a/drivers/net/wireless/realtek/rtlwifi/pci.c +++ b/drivers/net/wireless/realtek/rtlwifi/pci.c @@ -1704,7 +1704,6 @@ static void rtl_pci_deinit(struct ieee80211_hw *hw) tasklet_kill(&rtlpriv->works.irq_tasklet); cancel_work_sync(&rtlpriv->works.lps_change_work); =20 - flush_workqueue(rtlpriv->works.rtl_wq); destroy_workqueue(rtlpriv->works.rtl_wq); } =20 diff --git a/drivers/net/wireless/rndis_wlan.c b/drivers/net/wireless/rndis= _wlan.c index 70841d131d724..c35e9f5c2897e 100644 --- a/drivers/net/wireless/rndis_wlan.c +++ b/drivers/net/wireless/rndis_wlan.c @@ -3494,7 +3494,6 @@ static int rndis_wlan_bind(struct usbnet *usbdev, str= uct usb_interface *intf) cancel_delayed_work_sync(&priv->dev_poller_work); cancel_delayed_work_sync(&priv->scan_work); cancel_work_sync(&priv->work); - flush_workqueue(priv->workqueue); destroy_workqueue(priv->workqueue); =20 wiphy_free(wiphy); @@ -3511,7 +3510,6 @@ static void rndis_wlan_unbind(struct usbnet *usbdev, = struct usb_interface *intf) cancel_delayed_work_sync(&priv->dev_poller_work); cancel_delayed_work_sync(&priv->scan_work); cancel_work_sync(&priv->work); - flush_workqueue(priv->workqueue); destroy_workqueue(priv->workqueue); =20 rndis_unbind(usbdev, intf); diff --git a/drivers/net/wireless/st/cw1200/bh.c b/drivers/net/wireless/st/= cw1200/bh.c index 8bade5d89f12f..10e019cddcc65 100644 --- a/drivers/net/wireless/st/cw1200/bh.c +++ b/drivers/net/wireless/st/cw1200/bh.c @@ -85,8 +85,6 @@ void cw1200_unregister_bh(struct cw1200_common *priv) atomic_inc(&priv->bh_term); wake_up(&priv->bh_wq); =20 - flush_workqueue(priv->bh_workqueue); - destroy_workqueue(priv->bh_workqueue); priv->bh_workqueue =3D NULL; =20 --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7D77A175C9E; Sun, 24 Mar 2024 23:36:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323403; cv=none; b=bgl15a/GfvwJPteJBAPnH5XKD9CYFSTJh5UUy1OoqQgoPM3xgigi3bfP4VvIVMew2EgR/AYky8LQ/xm6OtiYNyr+8j7Ug1SoGNBCd1WywUGOolcac/CaJK2JB9uaPQvfWZZnj6ircgl4Yp3x9Zx9528cIZsH74zGLo5Mo4gjnaM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323403; c=relaxed/simple; bh=ywF7kYPrkCdFZ+QMKv18F5u11BtEIpfftiuZyKqS0Lw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=pWx/wcrBJLH+cHGI0E6L2B6yobKQTklvgxu9Redr86DarAtCmHzkG7IzT6ngouAJ1HXK8hp7P+pH1pVnKZNnXTZUuCrQ+MO/JGw1raQdhc6+jD3ZnTfqtP54xdEufX4TsR46AC6QvbeWsrKR1CTAZTqYdulpTM32Jsxoy00A/1s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=q7SaWn+7; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="q7SaWn+7" Received: by smtp.kernel.org (Postfix) with ESMTPSA id BD04DC43399; Sun, 24 Mar 2024 23:36:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323402; bh=ywF7kYPrkCdFZ+QMKv18F5u11BtEIpfftiuZyKqS0Lw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=q7SaWn+7aCpvWzX3oTH0fAOA/fn3QDMlPGGSOkqokhTtM/p/xeB5kjqKD9ObOLuCR CYSQ/0BZFnXntYyjIrfxXJnsx7B+B4CqItfCP+tn5nk/SbHPTiO5/Fkc1SddD6SEC3 r1XM0Gt00EFDM6L7sF4NgyeD/8AeWFFVu+xg/3x62aXkWi+8MOvc+RQ+G75TcL8R2s bgZZazB5/X+hkruW0P4Gc7rMmkbFzLca4FY9RwAvnk2w9H610RIsqd+LCaiYjOFt7f qJ5QjZxNOpO69F5N0l9NQwgl5TRvoNytu/LxI9QcnRtuJG9k5DHhhqRSblMcUxUESn Vcqb5pN3oeeMg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?Alexis=20Lothor=C3=A9?= , Kalle Valo , Sasha Levin Subject: [PATCH 5.15 103/317] wifi: wilc1000: prevent use-after-free on vif when cleaning up all interfaces Date: Sun, 24 Mar 2024 19:31:23 -0400 Message-ID: <20240324233458.1352854-104-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable From: Alexis Lothor=C3=A9 [ Upstream commit cb5942b77c05d54310a0420cac12935e9b6aa21c ] wilc_netdev_cleanup currently triggers a KASAN warning, which can be observed on interface registration error path, or simply by removing the module/unbinding device from driver: echo spi0.1 > /sys/bus/spi/drivers/wilc1000_spi/unbind =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D BUG: KASAN: slab-use-after-free in wilc_netdev_cleanup+0x508/0x5cc Read of size 4 at addr c54d1ce8 by task sh/86 CPU: 0 PID: 86 Comm: sh Not tainted 6.8.0-rc1+ #117 Hardware name: Atmel SAMA5 unwind_backtrace from show_stack+0x18/0x1c show_stack from dump_stack_lvl+0x34/0x58 dump_stack_lvl from print_report+0x154/0x500 print_report from kasan_report+0xac/0xd8 kasan_report from wilc_netdev_cleanup+0x508/0x5cc wilc_netdev_cleanup from wilc_bus_remove+0xc8/0xec wilc_bus_remove from spi_remove+0x8c/0xac spi_remove from device_release_driver_internal+0x434/0x5f8 device_release_driver_internal from unbind_store+0xbc/0x108 unbind_store from kernfs_fop_write_iter+0x398/0x584 kernfs_fop_write_iter from vfs_write+0x728/0xf88 vfs_write from ksys_write+0x110/0x1e4 ksys_write from ret_fast_syscall+0x0/0x1c [...] Allocated by task 1: kasan_save_track+0x30/0x5c __kasan_kmalloc+0x8c/0x94 __kmalloc_node+0x1cc/0x3e4 kvmalloc_node+0x48/0x180 alloc_netdev_mqs+0x68/0x11dc alloc_etherdev_mqs+0x28/0x34 wilc_netdev_ifc_init+0x34/0x8ec wilc_cfg80211_init+0x690/0x910 wilc_bus_probe+0xe0/0x4a0 spi_probe+0x158/0x1b0 really_probe+0x270/0xdf4 __driver_probe_device+0x1dc/0x580 driver_probe_device+0x60/0x140 __driver_attach+0x228/0x5d4 bus_for_each_dev+0x13c/0x1a8 bus_add_driver+0x2a0/0x608 driver_register+0x24c/0x578 do_one_initcall+0x180/0x310 kernel_init_freeable+0x424/0x484 kernel_init+0x20/0x148 ret_from_fork+0x14/0x28 Freed by task 86: kasan_save_track+0x30/0x5c kasan_save_free_info+0x38/0x58 __kasan_slab_free+0xe4/0x140 kfree+0xb0/0x238 device_release+0xc0/0x2a8 kobject_put+0x1d4/0x46c netdev_run_todo+0x8fc/0x11d0 wilc_netdev_cleanup+0x1e4/0x5cc wilc_bus_remove+0xc8/0xec spi_remove+0x8c/0xac device_release_driver_internal+0x434/0x5f8 unbind_store+0xbc/0x108 kernfs_fop_write_iter+0x398/0x584 vfs_write+0x728/0xf88 ksys_write+0x110/0x1e4 ret_fast_syscall+0x0/0x1c [...] David Mosberger-Tan initial investigation [1] showed that this use-after-free is due to netdevice unregistration during vif list traversal. When unregistering a net device, since the needs_free_netdev has been set to true during registration, the netdevice object is also freed, and as a consequence, the corresponding vif object too, since it is attached to it as private netdevice data. The next occurrence of the loop then tries to access freed vif pointer to the list to move forward in the list. Fix this use-after-free thanks to two mechanisms: - navigate in the list with list_for_each_entry_safe, which allows to safely modify the list as we go through each element. For each element, remove it from the list with list_del_rcu - make sure to wait for RCU grace period end after each vif removal to make sure it is safe to free the corresponding vif too (through unregister_netdev) Since we are in a RCU "modifier" path (not a "reader" path), and because such path is expected not to be concurrent to any other modifier (we are using the vif_mutex lock), we do not need to use RCU list API, that's why we can benefit from list_for_each_entry_safe. [1] https://lore.kernel.org/linux-wireless/ab077dbe58b1ea5de0a3b2ca21f275a0= 7af967d2.camel@egauge.net/ Fixes: 8399918f3056 ("staging: wilc1000: use RCU list to maintain vif inter= faces list") Signed-off-by: Alexis Lothor=C3=A9 Signed-off-by: Kalle Valo Link: https://msgid.link/20240212-wilc_rework_deinit-v1-1-9203ae56c27f@boot= lin.com Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- .../net/wireless/microchip/wilc1000/netdev.c | 28 +++++-------------- 1 file changed, 7 insertions(+), 21 deletions(-) diff --git a/drivers/net/wireless/microchip/wilc1000/netdev.c b/drivers/net= /wireless/microchip/wilc1000/netdev.c index dc91739eff8c6..0cf9e123d8c7d 100644 --- a/drivers/net/wireless/microchip/wilc1000/netdev.c +++ b/drivers/net/wireless/microchip/wilc1000/netdev.c @@ -862,8 +862,7 @@ static const struct net_device_ops wilc_netdev_ops =3D { =20 void wilc_netdev_cleanup(struct wilc *wilc) { - struct wilc_vif *vif; - int srcu_idx, ifc_cnt =3D 0; + struct wilc_vif *vif, *vif_tmp; =20 if (!wilc) return; @@ -873,32 +872,19 @@ void wilc_netdev_cleanup(struct wilc *wilc) wilc->firmware =3D NULL; } =20 - srcu_idx =3D srcu_read_lock(&wilc->srcu); - list_for_each_entry_rcu(vif, &wilc->vif_list, list) { + list_for_each_entry_safe(vif, vif_tmp, &wilc->vif_list, list) { + mutex_lock(&wilc->vif_mutex); + list_del_rcu(&vif->list); + wilc->vif_num--; + mutex_unlock(&wilc->vif_mutex); + synchronize_srcu(&wilc->srcu); if (vif->ndev) unregister_netdev(vif->ndev); } - srcu_read_unlock(&wilc->srcu, srcu_idx); =20 wilc_wfi_deinit_mon_interface(wilc, false); destroy_workqueue(wilc->hif_workqueue); =20 - while (ifc_cnt < WILC_NUM_CONCURRENT_IFC) { - mutex_lock(&wilc->vif_mutex); - if (wilc->vif_num <=3D 0) { - mutex_unlock(&wilc->vif_mutex); - break; - } - vif =3D wilc_get_wl_to_vif(wilc); - if (!IS_ERR(vif)) - list_del_rcu(&vif->list); - - wilc->vif_num--; - mutex_unlock(&wilc->vif_mutex); - synchronize_srcu(&wilc->srcu); - ifc_cnt++; - } - wilc_wlan_cfg_deinit(wilc); wlan_deinit_locks(wilc); wiphy_unregister(wilc->wiphy); --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 673F7175CA5; Sun, 24 Mar 2024 23:36:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323404; cv=none; b=pHVCIR/Pppbui61QnwIkugByj5MOib9xAYHJIwY4yJhn3IECVkXs9PSVhoP88X57vLLvIqq0JDhPcQLchHge/M8k5gtd4mxEJWFoCybx31kfR6izBt/7/EB3B26ij/A6CGAA8TDyaB9yRh006XljjtFH/mp6nDQRW9jVe43rPfg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323404; c=relaxed/simple; bh=CqA3eUdPBF/be+v+k2NASIKCC/1AGo7SsTS6DXb7YYA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=I8HBZrILlQg0NYPHesS+jeiqBDcO96G5hfYkCQCJqNmc+aaEYxSF3BHiVYh3/1TEP21AUeOneVuJpLOM5z+cU1Gs91rDGu8CWONonJTGLH+hRQHr4ZiUOHMZQUzU6hW4CiGbOLzCYqro7iBggqWltZ2IPzcez4Hlj2rNir1OFyA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=FDsqQfsX; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="FDsqQfsX" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A4E58C43390; Sun, 24 Mar 2024 23:36:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323403; bh=CqA3eUdPBF/be+v+k2NASIKCC/1AGo7SsTS6DXb7YYA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=FDsqQfsXxBfVnE+pzTmWHUEzmKaKNley0S3FEV1E7ONbNL48Ij65C34Dm7erSUb4X EV+LIOVS92Hm1Zs+xh1kvxFLr39Monghfa/+G+2im2GPfKmtEV/Ke1YL25Y8AZMAbs L5D3kMH23u78LeodhYPkOWOwU4sprFaHS6K/GgprYZQtIY/e63/joKRjhOjJwDk/3W rsnzZ2kpd2vhE5qdRlpCWaq6A3Q4Er5kDZTcOYl2HFju211LoTn/oZNRAkMD9l+tNR 2e1+Wt/gwlCN5hHHQ4Cpaf/90vZtsfdxEC8wOSp0i5WMGXeBJ13L0v1/goFyKMHJQk PxFQ0JFKlsEoA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Armin Wolf , "Rafael J . Wysocki" , Sasha Levin Subject: [PATCH 5.15 104/317] ACPI: processor_idle: Fix memory leak in acpi_processor_power_exit() Date: Sun, 24 Mar 2024 19:31:24 -0400 Message-ID: <20240324233458.1352854-105-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Armin Wolf [ Upstream commit e18afcb7b2a12b635ac10081f943fcf84ddacc51 ] After unregistering the CPU idle device, the memory associated with it is not freed, leading to a memory leak: unreferenced object 0xffff896282f6c000 (size 1024): comm "swapper/0", pid 1, jiffies 4294893170 hex dump (first 32 bytes): 00 00 00 00 0b 00 00 00 00 00 00 00 00 00 00 00 ................ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ backtrace (crc 8836a742): [] kmalloc_trace+0x29d/0x340 [] acpi_processor_power_init+0xf3/0x1c0 [] __acpi_processor_start+0xd3/0xf0 [] acpi_processor_start+0x2c/0x50 [] really_probe+0xe2/0x480 [] __driver_probe_device+0x78/0x160 [] driver_probe_device+0x1f/0x90 [] __driver_attach+0xce/0x1c0 [] bus_for_each_dev+0x70/0xc0 [] bus_add_driver+0x112/0x210 [] driver_register+0x55/0x100 [] acpi_processor_driver_init+0x3b/0xc0 [] do_one_initcall+0x41/0x300 [] kernel_init_freeable+0x320/0x470 [] kernel_init+0x16/0x1b0 [] ret_from_fork+0x2d/0x50 Fix this by freeing the CPU idle device after unregistering it. Fixes: 3d339dcbb56d ("cpuidle / ACPI : move cpuidle_device field out of the= acpi_processor_power structure") Signed-off-by: Armin Wolf Signed-off-by: Rafael J. Wysocki Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/acpi/processor_idle.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c index e9116db1e3527..4cb44d80bf520 100644 --- a/drivers/acpi/processor_idle.c +++ b/drivers/acpi/processor_idle.c @@ -1424,6 +1424,8 @@ int acpi_processor_power_exit(struct acpi_processor *= pr) acpi_processor_registered--; if (acpi_processor_registered =3D=3D 0) cpuidle_unregister_driver(&acpi_idle_driver); + + kfree(dev); } =20 pr->flags.power_setup_done =3D 0; --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 67FB4175CAC; Sun, 24 Mar 2024 23:36:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323405; cv=none; b=pF6KfwQG4l/1aJcYOX25bNXpMn/2gGpozuACsrKgBHgCtj8QflI1WuWh6FZ7qqdz4Sb+SzryVp8XClYpLhXbudbCH42bIbMvRMYx8agZ3kEgoI6z6M0mxZzkc8tMpHropRq4sTlR2qc2rluOQQtkfZr1lr99LpL2WmdnBOazhfI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323405; c=relaxed/simple; bh=qiGAF4i2UqxoN3ZSAp9HOjnO/1BpK6+ooU9v+UKEwgk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=LZlqO/FFkbgYzcBBM8lgWLiCXWWEVVZ2nFbxxiwhkVzpRgCXxGk4GS3DT6bcDNnQJ7tKdMr50/6iIzQX0PwxCmG8P5ueaxoJHzYWJxocu1DQTb8BCjw1Z7F+iqhYKyqrFcWyQE81zuxhg4ElCCZ/JXpBue/63GaSilAjrx77Vlg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ljebkf8q; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ljebkf8q" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 906F7C43394; Sun, 24 Mar 2024 23:36:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323404; bh=qiGAF4i2UqxoN3ZSAp9HOjnO/1BpK6+ooU9v+UKEwgk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ljebkf8q5Ftw7h183yW6G7E64ripT3hkH4XDLsQMFtKHCASvqNSEBGTkdEgRYNRGb EORI26MJbkitFHlZJS61CapA3YcQBC4eX2BPhKFKqSWeisj9zVYVItlYaOKie1zQCm T62pLlYjurUwiYh+sGUscHF4pooWH1OpnXMxLOH4x70Rkaqb74BnwISEikFG//bkZf xbIQJkMOg4w99LjW41BO1J3kJAAW7tW10sgz+5PPOzAycHAEJCeLEoDwP3XoIWCqz1 +JWJGO6xyCDfuD7NTc8jNa0HfWf7hbfkWU6+zaLkKY57+9AmcpC3IJAclwmVWAQrdd 662MxP3h5/UJw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Peter Robinson , Jon Hunter , Thierry Reding , Sasha Levin Subject: [PATCH 5.15 105/317] bus: tegra-aconnect: Update dependency to ARCH_TEGRA Date: Sun, 24 Mar 2024 19:31:25 -0400 Message-ID: <20240324233458.1352854-106-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Peter Robinson [ Upstream commit 4acd21a45c1446277e2abaece97d7fa7c2e692a9 ] Update the architecture dependency to be the generic Tegra because the driver works on the four latest Tegra generations not just Tegra210, if you build a kernel with a specific ARCH_TEGRA_xxx_SOC option that excludes Tegra210 you don't get this driver. Fixes: 46a88534afb59 ("bus: Add support for Tegra ACONNECT") Signed-off-by: Peter Robinson Cc: Jon Hunter Cc: Thierry Reding Signed-off-by: Thierry Reding Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/bus/Kconfig | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/bus/Kconfig b/drivers/bus/Kconfig index a4cf3d692dc30..d224f5f7a7405 100644 --- a/drivers/bus/Kconfig +++ b/drivers/bus/Kconfig @@ -175,11 +175,12 @@ config SUNXI_RSB =20 config TEGRA_ACONNECT tristate "Tegra ACONNECT Bus Driver" - depends on ARCH_TEGRA_210_SOC + depends on ARCH_TEGRA depends on OF && PM help Driver for the Tegra ACONNECT bus which is used to interface with - the devices inside the Audio Processing Engine (APE) for Tegra210. + the devices inside the Audio Processing Engine (APE) for + Tegra210 and later. =20 config TEGRA_GMI tristate "Tegra Generic Memory Interface bus driver" --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 62E7C175CAB; Sun, 24 Mar 2024 23:36:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323405; cv=none; b=LZ7u2mY4qCTMfcAwTBC+k8YiS6Yzc/cH94efN36eqF29ccCB14Rhw0v/MK+jdamTRBRLlqZmwiVPDXaRpotP8NLrBp7iSvZ07LZT6pRV+fZ/1stOiFQ4tqCSEv4tbuSU9sCDXO64XwpiCySTTIV72VXL8aZRhRyP92SkDXQpZfc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323405; c=relaxed/simple; bh=Xupc0U8JbIbytEqMbadnHXez4ca++rZbhWvNQ4V3vR8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ib9W2Ld/8tvGTPPH5B26z0bhfex9eFkPzSE8qcn5VGNypWRI2okQSefK+c5p29OFK9ouXT9crfBXratmaHHRi+VSoVLEyV7VoHlQGLx67q1+x+Iknv6b9o8lb0FdPe0dvlQD+WXMLUglcGpqo49clce53QpJYMTjS/plwUKMSug= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ovz/dwuq; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ovz/dwuq" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8EBBBC43390; Sun, 24 Mar 2024 23:36:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323405; bh=Xupc0U8JbIbytEqMbadnHXez4ca++rZbhWvNQ4V3vR8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ovz/dwuqB/x7yLsgfXE/CoEJFKlvygYf8S3XteSn1tNxloMHqSDojtKTcJnHmayTf WxmjnVm5n3t3ss+sX05AxdRLiIEAyjyq7ZI4jU9V93CobELZfQWyN3f/n1o95MdyAd Ihv50IIt7lNI+L1eI5pAQVTb5SRLeMG2zjeyqozPHm0V+wvbgX2tNZ0g/lHXXU3RER AtELELJeCA36RP7lqtEMq5MZAW7IjcWdwknNU0ZEFtMZRRa0AUVaAT1NxGajLeE571 tSH7mHqafaO58p4/q5Qovg7SjmFflED52WKon+JQp2XIP75pfqCuF5VwvGWYEAnH0Y xXAWbe4iyXIUg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Mario Limonciello , Vasant Hegde , Joerg Roedel , Sasha Levin Subject: [PATCH 5.15 106/317] iommu/amd: Mark interrupt as managed Date: Sun, 24 Mar 2024 19:31:26 -0400 Message-ID: <20240324233458.1352854-107-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Mario Limonciello [ Upstream commit 0feda94c868d396fac3b3cb14089d2d989a07c72 ] On many systems that have an AMD IOMMU the following sequence of warnings is observed during bootup. ``` pci 0000:00:00.2 can't derive routing for PCI INT A pci 0000:00:00.2: PCI INT A: not connected ``` This series of events happens because of the IOMMU initialization sequence order and the lack of _PRT entries for the IOMMU. During initialization the IOMMU driver first enables the PCI device using pci_enable_device(). This will call acpi_pci_irq_enable() which will check if the interrupt is declared in a PCI routing table (_PRT) entry. According to the PCI spec [1] these routing entries are only required under PCI root bridges: The _PRT object is required under all PCI root bridges The IOMMU is directly connected to the root complex, so there is no parent bridge to look for a _PRT entry. The first warning is emitted since no entry could be found in the hierarchy. The second warning is then emitted because the interrupt hasn't yet been configured to any value. The pin was configured in pci_read_irq() but the byte in PCI_INTERRUPT_LINE return 0xff which means "Unknown". After that sequence of events pci_enable_msi() is called and this will allocate an interrupt. That is both of these warnings are totally harmless because the IOMMU uses MSI for interrupts. To avoid even trying to probe for a _PRT entry mark the IOMMU as IRQ managed. This avoids both warnings. Link: https://uefi.org/htmlspecs/ACPI_Spec_6_4_html/06_Device_Configuration= /Device_Configuration.html?highlight=3D_prt#prt-pci-routing-table [1] Signed-off-by: Mario Limonciello Fixes: cffe0a2b5a34 ("x86, irq: Keep balance of IOAPIC pin reference count") Reviewed-by: Vasant Hegde Link: https://lore.kernel.org/r/20240122233400.1802-1-mario.limonciello@amd= .com Signed-off-by: Joerg Roedel Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/iommu/amd/init.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/iommu/amd/init.c b/drivers/iommu/amd/init.c index 50ea582be5910..ef855495c210e 100644 --- a/drivers/iommu/amd/init.c +++ b/drivers/iommu/amd/init.c @@ -1821,6 +1821,9 @@ static int __init iommu_init_pci(struct amd_iommu *io= mmu) /* Prevent binding other PCI device drivers to IOMMU devices */ iommu->dev->match_driver =3D false; =20 + /* ACPI _PRT won't have an IRQ for IOMMU */ + iommu->dev->irq_managed =3D 1; + pci_read_config_dword(iommu->dev, cap_ptr + MMIO_CAP_HDR_OFFSET, &iommu->cap); =20 --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 61636175CB1; Sun, 24 Mar 2024 23:36:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323406; cv=none; b=h8JnB8ZyEDMhnbCRvBkoIo7spcKxpknDhTiEdL9sOrRLnWLmr82ATY67h7kna3C7y+3w4KnY7uMGr8mVWczDBYu/i4hsQyP387ZDHxSeoxxxcDBuo5ekXqlNmP+h5SJLcmqGO4LfBgTCBvrvWqDZZ4tz+ybLbLXunuYPgegX9AQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323406; c=relaxed/simple; bh=nt4DweudXrWSOOYE0nV/wX2peusxuk3T7M9VaEFEUOQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=dQKQLe9EkI4Y+tF0f2yw68RyjH43YkINsQ9IzWd1z/wWfIEo9rH3hvLqU0HB3CVcwuhfpxWNxpMa5BlwKmvTXQPJz5ztmwbwZBdGmQywBpmoxkOIoU1fuHxFvVQmG0kqlfrHw5emEad4wzugE1xYPGRxwwD3zmFI9R1jex7SpK4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=pHw1xF8l; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="pHw1xF8l" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 89F6EC43394; Sun, 24 Mar 2024 23:36:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323406; bh=nt4DweudXrWSOOYE0nV/wX2peusxuk3T7M9VaEFEUOQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=pHw1xF8lgCJvgIFvXcn7v7B+2xec5eauqIZPrtkjTDs2jd3PPOrE1YT8BPsWIPnIg MklB8qPuHG+mVOwaNgvBN74M8YDw+McBzQ/0oGM9ywOUuP0SA2aTGcnByoQAQt8js2 kpT+SuwOsgZoc26SQdzqkJ2NVRiztvYfAPymAfTTyrptgtVdFNsYGsZCFoMvxlWxCV qsBGgvOqZ35yFEEhGf5itdf7MaZ5EmHYKjGdCoztbbQVrb0l1v2FXekYLTs/fOFDD1 efq40Ktogivb/zjDNhGQMb2rCD5wlRQimesGBKMHbcE51rJT/ZD0q4j/jpZQA/dLER 3sH95rYcdXWPQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Arnd Bergmann , Arend van Spriel , Kalle Valo , Sasha Levin Subject: [PATCH 5.15 107/317] wifi: brcmsmac: avoid function pointer casts Date: Sun, 24 Mar 2024 19:31:27 -0400 Message-ID: <20240324233458.1352854-108-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Arnd Bergmann [ Upstream commit e1ea6db35fc3ba5ff063f097385e9f7a88c25356 ] An old cleanup went a little too far and causes a warning with clang-16 and higher as it breaks control flow integrity (KCFI) rules: drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.c:64:34: error: c= ast from 'void (*)(struct brcms_phy *)' to 'void (*)(void *)' converts to i= ncompatible function type [-Werror,-Wcast-function-type-strict] 64 | brcms_init_timer(physhim->wl, (void (*)(voi= d *))fn, | ^~~~~~~~~~~~~= ~~~~~~~ Change this one instance back to passing a void pointer so it can be used with the timer callback interface. Fixes: d89a4c80601d ("staging: brcm80211: removed void * from softmac phy") Signed-off-by: Arnd Bergmann Acked-by: Arend van Spriel Signed-off-by: Kalle Valo Link: https://msgid.link/20240213100548.457854-1-arnd@kernel.org Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- .../net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_cmn.c | 3 ++- drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.c | 5 ++--- drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.h | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_cmn.c= b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_cmn.c index ccc621b8ed9f2..4a1fe982a948e 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_cmn.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_cmn.c @@ -383,8 +383,9 @@ struct shared_phy *wlc_phy_shared_attach(struct shared_= phy_params *shp) return sh; } =20 -static void wlc_phy_timercb_phycal(struct brcms_phy *pi) +static void wlc_phy_timercb_phycal(void *ptr) { + struct brcms_phy *pi =3D ptr; uint delay =3D 5; =20 if (PHY_PERICAL_MPHASE_PENDING(pi)) { diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.c b/= drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.c index a0de5db0cd646..b723817915365 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.c @@ -57,12 +57,11 @@ void wlc_phy_shim_detach(struct phy_shim_info *physhim) } =20 struct wlapi_timer *wlapi_init_timer(struct phy_shim_info *physhim, - void (*fn)(struct brcms_phy *pi), + void (*fn)(void *pi), void *arg, const char *name) { return (struct wlapi_timer *) - brcms_init_timer(physhim->wl, (void (*)(void *))fn, - arg, name); + brcms_init_timer(physhim->wl, fn, arg, name); } =20 void wlapi_free_timer(struct wlapi_timer *t) diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.h b/= drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.h index dd8774717adee..27d0934e600ed 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.h +++ b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.h @@ -131,7 +131,7 @@ void wlc_phy_shim_detach(struct phy_shim_info *physhim); =20 /* PHY to WL utility functions */ struct wlapi_timer *wlapi_init_timer(struct phy_shim_info *physhim, - void (*fn)(struct brcms_phy *pi), + void (*fn)(void *pi), void *arg, const char *name); void wlapi_free_timer(struct wlapi_timer *t); void wlapi_add_timer(struct wlapi_timer *t, uint ms, int periodic); --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5D2F5175CAA; Sun, 24 Mar 2024 23:36:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323407; cv=none; b=oFtjSmGpkF2K8y5C8TIVji3beUhSOyaST347nJ2NOJVYPRg2LVPiGh9fioHMpiDTc5RV5X15MEb5XeEDEMqLTxQRWAWdbYUvwRURitC/JCjLsEX0R2mvTmvHjPVtiQ7locbJzCCiMpDmUkkp6iKiGf+yG/+XxZoKq5iusnFrC6E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323407; c=relaxed/simple; bh=BVOqvSyGtKmf/122ACtzVkhhLsTLB3szaQSQ0zvlj5s=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=g8MOct9dlltuzxeRNYRocgBBZfmRhbH+VmYQacmtdzTMaMLp5ePgmCRMnWeUTFUYoA3K6I919ltLzhMYWsouH5O9MBpI3GnP1zk4ESfoe4ZvS/I8bSoZtVy0ROf5FapX/uENxp70aELDGMy2k9n9sb/W/f1VvaBy0IPs/c5RQ3Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=kq4r6Gny; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="kq4r6Gny" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 87770C433B1; Sun, 24 Mar 2024 23:36:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323407; bh=BVOqvSyGtKmf/122ACtzVkhhLsTLB3szaQSQ0zvlj5s=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=kq4r6GnyS0Ob70h+LgEfGgcyul54KPbsbN2vMyg8WyA3cRhwLZq+XKLqEFASR940I j6kbdiFrC01p7xDmSfK34ZLH1HGLAnqmxEAZFUWZ0jKcTbEC/BJMM0iqNKzEYdbixI aG1dBNaN8yxjRpwu9mG0oRJvuC/gufZz2bVb8q2oDWGlf+4XJQGV6MqMqSxmMlR4HE X7MDPMkjYPKAd4x/biJUcIjpu/qZSua9dwg0MJ2IeSf8utV74UaYHSJy/GwqHLoCZR g2HZOZrJBvxAIPNHKCKk/hJRPxCyjfDKHNnEsGLOilrz6YiX4xVYLzlkl+gsuxUuPm kskv4y2Ok+vQQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Kamal Heib , Jacob Keller , "David S . Miller" , Sasha Levin Subject: [PATCH 5.15 108/317] net: ena: Remove ena_select_queue Date: Sun, 24 Mar 2024 19:31:28 -0400 Message-ID: <20240324233458.1352854-109-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Kamal Heib [ Upstream commit 78e886ba2b549945ecada055ee0765f0ded5707a ] Avoid the following warnings by removing the ena_select_queue() function and rely on the net core to do the queue selection, The issue happen when an skb received from an interface with more queues than ena is forwarded to the ena interface. [ 1176.159959] eth0 selects TX queue 11, but real number of TX queues is 8 [ 1176.863976] eth0 selects TX queue 14, but real number of TX queues is 8 [ 1180.767877] eth0 selects TX queue 14, but real number of TX queues is 8 [ 1188.703742] eth0 selects TX queue 14, but real number of TX queues is 8 Fixes: 1738cd3ed342 ("net: ena: Add a driver for Amazon Elastic Network Ada= pters (ENA)") Signed-off-by: Kamal Heib Reviewed-by: Jacob Keller Signed-off-by: David S. Miller Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/net/ethernet/amazon/ena/ena_netdev.c | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/drivers/net/ethernet/amazon/ena/ena_netdev.c b/drivers/net/eth= ernet/amazon/ena/ena_netdev.c index 7d4b862be783d..43c099141e211 100644 --- a/drivers/net/ethernet/amazon/ena/ena_netdev.c +++ b/drivers/net/ethernet/amazon/ena/ena_netdev.c @@ -3187,22 +3187,6 @@ static netdev_tx_t ena_start_xmit(struct sk_buff *sk= b, struct net_device *dev) return NETDEV_TX_OK; } =20 -static u16 ena_select_queue(struct net_device *dev, struct sk_buff *skb, - struct net_device *sb_dev) -{ - u16 qid; - /* we suspect that this is good for in--kernel network services that - * want to loop incoming skb rx to tx in normal user generated traffic, - * most probably we will not get to this - */ - if (skb_rx_queue_recorded(skb)) - qid =3D skb_get_rx_queue(skb); - else - qid =3D netdev_pick_tx(dev, skb, NULL); - - return qid; -} - static void ena_config_host_info(struct ena_com_dev *ena_dev, struct pci_d= ev *pdev) { struct device *dev =3D &pdev->dev; @@ -3372,7 +3356,6 @@ static const struct net_device_ops ena_netdev_ops =3D= { .ndo_open =3D ena_open, .ndo_stop =3D ena_close, .ndo_start_xmit =3D ena_start_xmit, - .ndo_select_queue =3D ena_select_queue, .ndo_get_stats64 =3D ena_get_stats64, .ndo_tx_timeout =3D ena_tx_timeout, .ndo_change_mtu =3D ena_change_mtu, --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 45D7B175CBB; Sun, 24 Mar 2024 23:36:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323409; cv=none; b=ioiLy4+dLe5wIcCDdMVA6NwIylglFvu+SLZf2SeJH3jzd9lzNJN/rZjby6n6n+iV/CtsIzRzU0DRt8thZLX1rgx7tIuVFF1Wg7qlZB2e8FwsU+tSe1vitjpfxQY4g8SpklrPKP3T6u7TYzzcwA85WGUo9BUvLwBY0tCj7MlRMP0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323409; c=relaxed/simple; bh=UWQXbI09pYoDEgs0/epk4bOcaXJ/RUDBrCgKW+m3SXo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=IGD9pXkhWJCO3J/7nvytkFV1qZWStPd4mENXxzNTA2AMRQ0qHwnLdCxYA+BhNgfYvrZh3Tnf+cagT8PRiCRgmZq+ZZAYuLRUNDmMxSuA5ja68On7jfUoa7TxQh18bRoKafidHxR9mJ5FNs/51VA7LyVW/+7HgrQpDsFzGG6KpAc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=jBd2q6qU; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="jBd2q6qU" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 838B7C433F1; Sun, 24 Mar 2024 23:36:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323408; bh=UWQXbI09pYoDEgs0/epk4bOcaXJ/RUDBrCgKW+m3SXo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jBd2q6qU0srroFVuMIv3SW9ePWUQjeGACDmQwHzOWBPgzyafX+NGqcLQ7gkuEXc4G yFufIQbk7HBLjhCH7n1vY1xYuheiBoV6b00QV6Ix5NhAxS93ssY9g5ov0ffPFuJKgp bVuadG5Gd/9GoSvQ0gF48lN+4OkfIjnw/qFNeuCaDwKB5/W2F+77U7X1gbg3RiLG5f qVJeS7pUYyGM/86/pMXuj6FFmgJ1wMQv/ckWoVDFOvyJEtI+ArWfRg2R+FSafY+DfO 6QR2I3kvGi+IGeGGrrwYCFA4fGlTXg+BzOTuXyrp0pJa3chkOM/wQAGiGVpRsExEDc 1ApfQqJb8sQfw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Geert Uytterhoeven , Linus Walleij , Sasha Levin Subject: [PATCH 5.15 109/317] ARM: dts: arm: realview: Fix development chip ROM compatible value Date: Sun, 24 Mar 2024 19:31:29 -0400 Message-ID: <20240324233458.1352854-110-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Geert Uytterhoeven [ Upstream commit 3baa4c5143d65ebab2de0d99a395e5f4f1f46608 ] When the development chip ROM was added, the "direct-mapped" compatible value was already obsolete. In addition, the device node lacked the accompanying "probe-type" property, causing the old physmap_of_core driver to fall back to trying all available probe types. Unfortunately this fallback was lost when the DT and pdata cases were merged. Fix this by using the modern "mtd-rom" compatible value instead. Fixes: 5c3f5edbe0a1dff3 ("ARM: realview: add flash devices to the PB1176 DT= S") Fixes: 642b1e8dbed7bbbf ("mtd: maps: Merge physmap_of.c into physmap-core.c= ") Signed-off-by: Geert Uytterhoeven Signed-off-by: Linus Walleij Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- arch/arm/boot/dts/arm-realview-pb1176.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/arm-realview-pb1176.dts b/arch/arm/boot/dts/= arm-realview-pb1176.dts index 366687fb1ee39..e794a4bb8f1f2 100644 --- a/arch/arm/boot/dts/arm-realview-pb1176.dts +++ b/arch/arm/boot/dts/arm-realview-pb1176.dts @@ -435,7 +435,7 @@ pb1176_serial3: serial@1010f000 { =20 /* Direct-mapped development chip ROM */ pb1176_rom@10200000 { - compatible =3D "direct-mapped"; + compatible =3D "mtd-rom"; reg =3D <0x10200000 0x4000>; bank-width =3D <1>; }; --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8A6732779C1; Sun, 24 Mar 2024 23:36:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323410; cv=none; b=evBAEbCIA6APVH70lP1HPTS2dsstvXDK5vC0CeupNZrhYIGAsRb0aOMwhBxfSo2JSKI9l19VgpVfXWKXH8vlK0DIj3HpA45BZGfKiGwbTZlgiS/+bRR1G7/wA8W0/qGgGXvdjmjUc9jDl9h/JMkjmnDlr0fMC8ITNunXadOFV9A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323410; c=relaxed/simple; bh=8x3RumNlyI5Nd+TDMBBANwg1SNN3LOs+F29m+HtTmqE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=k1V1yNcIkaZHWn3LcfRmtm3Miq40h42YJKakATCGcdsQaFTpLtTvEJyfAE77wg6YgN1d/LvAoN2PJAD3Ndal0Gj+GWRLTaQn8oR/V6RNnZFrg20NKpbYRChOwg9Kqr2Ih/qAJlCNdihqJubpt2Q3TCM+b8tkUOUaaQh4a+HJDLU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=bueOf8fH; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="bueOf8fH" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6A3F2C433A6; Sun, 24 Mar 2024 23:36:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323409; bh=8x3RumNlyI5Nd+TDMBBANwg1SNN3LOs+F29m+HtTmqE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=bueOf8fHUoDkcXl+Y1uL7RHHd0YZbnL3/ztk/PI72GLwSK1RJ65AwM8HrMkTpwmA4 umVERm3hzOt1MCyGd/m6HBLXTIUUHmTDEK0rolneaVESJolZh9bXmzvOoouuwvfHJJ MKG1MWCZfntS0u3+FE30uOr7Th9gntqLd2b5dqw9xPD1NLgNoj3LHCQOI8r4FUPf2T 23qKOJxXR27T0FsZQ7GHJhOfeAg2fNEh7t2qPaCbYH+W0gIqw5evWjd6zvWAIrN8C7 MOqzqd4nwp/dz3UenCMYrKuLj82bauQsAM40FkPuL66+fRuJoVbc+FcozfA285eCyT 8XxvGDXJkapdA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Geert Uytterhoeven , Wolfram Sang , Sasha Levin Subject: [PATCH 5.15 110/317] arm64: dts: renesas: r8a779a0: Update to R-Car Gen4 compatible values Date: Sun, 24 Mar 2024 19:31:30 -0400 Message-ID: <20240324233458.1352854-111-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Geert Uytterhoeven [ Upstream commit a1721bbbdb5c6687d157f8b8714bba837f6028ac ] Despite the name, R-Car V3U is the first member of the R-Car Gen4 family. Hence update the compatible properties in various device nodes to include family-specific compatible values for R-Car Gen4 instead of R-Car Gen3: - DMAC, - (H)SCIF, - I2C, - IPMMU, - WDT. Signed-off-by: Geert Uytterhoeven Reviewed-by: Wolfram Sang Link: https://lore.kernel.org/r/73cea9d5e1a6639422c67e4df4285042e31c9fd5.16= 51497071.git.geert+renesas@glider.be Stable-dep-of: 0c51912331f8 ("arm64: dts: renesas: r8a779a0: Correct avb[01= ] reg sizes") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- arch/arm64/boot/dts/renesas/r8a779a0.dtsi | 24 +++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/arch/arm64/boot/dts/renesas/r8a779a0.dtsi b/arch/arm64/boot/dt= s/renesas/r8a779a0.dtsi index 26899fb768a73..c7d1b79692c11 100644 --- a/arch/arm64/boot/dts/renesas/r8a779a0.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a779a0.dtsi @@ -583,7 +583,7 @@ hscif3: serial@e66a0000 { =20 avb0: ethernet@e6800000 { compatible =3D "renesas,etheravb-r8a779a0", - "renesas,etheravb-rcar-gen3"; + "renesas,etheravb-rcar-gen4"; reg =3D <0 0xe6800000 0 0x800>; interrupts =3D , , @@ -631,7 +631,7 @@ avb0: ethernet@e6800000 { =20 avb1: ethernet@e6810000 { compatible =3D "renesas,etheravb-r8a779a0", - "renesas,etheravb-rcar-gen3"; + "renesas,etheravb-rcar-gen4"; reg =3D <0 0xe6810000 0 0x800>; interrupts =3D , , @@ -679,7 +679,7 @@ avb1: ethernet@e6810000 { =20 avb2: ethernet@e6820000 { compatible =3D "renesas,etheravb-r8a779a0", - "renesas,etheravb-rcar-gen3"; + "renesas,etheravb-rcar-gen4"; reg =3D <0 0xe6820000 0 0x1000>; interrupts =3D , , @@ -727,7 +727,7 @@ avb2: ethernet@e6820000 { =20 avb3: ethernet@e6830000 { compatible =3D "renesas,etheravb-r8a779a0", - "renesas,etheravb-rcar-gen3"; + "renesas,etheravb-rcar-gen4"; reg =3D <0 0xe6830000 0 0x1000>; interrupts =3D , , @@ -775,7 +775,7 @@ avb3: ethernet@e6830000 { =20 avb4: ethernet@e6840000 { compatible =3D "renesas,etheravb-r8a779a0", - "renesas,etheravb-rcar-gen3"; + "renesas,etheravb-rcar-gen4"; reg =3D <0 0xe6840000 0 0x1000>; interrupts =3D , , @@ -823,7 +823,7 @@ avb4: ethernet@e6840000 { =20 avb5: ethernet@e6850000 { compatible =3D "renesas,etheravb-r8a779a0", - "renesas,etheravb-rcar-gen3"; + "renesas,etheravb-rcar-gen4"; reg =3D <0 0xe6850000 0 0x1000>; interrupts =3D , , @@ -935,7 +935,7 @@ scif4: serial@e6c40000 { =20 msiof0: spi@e6e90000 { compatible =3D "renesas,msiof-r8a779a0", - "renesas,rcar-gen3-msiof"; + "renesas,rcar-gen4-msiof"; reg =3D <0 0xe6e90000 0 0x0064>; interrupts =3D ; clocks =3D <&cpg CPG_MOD 618>; @@ -950,7 +950,7 @@ msiof0: spi@e6e90000 { =20 msiof1: spi@e6ea0000 { compatible =3D "renesas,msiof-r8a779a0", - "renesas,rcar-gen3-msiof"; + "renesas,rcar-gen4-msiof"; reg =3D <0 0xe6ea0000 0 0x0064>; interrupts =3D ; clocks =3D <&cpg CPG_MOD 619>; @@ -965,7 +965,7 @@ msiof1: spi@e6ea0000 { =20 msiof2: spi@e6c00000 { compatible =3D "renesas,msiof-r8a779a0", - "renesas,rcar-gen3-msiof"; + "renesas,rcar-gen4-msiof"; reg =3D <0 0xe6c00000 0 0x0064>; interrupts =3D ; clocks =3D <&cpg CPG_MOD 620>; @@ -980,7 +980,7 @@ msiof2: spi@e6c00000 { =20 msiof3: spi@e6c10000 { compatible =3D "renesas,msiof-r8a779a0", - "renesas,rcar-gen3-msiof"; + "renesas,rcar-gen4-msiof"; reg =3D <0 0xe6c10000 0 0x0064>; interrupts =3D ; clocks =3D <&cpg CPG_MOD 621>; @@ -995,7 +995,7 @@ msiof3: spi@e6c10000 { =20 msiof4: spi@e6c20000 { compatible =3D "renesas,msiof-r8a779a0", - "renesas,rcar-gen3-msiof"; + "renesas,rcar-gen4-msiof"; reg =3D <0 0xe6c20000 0 0x0064>; interrupts =3D ; clocks =3D <&cpg CPG_MOD 622>; @@ -1010,7 +1010,7 @@ msiof4: spi@e6c20000 { =20 msiof5: spi@e6c28000 { compatible =3D "renesas,msiof-r8a779a0", - "renesas,rcar-gen3-msiof"; + "renesas,rcar-gen4-msiof"; reg =3D <0 0xe6c28000 0 0x0064>; interrupts =3D ; clocks =3D <&cpg CPG_MOD 623>; --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 090292779C8; Sun, 24 Mar 2024 23:36:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323411; cv=none; b=iyPPSVk/4fMvVkGz1yhCnUDqUJH9wS4zcIZn6trx+QRQ01nXwD+cMY1xLThUzCPHIxdlDvc4r1ZnHEqMJK2uEjqVfDCXiOrvp5/7ZZjm2bJu7NlS0A7YJcizqJBE4C4kLZAI+tbJtvnMZdjAFQdgn5qmpmApmpvS1/xHVakw9X0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323411; c=relaxed/simple; bh=5kcALfjLxPEpHa0R3Lm1QHZF9d8sF3p8Y5boSEESVuI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=bbmd6dnObyxMYG0tkiD2smrCQdcr0lEc0nKOofFfjkAe2bwcKEDWJpaeiw+eMXsppo5ePkLRWmkWeidwzByMeUK6uQ/XM4SeC/Wxt70hk2f2utd4V3gmyA2tbUwLEJOwO7AykJJNyYhIrBi4oQAawFu0YkIu6t4T0ml8UqAvNek= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=LGxiLTLD; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="LGxiLTLD" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4F398C43394; Sun, 24 Mar 2024 23:36:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323409; bh=5kcALfjLxPEpHa0R3Lm1QHZF9d8sF3p8Y5boSEESVuI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=LGxiLTLDFKgFb5WQu2+c2Xy26GEqzUUJVuVnB/ODdLqhsEmWqiNeFgIuHTYAXH8bt H2a9EjcphpcJ6c1YrXd0pbG7PnRDUrwPiZPK9CEL7/8XaL5wyqWbAokzwt/tGe1yBG 4jE9oNYFVnZgfY5IUhGwhiSuPJd366E9BnpEW5ULqOuAGHA9kB0lGUmlZ1SP+4lGa4 pj4P3GCTSYzjF4Qx6g748dtgaixc0RGSndTrGrwJXlZFHoPElx7saIyPeCd+asr1DW gct9A/kLG/15EAGWO9kQWmG6DB8P+WaKGH9Nen3jAWeMCeiDYCv8wc2bCz+kQbPBN3 awW9EM/NhtDWw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Geert Uytterhoeven , Sasha Levin Subject: [PATCH 5.15 111/317] arm64: dts: renesas: r8a779a0: Correct avb[01] reg sizes Date: Sun, 24 Mar 2024 19:31:31 -0400 Message-ID: <20240324233458.1352854-112-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Geert Uytterhoeven [ Upstream commit 0c51912331f8ba5ce5fb52f46e340945160672a3 ] All Ethernet AVB instances on R-Car V3U have registers related to UDP/IP support, but the declared register blocks for the first two instances are too small to cover them. Fix this by extending the register block sizes. Fixes: 5a633320f08b8c9b ("arm64: dts: renesas: r8a779a0: Add Ethernet-AVB s= upport") Signed-off-by: Geert Uytterhoeven Link: https://lore.kernel.org/r/ce6ce3c4b1495e02e7c1803fca810a7178a84500.17= 07660323.git.geert+renesas@glider.be Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- arch/arm64/boot/dts/renesas/r8a779a0.dtsi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm64/boot/dts/renesas/r8a779a0.dtsi b/arch/arm64/boot/dt= s/renesas/r8a779a0.dtsi index c7d1b79692c11..ed71a10d023ee 100644 --- a/arch/arm64/boot/dts/renesas/r8a779a0.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a779a0.dtsi @@ -584,7 +584,7 @@ hscif3: serial@e66a0000 { avb0: ethernet@e6800000 { compatible =3D "renesas,etheravb-r8a779a0", "renesas,etheravb-rcar-gen4"; - reg =3D <0 0xe6800000 0 0x800>; + reg =3D <0 0xe6800000 0 0x1000>; interrupts =3D , , , @@ -632,7 +632,7 @@ avb0: ethernet@e6800000 { avb1: ethernet@e6810000 { compatible =3D "renesas,etheravb-r8a779a0", "renesas,etheravb-rcar-gen4"; - reg =3D <0 0xe6810000 0 0x800>; + reg =3D <0 0xe6810000 0 0x1000>; interrupts =3D , , , --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E18F62779D0; Sun, 24 Mar 2024 23:36:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323412; cv=none; b=Wz0qeJFGWiHlUluLDi6OQE1ACl2pw57x+eY+pjfJhVtNaYWuts8a+II5NOGmtooDvDlep1q45jKCuD9cYyYzRCrbaJQzcj2yQBk0073PObbfqbn3EhtqN+GsOknQ+Gq6AWbZlk4B3UTYLg31DC4kwovImEg7YjLMKryE5mBolqE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323412; c=relaxed/simple; bh=EWqCXld5+/sFVJsxeZf7kglMBM79UfZd99Nrpl/QVdk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=rYqMkvZLLOXS5ImBYXWMx4wODixzFWnuFrWOvrJGpyuOXO4dJFijGpssaFKbrZnDqio9bCrfWwdrrAS3TKSmZWT8ec3MkR3rDLGktzPV22cJvWoQ/HpjHmruxiaYEVNpopzd7Qbbhi18+mtPld1t06Sf7eWo037eReg49nUulf4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=R+lp0qPG; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="R+lp0qPG" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2AED7C43390; Sun, 24 Mar 2024 23:36:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323410; bh=EWqCXld5+/sFVJsxeZf7kglMBM79UfZd99Nrpl/QVdk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=R+lp0qPG3Hu8EeOFG40OLlVpLH0yjESAiNy7qL/lovWdaVciWdODTU/4Bz76b8Nb4 L2m6ohip1mQTWrCzDW9jCuSAIrrsxGVT7WWKnBVhJY1dKQs1/qqgUKuZysB8rsgFm6 NM5eD7NcAy33CB+Kzxn2XTg9fDGgABGK2jMUXeWDpNwqIeBO92M0oPf2vFMjmNxZZq fupuLsRamt57cpfBVNcnZ+ibvGbGUmeFZXJ3pDMCy/02Wi3MKOvMi/MWv6iTBKllft ZfMu+ctKbl6+3gQQCTLJ4lhfxcVLKZ1/T0dWluktjoTR0PwaTKoBAQt9Qm3hY72Sd0 bkNX3UzsSauWA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?Michal=20Vok=C3=A1=C4=8D?= , Shawn Guo , Sasha Levin Subject: [PATCH 5.15 112/317] ARM: dts: imx6dl-yapp4: Move phy reset into switch node Date: Sun, 24 Mar 2024 19:31:32 -0400 Message-ID: <20240324233458.1352854-113-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable From: Michal Vok=C3=A1=C4=8D [ Upstream commit 7da7b84fee58c85a6075022023d31edea40e81a1 ] Drop the phy-reset-duration and phy-reset-gpios deprecated properties and move reset-gpios under the switch node. Signed-off-by: Michal Vok=C3=A1=C4=8D Signed-off-by: Shawn Guo Stable-dep-of: 023bd910d3ab ("ARM: dts: imx6dl-yapp4: Fix typo in the QCA s= witch register address") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- arch/arm/boot/dts/imx6dl-yapp4-common.dtsi | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/arch/arm/boot/dts/imx6dl-yapp4-common.dtsi b/arch/arm/boot/dts= /imx6dl-yapp4-common.dtsi index e5c4dc65fbabf..844f31f7c4114 100644 --- a/arch/arm/boot/dts/imx6dl-yapp4-common.dtsi +++ b/arch/arm/boot/dts/imx6dl-yapp4-common.dtsi @@ -105,8 +105,6 @@ &fec { pinctrl-names =3D "default"; pinctrl-0 =3D <&pinctrl_enet>; phy-mode =3D "rgmii-id"; - phy-reset-gpios =3D <&gpio1 25 GPIO_ACTIVE_LOW>; - phy-reset-duration =3D <20>; phy-supply =3D <&sw2_reg>; status =3D "okay"; =20 @@ -130,6 +128,7 @@ phy_port3: phy@2 { switch@10 { compatible =3D "qca,qca8334"; reg =3D <10>; + reset-gpios =3D <&gpio1 25 GPIO_ACTIVE_LOW>; =20 switch_ports: ports { #address-cells =3D <1>; --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E018F2779D9; Sun, 24 Mar 2024 23:36:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323413; cv=none; b=ZiON/x7rbGMgeIfFhDXr6Ym5gpZL5nOuv9jPG584zf5BlHjX7NcORfD7N9KJIiYRLRVA9L4w2LCNyUYnEIJi1Xv8GKWb6dbBmMcQfBqT5ylFGtceqg/BdxRouWlnZrgNQF25M8UlfLdW7Qh66Mr2DX8jX8aV8UfypSD/hn9oU5c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323413; c=relaxed/simple; bh=WubfcSULKJ4wzT3l0PE5wg/VyrYArkzhxC2koqHrvV4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=bx/yMqOHLE7tLNDPNz8E5TZAuCuEnV951+Pm9yRLIidgq/NB2KKMlQJjKztiFXywq9ty161YPVLJ6Z3ev2dhejGQYamq7zDPhZZh4DZdHXtv3SqVqlHgdMV7hZk0A5zBA2RGh4AJ4KKdFdIWHnLzd3SI2OoiFPaay2gPaZFmMgM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=mwNV7FGS; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="mwNV7FGS" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1343BC433F1; Sun, 24 Mar 2024 23:36:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323411; bh=WubfcSULKJ4wzT3l0PE5wg/VyrYArkzhxC2koqHrvV4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=mwNV7FGSuTegb5VAdCb0EcKAWoN9LMF4W9ggxx8qYPm7H3Yd2nocm6Hcnm7mIhGQS 6J9slp4KwBpPTxEvYBypHPTrNfA1F11fONADHF4srmiNsowNM57fdtZ83QUaPWwZuz TXZRxXdnTaQMTGo3w6ab5coCZ9m3n0+K7ks4FPPg6lwBfNURD10vXgHxRbU8d4zCKM ovpMQgVApcoBSPeGJdhkzcck69ysrMuk1c1rvPj6DWmyw3M+KxuIB8hHlzn+Ikw5JL oDAdFzHzwv2S3lKd4eOWJhfD+AuoBYH3YG7wAINf3pnkxbdbzk9jsvPnL/p3t3UKLm GWz2Mv/4MsWOg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?Michal=20Vok=C3=A1=C4=8D?= , Andrew Lunn , Shawn Guo , Sasha Levin Subject: [PATCH 5.15 113/317] ARM: dts: imx6dl-yapp4: Fix typo in the QCA switch register address Date: Sun, 24 Mar 2024 19:31:33 -0400 Message-ID: <20240324233458.1352854-114-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable From: Michal Vok=C3=A1=C4=8D [ Upstream commit 023bd910d3ab735459f84b22bb99fb9e00bd9d76 ] This change does not have any functional effect. The switch works just fine without this patch as it has full access to all the addresses on the bus. This is simply a clean-up to set the node name address and reg address to the same value. Fixes: 15b43e497ffd ("ARM: dts: imx6dl-yapp4: Use correct pseudo PHY addres= s for the switch") Signed-off-by: Michal Vok=C3=A1=C4=8D Reviewed-by: Andrew Lunn Signed-off-by: Shawn Guo Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- arch/arm/boot/dts/imx6dl-yapp4-common.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/imx6dl-yapp4-common.dtsi b/arch/arm/boot/dts= /imx6dl-yapp4-common.dtsi index 844f31f7c4114..76da90e858045 100644 --- a/arch/arm/boot/dts/imx6dl-yapp4-common.dtsi +++ b/arch/arm/boot/dts/imx6dl-yapp4-common.dtsi @@ -127,7 +127,7 @@ phy_port3: phy@2 { =20 switch@10 { compatible =3D "qca,qca8334"; - reg =3D <10>; + reg =3D <0x10>; reset-gpios =3D <&gpio1 25 GPIO_ACTIVE_LOW>; =20 switch_ports: ports { --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C5E122779D7; Sun, 24 Mar 2024 23:36:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323412; cv=none; b=Fj6mT6MCiVJhbVKkFS5iAQsLKwkoqHOTi/i8WWlxNQX56d4oOCfaBS54LnJNbev0SYvx98+AXzDjJnsnY/jIaHWsaGkMMdI759X7zrPWYkVvT10QAz86V7vVNleUClz2DgpCn+7P5tBd4lsL2LWoP4Y1GOydDRiSr8vLcbqrsYs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323412; c=relaxed/simple; bh=vI7cyIplM0mY+XAcjngitzBuY6u1HBmAHntcvWfZL/s=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=cJQd8pytrDq+AWIf5QenA2I46YHqwm+CbJb+Yf8IiIB6ERu2VpRQF/GuThE6HYMi5c34z3av7wI8ygEz7jJ/crPYwDBFeFdidLYUeVcSn9x+75YA3PgVFcIX/WRt2WPfFk1NvNesh/cRpyJRqV9dZfMYk10G9n0AeJKr6fnD3LI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=h0ZA34m4; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="h0ZA34m4" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 11E4EC43390; Sun, 24 Mar 2024 23:36:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323412; bh=vI7cyIplM0mY+XAcjngitzBuY6u1HBmAHntcvWfZL/s=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=h0ZA34m4kQaaa6vEwKbk03l4mhH3UrzsPdwhHMr497TmUZ3HcYMq2jBYxhuPWzN1J jk5lJ0mofWNLlKaobn5yTkhAIanqUMWMvfhH7XUe92EqoCXq38jts7P2TARRqvEGNI TcP1US1I1vdLu3gw1YS7blP5fTaE7nOVBBtkSsL188UrBvpWvqmKGwlPzo1dAb0XHN zpedBr6ug4CdZqsFvmcy4d5gQiiCYWIFeUcxTxEzlTgeZRJc8QXXgtNhW9u81sduFI YtRnOn/JnPf9qGQkepeXlNjONGPza3zVLvjhB+Y1PF5HUKn2uopGfn/IthIEUh/8io rV8fzme05Zdew== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?Michal=20Vok=C3=A1=C4=8D?= , Shawn Guo , Sasha Levin Subject: [PATCH 5.15 114/317] ARM: dts: imx6dl-yapp4: Move the internal switch PHYs under the switch node Date: Sun, 24 Mar 2024 19:31:34 -0400 Message-ID: <20240324233458.1352854-115-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable From: Michal Vok=C3=A1=C4=8D [ Upstream commit 79978bff2e4b8e05ebdf5fc3ee6b794002393484 ] We identified that the PHYs actually do not work since commit 7da7b84fee58 ("ARM: dts: imx6dl-yapp4: Move phy reset into switch node") as a coincidence of several circumstances. The reset signal is kept asserted by a pull-down resistor on the board unless it is deasserted by GPIO from the SoC. This is to keep the switch dead until it is configured properly by the kernel and user space. Prior to the referenced commit the switch was reset by the FEC driver and the reset GPIO was actively deasserted. The mdio-bus was scanned and the attached switch and its PHYs were found and configured. With the referenced commit the switch is reset by the qca8k driver. Because of another bug in the qca8k driver, functionality of the reset pin depends on its pre-kernel configuration. See commit c44fc98f0a8f ("net: dsa: qca8k: fix illegal usage of GPIO") The problem did not appear until we removed support for the switch and configuration of its reset pin from the bootloader. To fix that, properly describe the internal mdio-bus configuration of the qca8334 switch. The PHYs are internal to the switch and sit on its internal mdio-bus. Fixes: 7da7b84fee58 ("ARM: dts: imx6dl-yapp4: Move phy reset into switch no= de") Signed-off-by: Michal Vok=C3=A1=C4=8D Signed-off-by: Shawn Guo Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- arch/arm/boot/dts/imx6dl-yapp4-common.dtsi | 23 ++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/arch/arm/boot/dts/imx6dl-yapp4-common.dtsi b/arch/arm/boot/dts= /imx6dl-yapp4-common.dtsi index 76da90e858045..69ad1f198fa71 100644 --- a/arch/arm/boot/dts/imx6dl-yapp4-common.dtsi +++ b/arch/arm/boot/dts/imx6dl-yapp4-common.dtsi @@ -117,14 +117,6 @@ mdio { #address-cells =3D <1>; #size-cells =3D <0>; =20 - phy_port2: phy@1 { - reg =3D <1>; - }; - - phy_port3: phy@2 { - reg =3D <2>; - }; - switch@10 { compatible =3D "qca,qca8334"; reg =3D <0x10>; @@ -149,15 +141,30 @@ fixed-link { eth2: port@2 { reg =3D <2>; label =3D "eth2"; + phy-mode =3D "internal"; phy-handle =3D <&phy_port2>; }; =20 eth1: port@3 { reg =3D <3>; label =3D "eth1"; + phy-mode =3D "internal"; phy-handle =3D <&phy_port3>; }; }; + + mdio { + #address-cells =3D <1>; + #size-cells =3D <0>; + + phy_port2: ethernet-phy@1 { + reg =3D <1>; + }; + + phy_port3: ethernet-phy@2 { + reg =3D <2>; + }; + }; }; }; }; --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B27042779DF; Sun, 24 Mar 2024 23:36:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323414; cv=none; b=JP50/lZs6SZAmKkC5xtd/Dt+ubVTXs34mhCyyiewW7fhBV/2O5bxVzEyckO3yo74HNYezbLkexSmnXvDpqZoDkfdJCuv2CuTE0mqigi4j66PhOT5bhFvrkK90O6m/nChrrEBgu4crTuFJHnjXtS1LFNCmubWDi7e9w8y4nqe2RE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323414; c=relaxed/simple; bh=JhEEWSKSgsBQevJuZJkvePvPOhReXJaVKUgv87VQtGM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=gZEsE2ZVOs3vLKMedrkl9im/K5Ma2RxFzxKxXgEatqMi+kS90T/FRGlZ7KlYq/RIBbFu3zaWOj4BRU4pfDrWizS7/tb4TKTHXxe2fcl8287RsnF+MS9fXJS9wvqbFF4xh4wkoKR+apIsGqQEKZ2BOX0hqiksBsTjG05Ax6hi/cs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=plwHa4wP; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="plwHa4wP" Received: by smtp.kernel.org (Postfix) with ESMTPSA id EDB89C43394; Sun, 24 Mar 2024 23:36:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323413; bh=JhEEWSKSgsBQevJuZJkvePvPOhReXJaVKUgv87VQtGM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=plwHa4wPdgDHZ9Bf1fSYWpeByqJ2L1mvIfqsaleWkhm5/VJ6TcLNY+xiJPrCHd3jp cjMlz33OIg/iKVBQ11C/DIWOXJh5NOOYNDOIvJSzBVD8sy4yAmnkG5bQD07hzkf9nJ t5pwKZ08f1inwJrPD4j7VplsSN85BY0uJ63t3e6lFtt24Sc/GgdDVHAEzEejO1swXB 0g+0KksdQuFYTazuMFCtBKpVqbD6ffaxrN3Db9dAK21qA+gG+xPp4mmrK/bv+OhcA2 M7qb9k7wkp8Z1xawIsmZVLc447ewr7DW3A1O73b2uvdwdep61+MJ25y3H4WV8Tdbxe O7itdu4jcbxPg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= , Gregory CLEMENT , Sasha Levin Subject: [PATCH 5.15 115/317] arm64: dts: marvell: reorder crypto interrupts on Armada SoCs Date: Sun, 24 Mar 2024 19:31:35 -0400 Message-ID: <20240324233458.1352854-116-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable From: Rafa=C5=82 Mi=C5=82ecki [ Upstream commit ec55a22149d64f9ac41845d923b884d4a666bf4d ] Match order specified in binding documentation. It says "mem" should be the last interrupt. This fixes: arch/arm64/boot/dts/marvell/armada-3720-db.dtb: crypto@90000: interrupt-nam= es:0: 'ring0' was expected from schema $id: http://devicetree.org/schemas/crypto/inside-secure= ,safexcel.yaml# arch/arm64/boot/dts/marvell/armada-3720-db.dtb: crypto@90000: interrupt-nam= es:1: 'ring1' was expected from schema $id: http://devicetree.org/schemas/crypto/inside-secure= ,safexcel.yaml# arch/arm64/boot/dts/marvell/armada-3720-db.dtb: crypto@90000: interrupt-nam= es:2: 'ring2' was expected from schema $id: http://devicetree.org/schemas/crypto/inside-secure= ,safexcel.yaml# arch/arm64/boot/dts/marvell/armada-3720-db.dtb: crypto@90000: interrupt-nam= es:3: 'ring3' was expected from schema $id: http://devicetree.org/schemas/crypto/inside-secure= ,safexcel.yaml# arch/arm64/boot/dts/marvell/armada-3720-db.dtb: crypto@90000: interrupt-nam= es:4: 'eip' was expected from schema $id: http://devicetree.org/schemas/crypto/inside-secure= ,safexcel.yaml# arch/arm64/boot/dts/marvell/armada-3720-db.dtb: crypto@90000: interrupt-nam= es:5: 'mem' was expected from schema $id: http://devicetree.org/schemas/crypto/inside-secure= ,safexcel.yaml# Signed-off-by: Rafa=C5=82 Mi=C5=82ecki Signed-off-by: Gregory CLEMENT Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- arch/arm64/boot/dts/marvell/armada-37xx.dtsi | 10 +++++----- arch/arm64/boot/dts/marvell/armada-cp11x.dtsi | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi b/arch/arm64/boot= /dts/marvell/armada-37xx.dtsi index 0adc194e46d15..9d147af115831 100644 --- a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi +++ b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi @@ -414,14 +414,14 @@ xor11 { crypto: crypto@90000 { compatible =3D "inside-secure,safexcel-eip97ies"; reg =3D <0x90000 0x20000>; - interrupts =3D , - , + interrupts =3D , , , , - ; - interrupt-names =3D "mem", "ring0", "ring1", - "ring2", "ring3", "eip"; + , + ; + interrupt-names =3D "ring0", "ring1", "ring2", + "ring3", "eip", "mem"; clocks =3D <&nb_periph_clk 15>; }; =20 diff --git a/arch/arm64/boot/dts/marvell/armada-cp11x.dtsi b/arch/arm64/boo= t/dts/marvell/armada-cp11x.dtsi index 3bd2182817fb8..408fc9bfc9627 100644 --- a/arch/arm64/boot/dts/marvell/armada-cp11x.dtsi +++ b/arch/arm64/boot/dts/marvell/armada-cp11x.dtsi @@ -506,14 +506,14 @@ CP11X_LABEL(sdhci0): sdhci@780000 { CP11X_LABEL(crypto): crypto@800000 { compatible =3D "inside-secure,safexcel-eip197b"; reg =3D <0x800000 0x200000>; - interrupts =3D <87 IRQ_TYPE_LEVEL_HIGH>, - <88 IRQ_TYPE_LEVEL_HIGH>, + interrupts =3D <88 IRQ_TYPE_LEVEL_HIGH>, <89 IRQ_TYPE_LEVEL_HIGH>, <90 IRQ_TYPE_LEVEL_HIGH>, <91 IRQ_TYPE_LEVEL_HIGH>, - <92 IRQ_TYPE_LEVEL_HIGH>; - interrupt-names =3D "mem", "ring0", "ring1", - "ring2", "ring3", "eip"; + <92 IRQ_TYPE_LEVEL_HIGH>, + <87 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names =3D "ring0", "ring1", "ring2", "ring3", + "eip", "mem"; clock-names =3D "core", "reg"; clocks =3D <&CP11X_LABEL(clk) 1 26>, <&CP11X_LABEL(clk) 1 17>; --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8F7382779DD; Sun, 24 Mar 2024 23:36:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323414; cv=none; b=PAVpzzq9VFdsMgpOqEtNpfhU9RCejdGU0SpoYQFZw0liVOXGm9J5Gx3OnfrWXxA4jN6olzn+Ps8h8Wd+Cf13MEup2L81PWhH5PHU9bYouTHiIfcQX2Ga8rZYNrq2d+TzGp3rcGDSQ5xG4lrePNSkb0+9NHWVWAvKmF4h2hcajmg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323414; c=relaxed/simple; bh=/YcyTFGQuKRCQLnEtNVZ7X7oui9OK53d2UmFWsIndx8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=KGl43+OZYYj2buw9X/5RqQagw4HYKSMdgmynWgaQprLNMO8mrm5q6PGUSNzQfmCCSFQOD+vPmGaWtZ/dWC0Pp59f5p4bBtjkJP8FaP2FH7TnBD//cm7EC0xmV3Ox35dtzos8Hq1l1WZFdN33MTLVU+8Za+soYqwtQIGiDa897dU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=mNpyfc0+; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="mNpyfc0+" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D1590C433F1; Sun, 24 Mar 2024 23:36:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323414; bh=/YcyTFGQuKRCQLnEtNVZ7X7oui9OK53d2UmFWsIndx8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=mNpyfc0+z4QIYV+uQrKdMksN417XkywLDfuykTOqsbbgcyx3lE2xoV4ur16Wvbx7M 3NidfYao3UHkPnnAHeirIml3wM2mkPUBPKTejXSZkM9qusrp8+1UmUjAfcFTaO5K2h Xp3SMID8A6JcKkj7BRaXVrBNiNxKAxcKuv3W+dkXewpfkNiJ5aOVrLWXrMbGfI8Xjd +YdQeRz6mMt5LRMN5na0KKeJxf/giHref5vDDiQVHngOqY58yNwpUgLQ8WMu0qoSSW dPYdURxpP1uL/2IKETMIv1M3K0O3t+P0mDpARRT7Db9A4DD0uypx131t11/xmD5KQj IvNWDrxBGhD2w== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: David McFarland , "Rafael J . Wysocki" , Sasha Levin Subject: [PATCH 5.15 116/317] ACPI: resource: Add Infinity laptops to irq1_edge_low_force_override Date: Sun, 24 Mar 2024 19:31:36 -0400 Message-ID: <20240324233458.1352854-117-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: David McFarland [ Upstream commit e2605d4039a42a03000856b3229932455717b48b ] A user reported a keyboard problem similar to ones reported with other Zen laptops, on an Infinity E15-5A165-BM. Add board name matches for this model and one (untested) close relative to irq1_edge_low_force_override. Link: https://lemmy.ml/post/9864736 Link: https://www.infinitygaming.com.au/bios/ Link: https://lore.kernel.org/linux-acpi/20231006123304.32686-1-hdegoede@re= dhat.com Signed-off-by: Rafael J. Wysocki Stable-dep-of: 021a67d09615 ("ACPI: resource: Add MAIBENBEN X577 to irq1_ed= ge_low_force_override") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/acpi/resource.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/drivers/acpi/resource.c b/drivers/acpi/resource.c index a364cb07c5578..16a18654f6879 100644 --- a/drivers/acpi/resource.c +++ b/drivers/acpi/resource.c @@ -546,6 +546,18 @@ static const struct dmi_system_id lg_laptop[] =3D { DMI_MATCH(DMI_BOARD_NAME, "17U70P"), }, }, + { + /* Infinity E15-5A165-BM */ + .matches =3D { + DMI_MATCH(DMI_BOARD_NAME, "GM5RG1E0009COM"), + }, + }, + { + /* Infinity E15-5A305-1M */ + .matches =3D { + DMI_MATCH(DMI_BOARD_NAME, "GM5RGEE0016COM"), + }, + }, { } }; =20 --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7488D2779E3; Sun, 24 Mar 2024 23:36:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323415; cv=none; b=GGc+5rIw+Ol7G6XVDJx3kRmj3ux1T7SSlUeNnbcfSYI3f5rK14FFnPW6SNim48U1tE80J4TjSm568UrjbnYaPMMg6PAU6aVbi1JG6VjRpissXwS9204avNW69uHotZjzXO8ObxjnGP6h/2qt9HbdpNuKf13LQ2rFItimvxZYmvQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323415; c=relaxed/simple; bh=mzT4Q+z9FiXg3S/XaF8ChxTrhgd0KtXLW1G73ipIrx4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Gksnb0HbdXUxLDqUbC9HxxVjT5TYrJmvHG8JmMKKnHF410+gK6ZOmb3JNFolIV7UTuZ3sHvlDsb2zh0ZlcGLAbEK/7BJQhfuWv0DxnWnFMzef+L/NHhB4J2U8PIW2VltmNE8DZVZfLY6fPH5Ftpe2tNKi+cip+8SiW5wLu5pyaU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=RNQUopKQ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="RNQUopKQ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B415BC433C7; Sun, 24 Mar 2024 23:36:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323415; bh=mzT4Q+z9FiXg3S/XaF8ChxTrhgd0KtXLW1G73ipIrx4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=RNQUopKQOVemT4um65Qa3fugQL8fhq97zUcFqZs05gIBv563VLoMcH2VuUviaEQvg t54Ha0+vF787EShQrAdkYOF51ay8dgUcT8dog0bv9OXWbfbJ149/2uWbDhFmRqwKFg R5kzB0Bsu8VGsQEsvulN/Ytvo0pkzApHK6f86yfgduzIlWeBa75WSn9tBcc4b7XxWA oiq+0UPsPMc+nRj0ZUnzAAZQp1VLntQcwkaXtNTFj2OAk5x4cDz7SWadNb4BIOH3kF d9lKLNnLU2M4XwGXMmrNOAASuIO0Z9TuemQ8tnYwIp4H8r4V7pqO2PHSkcmUF0jyW1 Ro5TIgmvhTRqw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: "Alexey I. Froloff" , "Rafael J . Wysocki" , Sasha Levin Subject: [PATCH 5.15 117/317] ACPI: resource: Do IRQ override on Lunnen Ground laptops Date: Sun, 24 Mar 2024 19:31:37 -0400 Message-ID: <20240324233458.1352854-118-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: "Alexey I. Froloff" [ Upstream commit e23ad54fef186aa66007895be1382c88f1ee2bf7 ] The Lunnen Ground 15 and 16 needs IRQ overriding for the keyboard to work. Adding an entries for these laptops to the override_table makes the internal keyboard functional. Signed-off-by: Alexey I. Froloff Signed-off-by: Rafael J. Wysocki Stable-dep-of: 021a67d09615 ("ACPI: resource: Add MAIBENBEN X577 to irq1_ed= ge_low_force_override") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/acpi/resource.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/drivers/acpi/resource.c b/drivers/acpi/resource.c index 16a18654f6879..a46e0bf0e1dc4 100644 --- a/drivers/acpi/resource.c +++ b/drivers/acpi/resource.c @@ -558,6 +558,20 @@ static const struct dmi_system_id lg_laptop[] =3D { DMI_MATCH(DMI_BOARD_NAME, "GM5RGEE0016COM"), }, }, + { + /* Lunnen Ground 15 / AMD Ryzen 5 5500U */ + .matches =3D { + DMI_MATCH(DMI_SYS_VENDOR, "Lunnen"), + DMI_MATCH(DMI_BOARD_NAME, "LLL5DAW"), + }, + }, + { + /* Lunnen Ground 16 / AMD Ryzen 7 5800U */ + .matches =3D { + DMI_MATCH(DMI_SYS_VENDOR, "Lunnen"), + DMI_MATCH(DMI_BOARD_NAME, "LL6FA"), + }, + }, { } }; =20 --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6AE80130A48; Sun, 24 Mar 2024 23:36:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323417; cv=none; b=LUBiOpe/BAmIOlZVdbnDxaBxHLtrHHIb7yKATJfl7XAT7gw7Ygp+xQ6WC6kwluExXX1GFLVqtB8txx1GOwrBfo0v5zO8DVWnXXVFgIIfOWlV1mNai+a+0l1GQeRzNIj67uIqeo+J1xnSXlGShffAOaHTuhn6HbGhbfwRxGZTMWs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323417; c=relaxed/simple; bh=7KtJtuNFRVaxEGGiEmg0uLBDuikiomwiTay6L1kpgZM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=eVIrBwbvvdCAIVjniWn75mbPidAffYPbNpGWBtiKNq8RRidREdoqiOp3UZLyd48RzgdXYvOfwYkDoUK8rySlyp2WrjE8U5VUMB836iSWrQ+t5WFzkoXfDAbywE3P/UNoNEeOUWIONjoOa4mFE1F4XnkIJE9c2+2A77AKan1WwWg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ZtrHIKER; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ZtrHIKER" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 96E1BC43394; Sun, 24 Mar 2024 23:36:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323416; bh=7KtJtuNFRVaxEGGiEmg0uLBDuikiomwiTay6L1kpgZM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ZtrHIKERzWSw/tWA2IORunSDzQ/xtpyPLh2PJfL9O89/Bp7dE0qXUzRGyTY6t7ELG Fv1inmkxViLehz+xqR+utTfuN9cT1WLkOxWvKfwAegdJDwUB0CLCJpG0eOWBM1H/Fj IBwGOmQhCBTCIZNxNVawLMMZ2SSHOataOBrVLFWD62Ko7S37nUXAbghvCLM6AZ/rHf mWuunrGx6rk29KevhcQZSJNjp6YixktLjbZ3FmGJ8xHc3W/2ueWXLyJoruZjiigqiR 1LGpSYk0Sy2Kwl7ruUhCAA8g/5jmvq1/p+vyrE3PtAavXyHyRLswyFB4fEn3IncAHx RmEbi+lMFEUwQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Maxim Kudinov , Maxim Trofimov , "Rafael J . Wysocki" , Sasha Levin Subject: [PATCH 5.15 118/317] ACPI: resource: Add MAIBENBEN X577 to irq1_edge_low_force_override Date: Sun, 24 Mar 2024 19:31:38 -0400 Message-ID: <20240324233458.1352854-119-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Maxim Kudinov [ Upstream commit 021a67d096154893cd1d883c7be0097e2ee327fd ] A known issue on some Zen laptops, keyboard stopped working due to commit 9946e39fe8d0 fael@kernel.org("ACPI: resource: skip IRQ override on AMD Zen platforms") on kernel 5.19.10. The ACPI IRQ override is required for this board due to buggy DSDT, thus adding the board vendor and name to irq1_edge_low_force_override fixes the issue. Fixes: 9946e39fe8d0 ("ACPI: resource: skip IRQ override on AMD Zen platform= s") Link: https://bugzilla.kernel.org/show_bug.cgi?id=3D217394 Link: https://lore.kernel.org/linux-acpi/20231006123304.32686-1-hdegoede@re= dhat.com/ Tested-by: Maxim Trofimov Signed-off-by: Maxim Kudinov Signed-off-by: Rafael J. Wysocki Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/acpi/resource.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/acpi/resource.c b/drivers/acpi/resource.c index a46e0bf0e1dc4..0f533aff23a17 100644 --- a/drivers/acpi/resource.c +++ b/drivers/acpi/resource.c @@ -572,6 +572,13 @@ static const struct dmi_system_id lg_laptop[] =3D { DMI_MATCH(DMI_BOARD_NAME, "LL6FA"), }, }, + { + /* MAIBENBEN X577 */ + .matches =3D { + DMI_MATCH(DMI_SYS_VENDOR, "MAIBENBEN"), + DMI_MATCH(DMI_BOARD_NAME, "X577"), + }, + }, { } }; =20 --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4B7D1130A45; Sun, 24 Mar 2024 23:36:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323417; cv=none; b=XR/FIC4Dx5vL6kYS1Q4GxQ4+bU2oAf2z9UE01mqG9QR7iS++zx7Grm9TsXE10ItY2fZX5vBPrEYz9T1PmUflqDT/YG25hTBxECYz65B2wSM3FIDXtweoSIbcflzG0uZB7svZ8VdYUE+yKktWBnjQOXjoDTtMgdFfIDrowJbefUk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323417; c=relaxed/simple; bh=Mip5MWJ++KzY+R8yIoSXV3S+4kKpHzFO5vdVn6dFUpA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=WSo3/jvUbUO4P7ib6D4S07Yi6MYDg50DoM9bBO9r8MbA5D7r5qocznauFQMNmmo92oUNcy4s9N9Q9kqhYHxejblUk3RKA01HVAFwsBfnKYVbKrA8KIswZ4qChlgwkVbr+d903SF4Bod9r4O1KxoGHLrdzV4ut98qM3pyORV413g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=egBYk9aV; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="egBYk9aV" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8F06DC43390; Sun, 24 Mar 2024 23:36:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323417; bh=Mip5MWJ++KzY+R8yIoSXV3S+4kKpHzFO5vdVn6dFUpA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=egBYk9aVEzEx8OvlVaNZDvCsNnKxt3gYK7uVBmGFtD2B4+srMcKgN63+63oULTdxX p5RGKwLS6OJm5O7AOjxQQePEzTc1yHAus58JuDefrNOQleb3DqxNE+tQa5RN1256eu Hso5YVtPCdomrfPR6PydHz+jVReg69A+LfxN1FXR3OxmGCKnSIa13LPR+WeiFHm1hW aqTNBCsApjCU2T3Z1rDuGSLgJL+HSW7rKHopF0oroztlzGLGzp68Ma0cApX5OsQULe qtp8eNxLZve4/6j76R0+fsn02vaPn64FfN/gx7mDoyolt6k1DAZmDAyxbqUZW43XDs ejMjAbPVghYMQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: "Rafael J. Wysocki" , Jonathan Cameron , Sasha Levin Subject: [PATCH 5.15 119/317] ACPI: scan: Fix device check notification handling Date: Sun, 24 Mar 2024 19:31:39 -0400 Message-ID: <20240324233458.1352854-120-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: "Rafael J. Wysocki" [ Upstream commit 793551c965116d9dfaf0550dacae1396a20efa69 ] It is generally invalid to fail a Device Check notification if the scan handler has not been attached to the given device after a bus rescan, because there may be valid reasons for the scan handler to refuse attaching to the device (for example, the device is not ready). For this reason, modify acpi_scan_device_check() to return 0 in that case without printing a warning. While at it, reduce the log level of the "already enumerated" message in the same function, because it is only interesting when debugging notification handling Fixes: 443fc8202272 ("ACPI / hotplug: Rework generic code to handle suprise= removals") Signed-off-by: Rafael J. Wysocki Reviewed-by: Jonathan Cameron Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/acpi/scan.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c index ae74720888dbf..2393cd993b3cb 100644 --- a/drivers/acpi/scan.c +++ b/drivers/acpi/scan.c @@ -315,18 +315,14 @@ static int acpi_scan_device_check(struct acpi_device = *adev) * again). */ if (adev->handler) { - dev_warn(&adev->dev, "Already enumerated\n"); - return -EALREADY; + dev_dbg(&adev->dev, "Already enumerated\n"); + return 0; } error =3D acpi_bus_scan(adev->handle); if (error) { dev_warn(&adev->dev, "Namespace scan failure\n"); return error; } - if (!adev->handler) { - dev_warn(&adev->dev, "Enumeration failure\n"); - error =3D -ENODEV; - } } else { error =3D acpi_scan_device_not_present(adev); } --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 487D22779EE; Sun, 24 Mar 2024 23:36:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323419; cv=none; b=gK0eZAjWnZNQkWnV7BEGoW8k+gEr26hCuHzE2ghVQqky5AnwfqswwO86dxXQV2pRauZKfV3nR4xyvFPOuWe6bZ55M88zkF9pf5gqUPTIQ6L+6lGwScoqoi6wZyQIqm30IvtFP3iURIyWzai5KGTupxSZ6R+4cJtxzaFwaFKHPZ8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323419; c=relaxed/simple; bh=Nlb0kfRs55O1BM88q2wK77zYMHkHRNZGzQoYWnRr4Lw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=TRxKyMNu5k0TJA2wCDT9gca4X3MrXdqc0a7ktNevJ9ekaKqiaUbE80Hw68ELD9ZXJVA7LIK3MDAThWUBFWOaHUGoDmSOJQAldu3e5rZHbxDdzQRl1frNBngPQR9SVdspiQaq3KP9zTf6BWoBcC3+wx6PGrI0w4FtnXDUiDOe9qk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=gsphssrx; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="gsphssrx" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 70C80C433B1; Sun, 24 Mar 2024 23:36:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323418; bh=Nlb0kfRs55O1BM88q2wK77zYMHkHRNZGzQoYWnRr4Lw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=gsphssrxQzuHqphlVURxl9LPugHU3/V57Gfr0w4RoaeaeEvUzJquoGRq1fSENC8V0 /bccemamnR30Rv+rIwbki0ee4NSKMyW70pfzR/4SITygskJWHaMYPE6V2WVsiBVVCP w1/jNYdQmq6SzYRWSI2yjbSpzZSfR97ckP0S0hGQ+RA0CoEh/c7RekUq/yaKWQiktK URGZDBdn0hYbKjNn5AjeshagtLserEEEX+WNKWX5FiXeZCgHVSvAkHJzJ13XQALx86 Zs2VDX7h+REMSe1NfL1bUkjZ2oMvX0sZhyBBFN364VrTHlm22x47bOuDfmMz5cOZHN EtNuSuI9x7+bg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Kees Cook , Guixiong Wei , Juergen Gross , Sasha Levin Subject: [PATCH 5.15 120/317] x86, relocs: Ignore relocations in .notes section Date: Sun, 24 Mar 2024 19:31:40 -0400 Message-ID: <20240324233458.1352854-121-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Kees Cook [ Upstream commit aaa8736370db1a78f0e8434344a484f9fd20be3b ] When building with CONFIG_XEN_PV=3Dy, .text symbols are emitted into the .notes section so that Xen can find the "startup_xen" entry point. This information is used prior to booting the kernel, so relocations are not useful. In fact, performing relocations against the .notes section means that the KASLR base is exposed since /sys/kernel/notes is world-readable. To avoid leaking the KASLR base without breaking unprivileged tools that are expecting to read /sys/kernel/notes, skip performing relocations in the .notes section. The values readable in .notes are then identical to those found in System.map. Reported-by: Guixiong Wei Closes: https://lore.kernel.org/all/20240218073501.54555-1-guixiongwei@gmai= l.com/ Fixes: 5ead97c84fa7 ("xen: Core Xen implementation") Fixes: da1a679cde9b ("Add /sys/kernel/notes") Reviewed-by: Juergen Gross Signed-off-by: Kees Cook Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- arch/x86/tools/relocs.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/arch/x86/tools/relocs.c b/arch/x86/tools/relocs.c index 27c82207d3878..3167228ca1746 100644 --- a/arch/x86/tools/relocs.c +++ b/arch/x86/tools/relocs.c @@ -599,6 +599,14 @@ static void print_absolute_relocs(void) if (!(sec_applies->shdr.sh_flags & SHF_ALLOC)) { continue; } + /* + * Do not perform relocations in .notes section; any + * values there are meant for pre-boot consumption (e.g. + * startup_xen). + */ + if (sec_applies->shdr.sh_type =3D=3D SHT_NOTE) { + continue; + } sh_symtab =3D sec_symtab->symtab; sym_strtab =3D sec_symtab->link->strtab; for (j =3D 0; j < sec->shdr.sh_size/sizeof(Elf_Rel); j++) { --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2C8252779ED; Sun, 24 Mar 2024 23:36:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323419; cv=none; b=WfeE86B0d5Vjz3RlJRZjZzoLr9T2w2g4gWYoOUw1GylLs0S7snZAZ3Np0WNgdfz43zFzKxDaKGJYMP+MpeWDSjSpiTn+bLUfu1QElw4MnZJBeaOlk+KIwDhUuq26zdl+A7nOTaPF/vZJZbtabg26eN5OBbLkJ6S8SWoJuWNlvF4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323419; c=relaxed/simple; bh=uRoRsaHWAWpKpAmF0MLAb2S1bcEcuSVKZ2mxImqiWlo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=h87grDXm4JzqICtSrPhUuNfAvVvHbqE//FVMyXqJQ0taZynBp2Ei0q/wKfrmxkth3PJTvS4XIZlEfdiX7eOWxFJagchpiOfxsgx55+OsLExfRuYQxCZKFOr9rH2hI6lluYWfXtQk4pkC2LwM/0Cf3jesW7H9bsz5vt+LglFltZc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=pZBjBabh; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="pZBjBabh" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6CF80C433C7; Sun, 24 Mar 2024 23:36:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323419; bh=uRoRsaHWAWpKpAmF0MLAb2S1bcEcuSVKZ2mxImqiWlo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=pZBjBabhU1fCUD8SC/UJ4AwxavU5Z+EeUOovSjqjuAEr3iLJ6KxJckob1IX4IIpLQ 5LFbAJXp+LSZhm0WfFEAUEs8tCmnvr5eQxkCTFopzukODRkX9RLpkdgvFP3AJDKaUJ O+5+qvtfH7ztiW785V9djzKidf+TDpLEUzUX4s+QtkxdcCJeBdil4niQeS9ksn4oIN SZLEaEHpWr/Q55vbFuIM1cWbGRaUNkX1E+KNDIztwY7IdRRW28ST78hw9o3d/bSyzG Xu4XvcTHx9t05rT2TGudEl1QKcuCyddJo69DLeBm8DW14SZmGgC7RbLZD2LpbRhBCv NP8i5St8D9c4Q== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Zhipeng Lu , Chuck Lever , Sasha Levin Subject: [PATCH 5.15 121/317] SUNRPC: fix some memleaks in gssx_dec_option_array Date: Sun, 24 Mar 2024 19:31:41 -0400 Message-ID: <20240324233458.1352854-122-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Zhipeng Lu [ Upstream commit 3cfcfc102a5e57b021b786a755a38935e357797d ] The creds and oa->data need to be freed in the error-handling paths after their allocation. So this patch add these deallocations in the corresponding paths. Fixes: 1d658336b05f ("SUNRPC: Add RPC based upcall mechanism for RPCGSS aut= h") Signed-off-by: Zhipeng Lu Signed-off-by: Chuck Lever Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- net/sunrpc/auth_gss/gss_rpc_xdr.c | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/net/sunrpc/auth_gss/gss_rpc_xdr.c b/net/sunrpc/auth_gss/gss_rp= c_xdr.c index d79f12c2550ac..cb32ab9a83952 100644 --- a/net/sunrpc/auth_gss/gss_rpc_xdr.c +++ b/net/sunrpc/auth_gss/gss_rpc_xdr.c @@ -250,8 +250,8 @@ static int gssx_dec_option_array(struct xdr_stream *xdr, =20 creds =3D kzalloc(sizeof(struct svc_cred), GFP_KERNEL); if (!creds) { - kfree(oa->data); - return -ENOMEM; + err =3D -ENOMEM; + goto free_oa; } =20 oa->data[0].option.data =3D CREDS_VALUE; @@ -265,29 +265,40 @@ static int gssx_dec_option_array(struct xdr_stream *x= dr, =20 /* option buffer */ p =3D xdr_inline_decode(xdr, 4); - if (unlikely(p =3D=3D NULL)) - return -ENOSPC; + if (unlikely(p =3D=3D NULL)) { + err =3D -ENOSPC; + goto free_creds; + } =20 length =3D be32_to_cpup(p); p =3D xdr_inline_decode(xdr, length); - if (unlikely(p =3D=3D NULL)) - return -ENOSPC; + if (unlikely(p =3D=3D NULL)) { + err =3D -ENOSPC; + goto free_creds; + } =20 if (length =3D=3D sizeof(CREDS_VALUE) && memcmp(p, CREDS_VALUE, sizeof(CREDS_VALUE)) =3D=3D 0) { /* We have creds here. parse them */ err =3D gssx_dec_linux_creds(xdr, creds); if (err) - return err; + goto free_creds; oa->data[0].value.len =3D 1; /* presence */ } else { /* consume uninteresting buffer */ err =3D gssx_dec_buffer(xdr, &dummy); if (err) - return err; + goto free_creds; } } return 0; + +free_creds: + kfree(creds); +free_oa: + kfree(oa->data); + oa->data =3D NULL; + return err; } =20 static int gssx_dec_status(struct xdr_stream *xdr, --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0FF652779F4; Sun, 24 Mar 2024 23:37:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323420; cv=none; b=XBI7URaO0HjXOjFl8cW86jQg+b7fozrocVPbN/+jbAHsCxW8WR/INeRZWMSqXGYtiNhUoxC26eNPEk09eap0wso2chXiKdGncII/xm/UqXDsf66jlt6cC6FzozO5bpduVDi7Lb4NfLNKPQY8BZUh0R+O8BL+hq80sXnX5QFhmI0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323420; c=relaxed/simple; bh=KUcareWsI1VAdK+DJxxdVOXWGUo+3jqHf8bnKxBeUQA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=FWZL95v39Unb/YwE3LL4Cngo1AT9u3pQMzpeQHkX4Z/WKOWqfBCs0+MBqO87nli95nWNuqs0ltj0mJeNssNOR4PdzORjc5Y4M0Wb21gjOFvNrq4fyhGTsDsTOk4i85GTFbTs+1I03FDixzLp/l+K2+jCgPZxCbT/VCoOa1Z60n0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=W9DnIyab; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="W9DnIyab" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 50B09C43394; Sun, 24 Mar 2024 23:36:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323419; bh=KUcareWsI1VAdK+DJxxdVOXWGUo+3jqHf8bnKxBeUQA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=W9DnIyabhLQDCpc+0PoLAF+YyzK3tS5PHPMEq9rPG46FQUfVLJg+eJSsGXNNWd4Id O+lfUrdoBZqxy2IMc6lie6ZJDBUp5X+MRa9Rt4LJ2xoHAgJPbl0WUEp0V0aVWaOAlc MUtFpR8OWe3c85JqrYvdNxR+E9yHwjChQUoyMQvv5krC7ADSY+spazNbnNOj4jAKhI 5TphNZFxQfRjThSRz92yiPGZUV2JYSEBrRqnsB4ny+8vXJMas1q8XVtv8dWaGYEzEq xOxHewMykIb4viDQkHo1rFisMDdN+zEfCaZbU3f7lNiSLQ9R5nM8/SJnV2M1nHtEHq 6uh/2hZgEM2YA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Christophe JAILLET , Ulf Hansson , Sasha Levin Subject: [PATCH 5.15 122/317] mmc: wmt-sdmmc: remove an incorrect release_mem_region() call in the .remove function Date: Sun, 24 Mar 2024 19:31:42 -0400 Message-ID: <20240324233458.1352854-123-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Christophe JAILLET [ Upstream commit ae5004a40a262d329039b99b62bd3fe7645b66ad ] This looks strange to call release_mem_region() in a remove function without any request_mem_region() in the probe or "struct resource" somewhere. So remove the corresponding code. Fixes: 3a96dff0f828 ("mmc: SD/MMC Host Controller for Wondermedia WM8505/WM= 8650") Signed-off-by: Christophe JAILLET Link: https://lore.kernel.org/r/bb0bb1ed1e18de55e8c0547625bde271e64b8c31.17= 08983064.git.christophe.jaillet@wanadoo.fr Signed-off-by: Ulf Hansson Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/mmc/host/wmt-sdmmc.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/drivers/mmc/host/wmt-sdmmc.c b/drivers/mmc/host/wmt-sdmmc.c index 3933195488575..3fcc81e48ad66 100644 --- a/drivers/mmc/host/wmt-sdmmc.c +++ b/drivers/mmc/host/wmt-sdmmc.c @@ -889,7 +889,6 @@ static int wmt_mci_remove(struct platform_device *pdev) { struct mmc_host *mmc; struct wmt_mci_priv *priv; - struct resource *res; u32 reg_tmp; =20 mmc =3D platform_get_drvdata(pdev); @@ -917,9 +916,6 @@ static int wmt_mci_remove(struct platform_device *pdev) clk_disable_unprepare(priv->clk_sdmmc); clk_put(priv->clk_sdmmc); =20 - res =3D platform_get_resource(pdev, IORESOURCE_MEM, 0); - release_mem_region(res->start, resource_size(res)); - mmc_free_host(mmc); =20 dev_info(&pdev->dev, "WMT MCI device removed\n"); --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0C6EE2779F5; Sun, 24 Mar 2024 23:37:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323422; cv=none; b=ilkDm4bTMdq50/7RjqnOPxYT2b8pkc77yOvE9fs3rbH3urIJHWMPMGNUU0kZnqNmeeL/kZKUgC5xVDAR6+TASP1TrgzOn8Wj1VM/rJQqABn69BUXUp2Bxfxzd9thAmmCCb/8ue527tMVqex4GhtfZDVRviiNfA4JYQehKAlgMN8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323422; c=relaxed/simple; bh=Cv9w4bOvSKRavjM5gb4NUer3PfrI7P2NyWfqZ31Y0Hg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ayaKoahkalNUknDPYMCNSHSDsoVhMQpnZ0hFLwAZRg/OVmWI524s0M/iQVBucIpQajCG+QR3ovdRB/kJzJnWtvZpEOqwt3hrrTcAAcMg7i5JVuyXA8S5X3DsxemLObpsVuyAiwcJes7NCn9UOriVRA8IIlfEj4tpewSFtwzoT8Q= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=L7nb77+Z; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="L7nb77+Z" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 33BEFC43390; Sun, 24 Mar 2024 23:37:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323420; bh=Cv9w4bOvSKRavjM5gb4NUer3PfrI7P2NyWfqZ31Y0Hg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=L7nb77+ZGGjnhhZix2wFJkBC5wgXsyDRQWFspgj0cvjPxpZaufb7JCKIPhcuDMPV6 cEz+UXZQC6dwVa3C32ev/g00tNnLkDdIS1yKgLu0sOK4o/FvOkd/BJ7i9ztCyvMwXb Jnts1NeCH3QlR9v19e7hOREn+CKVkF6sWQupBDcVY/K2Z/G0CNZti3q1tVjP1aW6lN Ohwt61gPIODrJokDTn79xoicO4y4eFu3H5vF091rcXWHxJYugAsCycwfBIjU1AH0aR iazUhX/oWl+aH3AeB8zP+kpaEuYkDEYauhvcso4ag2v1HnSeBCJ/I1MhkULkBnxhS4 bkjcbBEbxPNPA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Bitterblue Smith , Ping-Ke Shih , Kalle Valo , Sasha Levin Subject: [PATCH 5.15 123/317] wifi: rtw88: 8821c: Fix false alarm count Date: Sun, 24 Mar 2024 19:31:43 -0400 Message-ID: <20240324233458.1352854-124-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Bitterblue Smith [ Upstream commit c238adbc578eeb70cbc8fdd1bef3666b0f585b13 ] total_fa_cnt is supposed to include cck_fa_cnt and ofdm_fa_cnt, not just ofdm_fa_cnt. Fixes: 960361238b86 ("rtw88: 8821c: add false alarm statistics") Signed-off-by: Bitterblue Smith Acked-by: Ping-Ke Shih Signed-off-by: Kalle Valo Link: https://msgid.link/f3cb6d17-e4e4-44a7-9c9b-72aed994b5c9@gmail.com Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/net/wireless/realtek/rtw88/rtw8821c.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/wireless/realtek/rtw88/rtw8821c.c b/drivers/net/wi= reless/realtek/rtw88/rtw8821c.c index 280602a34fe67..eb66f494382ae 100644 --- a/drivers/net/wireless/realtek/rtw88/rtw8821c.c +++ b/drivers/net/wireless/realtek/rtw88/rtw8821c.c @@ -667,9 +667,9 @@ static void rtw8821c_false_alarm_statistics(struct rtw_= dev *rtwdev) =20 dm_info->cck_fa_cnt =3D cck_fa_cnt; dm_info->ofdm_fa_cnt =3D ofdm_fa_cnt; + dm_info->total_fa_cnt =3D ofdm_fa_cnt; if (cck_enable) dm_info->total_fa_cnt +=3D cck_fa_cnt; - dm_info->total_fa_cnt =3D ofdm_fa_cnt; =20 crc32_cnt =3D rtw_read32(rtwdev, REG_CRC_CCK); dm_info->cck_ok_cnt =3D FIELD_GET(GENMASK(15, 0), crc32_cnt); --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 48AB7130A43; Sun, 24 Mar 2024 23:37:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323422; cv=none; b=KsuvMR1dC3Rz+d+ayFH8tdizjzF/SP/5JjH4cM25m5G8a6vfw6+x50i+sX8tdBErbERNuoTgTUWBZ7t0xsS02As/+Oavz/eDOzuc32WuJ2O+c6OBdXuBOY6y9fpYcFd1yDI34DB/B10FhTn7F6R6kgIRcj6XvQUVLo9XCx7Baoo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323422; c=relaxed/simple; bh=1LpbIxGXcYAfUP3h7w20zYf1iL7CarMN8BxniycF2YM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=vD6aPZE7zL+4AhhtrVuK2dYOzZLkf1UqZ4HgJ2lM9jwwg3ywgSMgl7Jt6J+KOtbjGaDYxGshWMdf3bWUetYWnzTimN8TEvp+p31AjvKqgwJicG20PJwdFWWcdoI6jLNZsTKmOe5vUenLE1kuNSrDIlIg66skpW0Gig/wtjrtEmU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Bl5rLwSm; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Bl5rLwSm" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2ECC6C433F1; Sun, 24 Mar 2024 23:37:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323422; bh=1LpbIxGXcYAfUP3h7w20zYf1iL7CarMN8BxniycF2YM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Bl5rLwSm6xEj4zStuWwi6kpQ2S8L1P1bNJH+8mtY2eOd3vRGbKm+8ZsI6LumN85xv dKpEqrwPtA+8EH+JRtnl17/6FgztT2pLj+uxrdJmAHg/qpUt+osOKLzvEVjkOM8Qae H5Tb7copU8qjcpCE9maN65g42jsZu0Xg5bVvxXu+mY01n9pCzG77/8q9zvIqeDdgQd wRkb5JNeumMnh/RQIqDtfH3gIKaavFiDCpkhFEo9SUuvkEzrSPfaU30VnVnv+Fhd2N CJvjs/3PuGEV6Z2cNA64NvvCwvJjwKF5CywFQ9NNQHhVnM3zWnQZ9Bvv8Dc+QDKhMJ WZHSvDMEMV6/w== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Ethan Zhao , Bjorn Helgaas , Dan Carpenter , Haorong Ye , Lu Baolu , Joerg Roedel , Sasha Levin Subject: [PATCH 5.15 124/317] PCI: Make pci_dev_is_disconnected() helper public for other drivers Date: Sun, 24 Mar 2024 19:31:44 -0400 Message-ID: <20240324233458.1352854-125-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Ethan Zhao [ Upstream commit 39714fd73c6b60a8d27bcc5b431afb0828bf4434 ] Make pci_dev_is_disconnected() public so that it can be called from Intel VT-d driver to quickly fix/workaround the surprise removal unplug hang issue for those ATS capable devices on PCIe switch downstream hotplug capable ports. Beside pci_device_is_present() function, this one has no config space space access, so is light enough to optimize the normal pure surprise removal and safe removal flow. Acked-by: Bjorn Helgaas Reviewed-by: Dan Carpenter Tested-by: Haorong Ye Signed-off-by: Ethan Zhao Link: https://lore.kernel.org/r/20240301080727.3529832-2-haifeng.zhao@linux= .intel.com Signed-off-by: Lu Baolu Signed-off-by: Joerg Roedel Stable-dep-of: 4fc82cd907ac ("iommu/vt-d: Don't issue ATS Invalidation requ= est when device is disconnected") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/pci/pci.h | 5 ----- include/linux/pci.h | 5 +++++ 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h index 2b5337980da7d..ec968b14aa2a2 100644 --- a/drivers/pci/pci.h +++ b/drivers/pci/pci.h @@ -395,11 +395,6 @@ static inline int pci_dev_set_disconnected(struct pci_= dev *dev, void *unused) return 0; } =20 -static inline bool pci_dev_is_disconnected(const struct pci_dev *dev) -{ - return dev->error_state =3D=3D pci_channel_io_perm_failure; -} - /* pci_dev priv_flags */ #define PCI_DEV_ADDED 0 #define PCI_DPC_RECOVERED 1 diff --git a/include/linux/pci.h b/include/linux/pci.h index 99dfb8c1993a6..08d26b58f95ca 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h @@ -2284,6 +2284,11 @@ static inline struct pci_dev *pcie_find_root_port(st= ruct pci_dev *dev) return NULL; } =20 +static inline bool pci_dev_is_disconnected(const struct pci_dev *dev) +{ + return dev->error_state =3D=3D pci_channel_io_perm_failure; +} + void pci_request_acs(void); bool pci_acs_enabled(struct pci_dev *pdev, u16 acs_flags); bool pci_acs_path_enabled(struct pci_dev *start, --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 70894130A46; Sun, 24 Mar 2024 23:37:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323423; cv=none; b=rZJE2YphITU3D7uw36ieVoEO/8oukeWWWNc6C9Lpp/NcCipngrB6U3cjRtboIIkF7YjMEiazMhO0TgWtQlUEI7R5dBuaDUbilhoRvNL4q0fyAzzTU0y6pKMzHG4wubEFrRwAH93umOnZEvx4gm8WPw1/Rj/cShGLSsP5+A1GOzs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323423; c=relaxed/simple; bh=DA4qIqIzlg7doIiGoSUieDenTCXj8I8CjPE8351b8yQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=XEY+ZxBYiUBY29fK/GapbtYYc48AELZOXVK/Tur0rtqAyMy+yLQZgoqAek61UCN9TaOyUHtVVf6jK0yTRMffC0PP9/4WAC42qvzOdOgitU4mZRC3ahMXDIFuSD7/Bxj4r5Vja63BzeiQ+/zrC/kT9a0yTz2L/ktFsMx/OkzidGY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=E0jQ41Rj; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="E0jQ41Rj" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6DFDCC433C7; Sun, 24 Mar 2024 23:37:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323423; bh=DA4qIqIzlg7doIiGoSUieDenTCXj8I8CjPE8351b8yQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=E0jQ41RjJfQuNJNMvMIQ2j/1wFVdjrwKuBiEBG0cLo4sLC9mhw3akPCpjRqgVWGUb hr7WxUEFa7gjsQvMlrbJhMbL4mpe7KvFzhukYyDDbkVnq3L1jUwiwOQAISvJKifycz gDU58FO7iwBMUr9xzrl6VtugqqV20B42mSsO/xqQ+e8D0I45+0s9QEMEc9QSjGa/VN ZfgmEiM/K40SN5l1vD/rOnYyqnMqf2TXBZ8Ekg+g+CN86I8ITH3dnLitzj5zX5rT2k 5fERDxUqC/ZKgt4py3TsP/WQdXyyvLk/AmgA6Jom9Qv2KxJ/EVqYm6MJVpwlSoX562 Uo1NWmnpvLYQQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Ethan Zhao , Dan Carpenter , Haorong Ye , Lu Baolu , Joerg Roedel , Sasha Levin Subject: [PATCH 5.15 125/317] iommu/vt-d: Don't issue ATS Invalidation request when device is disconnected Date: Sun, 24 Mar 2024 19:31:45 -0400 Message-ID: <20240324233458.1352854-126-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Ethan Zhao [ Upstream commit 4fc82cd907ac075648789cc3a00877778aa1838b ] For those endpoint devices connect to system via hotplug capable ports, users could request a hot reset to the device by flapping device's link through setting the slot's link control register, as pciehp_ist() DLLSC interrupt sequence response, pciehp will unload the device driver and then power it off. thus cause an IOMMU device-TLB invalidation (Intel VT-d spec, or ATS Invalidation in PCIe spec r6.1) request for non-existence target device to be sent and deadly loop to retry that request after ITE fault triggered in interrupt context. That would cause following continuous hard lockup warning and system hang [ 4211.433662] pcieport 0000:17:01.0: pciehp: Slot(108): Link Down [ 4211.433664] pcieport 0000:17:01.0: pciehp: Slot(108): Card not present [ 4223.822591] NMI watchdog: Watchdog detected hard LOCKUP on cpu 144 [ 4223.822622] CPU: 144 PID: 1422 Comm: irq/57-pciehp Kdump: loaded Tainted= : G S OE kernel version xxxx [ 4223.822623] Hardware name: vendorname xxxx 666-106, BIOS 01.01.02.03.01 05/15/2023 [ 4223.822623] RIP: 0010:qi_submit_sync+0x2c0/0x490 [ 4223.822624] Code: 48 be 00 00 00 00 00 08 00 00 49 85 74 24 20 0f 95 c1 = 48 8b 57 10 83 c1 04 83 3c 1a 03 0f 84 a2 01 00 00 49 8b 04 24 8b 70 34 <40> f6 = c6 1 0 74 17 49 8b 04 24 8b 80 80 00 00 00 89 c2 d3 fa 41 39 [ 4223.822624] RSP: 0018:ffffc4f074f0bbb8 EFLAGS: 00000093 [ 4223.822625] RAX: ffffc4f040059000 RBX: 0000000000000014 RCX: 00000000000= 00005 [ 4223.822625] RDX: ffff9f3841315800 RSI: 0000000000000000 RDI: ffff9f38401= a8340 [ 4223.822625] RBP: ffff9f38401a8340 R08: ffffc4f074f0bc00 R09: 00000000000= 00000 [ 4223.822626] R10: 0000000000000010 R11: 0000000000000018 R12: ffff9f38400= 5e200 [ 4223.822626] R13: 0000000000000004 R14: 0000000000000046 R15: 00000000000= 00004 [ 4223.822626] FS: 0000000000000000(0000) GS:ffffa237ae400000(0000) knlGS:0000000000000000 [ 4223.822627] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 4223.822627] CR2: 00007ffe86515d80 CR3: 000002fd3000a001 CR4: 00000000007= 70ee0 [ 4223.822627] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 00000000000= 00000 [ 4223.822628] DR3: 0000000000000000 DR6: 00000000fffe07f0 DR7: 00000000000= 00400 [ 4223.822628] PKRU: 55555554 [ 4223.822628] Call Trace: [ 4223.822628] qi_flush_dev_iotlb+0xb1/0xd0 [ 4223.822628] __dmar_remove_one_dev_info+0x224/0x250 [ 4223.822629] dmar_remove_one_dev_info+0x3e/0x50 [ 4223.822629] intel_iommu_release_device+0x1f/0x30 [ 4223.822629] iommu_release_device+0x33/0x60 [ 4223.822629] iommu_bus_notifier+0x7f/0x90 [ 4223.822630] blocking_notifier_call_chain+0x60/0x90 [ 4223.822630] device_del+0x2e5/0x420 [ 4223.822630] pci_remove_bus_device+0x70/0x110 [ 4223.822630] pciehp_unconfigure_device+0x7c/0x130 [ 4223.822631] pciehp_disable_slot+0x6b/0x100 [ 4223.822631] pciehp_handle_presence_or_link_change+0xd8/0x320 [ 4223.822631] pciehp_ist+0x176/0x180 [ 4223.822631] ? irq_finalize_oneshot.part.50+0x110/0x110 [ 4223.822632] irq_thread_fn+0x19/0x50 [ 4223.822632] irq_thread+0x104/0x190 [ 4223.822632] ? irq_forced_thread_fn+0x90/0x90 [ 4223.822632] ? irq_thread_check_affinity+0xe0/0xe0 [ 4223.822633] kthread+0x114/0x130 [ 4223.822633] ? __kthread_cancel_work+0x40/0x40 [ 4223.822633] ret_from_fork+0x1f/0x30 [ 4223.822633] Kernel panic - not syncing: Hard LOCKUP [ 4223.822634] CPU: 144 PID: 1422 Comm: irq/57-pciehp Kdump: loaded Tainted= : G S OE kernel version xxxx [ 4223.822634] Hardware name: vendorname xxxx 666-106, BIOS 01.01.02.03.01 05/15/2023 [ 4223.822634] Call Trace: [ 4223.822634] [ 4223.822635] dump_stack+0x6d/0x88 [ 4223.822635] panic+0x101/0x2d0 [ 4223.822635] ? ret_from_fork+0x11/0x30 [ 4223.822635] nmi_panic.cold.14+0xc/0xc [ 4223.822636] watchdog_overflow_callback.cold.8+0x6d/0x81 [ 4223.822636] __perf_event_overflow+0x4f/0xf0 [ 4223.822636] handle_pmi_common+0x1ef/0x290 [ 4223.822636] ? __set_pte_vaddr+0x28/0x40 [ 4223.822637] ? flush_tlb_one_kernel+0xa/0x20 [ 4223.822637] ? __native_set_fixmap+0x24/0x30 [ 4223.822637] ? ghes_copy_tofrom_phys+0x70/0x100 [ 4223.822637] ? __ghes_peek_estatus.isra.16+0x49/0xa0 [ 4223.822637] intel_pmu_handle_irq+0xba/0x2b0 [ 4223.822638] perf_event_nmi_handler+0x24/0x40 [ 4223.822638] nmi_handle+0x4d/0xf0 [ 4223.822638] default_do_nmi+0x49/0x100 [ 4223.822638] exc_nmi+0x134/0x180 [ 4223.822639] end_repeat_nmi+0x16/0x67 [ 4223.822639] RIP: 0010:qi_submit_sync+0x2c0/0x490 [ 4223.822639] Code: 48 be 00 00 00 00 00 08 00 00 49 85 74 24 20 0f 95 c1 = 48 8b 57 10 83 c1 04 83 3c 1a 03 0f 84 a2 01 00 00 49 8b 04 24 8b 70 34 <40> f6 = c6 10 74 17 49 8b 04 24 8b 80 80 00 00 00 89 c2 d3 fa 41 39 [ 4223.822640] RSP: 0018:ffffc4f074f0bbb8 EFLAGS: 00000093 [ 4223.822640] RAX: ffffc4f040059000 RBX: 0000000000000014 RCX: 00000000000= 00005 [ 4223.822640] RDX: ffff9f3841315800 RSI: 0000000000000000 RDI: ffff9f38401= a8340 [ 4223.822641] RBP: ffff9f38401a8340 R08: ffffc4f074f0bc00 R09: 00000000000= 00000 [ 4223.822641] R10: 0000000000000010 R11: 0000000000000018 R12: ffff9f38400= 5e200 [ 4223.822641] R13: 0000000000000004 R14: 0000000000000046 R15: 00000000000= 00004 [ 4223.822641] ? qi_submit_sync+0x2c0/0x490 [ 4223.822642] ? qi_submit_sync+0x2c0/0x490 [ 4223.822642] [ 4223.822642] qi_flush_dev_iotlb+0xb1/0xd0 [ 4223.822642] __dmar_remove_one_dev_info+0x224/0x250 [ 4223.822643] dmar_remove_one_dev_info+0x3e/0x50 [ 4223.822643] intel_iommu_release_device+0x1f/0x30 [ 4223.822643] iommu_release_device+0x33/0x60 [ 4223.822643] iommu_bus_notifier+0x7f/0x90 [ 4223.822644] blocking_notifier_call_chain+0x60/0x90 [ 4223.822644] device_del+0x2e5/0x420 [ 4223.822644] pci_remove_bus_device+0x70/0x110 [ 4223.822644] pciehp_unconfigure_device+0x7c/0x130 [ 4223.822644] pciehp_disable_slot+0x6b/0x100 [ 4223.822645] pciehp_handle_presence_or_link_change+0xd8/0x320 [ 4223.822645] pciehp_ist+0x176/0x180 [ 4223.822645] ? irq_finalize_oneshot.part.50+0x110/0x110 [ 4223.822645] irq_thread_fn+0x19/0x50 [ 4223.822646] irq_thread+0x104/0x190 [ 4223.822646] ? irq_forced_thread_fn+0x90/0x90 [ 4223.822646] ? irq_thread_check_affinity+0xe0/0xe0 [ 4223.822646] kthread+0x114/0x130 [ 4223.822647] ? __kthread_cancel_work+0x40/0x40 [ 4223.822647] ret_from_fork+0x1f/0x30 [ 4223.822647] Kernel Offset: 0x6400000 from 0xffffffff81000000 (relocation range: 0xffffffff80000000-0xffffffffbfffffff) Such issue could be triggered by all kinds of regular surprise removal hotplug operation. like: 1. pull EP(endpoint device) out directly. 2. turn off EP's power. 3. bring the link down. etc. this patch aims to work for regular safe removal and surprise removal unplug. these hot unplug handling process could be optimized for fix the ATS Invalidation hang issue by calling pci_dev_is_disconnected() in function devtlb_invalidation_with_pasid() to check target device state to avoid sending meaningless ATS Invalidation request to iommu when device is gone. (see IMPLEMENTATION NOTE in PCIe spec r6.1 section 10.3.1) For safe removal, device wouldn't be removed until the whole software handling process is done, it wouldn't trigger the hard lock up issue caused by too long ATS Invalidation timeout wait. In safe removal path, device state isn't set to pci_channel_io_perm_failure in pciehp_unconfigure_device() by checking 'presence' parameter, calling pci_dev_is_disconnected() in devtlb_invalidation_with_pasid() will return false there, wouldn't break the function. For surprise removal, device state is set to pci_channel_io_perm_failure in pciehp_unconfigure_device(), means device is already gone (disconnected) call pci_dev_is_disconnected() in devtlb_invalidation_with_pasid() will return true to break the function not to send ATS Invalidation request to the disconnected device blindly, thus avoid to trigger further ITE fault, and ITE fault will block all invalidation request to be handled. furthermore retry the timeout request could trigger hard lockup. safe removal (present) & surprise removal (not present) pciehp_ist() pciehp_handle_presence_or_link_change() pciehp_disable_slot() remove_board() pciehp_unconfigure_device(presence) { if (!presence) pci_walk_bus(parent, pci_dev_set_disconnected, NULL); } this patch works for regular safe removal and surprise removal of ATS capable endpoint on PCIe switch downstream ports. Fixes: 6f7db75e1c46 ("iommu/vt-d: Add second level page table interface") Reviewed-by: Dan Carpenter Tested-by: Haorong Ye Signed-off-by: Ethan Zhao Link: https://lore.kernel.org/r/20240301080727.3529832-3-haifeng.zhao@linux= .intel.com Signed-off-by: Lu Baolu Signed-off-by: Joerg Roedel Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/iommu/intel/pasid.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/iommu/intel/pasid.c b/drivers/iommu/intel/pasid.c index dc9d665d7365c..589b97ff5433c 100644 --- a/drivers/iommu/intel/pasid.c +++ b/drivers/iommu/intel/pasid.c @@ -508,6 +508,9 @@ devtlb_invalidation_with_pasid(struct intel_iommu *iomm= u, if (!info || !info->ats_enabled) return; =20 + if (pci_dev_is_disconnected(to_pci_dev(dev))) + return; + sid =3D info->bus << 8 | info->devfn; qdep =3D info->ats_qdep; pfsid =3D info->pfsid; --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 730B5130A4C; Sun, 24 Mar 2024 23:37:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323425; cv=none; b=ggYtETDPccz84pPSJfnU8zKF2sz6xueQzW+P9XgpTn28naY8njhu3hlfXi+g4asa6A6cGNs35ekYbDgmQaC7W04gw1EL/bvcu33AK0xH9Nth1kP0C7bS4qG1Ag3niLJFcVFPNBYMO2Kb9U/rk3whqRDcI4TrKgui14+fDqZ6KwI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323425; c=relaxed/simple; bh=2g7ecFJ57wAEntP0evJpbqQJAjoqBxcFxZi0g7ht0qA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=bq+OHkLWdjvYMBJpTX4OSHhriafVsArmEqRd9voR4o0nZIGe73yRpYGizuKh8WCOfoO5YBd+OedBqdwd0ARsg8BPmcBmGf5jw9ww+7L/ZPD1KlYeadPY1cF2v6v8KGa8CtpWqjVSmjI23C9FTByrRulWjq2hhOCVcZSAYHvhgHQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=eaqDhwhP; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="eaqDhwhP" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 955B7C433F1; Sun, 24 Mar 2024 23:37:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323424; bh=2g7ecFJ57wAEntP0evJpbqQJAjoqBxcFxZi0g7ht0qA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=eaqDhwhPTXxYqu9p7uF1SJbCpzPnoqWH/60K8f/Pj0DHDx53sFnJewLbYU6ulH3iZ Ke7oe3C7CoshwTmVuw2gLhk/WUlLWN+JnT/40dxPUbQqAN9ZSRMQBDfTZhK1jd8Tlb OxSpOrP+Z3b250N3Tbkv3LwF1+c2lU2G6gN4RPu0N18rBTzQJJoyck0Q+NYnQ7+9un IFWMLPR3RMFndQdL5FZtMxX3WH/6o/xPg/uKhBTfbWRO4X2xUM6te5kSEJxHRUFm5l oaBWRDztRViv1MNe/CJ79aXEDHvfh5ltGDCs63aM5/wdeDvdy7d327IYC5J3I2VVGf MeGKpmnFf75pg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Ruud Bos , Gurucharan G , Tony Nguyen , Sasha Levin Subject: [PATCH 5.15 126/317] igb: move PEROUT and EXTTS isr logic to separate functions Date: Sun, 24 Mar 2024 19:31:46 -0400 Message-ID: <20240324233458.1352854-127-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Ruud Bos [ Upstream commit cf99c1dd7b7729091043374b90807c7a5f9fd9b1 ] Remove code duplication in the tsync interrupt handler function by moving this logic to separate functions. This keeps the interrupt handler readable and allows the new functions to be extended for adapter types other than i210. Signed-off-by: Ruud Bos Tested-by: Gurucharan G Signed-off-by: Tony Nguyen Stable-dep-of: ee14cc9ea19b ("igb: Fix missing time sync events") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/net/ethernet/intel/igb/igb_main.c | 81 +++++++++++++---------- 1 file changed, 46 insertions(+), 35 deletions(-) diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethern= et/intel/igb/igb_main.c index 7c42a99be5065..eec0ad98c445f 100644 --- a/drivers/net/ethernet/intel/igb/igb_main.c +++ b/drivers/net/ethernet/intel/igb/igb_main.c @@ -6756,12 +6756,52 @@ void igb_update_stats(struct igb_adapter *adapter) } } =20 +static void igb_perout(struct igb_adapter *adapter, int tsintr_tt) +{ + int pin =3D ptp_find_pin(adapter->ptp_clock, PTP_PF_PEROUT, tsintr_tt); + struct e1000_hw *hw =3D &adapter->hw; + struct timespec64 ts; + u32 tsauxc; + + if (pin < 0 || pin >=3D IGB_N_PEROUT) + return; + + spin_lock(&adapter->tmreg_lock); + ts =3D timespec64_add(adapter->perout[pin].start, + adapter->perout[pin].period); + /* u32 conversion of tv_sec is safe until y2106 */ + wr32((tsintr_tt =3D=3D 1) ? E1000_TRGTTIML1 : E1000_TRGTTIML0, ts.tv_nsec= ); + wr32((tsintr_tt =3D=3D 1) ? E1000_TRGTTIMH1 : E1000_TRGTTIMH0, (u32)ts.tv= _sec); + tsauxc =3D rd32(E1000_TSAUXC); + tsauxc |=3D TSAUXC_EN_TT0; + wr32(E1000_TSAUXC, tsauxc); + adapter->perout[pin].start =3D ts; + spin_unlock(&adapter->tmreg_lock); +} + +static void igb_extts(struct igb_adapter *adapter, int tsintr_tt) +{ + int pin =3D ptp_find_pin(adapter->ptp_clock, PTP_PF_EXTTS, tsintr_tt); + struct e1000_hw *hw =3D &adapter->hw; + struct ptp_clock_event event; + u32 sec, nsec; + + if (pin < 0 || pin >=3D IGB_N_EXTTS) + return; + + nsec =3D rd32((tsintr_tt =3D=3D 1) ? E1000_AUXSTMPL1 : E1000_AUXSTMPL0); + sec =3D rd32((tsintr_tt =3D=3D 1) ? E1000_AUXSTMPH1 : E1000_AUXSTMPH0); + event.type =3D PTP_CLOCK_EXTTS; + event.index =3D tsintr_tt; + event.timestamp =3D sec * 1000000000ULL + nsec; + ptp_clock_event(adapter->ptp_clock, &event); +} + static void igb_tsync_interrupt(struct igb_adapter *adapter) { struct e1000_hw *hw =3D &adapter->hw; + u32 ack =3D 0, tsicr =3D rd32(E1000_TSICR); struct ptp_clock_event event; - struct timespec64 ts; - u32 ack =3D 0, tsauxc, sec, nsec, tsicr =3D rd32(E1000_TSICR); =20 if (tsicr & TSINTR_SYS_WRAP) { event.type =3D PTP_CLOCK_PPS; @@ -6777,51 +6817,22 @@ static void igb_tsync_interrupt(struct igb_adapter = *adapter) } =20 if (tsicr & TSINTR_TT0) { - spin_lock(&adapter->tmreg_lock); - ts =3D timespec64_add(adapter->perout[0].start, - adapter->perout[0].period); - /* u32 conversion of tv_sec is safe until y2106 */ - wr32(E1000_TRGTTIML0, ts.tv_nsec); - wr32(E1000_TRGTTIMH0, (u32)ts.tv_sec); - tsauxc =3D rd32(E1000_TSAUXC); - tsauxc |=3D TSAUXC_EN_TT0; - wr32(E1000_TSAUXC, tsauxc); - adapter->perout[0].start =3D ts; - spin_unlock(&adapter->tmreg_lock); + igb_perout(adapter, 0); ack |=3D TSINTR_TT0; } =20 if (tsicr & TSINTR_TT1) { - spin_lock(&adapter->tmreg_lock); - ts =3D timespec64_add(adapter->perout[1].start, - adapter->perout[1].period); - wr32(E1000_TRGTTIML1, ts.tv_nsec); - wr32(E1000_TRGTTIMH1, (u32)ts.tv_sec); - tsauxc =3D rd32(E1000_TSAUXC); - tsauxc |=3D TSAUXC_EN_TT1; - wr32(E1000_TSAUXC, tsauxc); - adapter->perout[1].start =3D ts; - spin_unlock(&adapter->tmreg_lock); + igb_perout(adapter, 1); ack |=3D TSINTR_TT1; } =20 if (tsicr & TSINTR_AUTT0) { - nsec =3D rd32(E1000_AUXSTMPL0); - sec =3D rd32(E1000_AUXSTMPH0); - event.type =3D PTP_CLOCK_EXTTS; - event.index =3D 0; - event.timestamp =3D sec * 1000000000ULL + nsec; - ptp_clock_event(adapter->ptp_clock, &event); + igb_extts(adapter, 0); ack |=3D TSINTR_AUTT0; } =20 if (tsicr & TSINTR_AUTT1) { - nsec =3D rd32(E1000_AUXSTMPL1); - sec =3D rd32(E1000_AUXSTMPH1); - event.type =3D PTP_CLOCK_EXTTS; - event.index =3D 1; - event.timestamp =3D sec * 1000000000ULL + nsec; - ptp_clock_event(adapter->ptp_clock, &event); + igb_extts(adapter, 1); ack |=3D TSINTR_AUTT1; } =20 --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 77D9C130A62; Sun, 24 Mar 2024 23:37:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323426; cv=none; b=XpM/MAU1Tvv6NxaKtVIl5ZIlLidsJB1R/X2+fHsSFZ7AW8LKoudlW56jmUuCjElbMSYSBTl2b4KsyzEH2kd5eVM8Cd4B44iTJKtn2RJ7WbHNB0NUW4POCCjAO2vBbgZMAQUA6C9oJ4iM9hKdWNQnB8J4tNfaTct10mkzIix6vuQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323426; c=relaxed/simple; bh=xkio9LXk8a0yfT3MbDjP1BmFDPz+zLGtJQWcPfiV0CI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=RheqyF95/w2/U4UKEMx0byyOAtfYP3KWM9XX82V6E3napSAQ7/l+m1iFNOo3E/WMCSUtnxrbDy9zjje6iR3FM3RgOVkuut1cdSgLlo60YrwXKhBVIBYiwFLKhHlk+OgQQiQjUo5lKzyGEzPdHCojMBDl0t+TewMcQj0pKGhybuU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=TghkjD04; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="TghkjD04" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8DA55C43390; Sun, 24 Mar 2024 23:37:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323425; bh=xkio9LXk8a0yfT3MbDjP1BmFDPz+zLGtJQWcPfiV0CI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=TghkjD04cLSSD4KJzUi1tHE3Vfs91rqI3yoVyFGc+aQ7lICj6Vx9PgyTE8Rr6xebS sJnPXxMXlvdDu6DWDzpxBmAy6chv0ISeo4xsPtrIo/UCcwbOkl51UaDBkkpkGDI22a fz/Zz0fKJyyBYevwo3ZqQSwI+Py4MFHLxoVHN2THMi+QW2jWk8SKGZTLpGQ1A0ZiIf 14wgy6+Kdy57Yl8ebGQbI7bqUgrrnQpcubXD/2K3xorytycedhwf2cwCSIpHSryCvy OOdhwUmvApg7bEL70gmGXQLXs1M8y8pl+rUD7zg7MxYuAhduYu4J/+fGs1pHyeBmcD 5Oxt8rY9gnqKA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Vinicius Costa Gomes , Richard Cochran , Pucha Himasekhar Reddy , Tony Nguyen , Sasha Levin Subject: [PATCH 5.15 127/317] igb: Fix missing time sync events Date: Sun, 24 Mar 2024 19:31:47 -0400 Message-ID: <20240324233458.1352854-128-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Vinicius Costa Gomes [ Upstream commit ee14cc9ea19ba9678177e2224a9c58cce5937c73 ] Fix "double" clearing of interrupts, which can cause external events or timestamps to be missed. The E1000_TSIRC Time Sync Interrupt Cause register can be cleared in two ways, by either reading it or by writing '1' into the specific cause bit. This is documented in section 8.16.1. The following flow was used: 1. read E1000_TSIRC into 'tsicr'; 2. handle the interrupts present into 'tsirc' and mark them in 'ack'; 3. write 'ack' into E1000_TSICR; As both (1) and (3) will clear the interrupt cause, if the same interrupt happens again between (1) and (3) it will be ignored, causing events to be missed. Remove the extra clear in (3). Fixes: 00c65578b47b ("igb: enable internal PPS for the i210") Acked-by: Richard Cochran Signed-off-by: Vinicius Costa Gomes Tested-by: Pucha Himasekhar Reddy (A Co= ntingent worker at Intel) Signed-off-by: Tony Nguyen Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/net/ethernet/intel/igb/igb_main.c | 23 +++++------------------ 1 file changed, 5 insertions(+), 18 deletions(-) diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethern= et/intel/igb/igb_main.c index eec0ad98c445f..03a4da6a14478 100644 --- a/drivers/net/ethernet/intel/igb/igb_main.c +++ b/drivers/net/ethernet/intel/igb/igb_main.c @@ -6800,44 +6800,31 @@ static void igb_extts(struct igb_adapter *adapter, = int tsintr_tt) static void igb_tsync_interrupt(struct igb_adapter *adapter) { struct e1000_hw *hw =3D &adapter->hw; - u32 ack =3D 0, tsicr =3D rd32(E1000_TSICR); + u32 tsicr =3D rd32(E1000_TSICR); struct ptp_clock_event event; =20 if (tsicr & TSINTR_SYS_WRAP) { event.type =3D PTP_CLOCK_PPS; if (adapter->ptp_caps.pps) ptp_clock_event(adapter->ptp_clock, &event); - ack |=3D TSINTR_SYS_WRAP; } =20 if (tsicr & E1000_TSICR_TXTS) { /* retrieve hardware timestamp */ schedule_work(&adapter->ptp_tx_work); - ack |=3D E1000_TSICR_TXTS; } =20 - if (tsicr & TSINTR_TT0) { + if (tsicr & TSINTR_TT0) igb_perout(adapter, 0); - ack |=3D TSINTR_TT0; - } =20 - if (tsicr & TSINTR_TT1) { + if (tsicr & TSINTR_TT1) igb_perout(adapter, 1); - ack |=3D TSINTR_TT1; - } =20 - if (tsicr & TSINTR_AUTT0) { + if (tsicr & TSINTR_AUTT0) igb_extts(adapter, 0); - ack |=3D TSINTR_AUTT0; - } =20 - if (tsicr & TSINTR_AUTT1) { + if (tsicr & TSINTR_AUTT1) igb_extts(adapter, 1); - ack |=3D TSINTR_AUTT1; - } - - /* acknowledge the interrupts */ - wr32(E1000_TSICR, ack); } =20 static irqreturn_t igb_msix_other(int irq, void *data) --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5C076175CBE; Sun, 24 Mar 2024 23:37:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323427; cv=none; b=fnIr1ps6umrmTD3nqRKAqIRFfMjq/yAdPMhmABRyCPXYKNgBQ1mZwo8MS8d8HH+dYnDVxN8I+aZ9mRXB83KR3zjj/WDz1JmloAlEU4AO8lvmpZc/V2cB1LxPqWqkIqm6CTR+lX99uhLsT5EK9TawLSz4sCGnWFoZZsuQaxMj+Qw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323427; c=relaxed/simple; bh=T3mMur1V4rYkoOdESozqVTv0V5FfDJwKwHBIEEDsft8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=AlXY4NQ/DCgEDOS/3PskC2XiyzaPiSy/qL6K2Yh2mMgd/RfaP7oXZn5mUTWdNKO3Skt+T1pDL+6fmh02vcJ2xCkdEJdIU8ucZAMFyt2UE7PtRc/uNUUWb3CBKiB8ulNVdUTYyV0YBX8IA1jdsdJ3ZiAoMfcEkhHf0d9Xyli+qCw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=gvAOv1o1; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="gvAOv1o1" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9CB18C433F1; Sun, 24 Mar 2024 23:37:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323426; bh=T3mMur1V4rYkoOdESozqVTv0V5FfDJwKwHBIEEDsft8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=gvAOv1o1e6TSedEk3/RzyMyReFlTOe6Ys8aZtXa/Qe+JbL5oKwBfiNl/MO+Y/1p2u a/EVrKggK2lgKpOggXc5RJU+Ite6mm0J1ml1jECFWWNN1mG2HCrU6xpZs3XEmFgrqr suHSYrxZIibY8aisUVjFcql4AEjrov2vUe9XYbKGixQgpCLvcCENrpcTwxUUXl59PB PzE+oeunSxgrdgq9+bnzvpDqb2Qn5cuHRsQljot6DwxVZ0grlSOEGJdt05uMKSuMki tiTD1egpt3B5phHTLKkPrBUkHSd81aYCR7j+6heAGfZ+7Xq4Cj9Ze2vDJmDn9tch1X YUtwk320XfN9A== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= , Luiz Augusto von Dentz , Sasha Levin Subject: [PATCH 5.15 128/317] Bluetooth: Remove superfluous call to hci_conn_check_pending() Date: Sun, 24 Mar 2024 19:31:48 -0400 Message-ID: <20240324233458.1352854-129-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable From: Jonas Dre=C3=9Fler [ Upstream commit 78e3639fc8031275010c3287ac548c0bc8de83b1 ] The "pending connections" feature was originally introduced with commit 4c67bc74f016 ("[Bluetooth] Support concurrent connect requests") and 6bd57416127e ("[Bluetooth] Handling pending connect attempts after inquiry") to handle controllers supporting only a single connection request at a time. Later things were extended to also cancel ongoing inquiries on connect() with commit 89e65975fea5 ("Bluetooth: Cancel Inquiry before Create Connection"). With commit a9de9248064b ("[Bluetooth] Switch from OGF+OCF to using only opcodes"), hci_conn_check_pending() was introduced as a helper to consolidate a few places where we check for pending connections (indicated by the BT_CONNECT2 flag) and then try to connect. This refactoring commit also snuck in two more calls to hci_conn_check_pending(): - One is in the failure callback of hci_cs_inquiry(), this one probably makes sense: If we send an "HCI Inquiry" command and then immediately after a "Create Connection" command, the "Create Connection" command might fail before the "HCI Inquiry" command, and then we want to retry the "Create Connection" on failure of the "HCI Inquiry". - The other added call to hci_conn_check_pending() is in the event handler for the "Remote Name" event, this seems unrelated and is possibly a copy-paste error, so remove that one. Fixes: a9de9248064b ("[Bluetooth] Switch from OGF+OCF to using only opcodes= ") Signed-off-by: Jonas Dre=C3=9Fler Signed-off-by: Luiz Augusto von Dentz Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- net/bluetooth/hci_event.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c index ba7242729a8fb..0be37a5c1c0c2 100644 --- a/net/bluetooth/hci_event.c +++ b/net/bluetooth/hci_event.c @@ -3072,8 +3072,6 @@ static void hci_remote_name_evt(struct hci_dev *hdev,= struct sk_buff *skb) =20 BT_DBG("%s", hdev->name); =20 - hci_conn_check_pending(hdev); - hci_dev_lock(hdev); =20 conn =3D hci_conn_hash_lookup_ba(hdev, ACL_LINK, &ev->bdaddr); --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 59934176522; Sun, 24 Mar 2024 23:37:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323428; cv=none; b=dYsa0SfsfSz1ebjikeRTUnp++DgSii/2mnwa3TyXAoHn6DBt2Jlo6Xg6cmvQxcXiiJaiw+1S/gdgUUWPVnJPag8BNPkSAmx6+MmvHmeC1IlNX/NqiYVQsn6hZ8lDILHf8PI4T6OQRYnRHmCN/98JSnpz6vYg48thbvMaw3ZO/QM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323428; c=relaxed/simple; bh=SYIICNQzH4OBpBs/3NMFn9Ma5aGTMNM/qlRXoJvI51U=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=egRhSCSC7ER3hwvNLyyDY0nFernWZdguE1WUmZj84XykxFIMa0fXnPezCxky7UqNpUQoL3xoK6zjrc9HqroLSkWwedTKczRcmIfx/unwAt4xixBVDz7QYYtn1QvSJh7B47yUT0uqLHElEraVVwfOB5CkyUDhDTuEOgzlXD6FLUQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=i2WN/Een; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="i2WN/Een" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8000BC43399; Sun, 24 Mar 2024 23:37:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323427; bh=SYIICNQzH4OBpBs/3NMFn9Ma5aGTMNM/qlRXoJvI51U=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=i2WN/EenbSqHTqf2m6HBcRYigcytx2afS6SeZHiNCjhYdN4iPNoGYRkd0xxug409Q dnDOKyZNxMOIhJD1rT5oip0lGT1k/I03KAq2RGf7KOHiCe0/VRSEQwbaybjWZAv8UC npwdGB6Ex9LksXvVmQxBlqwihkyph18t7dZjzF3xg1NiVi1tr7NYHgtzkjJKrASgSy Z+jgOMJB0rjzMDXl6efjMSFIxlyYrmNdJ9lT6d3dRjQ30JPmaCGwh7u6qxETJPL6MV Aeo7julk6FfR2hrC9HLZIdQOZTk/25D/cKcQgrtNVYiauCVNjQlcMKofN6XwoXIhKN ypFpkoFFNv42w== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Steev Klimaszewski , Bjorn Andersson , Luiz Augusto von Dentz , Sasha Levin Subject: [PATCH 5.15 129/317] Bluetooth: hci_qca: Add support for QTI Bluetooth chip wcn6855 Date: Sun, 24 Mar 2024 19:31:49 -0400 Message-ID: <20240324233458.1352854-130-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Steev Klimaszewski [ Upstream commit 095327fede005f4b14d40b2183b2f7965c739dbd ] Add regulators, GPIOs and changes required to power on/off wcn6855. Add support for firmware download for wcn6855 which is in the linux-firmware repository as hpbtfw21.tlv and hpnv21.bin. Based on the assumption that this is similar to the wcn6750 Tested-on: BTFW.HSP.2.1.0-00538-VER_PATCHZ-1 Signed-off-by: Steev Klimaszewski Reviewed-by: Bjorn Andersson Tested-by: Bjorn Andersson Signed-off-by: Luiz Augusto von Dentz Stable-dep-of: 56d074d26c58 ("Bluetooth: hci_qca: don't use IS_ERR_OR_NULL(= ) with gpiod_get_optional()") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/bluetooth/btqca.c | 14 ++++++++- drivers/bluetooth/btqca.h | 10 +++++++ drivers/bluetooth/hci_qca.c | 57 ++++++++++++++++++++++++++++--------- 3 files changed, 66 insertions(+), 15 deletions(-) diff --git a/drivers/bluetooth/btqca.c b/drivers/bluetooth/btqca.c index be04d74037d20..0f3943ac54179 100644 --- a/drivers/bluetooth/btqca.c +++ b/drivers/bluetooth/btqca.c @@ -566,6 +566,9 @@ int qca_uart_setup(struct hci_dev *hdev, uint8_t baudra= te, config.type =3D ELF_TYPE_PATCH; snprintf(config.fwname, sizeof(config.fwname), "qca/msbtfw%02x.mbn", rom_ver); + } else if (soc_type =3D=3D QCA_WCN6855) { + snprintf(config.fwname, sizeof(config.fwname), + "qca/hpbtfw%02x.tlv", rom_ver); } else { snprintf(config.fwname, sizeof(config.fwname), "qca/rampatch_%08x.bin", soc_ver); @@ -600,6 +603,9 @@ int qca_uart_setup(struct hci_dev *hdev, uint8_t baudra= te, else if (soc_type =3D=3D QCA_WCN6750) snprintf(config.fwname, sizeof(config.fwname), "qca/msnv%02x.bin", rom_ver); + else if (soc_type =3D=3D QCA_WCN6855) + snprintf(config.fwname, sizeof(config.fwname), + "qca/hpnv%02x.bin", rom_ver); else snprintf(config.fwname, sizeof(config.fwname), "qca/nvm_%08x.bin", soc_ver); @@ -637,11 +643,17 @@ int qca_uart_setup(struct hci_dev *hdev, uint8_t baud= rate, return err; } =20 - if (soc_type =3D=3D QCA_WCN3991 || soc_type =3D=3D QCA_WCN6750) { + switch (soc_type) { + case QCA_WCN3991: + case QCA_WCN6750: + case QCA_WCN6855: /* get fw build info */ err =3D qca_read_fw_build_info(hdev); if (err < 0) return err; + break; + default: + break; } =20 bt_dev_info(hdev, "QCA setup on UART is completed"); diff --git a/drivers/bluetooth/btqca.h b/drivers/bluetooth/btqca.h index 30afa7703afd3..b83bf202ea604 100644 --- a/drivers/bluetooth/btqca.h +++ b/drivers/bluetooth/btqca.h @@ -145,6 +145,7 @@ enum qca_btsoc_type { QCA_WCN3991, QCA_QCA6390, QCA_WCN6750, + QCA_WCN6855, }; =20 #if IS_ENABLED(CONFIG_BT_QCA) @@ -166,6 +167,10 @@ static inline bool qca_is_wcn6750(enum qca_btsoc_type = soc_type) { return soc_type =3D=3D QCA_WCN6750; } +static inline bool qca_is_wcn6855(enum qca_btsoc_type soc_type) +{ + return soc_type =3D=3D QCA_WCN6855; +} =20 #else =20 @@ -204,6 +209,11 @@ static inline bool qca_is_wcn6750(enum qca_btsoc_type = soc_type) return false; } =20 +static inline bool qca_is_wcn6855(enum qca_btsoc_type soc_type) +{ + return false; +} + static inline int qca_send_pre_shutdown_cmd(struct hci_dev *hdev) { return -EOPNOTSUPP; diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c index d10f1fe0f5fa8..7c641cabea7c8 100644 --- a/drivers/bluetooth/hci_qca.c +++ b/drivers/bluetooth/hci_qca.c @@ -1315,7 +1315,8 @@ static int qca_set_baudrate(struct hci_dev *hdev, uin= t8_t baudrate) =20 /* Give the controller time to process the request */ if (qca_is_wcn399x(qca_soc_type(hu)) || - qca_is_wcn6750(qca_soc_type(hu))) + qca_is_wcn6750(qca_soc_type(hu)) || + qca_is_wcn6855(qca_soc_type(hu))) usleep_range(1000, 10000); else msleep(300); @@ -1392,7 +1393,8 @@ static unsigned int qca_get_speed(struct hci_uart *hu, static int qca_check_speeds(struct hci_uart *hu) { if (qca_is_wcn399x(qca_soc_type(hu)) || - qca_is_wcn6750(qca_soc_type(hu))) { + qca_is_wcn6750(qca_soc_type(hu)) || + qca_is_wcn6855(qca_soc_type(hu))) { if (!qca_get_speed(hu, QCA_INIT_SPEED) && !qca_get_speed(hu, QCA_OPER_SPEED)) return -EINVAL; @@ -1426,7 +1428,8 @@ static int qca_set_speed(struct hci_uart *hu, enum qc= a_speed_type speed_type) * changing the baudrate of chip and host. */ if (qca_is_wcn399x(soc_type) || - qca_is_wcn6750(soc_type)) + qca_is_wcn6750(soc_type) || + qca_is_wcn6855(soc_type)) hci_uart_set_flow_control(hu, true); =20 if (soc_type =3D=3D QCA_WCN3990) { @@ -1444,7 +1447,8 @@ static int qca_set_speed(struct hci_uart *hu, enum qc= a_speed_type speed_type) =20 error: if (qca_is_wcn399x(soc_type) || - qca_is_wcn6750(soc_type)) + qca_is_wcn6750(soc_type) || + qca_is_wcn6855(soc_type)) hci_uart_set_flow_control(hu, false); =20 if (soc_type =3D=3D QCA_WCN3990) { @@ -1680,7 +1684,8 @@ static int qca_power_on(struct hci_dev *hdev) return 0; =20 if (qca_is_wcn399x(soc_type) || - qca_is_wcn6750(soc_type)) { + qca_is_wcn6750(soc_type) || + qca_is_wcn6855(soc_type)) { ret =3D qca_regulator_init(hu); } else { qcadev =3D serdev_device_get_drvdata(hu->serdev); @@ -1721,7 +1726,8 @@ static int qca_setup(struct hci_uart *hu) =20 bt_dev_info(hdev, "setting up %s", qca_is_wcn399x(soc_type) ? "wcn399x" : - (soc_type =3D=3D QCA_WCN6750) ? "wcn6750" : "ROME/QCA6390"); + (soc_type =3D=3D QCA_WCN6750) ? "wcn6750" : + (soc_type =3D=3D QCA_WCN6855) ? "wcn6855" : "ROME/QCA6390"); =20 qca->memdump_state =3D QCA_MEMDUMP_IDLE; =20 @@ -1733,7 +1739,8 @@ static int qca_setup(struct hci_uart *hu) clear_bit(QCA_SSR_TRIGGERED, &qca->flags); =20 if (qca_is_wcn399x(soc_type) || - qca_is_wcn6750(soc_type)) { + qca_is_wcn6750(soc_type) || + qca_is_wcn6855(soc_type)) { set_bit(HCI_QUIRK_USE_BDADDR_PROPERTY, &hdev->quirks); =20 ret =3D qca_read_soc_version(hdev, &ver, soc_type); @@ -1754,7 +1761,8 @@ static int qca_setup(struct hci_uart *hu) } =20 if (!(qca_is_wcn399x(soc_type) || - qca_is_wcn6750(soc_type))) { + qca_is_wcn6750(soc_type) || + qca_is_wcn6855(soc_type))) { /* Get QCA version information */ ret =3D qca_read_soc_version(hdev, &ver, soc_type); if (ret) @@ -1880,6 +1888,20 @@ static const struct qca_device_data qca_soc_data_wcn= 6750 =3D { .capabilities =3D QCA_CAP_WIDEBAND_SPEECH | QCA_CAP_VALID_LE_STATES, }; =20 +static const struct qca_device_data qca_soc_data_wcn6855 =3D { + .soc_type =3D QCA_WCN6855, + .vregs =3D (struct qca_vreg []) { + { "vddio", 5000 }, + { "vddbtcxmx", 126000 }, + { "vddrfacmn", 12500 }, + { "vddrfa0p8", 102000 }, + { "vddrfa1p7", 302000 }, + { "vddrfa1p2", 257000 }, + }, + .num_vregs =3D 6, + .capabilities =3D QCA_CAP_WIDEBAND_SPEECH | QCA_CAP_VALID_LE_STATES, +}; + static void qca_power_shutdown(struct hci_uart *hu) { struct qca_serdev *qcadev; @@ -1909,7 +1931,7 @@ static void qca_power_shutdown(struct hci_uart *hu) host_set_baudrate(hu, 2400); qca_send_power_pulse(hu, false); qca_regulator_disable(qcadev); - } else if (soc_type =3D=3D QCA_WCN6750) { + } else if (soc_type =3D=3D QCA_WCN6750 || soc_type =3D=3D QCA_WCN6855) { gpiod_set_value_cansleep(qcadev->bt_en, 0); msleep(100); qca_regulator_disable(qcadev); @@ -2044,7 +2066,8 @@ static int qca_serdev_probe(struct serdev_device *ser= dev) =20 if (data && (qca_is_wcn399x(data->soc_type) || - qca_is_wcn6750(data->soc_type))) { + qca_is_wcn6750(data->soc_type) || + qca_is_wcn6855(data->soc_type))) { qcadev->btsoc_type =3D data->soc_type; qcadev->bt_power =3D devm_kzalloc(&serdev->dev, sizeof(struct qca_power), @@ -2064,14 +2087,18 @@ static int qca_serdev_probe(struct serdev_device *s= erdev) =20 qcadev->bt_en =3D devm_gpiod_get_optional(&serdev->dev, "enable", GPIOD_OUT_LOW); - if (IS_ERR_OR_NULL(qcadev->bt_en) && data->soc_type =3D=3D QCA_WCN6750) { + if (IS_ERR_OR_NULL(qcadev->bt_en) && + (data->soc_type =3D=3D QCA_WCN6750 || + data->soc_type =3D=3D QCA_WCN6855)) { dev_err(&serdev->dev, "failed to acquire BT_EN gpio\n"); power_ctrl_enabled =3D false; } =20 qcadev->sw_ctrl =3D devm_gpiod_get_optional(&serdev->dev, "swctrl", GPIOD_IN); - if (IS_ERR_OR_NULL(qcadev->sw_ctrl) && data->soc_type =3D=3D QCA_WCN6750) + if (IS_ERR_OR_NULL(qcadev->sw_ctrl) && + (data->soc_type =3D=3D QCA_WCN6750 || + data->soc_type =3D=3D QCA_WCN6855)) dev_warn(&serdev->dev, "failed to acquire SW_CTRL gpio\n"); =20 qcadev->susclk =3D devm_clk_get_optional(&serdev->dev, NULL); @@ -2147,8 +2174,9 @@ static void qca_serdev_remove(struct serdev_device *s= erdev) struct qca_power *power =3D qcadev->bt_power; =20 if ((qca_is_wcn399x(qcadev->btsoc_type) || - qca_is_wcn6750(qcadev->btsoc_type)) && - power->vregs_on) + qca_is_wcn6750(qcadev->btsoc_type) || + qca_is_wcn6855(qcadev->btsoc_type)) && + power->vregs_on) qca_power_shutdown(&qcadev->serdev_hu); else if (qcadev->susclk) clk_disable_unprepare(qcadev->susclk); @@ -2332,6 +2360,7 @@ static const struct of_device_id qca_bluetooth_of_mat= ch[] =3D { { .compatible =3D "qcom,wcn3991-bt", .data =3D &qca_soc_data_wcn3991}, { .compatible =3D "qcom,wcn3998-bt", .data =3D &qca_soc_data_wcn3998}, { .compatible =3D "qcom,wcn6750-bt", .data =3D &qca_soc_data_wcn6750}, + { .compatible =3D "qcom,wcn6855-bt", .data =3D &qca_soc_data_wcn6855}, { /* sentinel */ } }; MODULE_DEVICE_TABLE(of, qca_bluetooth_of_match); --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3ACCB176521; Sun, 24 Mar 2024 23:37:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323428; cv=none; b=AHlhv38RGRiLw9Ji1ngi9xiVVobjT6AfsFDxbjBFWj3/TW1TLsXByrQ24APEqD6xrUBNQijWE7NkwIBmCaExkgtcQW1EMKKjsuZxUlKeFxNdHGCH8v+XObm2k6SILJcM+5AiWlCvgFFDQK/YFQXa5gww2sRzwspC0RcVFYOrceo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323428; c=relaxed/simple; bh=Kh+pXPrwm31EcD9O+J7RWqTAjnpuybOzZzdnDPK5kUM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=AfH63p1XxvWr6wc2LJH5Ww8jhnOXhq6/4g9cMOlf3cf7aVMwOLOOZBeJjM2nVerWxpdgq/Jk3xe/NXv+v3InYZGNGG2ZhV9JR5gKCexxTWqhXp5Z4Wh2TTGg+nGvmDYoKjAijYJX6RzqxFFgLq8zZoAjNy1xz3CMr45ZbsruQw0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=mW4+6R0K; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="mW4+6R0K" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7B8E5C43390; Sun, 24 Mar 2024 23:37:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323428; bh=Kh+pXPrwm31EcD9O+J7RWqTAjnpuybOzZzdnDPK5kUM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=mW4+6R0KOYfEtzuXWW0+CckxRrvJLWpshUO23VZQZQqUSf6bo8xKkc5DWxu+UwxlD tkl3l4uVnzYYqYgNnib6piuwzfxdGjlxIxLV7CKEG2GMpDyT1aJROHPQzNvzAm783p ++T2lIowG17Grluwbk7VEn5eg8+NFs1swNaXjxFyw6D15tk5RjdFEmdUxaaoGgg6It vUfbuNamSlS6uo1TmAJFwfmBcDOkfuEx9PZNUKFZ2XnsG28fm/JwerQ6oozrKn9Y0n l93v2Rc+pUuPkTpZFcLvYls1s0G870/nldEFR2ffyAjxT4mChyZq3nhLveSk3Fs3cw 271YWRc7/tKGw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Bartosz Golaszewski , Luiz Augusto von Dentz , Sasha Levin Subject: [PATCH 5.15 130/317] Bluetooth: hci_qca: don't use IS_ERR_OR_NULL() with gpiod_get_optional() Date: Sun, 24 Mar 2024 19:31:50 -0400 Message-ID: <20240324233458.1352854-131-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Bartosz Golaszewski [ Upstream commit 56d074d26c5828773b00b2185dd7e1d08273b8e8 ] The optional variants for the gpiod_get() family of functions return NULL if the GPIO in question is not associated with this device. They return ERR_PTR() on any other error. NULL descriptors are graciously handled by GPIOLIB and can be safely passed to any of the GPIO consumer interfaces as they will return 0 and act as if the function succeeded. If one is using the optional variant, then there's no point in checking for NULL. Fixes: 6845667146a2 ("Bluetooth: hci_qca: Fix NULL vs IS_ERR_OR_NULL check = in qca_serdev_probe") Signed-off-by: Bartosz Golaszewski Signed-off-by: Luiz Augusto von Dentz Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/bluetooth/hci_qca.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c index 7c641cabea7c8..d5f408851a005 100644 --- a/drivers/bluetooth/hci_qca.c +++ b/drivers/bluetooth/hci_qca.c @@ -2087,7 +2087,7 @@ static int qca_serdev_probe(struct serdev_device *ser= dev) =20 qcadev->bt_en =3D devm_gpiod_get_optional(&serdev->dev, "enable", GPIOD_OUT_LOW); - if (IS_ERR_OR_NULL(qcadev->bt_en) && + if (IS_ERR(qcadev->bt_en) && (data->soc_type =3D=3D QCA_WCN6750 || data->soc_type =3D=3D QCA_WCN6855)) { dev_err(&serdev->dev, "failed to acquire BT_EN gpio\n"); @@ -2096,7 +2096,7 @@ static int qca_serdev_probe(struct serdev_device *ser= dev) =20 qcadev->sw_ctrl =3D devm_gpiod_get_optional(&serdev->dev, "swctrl", GPIOD_IN); - if (IS_ERR_OR_NULL(qcadev->sw_ctrl) && + if (IS_ERR(qcadev->sw_ctrl) && (data->soc_type =3D=3D QCA_WCN6750 || data->soc_type =3D=3D QCA_WCN6855)) dev_warn(&serdev->dev, "failed to acquire SW_CTRL gpio\n"); @@ -2120,7 +2120,7 @@ static int qca_serdev_probe(struct serdev_device *ser= dev) =20 qcadev->bt_en =3D devm_gpiod_get_optional(&serdev->dev, "enable", GPIOD_OUT_LOW); - if (IS_ERR_OR_NULL(qcadev->bt_en)) { + if (IS_ERR(qcadev->bt_en)) { dev_warn(&serdev->dev, "failed to acquire enable gpio\n"); power_ctrl_enabled =3D false; } --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0A38817652F; Sun, 24 Mar 2024 23:37:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323430; cv=none; b=NDAcrrVey1tK/7N1qvQxlXwgevew9anvMIdSySBLjZzSgjWBWn++tK/6QytC0Dpxyu+wZSBRH0EQgHg++EWfMmne9+d8pAHdLJw3pttuXyWP85QthraJCbIBlynBFsy5lmsENVqqUXDbQ/gvkaqLcuY0JUmE8tAxyU7iQHJEz1Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323430; c=relaxed/simple; bh=qWPlS/qcsnHUT0bA+3xVg1Wjvy8As0j+UUf925zBuOg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=OGFNmtsECbAVl+2ibi+3BLzTkHgvOb8uxzDMYpdX0PhyhSP11KYJlY0ySoHumpAYMpibUkVd7c+sM1uolL0FQ+0fiHHnkhfQqEuKVhcHG28x2Bmjm7X8qmT0Cu99CgFUiV+L93QiDTMmavuoq2oZXalCBV3gwz2glDy6AS8AXQI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=DUVAY+yl; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="DUVAY+yl" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 60912C433F1; Sun, 24 Mar 2024 23:37:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323428; bh=qWPlS/qcsnHUT0bA+3xVg1Wjvy8As0j+UUf925zBuOg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=DUVAY+ylvpbaK1JFlwu9YeY5LHLCNMov3GZEzNj6OHaWAfnnUQmF7ra80V7GNciPW S6pcnqRWuWliYUwiOzzPqt3itmPj/4MbIms9b+7GVb7vCWnq3NMvvFWvh1G/W/Ct3f XnBnnaJxwcmhOuhjZNb1q2SpmxyI6S5uf6vLl/lWWiDQoo/w7PTQ5n9Ek7vbTGVriA C7LSnIxakDjI61n16jOwZYRNq86vCgEFTsRZsSkDSz5oEkb9hOcjXGzhTWfSvELaOU 5tKojFcGB6bYs0EzvYnNd+vqTleX7HaKRTcdwspefwQmCz/61BRYuKjsHHwExGolQq lwV3u0B5zXlBg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Luiz Augusto von Dentz , Sasha Levin Subject: [PATCH 5.15 131/317] Bluetooth: hci_core: Fix possible buffer overflow Date: Sun, 24 Mar 2024 19:31:51 -0400 Message-ID: <20240324233458.1352854-132-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Luiz Augusto von Dentz [ Upstream commit 81137162bfaa7278785b24c1fd2e9e74f082e8e4 ] struct hci_dev_info has a fixed size name[8] field so in the event that hdev->name is bigger than that strcpy would attempt to write past its size, so this fixes this problem by switching to use strscpy. Fixes: dcda165706b9 ("Bluetooth: hci_core: Fix build warnings") Signed-off-by: Luiz Augusto von Dentz Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- net/bluetooth/hci_core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c index a8854b24f4cfb..8a3c867bdff03 100644 --- a/net/bluetooth/hci_core.c +++ b/net/bluetooth/hci_core.c @@ -2187,7 +2187,7 @@ int hci_get_dev_info(void __user *arg) else flags =3D hdev->flags; =20 - strcpy(di.name, hdev->name); + strscpy(di.name, hdev->name, sizeof(di.name)); di.bdaddr =3D hdev->bdaddr; di.type =3D (hdev->bus & 0x0f) | ((hdev->dev_type & 0x03) << 4); di.flags =3D flags; --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0795E17652B; Sun, 24 Mar 2024 23:37:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323430; cv=none; b=Z8+Rehexy8sQTeH1cbQeehl7RKCpCOPgv9uFBsQotFr47NndUveCF8DpcSBtrVGHutxYD1kOauksoVeqrlurtmz6N5hflQWwjanxa8Gn+GThkP4wlTQpyjcxl3K7FSFDGRcIHAHQ+mMOWRssSO3HcGUxqTyDZ6piQbGbNrmP0ZI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323430; c=relaxed/simple; bh=zEo5HPGCkVk6f1ShXx2yoFamEJLmzLxZh76VBAylBns=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Jxga6mMaeGpqgVWDnK8sY+ml1QsspVqL90Nsaa0HjIYZ7BYQPMxLs97knN432bLeHCcjpOCcF40ow/9yvpf7ppscWg69TcpyQzAU/8MHCfMfs/c6tZJE9gEe81C/MRo/WhhVblNbm9vS6bMA0wi07Sp0RRKKPkBUWb8N43+kyvo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=kc7s3wgI; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="kc7s3wgI" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 30674C433C7; Sun, 24 Mar 2024 23:37:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323429; bh=zEo5HPGCkVk6f1ShXx2yoFamEJLmzLxZh76VBAylBns=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=kc7s3wgIpbesxx6Y4Kdn0l8sFlWPKwrkcKHA5v+9T3IaeyVNSL0GjuISV2x/yO+Dr N1GNQEl4YxvLwACsm5m9HD2HHK0mnBI72oXSgmCpX1hck/U1QWkMwKnomun+GFES87 Jhe1zawUjxVnxEwnLnS+eiST2A4/42Btnmx+XQsFGCi9L+FJL0sGT5YmdKeofa0Gzz T2QhvrtkufzTF8HJZkmRmaAvuWS/M7uvKCrty5iDvvg/PPWO9zcFwscwcpWF4+l+Wo gQG2Ukgv8bLrStWPI2Awmq2jmjXIYlJ2mRqo2V15aBzovkaitzx1PuJbbS6r32z1YW 5KCHgdOIPYbWA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Chen Ni , Simon Horman , Jakub Kicinski , Sasha Levin Subject: [PATCH 5.15 132/317] sr9800: Add check for usbnet_get_endpoints Date: Sun, 24 Mar 2024 19:31:52 -0400 Message-ID: <20240324233458.1352854-133-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Chen Ni [ Upstream commit 07161b2416f740a2cb87faa5566873f401440a61 ] Add check for usbnet_get_endpoints() and return the error if it fails in order to transfer the error. Signed-off-by: Chen Ni Reviewed-by: Simon Horman Fixes: 19a38d8e0aa3 ("USB2NET : SR9800 : One chip USB2.0 USB2NET SR9800 Dev= ice Driver Support") Link: https://lore.kernel.org/r/20240305075927.261284-1-nichen@iscas.ac.cn Signed-off-by: Jakub Kicinski Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/net/usb/sr9800.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/net/usb/sr9800.c b/drivers/net/usb/sr9800.c index 576401c8b1bee..79358369c4565 100644 --- a/drivers/net/usb/sr9800.c +++ b/drivers/net/usb/sr9800.c @@ -736,7 +736,9 @@ static int sr9800_bind(struct usbnet *dev, struct usb_i= nterface *intf) =20 data->eeprom_len =3D SR9800_EEPROM_LEN; =20 - usbnet_get_endpoints(dev, intf); + ret =3D usbnet_get_endpoints(dev, intf); + if (ret) + goto out; =20 /* LED Setting Rule : * AABB:CCDD --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0CE92130A6D; Sun, 24 Mar 2024 23:37:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323432; cv=none; b=E7G/pNd2ACeyXKOlZa10c0UtJZouXGrvQ39VBgEwgFSkfmuQmcnAwk3g6Hq5e5eW8EyQMPAibHimJsw3L2M8XlqBx27QLiwHsh7VARKrVG9ry+LDh9NPgD1h7bIDPxYTbYwyQSr1bRtb8xz0R+DSwgwpN2WIyPGoRdbr+33aq8g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323432; c=relaxed/simple; bh=NPjfnzED8BoT35x6bgMnmQsuwCdMFgSn/d3NxJwHA54=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=JaVOZL91XJw03VyZacnCDggBlWvQgYxcY1FCraQAOuWZ05x0oI9LbeN/vhJVLrVfHd7XuLfXx2YigjdPyE4gEBrgja0Ao02mZyrON4LFDNJnJbBd+GqoGHK7J/WCcfOHXOUoa0erMki4oXX+iTmezYTNO3BE50fQn1coBTjefF0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=FhsyWPT6; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="FhsyWPT6" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 29FECC433B1; Sun, 24 Mar 2024 23:37:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323430; bh=NPjfnzED8BoT35x6bgMnmQsuwCdMFgSn/d3NxJwHA54=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=FhsyWPT6aX4LRgFlxkiic8TmDohiAtSaWFTmpIzof5G3oACBC8IOeuaSlRCpEKn2Z xaFja10ieWtJq7ncdyG9t2iwDHTkjo5m8+TU1o4Btq3AtIsStzNFpu013kzkAw1lWk pRDJTdVc8gscld8hPJjBxlQtBVBd7ejlx6XcbmxM73xvcc80rVZlDqF9zJyELRHl3+ 2K8LxEMwRa+j6IPsH19Ms/7mJI1Kzm5QsSN5HvxaJ3cZGpoyHd+vASXCP8QcgVxyKh j0gJlBatt9vT1LyqnPM10/cSuIO3gs92hcGsn/uWLUtSpUxEASVXQ/VBJsmEz+sVYK objCgghR09fFw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?Toke=20H=C3=B8iland-J=C3=B8rgensen?= , syzbot+8cd36f6b65f3cafd400a@syzkaller.appspotmail.com, Alexei Starovoitov , Sasha Levin Subject: [PATCH 5.15 133/317] bpf: Fix DEVMAP_HASH overflow check on 32-bit arches Date: Sun, 24 Mar 2024 19:31:53 -0400 Message-ID: <20240324233458.1352854-134-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable From: Toke H=C3=B8iland-J=C3=B8rgensen [ Upstream commit 281d464a34f540de166cee74b723e97ac2515ec3 ] The devmap code allocates a number hash buckets equal to the next power of two of the max_entries value provided when creating the map. When rounding up to the next power of two, the 32-bit variable storing the number of buckets can overflow, and the code checks for overflow by checking if the truncated 32-bit value is equal to 0. However, on 32-bit arches the rounding up itself can overflow mid-way through, because it ends up doing a left-shift of 32 bits on an unsigned long value. If the size of an unsigned long is four bytes, this is undefined behaviour, so there is no guarantee that we'll end up with a nice and tidy 0-value at the end. Syzbot managed to turn this into a crash on arm32 by creating a DEVMAP_HASH with max_entries > 0x80000000 and then trying to update it. Fix this by moving the overflow check to before the rounding up operation. Fixes: 6f9d451ab1a3 ("xdp: Add devmap_hash map type for looking up devices = by hashed index") Link: https://lore.kernel.org/r/000000000000ed666a0611af6818@google.com Reported-and-tested-by: syzbot+8cd36f6b65f3cafd400a@syzkaller.appspotmail.c= om Signed-off-by: Toke H=C3=B8iland-J=C3=B8rgensen Message-ID: <20240307120340.99577-2-toke@redhat.com> Signed-off-by: Alexei Starovoitov Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- kernel/bpf/devmap.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/kernel/bpf/devmap.c b/kernel/bpf/devmap.c index f02d04540c0c0..b591073c5f83d 100644 --- a/kernel/bpf/devmap.c +++ b/kernel/bpf/devmap.c @@ -130,13 +130,14 @@ static int dev_map_init_map(struct bpf_dtab *dtab, un= ion bpf_attr *attr) bpf_map_init_from_attr(&dtab->map, attr); =20 if (attr->map_type =3D=3D BPF_MAP_TYPE_DEVMAP_HASH) { - dtab->n_buckets =3D roundup_pow_of_two(dtab->map.max_entries); - - if (!dtab->n_buckets) /* Overflow check */ + /* hash table size must be power of 2; roundup_pow_of_two() can + * overflow into UB on 32-bit arches, so check that first + */ + if (dtab->map.max_entries > 1UL << 31) return -EINVAL; - } =20 - if (attr->map_type =3D=3D BPF_MAP_TYPE_DEVMAP_HASH) { + dtab->n_buckets =3D roundup_pow_of_two(dtab->map.max_entries); + dtab->dev_index_head =3D dev_map_create_hash(dtab->n_buckets, dtab->map.numa_node); if (!dtab->dev_index_head) --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DB60D130A68; Sun, 24 Mar 2024 23:37:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323431; cv=none; b=nl9suqHzNCnnA/BxyLtxURhwUrXromF6JiljOLGjZf68DUOxZhkkamPCBO5RCZz8OXi/MXQzAjaiI1tecSwjgpdZfPfbJa6OOubLhLyYYfyXn61k/fwdU2FMmkPuwtT7IyCxGEfyvXBzbcIIU+Daiu0odT3jJUZg/0f22DCvL9g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323431; c=relaxed/simple; bh=D0joGjw/fnnGUxOcyDbl6L1fMbAAXFAAFW3iPfcU4CI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=IwUKqXz7w/FCAKrl2MY2MNWWCIUeXxayYdkXZiPfwdKp5u2vvPOFAUZJNRL3HoEmkU5dKF0DzeiujZi4UYBWdShAyTJ98xoAwLpRJvGRoeprP4krWMa004be2mJB6mINBPdDlne1QB+hLyrpq5P/Jd4X0odc85XXz8GEZcY0Lms= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=kH2IMjLw; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="kH2IMjLw" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 25F30C433C7; Sun, 24 Mar 2024 23:37:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323431; bh=D0joGjw/fnnGUxOcyDbl6L1fMbAAXFAAFW3iPfcU4CI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=kH2IMjLwCpq2WyOA3lLAxK76aIZmhSeznwigyvFX8+jsMdreIcnnjiWPnpRZceDRZ vNxUm8ofPYZ2fnLaMY2e62Y8lYn9YpvlqQuSirf3h5eqlSOR9A4hjEzQBJ8EJ3Rf8S NysoZvMAUSgZ2HS0XSyA7wq+qqH4eMDvvsUxy5KN3ZMLW9OowZj69o69zCBwd9qjGG q4HF83HyHOwNZhzueDSY5+n8Wp+1h/jv+bC5zLdcKdVmszuDWcgS6ghs8WpuZLmx8v ptLjisWETsJEs9P6lcbKuoSI6y4BogfKEJkFwslp9f1nfhbKBNz5nRZuB/K7CwjTl9 TGSX4Sz+041KQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?Toke=20H=C3=B8iland-J=C3=B8rgensen?= , Alexei Starovoitov , Sasha Levin Subject: [PATCH 5.15 134/317] bpf: Fix hashtab overflow check on 32-bit arches Date: Sun, 24 Mar 2024 19:31:54 -0400 Message-ID: <20240324233458.1352854-135-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable From: Toke H=C3=B8iland-J=C3=B8rgensen [ Upstream commit 6787d916c2cf9850c97a0a3f73e08c43e7d973b1 ] The hashtab code relies on roundup_pow_of_two() to compute the number of hash buckets, and contains an overflow check by checking if the resulting value is 0. However, on 32-bit arches, the roundup code itself can overflow by doing a 32-bit left-shift of an unsigned long value, which is undefined behaviour, so it is not guaranteed to truncate neatly. This was triggered by syzbot on the DEVMAP_HASH type, which contains the same check, copied from the hashtab code. So apply the same fix to hashtab, by moving the overflow check to before the roundup. Fixes: daaf427c6ab3 ("bpf: fix arraymap NULL deref and missing overflow and= zero size checks") Signed-off-by: Toke H=C3=B8iland-J=C3=B8rgensen Message-ID: <20240307120340.99577-3-toke@redhat.com> Signed-off-by: Alexei Starovoitov Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- kernel/bpf/hashtab.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/kernel/bpf/hashtab.c b/kernel/bpf/hashtab.c index 28b43642c0593..f53b4f04b935c 100644 --- a/kernel/bpf/hashtab.c +++ b/kernel/bpf/hashtab.c @@ -504,7 +504,13 @@ static struct bpf_map *htab_map_alloc(union bpf_attr *= attr) num_possible_cpus()); } =20 - /* hash table size must be power of 2 */ + /* hash table size must be power of 2; roundup_pow_of_two() can overflow + * into UB on 32-bit arches, so check that first + */ + err =3D -E2BIG; + if (htab->map.max_entries > 1UL << 31) + goto free_htab; + htab->n_buckets =3D roundup_pow_of_two(htab->map.max_entries); =20 htab->elem_size =3D sizeof(struct htab_elem) + @@ -514,10 +520,8 @@ static struct bpf_map *htab_map_alloc(union bpf_attr *= attr) else htab->elem_size +=3D round_up(htab->map.value_size, 8); =20 - err =3D -E2BIG; - /* prevent zero size kmalloc and check for u32 overflow */ - if (htab->n_buckets =3D=3D 0 || - htab->n_buckets > U32_MAX / sizeof(struct bucket)) + /* check for u32 overflow */ + if (htab->n_buckets > U32_MAX / sizeof(struct bucket)) goto free_htab; =20 err =3D -ENOMEM; --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DAB68130A70; Sun, 24 Mar 2024 23:37:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323432; cv=none; b=teei2xF1sZmwJJjsk/ADEgSL9QmbvsCvggvo6mA8k61zSFX9Q1VghjymwFLDew67GYGbUJxp+l/W1pnkFn/CcZ6/xV70LzrMFugfPW19ZwpRZ6+NRt0c2zJa/SGFZwIustSov2RHXqmZL57pogaUxL+2hpT6vqx9KE8UeS8JZgc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323432; c=relaxed/simple; bh=VCSP0Hvz9yW0LzCbR2GPdE6hk29eu4AHO+aWWY50kDw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=LnrQgymgnp1i0DVV2JMPEp5sWtTQ3nAmCwMtMi6AeTwesUs2pJSogNDQSbnfB/3bGCkLv88wrqYD0rFK3Iwv1tRxtqFWnbOb3LW2zWODgjVXrNX0QdsIF1csDd8CKDy7+ZpUoxaTQnC2WQLrApKZBUWE+BtKCTNivVywPBzw7Yg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=dcamVFpr; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="dcamVFpr" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0B397C43390; Sun, 24 Mar 2024 23:37:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323432; bh=VCSP0Hvz9yW0LzCbR2GPdE6hk29eu4AHO+aWWY50kDw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=dcamVFpr5FQFnCRYiVFrfrG0aYirA6MZQ4sudQQE+Vtjo6KnfuSDzKznbsP08Vh4r ORESt6ZL03O7T/np2mSBjNtju9s+GK4o/R5BruV0lBF0tJYYtKCWbFqJCV/gfk2xgc Iyo+4N3yElFnQ5FN2Vfw6vDQzo5fj2PfDPxsCC67KESXJtA1ZSiMCxPHmUdCN9dRN7 ZkYTnRPe3K9KSdZFBcyTNDxzH3BM/EnE6jii+Z2WVPT3eN7ft/us1h8JckOX3c4NI2 OIn+KsRWkPK5Q6D+aQFJFhtquNLkfMkjo0tlcIAzglDJJvH9QxQGRw564SGxIlXuBN fjU4oBcdwa0Tw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?Toke=20H=C3=B8iland-J=C3=B8rgensen?= , Bui Quang Minh , Alexei Starovoitov , Sasha Levin Subject: [PATCH 5.15 135/317] bpf: Fix stackmap overflow check on 32-bit arches Date: Sun, 24 Mar 2024 19:31:55 -0400 Message-ID: <20240324233458.1352854-136-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable From: Toke H=C3=B8iland-J=C3=B8rgensen [ Upstream commit 7a4b21250bf79eef26543d35bd390448646c536b ] The stackmap code relies on roundup_pow_of_two() to compute the number of hash buckets, and contains an overflow check by checking if the resulting value is 0. However, on 32-bit arches, the roundup code itself can overflow by doing a 32-bit left-shift of an unsigned long value, which is undefined behaviour, so it is not guaranteed to truncate neatly. This was triggered by syzbot on the DEVMAP_HASH type, which contains the same check, copied from the hashtab code. The commit in the fixes tag actually attempted to fix this, but the fix did not account for the UB, so the fix only works on CPUs where an overflow does result in a neat truncation to zero, which is not guaranteed. Checking the value before rounding does not have this problem. Fixes: 6183f4d3a0a2 ("bpf: Check for integer overflow when using roundup_po= w_of_two()") Signed-off-by: Toke H=C3=B8iland-J=C3=B8rgensen Reviewed-by: Bui Quang Minh Message-ID: <20240307120340.99577-4-toke@redhat.com> Signed-off-by: Alexei Starovoitov Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- kernel/bpf/stackmap.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/kernel/bpf/stackmap.c b/kernel/bpf/stackmap.c index f8587abef73c1..e04571c1833f6 100644 --- a/kernel/bpf/stackmap.c +++ b/kernel/bpf/stackmap.c @@ -113,11 +113,14 @@ static struct bpf_map *stack_map_alloc(union bpf_attr= *attr) } else if (value_size / 8 > sysctl_perf_event_max_stack) return ERR_PTR(-EINVAL); =20 - /* hash table size must be power of 2 */ - n_buckets =3D roundup_pow_of_two(attr->max_entries); - if (!n_buckets) + /* hash table size must be power of 2; roundup_pow_of_two() can overflow + * into UB on 32-bit arches, so check that first + */ + if (attr->max_entries > 1UL << 31) return ERR_PTR(-E2BIG); =20 + n_buckets =3D roundup_pow_of_two(attr->max_entries); + cost =3D n_buckets * sizeof(struct stack_map_bucket *) + sizeof(*smap); smap =3D bpf_map_area_alloc(cost, bpf_map_attr_numa_node(attr)); if (!smap) --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EBB5417653A; Sun, 24 Mar 2024 23:37:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323434; cv=none; b=pYuZXn6zXpUKXJot3H4C6PijyywL6XWFZpkQP1+k5669R0pqW/Kw7T812IvzYP5S/l6TRO99+TTm1/1kZ91yBa30gGMtUwQcRmJVGVvlJKnOilssJ0OgAun3TZ4p6c2Kp5liE+3jrlGZydhfOYb0SW0cGXQOYJC64roaYkQ5GEA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323434; c=relaxed/simple; bh=vHQWxmR2KBzDLTijSawxGqzNKDYiaWW7CDZBDWPM3Bs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=W05YbJGq8ITQMQ+gVvTtZ4uQpZX5252+S7izWX11lANLo9NLXrFsDL1Zq7w11pitxnkPfVjiHBMb3TmaHH6rrFS70ooVTE81fJ+ektESHa94mHV4/EI3el7DLLPQY7VqffndvQd2hTMS+ECW0XpUVFFMQvjJRwhFgyg6pKhfrJM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=YKhrZt4F; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="YKhrZt4F" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 06CF5C433C7; Sun, 24 Mar 2024 23:37:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323433; bh=vHQWxmR2KBzDLTijSawxGqzNKDYiaWW7CDZBDWPM3Bs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=YKhrZt4FPrPUQ6J0QvQ9l+4plGds6Xv6AaHs2fmNhlEUMVN206neUIeU3NJruTPYP ywjsIuzCW82oey6YqQO46UAMHjbmLelvCF70aTI6ck5hJtz0nS/KUh7qFvuMpM7v1r a58gOiBptHfBkKP0qoRAIRUiWOLAMNULIiCnwcaOvjQw/5hotM3fW21u8hUdDwp6z2 wiBRv9bauvfDyrnN6FFv9WrXoxJQKIAPQIM1rOmrRZUDRP46TBRHzzbEAD/K0LW1KX v1K6lKY4pp2kIhBQztaAwvlF0YyecPisAX88Y5m6sLSgK7RGqLUoRE6sbz3fzNjda4 WnxealhnLxN/g== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Shiming Cheng , Lena Wang , David Ahern , "David S . Miller" , Sasha Levin Subject: [PATCH 5.15 136/317] ipv6: fib6_rules: flush route cache when rule is changed Date: Sun, 24 Mar 2024 19:31:56 -0400 Message-ID: <20240324233458.1352854-137-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Shiming Cheng [ Upstream commit c4386ab4f6c600f75fdfd21143f89bac3e625d0d ] When rule policy is changed, ipv6 socket cache is not refreshed. The sock's skb still uses a outdated route cache and was sent to a wrong interface. To avoid this error we should update fib node's version when rule is changed. Then skb's route will be reroute checked as route cache version is already different with fib node version. The route cache is refreshed to match the latest rule. Fixes: 101367c2f8c4 ("[IPV6]: Policy Routing Rules") Signed-off-by: Shiming Cheng Signed-off-by: Lena Wang Reviewed-by: David Ahern Signed-off-by: David S. Miller Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- net/ipv6/fib6_rules.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/net/ipv6/fib6_rules.c b/net/ipv6/fib6_rules.c index dcedfe29d9d93..8e9e80eb0f329 100644 --- a/net/ipv6/fib6_rules.c +++ b/net/ipv6/fib6_rules.c @@ -446,6 +446,11 @@ static size_t fib6_rule_nlmsg_payload(struct fib_rule = *rule) + nla_total_size(16); /* src */ } =20 +static void fib6_rule_flush_cache(struct fib_rules_ops *ops) +{ + rt_genid_bump_ipv6(ops->fro_net); +} + static const struct fib_rules_ops __net_initconst fib6_rules_ops_template = =3D { .family =3D AF_INET6, .rule_size =3D sizeof(struct fib6_rule), @@ -458,6 +463,7 @@ static const struct fib_rules_ops __net_initconst fib6_= rules_ops_template =3D { .compare =3D fib6_rule_compare, .fill =3D fib6_rule_fill, .nlmsg_payload =3D fib6_rule_nlmsg_payload, + .flush_cache =3D fib6_rule_flush_cache, .nlgroup =3D RTNLGRP_IPV6_RULE, .policy =3D fib6_rule_policy, .owner =3D THIS_MODULE, --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E6B07176543; Sun, 24 Mar 2024 23:37:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323436; cv=none; b=igmeXI8DPEg/rAhytnymXSyhkcsyBW+rWvBodFfUlvqbRWeENM78TLaQk4VteSbE2Vo2zS1Zss7tSs+V9pnIPpg/4Sj86m6ozRv857f9dCpVndVHXmhecIwRXstOUOjpQ40coPNXFZx1rdINpc6kctdjF8RjlT++nw1xeTd3GWM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323436; c=relaxed/simple; bh=H04y7HhM0bWl4sIENIIXaGmUN0i7JtRXO/0uF8+hpXU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=e8pTVBgk0Hs+ZwVKvrKWY1a9G9U/p2DJSw4KOnfd0yWBwfqnDoIaqChQsSSj5iKa38j7btAfoq5ltBdhqREa/hztF+s1vsGmqcK2Lljm/V9hbAjIfjsIkD+H5LI8mR/rEh/4CrreOGVkIJQeQBSfnNaSTrn4cYuVLpWeX+ZTNYs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ZE1TqQZ8; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ZE1TqQZ8" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1C328C43399; Sun, 24 Mar 2024 23:37:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323434; bh=H04y7HhM0bWl4sIENIIXaGmUN0i7JtRXO/0uF8+hpXU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ZE1TqQZ8hzTdS7+6GAhoI6VBCKaxcrZBN5Uj/FWKLEhkS2t8VydNRg6rKrr0+M+WO w/q2uiSkgC0GZ0jluykJC+pBVZaf2q6+hy1kNUHHU2rAcM280gonBwrRJxYxOGu0we KlBRbuhmoGTxYVs3TGl8kwlOCcauVNByZ4HemEX82VuuReUnww8r1Uem+uHqzK7anV 0y0JUONaSixm1G8DdNAxPMF1f00IgimRI+IkfWQ7uF1zI0et1U6rdnq211G0ailfGC p6mWGe/ReCc/HV0r+vpCp56z/swI6DFqRU6xF6xUNh34+8WluRk9uL5lqmgivB0zw8 U8NeT21rXnRSg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Eric Dumazet , syzbot , "David S . Miller" , Sasha Levin Subject: [PATCH 5.15 137/317] net: ip_tunnel: make sure to pull inner header in ip_tunnel_rcv() Date: Sun, 24 Mar 2024 19:31:57 -0400 Message-ID: <20240324233458.1352854-138-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Eric Dumazet [ Upstream commit b0ec2abf98267f14d032102551581c833b0659d3 ] Apply the same fix than ones found in : 8d975c15c0cd ("ip6_tunnel: make sure to pull inner header in __ip6_tnl_rcv(= )") 1ca1ba465e55 ("geneve: make sure to pull inner header in geneve_rx()") We have to save skb->network_header in a temporary variable in order to be able to recompute the network_header pointer after a pskb_inet_may_pull() call. pskb_inet_may_pull() makes sure the needed headers are in skb->head. syzbot reported: BUG: KMSAN: uninit-value in __INET_ECN_decapsulate include/net/inet_ecn.h:2= 53 [inline] BUG: KMSAN: uninit-value in INET_ECN_decapsulate include/net/inet_ecn.h:27= 5 [inline] BUG: KMSAN: uninit-value in IP_ECN_decapsulate include/net/inet_ecn.h:302 = [inline] BUG: KMSAN: uninit-value in ip_tunnel_rcv+0xed9/0x2ed0 net/ipv4/ip_tunnel.= c:409 __INET_ECN_decapsulate include/net/inet_ecn.h:253 [inline] INET_ECN_decapsulate include/net/inet_ecn.h:275 [inline] IP_ECN_decapsulate include/net/inet_ecn.h:302 [inline] ip_tunnel_rcv+0xed9/0x2ed0 net/ipv4/ip_tunnel.c:409 __ipgre_rcv+0x9bc/0xbc0 net/ipv4/ip_gre.c:389 ipgre_rcv net/ipv4/ip_gre.c:411 [inline] gre_rcv+0x423/0x19f0 net/ipv4/ip_gre.c:447 gre_rcv+0x2a4/0x390 net/ipv4/gre_demux.c:163 ip_protocol_deliver_rcu+0x264/0x1300 net/ipv4/ip_input.c:205 ip_local_deliver_finish+0x2b8/0x440 net/ipv4/ip_input.c:233 NF_HOOK include/linux/netfilter.h:314 [inline] ip_local_deliver+0x21f/0x490 net/ipv4/ip_input.c:254 dst_input include/net/dst.h:461 [inline] ip_rcv_finish net/ipv4/ip_input.c:449 [inline] NF_HOOK include/linux/netfilter.h:314 [inline] ip_rcv+0x46f/0x760 net/ipv4/ip_input.c:569 __netif_receive_skb_one_core net/core/dev.c:5534 [inline] __netif_receive_skb+0x1a6/0x5a0 net/core/dev.c:5648 netif_receive_skb_internal net/core/dev.c:5734 [inline] netif_receive_skb+0x58/0x660 net/core/dev.c:5793 tun_rx_batched+0x3ee/0x980 drivers/net/tun.c:1556 tun_get_user+0x53b9/0x66e0 drivers/net/tun.c:2009 tun_chr_write_iter+0x3af/0x5d0 drivers/net/tun.c:2055 call_write_iter include/linux/fs.h:2087 [inline] new_sync_write fs/read_write.c:497 [inline] vfs_write+0xb6b/0x1520 fs/read_write.c:590 ksys_write+0x20f/0x4c0 fs/read_write.c:643 __do_sys_write fs/read_write.c:655 [inline] __se_sys_write fs/read_write.c:652 [inline] __x64_sys_write+0x93/0xd0 fs/read_write.c:652 do_syscall_x64 arch/x86/entry/common.c:52 [inline] do_syscall_64+0xcf/0x1e0 arch/x86/entry/common.c:83 entry_SYSCALL_64_after_hwframe+0x63/0x6b Uninit was created at: __alloc_pages+0x9a6/0xe00 mm/page_alloc.c:4590 alloc_pages_mpol+0x62b/0x9d0 mm/mempolicy.c:2133 alloc_pages+0x1be/0x1e0 mm/mempolicy.c:2204 skb_page_frag_refill+0x2bf/0x7c0 net/core/sock.c:2909 tun_build_skb drivers/net/tun.c:1686 [inline] tun_get_user+0xe0a/0x66e0 drivers/net/tun.c:1826 tun_chr_write_iter+0x3af/0x5d0 drivers/net/tun.c:2055 call_write_iter include/linux/fs.h:2087 [inline] new_sync_write fs/read_write.c:497 [inline] vfs_write+0xb6b/0x1520 fs/read_write.c:590 ksys_write+0x20f/0x4c0 fs/read_write.c:643 __do_sys_write fs/read_write.c:655 [inline] __se_sys_write fs/read_write.c:652 [inline] __x64_sys_write+0x93/0xd0 fs/read_write.c:652 do_syscall_x64 arch/x86/entry/common.c:52 [inline] do_syscall_64+0xcf/0x1e0 arch/x86/entry/common.c:83 entry_SYSCALL_64_after_hwframe+0x63/0x6b Fixes: c54419321455 ("GRE: Refactor GRE tunneling code.") Reported-by: syzbot Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- net/ipv4/ip_tunnel.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/net/ipv4/ip_tunnel.c b/net/ipv4/ip_tunnel.c index 96b7cd3049a33..db6d3d5c474c6 100644 --- a/net/ipv4/ip_tunnel.c +++ b/net/ipv4/ip_tunnel.c @@ -364,7 +364,7 @@ int ip_tunnel_rcv(struct ip_tunnel *tunnel, struct sk_b= uff *skb, bool log_ecn_error) { const struct iphdr *iph =3D ip_hdr(skb); - int err; + int nh, err; =20 #ifdef CONFIG_NET_IPGRE_BROADCAST if (ipv4_is_multicast(iph->daddr)) { @@ -390,8 +390,21 @@ int ip_tunnel_rcv(struct ip_tunnel *tunnel, struct sk_= buff *skb, tunnel->i_seqno =3D ntohl(tpi->seq) + 1; } =20 + /* Save offset of outer header relative to skb->head, + * because we are going to reset the network header to the inner header + * and might change skb->head. + */ + nh =3D skb_network_header(skb) - skb->head; + skb_set_network_header(skb, (tunnel->dev->type =3D=3D ARPHRD_ETHER) ? ETH= _HLEN : 0); =20 + if (!pskb_inet_may_pull(skb)) { + DEV_STATS_INC(tunnel->dev, rx_length_errors); + DEV_STATS_INC(tunnel->dev, rx_errors); + goto drop; + } + iph =3D (struct iphdr *)(skb->head + nh); + err =3D IP_ECN_decapsulate(iph, skb); if (unlikely(err)) { if (log_ecn_error) --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 04B02176544; Sun, 24 Mar 2024 23:37:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323436; cv=none; b=ujCIKAXz4hF0A0Or6zXjtRjeySC6f7SwPxlsVagPyR0mffRImuZVMk8LsPnbEUhZMHxVwg2fhVDqvmhPBaep4urJpLNrCbO8o3Qa9GoIc4P+F9ZcUdDxfix28fHyiz0VNvC7Ohrwhf+ZPxy6Ggq8Ly0TCjSig0tjAgJu1HvY1NE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323436; c=relaxed/simple; bh=y0/SDoJTHZbC2KUnfOWqbDLyT9cqRrJ5ZiUthqZIIxs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Xc+Ffx8O96Hu+xh4nCTuSoIUSvUk+CPXAWrUSKZwq70r+B1d/bzUq8OmiuamY5dwOJYQet1lljjv7v6mxzbcxjfpp8+Qfu7CDAd3bs+qWW9JewoGMV7aPZTkRp4Wivfk7vCcnXRQFAVpnz3+01c/KcAt1ZEVUe6tAreQA+BakuU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=uAsueXXr; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="uAsueXXr" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 15687C43390; Sun, 24 Mar 2024 23:37:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323435; bh=y0/SDoJTHZbC2KUnfOWqbDLyT9cqRrJ5ZiUthqZIIxs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=uAsueXXrqlxtkmtCegohlMdBMa0KvMyiuXboYgw6/KobejZHUnZit6ULtpaV/CUDo 7RHQqdFZOvIjBxM+FnygNuMsBdas+/xTowNtDTcaOPj/qfauODh6Mc9bhMEw9mgaMT myV72TuYJCeEXwP04Z2R/GYugy8CjMliAa9sZs1s7vscu7aCcc2Ett+S75VxMcwM8R PpgnQnL3RkNoxdSLmi96AOwKGPxSDl3z0FbxAy1mYp29C1vxlow/bDFwEGtEO185Wy p7FMaGAiBnYLn5fFtUvsRBJnV3LKX+bli6sk7ykQVz+NVbudCptHJ+CrJ/aPoBqLPa QnJe2zM5sG6WQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?K=C3=A9vin=20L=27h=C3=B4pital?= , Enguerrand de Ribaucourt , Russell King , "David S . Miller" , Sasha Levin Subject: [PATCH 5.15 138/317] net: phy: fix phy_get_internal_delay accessing an empty array Date: Sun, 24 Mar 2024 19:31:58 -0400 Message-ID: <20240324233458.1352854-139-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable From: K=C3=A9vin L'h=C3=B4pital [ Upstream commit 4469c0c5b14a0919f5965c7ceac96b523eb57b79 ] The phy_get_internal_delay function could try to access to an empty array in the case that the driver is calling phy_get_internal_delay without defining delay_values and rx-internal-delay-ps or tx-internal-delay-ps is defined to 0 in the device-tree. This will lead to "unable to handle kernel NULL pointer dereference at virtual address 0". To avoid this kernel oops, the test should be delay >=3D 0. As there is already delay < 0 test just before, the test could only be size =3D=3D 0. Fixes: 92252eec913b ("net: phy: Add a helper to return the index for of the= internal delay") Co-developed-by: Enguerrand de Ribaucourt Signed-off-by: Enguerrand de Ribaucourt Signed-off-by: K=C3=A9vin L'h=C3=B4pital Reviewed-by: Russell King (Oracle) Signed-off-by: David S. Miller Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/net/phy/phy_device.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c index 0429825a7179d..c1d6ebf12ec74 100644 --- a/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c @@ -2904,7 +2904,7 @@ s32 phy_get_internal_delay(struct phy_device *phydev,= struct device *dev, if (delay < 0) return delay; =20 - if (delay && size =3D=3D 0) + if (size =3D=3D 0) return delay; =20 if (delay < delay_values[0] || delay > delay_values[size - 1]) { --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F173E176555; Sun, 24 Mar 2024 23:37:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323438; cv=none; b=KVENwkwNu1gQvP9f14BBhYXOXf71GkxBWgpdfIu5sJ8ZiqEseWmCrR9k70QewhfWq/M82i3o6vPG1EYn9SdRtkIC88oD+l5aARLCX6fd2j79BpsmUiLhTKLIgiQHVZ88M1kDXGdk0y3cvBtjG9u7QD17u9HjPn+0coPRYLS9FK4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323438; c=relaxed/simple; bh=kJjdOHZSQ3JQSc876NAE7w9DAZ6WFWU9xIDvGyUZ0t8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=s/BSnDSYbSyXN5sfHWKCf5R3uVh685FUoJl+yuNm+trVoUH9vgPQUIeABgRId5vdHSBs7DhQ7uyY1CgMg3pM2482EQAzcgvSxx/xYOp281Az0hIkzCBA0Gjx1b8PfV9IHUrWSx5MnbjTN8IKmTuJGJgQxv8g/UkmekKlFXwX2Og= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=jXC0Zhcg; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="jXC0Zhcg" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 26783C43394; Sun, 24 Mar 2024 23:37:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323436; bh=kJjdOHZSQ3JQSc876NAE7w9DAZ6WFWU9xIDvGyUZ0t8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jXC0Zhcg2xjGrs32LFD6akvsKGe8Y1CLrGhTq/wR/6YSPlp7xUGVs0iuxsxkGQh4g TBnFbSBHU+KeNLgTQKHlHTQnIgSwDwysotv+9QoVNlGtDnXhh1CkLmjiEaqM85CpBg k14a5/prpKrk5pGVyW8/u8zpeFft530+df3d+FB/givWmxW+zdStrxsFSlBuY/N+Rc Vr1njL9jEbihRjioh5xF/dHToIfOBWQfwtkVKQWakIvus3u4GAAiYAbtJ2k03wIyUW jM/fr9Jt6bIFQ2nh5CJ93b8N/fDeS+r8odNObBsoiF+NiRZHjhUgGpt0bR9HxgSXlk 8wLEeH+N88dwA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Yonglong Liu , Jijie Shao , "David S . Miller" , Sasha Levin Subject: [PATCH 5.15 139/317] net: hns3: fix kernel crash when 1588 is received on HIP08 devices Date: Sun, 24 Mar 2024 19:31:59 -0400 Message-ID: <20240324233458.1352854-140-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Yonglong Liu [ Upstream commit 0fbcf2366ba9888cf02eda23e35fde7f7fcc07c3 ] The HIP08 devices does not register the ptp devices, so the hdev->ptp is NULL, but the hardware can receive 1588 messages, and set the HNS3_RXD_TS_VLD_B bit, so, if match this case, the access of hdev->ptp->flags will cause a kernel crash: [ 5888.946472] Unable to handle kernel NULL pointer dereference at virtual = address 0000000000000018 [ 5888.946475] Unable to handle kernel NULL pointer dereference at virtual = address 0000000000000018 ... [ 5889.266118] pc : hclge_ptp_get_rx_hwts+0x40/0x170 [hclge] [ 5889.272612] lr : hclge_ptp_get_rx_hwts+0x34/0x170 [hclge] [ 5889.279101] sp : ffff800012c3bc50 [ 5889.283516] x29: ffff800012c3bc50 x28: ffff2040002be040 [ 5889.289927] x27: ffff800009116484 x26: 0000000080007500 [ 5889.296333] x25: 0000000000000000 x24: ffff204001c6f000 [ 5889.302738] x23: ffff204144f53c00 x22: 0000000000000000 [ 5889.309134] x21: 0000000000000000 x20: ffff204004220080 [ 5889.315520] x19: ffff204144f53c00 x18: 0000000000000000 [ 5889.321897] x17: 0000000000000000 x16: 0000000000000000 [ 5889.328263] x15: 0000004000140ec8 x14: 0000000000000000 [ 5889.334617] x13: 0000000000000000 x12: 00000000010011df [ 5889.340965] x11: bbfeff4d22000000 x10: 0000000000000000 [ 5889.347303] x9 : ffff800009402124 x8 : 0200f78811dfbb4d [ 5889.353637] x7 : 2200000000191b01 x6 : ffff208002a7d480 [ 5889.359959] x5 : 0000000000000000 x4 : 0000000000000000 [ 5889.366271] x3 : 0000000000000000 x2 : 0000000000000000 [ 5889.372567] x1 : 0000000000000000 x0 : ffff20400095c080 [ 5889.378857] Call trace: [ 5889.382285] hclge_ptp_get_rx_hwts+0x40/0x170 [hclge] [ 5889.388304] hns3_handle_bdinfo+0x324/0x410 [hns3] [ 5889.394055] hns3_handle_rx_bd+0x60/0x150 [hns3] [ 5889.399624] hns3_clean_rx_ring+0x84/0x170 [hns3] [ 5889.405270] hns3_nic_common_poll+0xa8/0x220 [hns3] [ 5889.411084] napi_poll+0xcc/0x264 [ 5889.415329] net_rx_action+0xd4/0x21c [ 5889.419911] __do_softirq+0x130/0x358 [ 5889.424484] irq_exit+0x134/0x154 [ 5889.428700] __handle_domain_irq+0x88/0xf0 [ 5889.433684] gic_handle_irq+0x78/0x2c0 [ 5889.438319] el1_irq+0xb8/0x140 [ 5889.442354] arch_cpu_idle+0x18/0x40 [ 5889.446816] default_idle_call+0x5c/0x1c0 [ 5889.451714] cpuidle_idle_call+0x174/0x1b0 [ 5889.456692] do_idle+0xc8/0x160 [ 5889.460717] cpu_startup_entry+0x30/0xfc [ 5889.465523] secondary_start_kernel+0x158/0x1ec [ 5889.470936] Code: 97ffab78 f9411c14 91408294 f9457284 (f9400c80) [ 5889.477950] SMP: stopping secondary CPUs [ 5890.514626] SMP: failed to stop secondary CPUs 0-69,71-95 [ 5890.522951] Starting crashdump kernel... Fixes: 0bf5eb788512 ("net: hns3: add support for PTP") Signed-off-by: Yonglong Liu Signed-off-by: Jijie Shao Signed-off-by: David S. Miller Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_ptp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_ptp.c b/drive= rs/net/ethernet/hisilicon/hns3/hns3pf/hclge_ptp.c index befa9bcc2f2f2..dd0750f6daa6c 100644 --- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_ptp.c +++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_ptp.c @@ -120,7 +120,7 @@ void hclge_ptp_get_rx_hwts(struct hnae3_handle *handle,= struct sk_buff *skb, u64 ns =3D nsec; u32 sec_h; =20 - if (!test_bit(HCLGE_PTP_FLAG_RX_EN, &hdev->ptp->flags)) + if (!hdev->ptp || !test_bit(HCLGE_PTP_FLAG_RX_EN, &hdev->ptp->flags)) return; =20 /* Since the BD does not have enough space for the higher 16 bits of --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id ECD2617654A; Sun, 24 Mar 2024 23:37:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323439; cv=none; b=QT2SQGxiXn1iXnMNlUviBxgc/QMa7lEten5kVI9BQh61Nq0/+iuG7jaUtftj4nEryzQ3B3LLbEIFdPsFoSWp/oSnfyIEZlrhwjFKgUeK45bo7iH4Uy73ImtotLhry92fDhH3eYelj4NqwnF09rD2aU7aClgdjUPdA2HVvgw1Qfk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323439; c=relaxed/simple; bh=pKvV0QKxpxf/tg28LprBCQUq4q21d7ZXWuuHGgSIFpU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Sc73BwPtztbvcZbJkRdBq1LZuFJhdBuK7y9nnrObEKqE2GwFJI4sBGmkJYsDYhAy0pED5oBpwIxwHid9sC0xdVLeRlVwXtfNUJJOBNxGN3fnLRFuXE1K0qhDYL1ZepudoJ24m3baV/pHwJ0DpvHk1jS+1kYaPPCyd+bohT4ft2o= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=UEH/OA9U; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="UEH/OA9U" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 22259C433C7; Sun, 24 Mar 2024 23:37:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323437; bh=pKvV0QKxpxf/tg28LprBCQUq4q21d7ZXWuuHGgSIFpU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=UEH/OA9Uy78St5xPd3Yv6F4tMGkliWGc0/HMho5R/E2jZjh38uA16pADTTrJt1m0Q ATXL991jD5kQ8DAAAy8rdPF55u+UU9BPsDrQXfoUNMdGkTrNsLDUQKBnxQhLPwJLY+ 6TV4V6yzT5RCb7oIDGJoR2z0ZyRz0x4OaeF1yWLtoivMoO0hw189dv7+USc0GmSCZP LgYX4RYWvSMEyyLAHPprd75U0f0rt86sMUoA2mElD2uvBeQxb5q/V9OrNslM/qjP6L zfiMgtldK6FgdHvMs5fUmZodf820z0P1QK1MeGQjIqRQFvQba0TNuQfVOsW4CZizHl rWDGQUzaJTdRA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jie Wang , Jijie Shao , "David S . Miller" , Sasha Levin Subject: [PATCH 5.15 140/317] net: hns3: fix port duplex configure error in IMP reset Date: Sun, 24 Mar 2024 19:32:00 -0400 Message-ID: <20240324233458.1352854-141-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Jie Wang [ Upstream commit 11d80f79dd9f871a52feba4bf24b5ac39f448eb7 ] Currently, the mac port is fixed to configured as full dplex mode in hclge_mac_init() when driver initialization or reset restore. Users may change the mode to half duplex with ethtool, so it may cause the user configuration dropped after reset. To fix it, don't change the duplex mode when resetting. Fixes: 2d03eacc0b7e ("net: hns3: Only update mac configuation when necessar= y") Signed-off-by: Jie Wang Signed-off-by: Jijie Shao Signed-off-by: David S. Miller Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c b/driv= ers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c index 12274c2b9feab..598da1be22ebe 100644 --- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c +++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c @@ -2803,7 +2803,10 @@ static int hclge_mac_init(struct hclge_dev *hdev) int ret; =20 hdev->support_sfp_query =3D true; - hdev->hw.mac.duplex =3D HCLGE_MAC_FULL; + + if (!test_bit(HCLGE_STATE_RST_HANDLING, &hdev->state)) + hdev->hw.mac.duplex =3D HCLGE_MAC_FULL; + ret =3D hclge_cfg_mac_speed_dup_hw(hdev, hdev->hw.mac.speed, hdev->hw.mac.duplex); if (ret) --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 239ED5A79B; Sun, 24 Mar 2024 23:37:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323440; cv=none; b=ZeToIPuLD9U6NUAifzQQKr/sp8v35vj+WU5r4Q5niENr/1umxn9zfY+bI/vptwuTJdpJ+TfiYeCu11Uhxcq5DX+qH7Jap7KLi+OKCVci+KPJwLWTEcR8O85QG02jS1IWxpckPM95Vjy+abtT/ds5FbMxsCp6EcC6wdDmppDL5VQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323440; c=relaxed/simple; bh=V9bjB0fUZ2b6dT4tw8jYu2GTeYgTxhfwf2mCn1A+8N4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=gdUG91VpzTRn+x7TWtP1w5R26zx5/RARFsfyeZTRUdnarYfC1aX9X7UobvFRauV7VVuRb6ogYNn72+yi4RiBoAQCgkXKOxN5+NbQFLwIakCEeAanI9OBq7lOyPZS3CO8irf8ZgLJSjZJhCRTBWU81TAeyVI8SGh9iN9imZkEfq8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=aFvTsdle; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="aFvTsdle" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1CA2AC43390; Sun, 24 Mar 2024 23:37:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323439; bh=V9bjB0fUZ2b6dT4tw8jYu2GTeYgTxhfwf2mCn1A+8N4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=aFvTsdle90UkADpjBI5nqG21EMQRE14UtpN/YIBYeyRvQsHgFBht+D+6ljegM5nES xMGrqhXMlhZbHoqHNXpI0yxGOH70w+bWQvEKW8gn+WQisa4EL2v+24j3ADRY1BEn4e LB90eKO6jvBZDknPhIE2GheUnwZ+2tefGgakW7mnrfqflIF8er8/SH8DqM1auGj0L4 mxSYT6ZvYpDji84U7tOZ8aLSn6hvoGnfsOy+1qdm8eTt9Pq/5qdaut/dtggcypjZQI 50AIu0oxIr1lbi/yoHoZD3kiFBdeV0X5syVgQ6G8cYjib8UmVylHCgFCFWUgxOJIvv uFxZ5ZaPcbutw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Tommaso Merciai , Michael Trimarchi , Alberto Bianchi , Andrew Lunn , "David S . Miller" , Sasha Levin Subject: [PATCH 5.15 141/317] net: phy: DP83822: enable rgmii mode if phy_interface_is_rgmii Date: Sun, 24 Mar 2024 19:32:01 -0400 Message-ID: <20240324233458.1352854-142-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Tommaso Merciai [ Upstream commit 621427fbdada788f18f77238e1c36f463c2cb9d1 ] RGMII mode can be enable from dp83822 straps, and also writing bit 9 of register 0x17 - RMII and Status Register (RCSR). When phy_interface_is_rgmii rgmii mode must be enabled, same for contrary, this prevents malconfigurations of hw straps References: - https://www.ti.com/lit/gpn/dp83822i p66 Signed-off-by: Tommaso Merciai Co-developed-by: Michael Trimarchi Suggested-by: Alberto Bianchi Tested-by: Tommaso Merciai Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller Stable-dep-of: c8a5c731fd12 ("net: phy: dp83822: Fix RGMII TX delay configu= ration") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/net/phy/dp83822.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/drivers/net/phy/dp83822.c b/drivers/net/phy/dp83822.c index f070aa97c77b4..267e6fd3d4448 100644 --- a/drivers/net/phy/dp83822.c +++ b/drivers/net/phy/dp83822.c @@ -94,7 +94,8 @@ #define DP83822_WOL_INDICATION_SEL BIT(8) #define DP83822_WOL_CLR_INDICATION BIT(11) =20 -/* RSCR bits */ +/* RCSR bits */ +#define DP83822_RGMII_MODE_EN BIT(9) #define DP83822_RX_CLK_SHIFT BIT(12) #define DP83822_TX_CLK_SHIFT BIT(11) =20 @@ -407,6 +408,12 @@ static int dp83822_config_init(struct phy_device *phyd= ev) if (err) return err; } + + phy_set_bits_mmd(phydev, DP83822_DEVADDR, + MII_DP83822_RCSR, DP83822_RGMII_MODE_EN); + } else { + phy_clear_bits_mmd(phydev, DP83822_DEVADDR, + MII_DP83822_RCSR, DP83822_RGMII_MODE_EN); } =20 if (dp83822->fx_enabled) { --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0597217655C; Sun, 24 Mar 2024 23:37:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323441; cv=none; b=gp5ALouMSvOkgoIWTeyFrF7GC/daLqFOPrUt+ulbia8Sv8lVKNRqCRNG3CE//qfXnMjGj68tRojJblgzcGQEEgL5IIq4Nk69pxJjOK7ATtS08P+6zSu8CFNc1LrLvUxRViCMJuhSbOjNFTby6hQ4GdizsI9bDkM+WrA7sGDTNv4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323441; c=relaxed/simple; bh=2DvJvaZyFK9vHNgI+suBjYVyGIRaLvxgXFom/JoexWE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=GazLwXScHDKIDHz7j61NJrSrLn496iXth7TYlYJQoO0snntQvcRjCaAM2zzqwm3yaF1wUVgwSnR1KWiU84MolSy/lr8J+UtfUc7AP514+pNA+hfa3uzBnKR+UiiWPOOfVfcaxeqUz8r0ijH7UBf4CTXOe15knSsDegfpK0Rwi7w= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=KyqnZX7K; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="KyqnZX7K" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 45A63C43394; Sun, 24 Mar 2024 23:37:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323439; bh=2DvJvaZyFK9vHNgI+suBjYVyGIRaLvxgXFom/JoexWE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=KyqnZX7KW5XsUg9sQMS/CQv//0ixWYKCwJRkgqUeB6Sh1vEEIKEESbsj7YhQJIXm6 urENwlYyTuwJ4/oZymyR0NvG8uy9y8389Zgq8mNOLikK0kBNoQJlOPrbGlBufn/qUl VOtZ3BXGyEwQyGE659LIUnWQp6qxHnn09W9M5E2Ysjm8W9Xp6Rk56GRmI3Qen/3ghH Lzf2VXXzhg8VBLXxHMMXmAItKbfRYCKYWUAFzWgFZ/1i7Q7aGj/dMsXbjHTyj7uq/O Q8HbaLhJ+IsIs+QSKNbOQbZi8EfGlkylH7OWNF37V4mmVsWfBXzwxlOTFGzN+el/wC FYJhcS8uyTRyQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Tim Pambor , Jakub Kicinski , Sasha Levin Subject: [PATCH 5.15 142/317] net: phy: dp83822: Fix RGMII TX delay configuration Date: Sun, 24 Mar 2024 19:32:02 -0400 Message-ID: <20240324233458.1352854-143-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Tim Pambor [ Upstream commit c8a5c731fd1223090af57da33838c671a7fc6a78 ] The logic for enabling the TX clock shift is inverse of enabling the RX clock shift. The TX clock shift is disabled when DP83822_TX_CLK_SHIFT is set. Correct the current behavior and always write the delay configuration to ensure consistent delay settings regardless of bootloader configuration. Reference: https://www.ti.com/lit/ds/symlink/dp83822i.pdf p. 69 Fixes: 8095295292b5 ("net: phy: DP83822: Add setting the fixed internal del= ay") Signed-off-by: Tim Pambor Link: https://lore.kernel.org/r/20240305110608.104072-1-tp@osasysteme.de Signed-off-by: Jakub Kicinski Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/net/phy/dp83822.c | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/drivers/net/phy/dp83822.c b/drivers/net/phy/dp83822.c index 267e6fd3d4448..57411ee1d8374 100644 --- a/drivers/net/phy/dp83822.c +++ b/drivers/net/phy/dp83822.c @@ -380,7 +380,7 @@ static int dp83822_config_init(struct phy_device *phyde= v) { struct dp83822_private *dp83822 =3D phydev->priv; struct device *dev =3D &phydev->mdio.dev; - int rgmii_delay; + int rgmii_delay =3D 0; s32 rx_int_delay; s32 tx_int_delay; int err =3D 0; @@ -390,30 +390,33 @@ static int dp83822_config_init(struct phy_device *phy= dev) rx_int_delay =3D phy_get_internal_delay(phydev, dev, NULL, 0, true); =20 - if (rx_int_delay <=3D 0) - rgmii_delay =3D 0; - else - rgmii_delay =3D DP83822_RX_CLK_SHIFT; + /* Set DP83822_RX_CLK_SHIFT to enable rx clk internal delay */ + if (rx_int_delay > 0) + rgmii_delay |=3D DP83822_RX_CLK_SHIFT; =20 tx_int_delay =3D phy_get_internal_delay(phydev, dev, NULL, 0, false); + + /* Set DP83822_TX_CLK_SHIFT to disable tx clk internal delay */ if (tx_int_delay <=3D 0) - rgmii_delay &=3D ~DP83822_TX_CLK_SHIFT; - else rgmii_delay |=3D DP83822_TX_CLK_SHIFT; =20 - if (rgmii_delay) { - err =3D phy_set_bits_mmd(phydev, DP83822_DEVADDR, - MII_DP83822_RCSR, rgmii_delay); - if (err) - return err; - } + err =3D phy_modify_mmd(phydev, DP83822_DEVADDR, MII_DP83822_RCSR, + DP83822_RX_CLK_SHIFT | DP83822_TX_CLK_SHIFT, rgmii_delay); + if (err) + return err; + + err =3D phy_set_bits_mmd(phydev, DP83822_DEVADDR, + MII_DP83822_RCSR, DP83822_RGMII_MODE_EN); =20 - phy_set_bits_mmd(phydev, DP83822_DEVADDR, - MII_DP83822_RCSR, DP83822_RGMII_MODE_EN); + if (err) + return err; } else { - phy_clear_bits_mmd(phydev, DP83822_DEVADDR, - MII_DP83822_RCSR, DP83822_RGMII_MODE_EN); + err =3D phy_clear_bits_mmd(phydev, DP83822_DEVADDR, + MII_DP83822_RCSR, DP83822_RGMII_MODE_EN); + + if (err) + return err; } =20 if (dp83822->fx_enabled) { --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F324E130A6C; Sun, 24 Mar 2024 23:37:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323442; cv=none; b=jlcorT47JeTZL6eoAT11nVURCAduAc3XhOkzcY+dn9vuBHlXx06a6Gy/7XdEHfLjwWfFKvLXnQD48N5BL7qD5SEokUinKH1dm1mvzpw5rAYU/fBX4h6kl5t2ot8arL2tNmgbP5PRRljqlHMt1qkJBknUmxKkNPFuESlgoWyPX3s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323442; c=relaxed/simple; bh=5om0Sv4UN6dza7Yz0fGHITEjIdk01Rz7bsp3BU26js8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=VoAdiZRCdvbrL/aVWSsqOTn6AmhF1VgXzb42DLEkNonRSnqXvjwIjRm+b7cxB8pIWT4AmnLK7RnlAUP2QXdA71Gh9UKMnBi2gYk4kgdSDMMwT1Ef+Uhwbs/42LAfVEJs/le/q+d0sEXD4ZXeUlhdJG+g/MBHFwooLZ5XceevBrE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=XGy9oImh; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="XGy9oImh" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 28F56C433C7; Sun, 24 Mar 2024 23:37:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323440; bh=5om0Sv4UN6dza7Yz0fGHITEjIdk01Rz7bsp3BU26js8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=XGy9oImhBK9ERg4kjcqcZNqE3qRH8zLwLis2JPrRgNJr+84CgtUij1N+VDgHEwul1 edbnZZ9ZCFwz3krX8Z4vxdfMjxz84WFEtKxgsNule9j42CCaJ39KcLB65czxvPuwBs RyyV8bRx6ouWV1zwhGifxRLcIPz5jAXuo7cRsD6uu7M34Ki0v2hTNr7+of4qFpjVWD Ul3EpuLXhL1MkyM7B7mTVZzkZZhwIRkPyoMaa6BxIjrtI1WNVXTUMuAkbrfsRbHA2L 2ToMQG7HEm1LJbGlRp0gXn7wHwdHLK4EOuVkbYTEBHKO7sdbuv1Moe3k/PrGldX6ss wtstI7EzMi+BQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Viresh Kumar , kernel test robot , Dhruva Gole , Sasha Levin Subject: [PATCH 5.15 143/317] OPP: debugfs: Fix warning around icc_get_name() Date: Sun, 24 Mar 2024 19:32:03 -0400 Message-ID: <20240324233458.1352854-144-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Viresh Kumar [ Upstream commit 28330ceb953e39880ea77da4895bb902a1244860 ] If the kernel isn't built with interconnect support, icc_get_name() returns NULL and we get following warning: drivers/opp/debugfs.c: In function 'bw_name_read': drivers/opp/debugfs.c:43:42: error: '%.62s' directive argument is null [-We= rror=3Dformat-overflow=3D] i =3D scnprintf(buf, sizeof(buf), "%.62s\n", icc_get_name(path)); Fix it. Reported-by: kernel test robot Closes: https://lore.kernel.org/oe-kbuild-all/202402141313.81ltVF5g-lkp@int= el.com/ Fixes: 0430b1d5704b0 ("opp: Expose bandwidth information via debugfs") Signed-off-by: Viresh Kumar Reviewed-by: Dhruva Gole Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/opp/debugfs.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/opp/debugfs.c b/drivers/opp/debugfs.c index 9eb71f47487b2..1c9d039edb26b 100644 --- a/drivers/opp/debugfs.c +++ b/drivers/opp/debugfs.c @@ -37,10 +37,12 @@ static ssize_t bw_name_read(struct file *fp, char __use= r *userbuf, size_t count, loff_t *ppos) { struct icc_path *path =3D fp->private_data; + const char *name =3D icc_get_name(path); char buf[64]; - int i; + int i =3D 0; =20 - i =3D scnprintf(buf, sizeof(buf), "%.62s\n", icc_get_name(path)); + if (name) + i =3D scnprintf(buf, sizeof(buf), "%.62s\n", name); =20 return simple_read_from_buffer(userbuf, count, ppos, buf, i); } --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EE7FA130A77; Sun, 24 Mar 2024 23:37:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323443; cv=none; b=pkw/V+APX1csaaQ5AV19/XJm5SAxUA5A/ZuCsVfBrUUAyYxXNhtdISVqUeUEjYIhyO4KxNNtitX3QYoU4XcEAuEtH6gFjMgiiT11D842JFWw0rRI0ftL4uhXp5WLqnVzTXALuWcTXFsQmYwKbTb0fnKdMdP2AWlbVnaMBTg0pvE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323443; c=relaxed/simple; bh=ZQKYH0zfiHgPG7eaYpqeQo2xkINccJ6hyEvMKz+eHcw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=npma3Jx8yVS694ANTnv8VGJs+sGws66VAVi2o5GgPQAVghV0I37l5knpd2ENBwPFzOOQerdFfpJP/Oapcm10N3MMEpLLBptCcepwN+ja5Nf6YcmtyeQEV7EiNUqpRm29nOcJybc8u4HTbPUDxw8RmzUzS/qChSXsp2NX4Zn4zbM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=cjh4ds18; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="cjh4ds18" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 255D5C433A6; Sun, 24 Mar 2024 23:37:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323441; bh=ZQKYH0zfiHgPG7eaYpqeQo2xkINccJ6hyEvMKz+eHcw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cjh4ds18t4XhbL6NLMy81nJvFcHcwQ9RosU4gp+ygE7sQTI6IJXj8kWU98YaO+Kmg 9uqwR432JJQq9nt8cWGf/aPVh6boPeblykQl7kwnSe4s+tFNWRKNGJvaKhGdlna2dM hOLyY+jLLCbDGbeeI29HMyB5Yyu6/Vh4bAIT51H9i+y3kux0+4Gy89I2lAoLkDCQ9M rFd89aEte30fGA45jkQhvpkJdx0aoJUZ5yROfnwhcIhWEk4zJrGs3BmT2kCPbmJXI1 60Kf4iL7rNRt7LEfCw/T++o4dYzpQh85dviFhgPOmlC51G5cjEOIwyo+ZAiZLcDUPT 6RhDt5TLqcXKA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Gavrilov Ilia , Jason Xing , "David S . Miller" , Sasha Levin Subject: [PATCH 5.15 144/317] tcp: fix incorrect parameter validation in the do_tcp_getsockopt() function Date: Sun, 24 Mar 2024 19:32:04 -0400 Message-ID: <20240324233458.1352854-145-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Gavrilov Ilia [ Upstream commit 716edc9706deb3bb2ff56e2eeb83559cea8f22db ] The 'len' variable can't be negative when assigned the result of 'min_t' because all 'min_t' parameters are cast to unsigned int, and then the minimum one is chosen. To fix the logic, check 'len' as read from 'optlen', where the types of relevant variables are (signed) int. Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2") Signed-off-by: Gavrilov Ilia Reviewed-by: Jason Xing Signed-off-by: David S. Miller Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- net/ipv4/tcp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c index 626cef75afe7a..521c15962c719 100644 --- a/net/ipv4/tcp.c +++ b/net/ipv4/tcp.c @@ -3965,11 +3965,11 @@ static int do_tcp_getsockopt(struct sock *sk, int l= evel, if (get_user(len, optlen)) return -EFAULT; =20 - len =3D min_t(unsigned int, len, sizeof(int)); - if (len < 0) return -EINVAL; =20 + len =3D min_t(unsigned int, len, sizeof(int)); + switch (optname) { case TCP_MAXSEG: val =3D tp->mss_cache; --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D4A0D130A7D; Sun, 24 Mar 2024 23:37:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323443; cv=none; b=QDMo2yMNNnj1Ic/l3aLOIDPnJaFqfi/v6ctjqBBLiHTkHzAbmUfBUxe2iSDNSOuIxIhBwzVJ2UWT2xpxqJM2VnwvE7Y0TWVAtYlaN0AQSakuuhjgfBEyeEasM44TEt1kGvjPdmG2rb4jANdU/ttS5xdS8nuIy5v7gfBB7MKDx7g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323443; c=relaxed/simple; bh=wdEzb+r401JEaKCRXGC2/YEuoVFNI3mdo2XqI6sn6+k=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=P30Jv2uYPcbKD32AMQP6VQbTt3RehyclcwvWtiCcOEDzOXgzr3BJfmEidR2wk1rYvgpQPWgtUmMgjtBgUd/NZbEV+XO9NvpGNZW+MA/v6LrzbzQAEzyJh5TqbOvFy/EiCQBCeSOWGjoF5dB24p8TBXBE4VK0yNtN6cvmpJbfvsw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Q1LP8Iwy; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Q1LP8Iwy" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 20B89C433C7; Sun, 24 Mar 2024 23:37:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323442; bh=wdEzb+r401JEaKCRXGC2/YEuoVFNI3mdo2XqI6sn6+k=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Q1LP8IwyK10v6FiPAVuKYKz8ylrhTSrBiqJUarU9gjuwHQ9FI2oNDtSxSDWwtDA5Y t6UdUDo7H+KeElq9J9OcFdY3NUJP2Bpg4rr5ATGOM884va+fuCZV6v3I6hscY38Xa0 VmObDqklAVB5j1pAdmFIzmK3KcpxMPq9L9UvtdZ8W23ET5v/kQPHqhrMqePlNl3YMv 46y+fEEhpHPY1wwWYAtUdYCWrL6L4m2JIMKzkSZhODTkNJ0jc0kfR7P961/i6HHN1f TPOPqKMXGa/Z2R65GE5Zettcxv7m75TNd/xk0rhNZY337rvgbDlTlRWY84QlL+diEa V9cc7uZu807Fw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Martin KaFai Lau , Alexei Starovoitov , Sasha Levin Subject: [PATCH 5.15 145/317] net: Change sock_getsockopt() to take the sk ptr instead of the sock ptr Date: Sun, 24 Mar 2024 19:32:05 -0400 Message-ID: <20240324233458.1352854-146-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Martin KaFai Lau [ Upstream commit ba74a7608dc12fbbd8ea36e660087f08a81ef26a ] A latter patch refactors bpf_getsockopt(SOL_SOCKET) with the sock_getsockopt() to avoid code duplication and code drift between the two duplicates. The current sock_getsockopt() takes sock ptr as the argument. The very first thing of this function is to get back the sk ptr by 'sk =3D sock->sk'. bpf_getsockopt() could be called when the sk does not have the sock ptr created. Meaning sk->sk_socket is NULL. For example, when a passive tcp connection has just been established but has yet been accept()-ed. Thus, it cannot use the sock_getsockopt(sk->sk_socket) or else it will pass a NULL ptr. This patch moves all sock_getsockopt implementation to the newly added sk_getsockopt(). The new sk_getsockopt() takes a sk ptr and immediately gets the sock ptr by 'sock =3D sk->sk_socket' The existing sock_getsockopt(sock) is changed to call sk_getsockopt(sock->sk). All existing callers have both sock->sk and sk->sk_socket pointer. The latter patch will make bpf_getsockopt(SOL_SOCKET) call sk_getsockopt(sk) directly. The bpf_getsockopt(SOL_SOCKET) does not use the optnames that require sk->sk_socket, so it will be safe. Signed-off-by: Martin KaFai Lau Link: https://lore.kernel.org/r/20220902002756.2887884-1-kafai@fb.com Signed-off-by: Alexei Starovoitov Stable-dep-of: 5c3be3e0eb44 ("ipmr: fix incorrect parameter validation in t= he ip_mroute_getsockopt() function") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- net/core/sock.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/net/core/sock.c b/net/core/sock.c index e254790d562ef..f8e3ba34e0a34 100644 --- a/net/core/sock.c +++ b/net/core/sock.c @@ -1416,10 +1416,10 @@ static int groups_to_user(gid_t __user *dst, const = struct group_info *src) return 0; } =20 -int sock_getsockopt(struct socket *sock, int level, int optname, - char __user *optval, int __user *optlen) +static int sk_getsockopt(struct sock *sk, int level, int optname, + char __user *optval, int __user *optlen) { - struct sock *sk =3D sock->sk; + struct socket *sock =3D sk->sk_socket; =20 union { int val; @@ -1780,6 +1780,12 @@ int sock_getsockopt(struct socket *sock, int level, = int optname, return 0; } =20 +int sock_getsockopt(struct socket *sock, int level, int optname, + char __user *optval, int __user *optlen) +{ + return sk_getsockopt(sock->sk, level, optname, optval, optlen); +} + /* * Initialize an sk_lock. * --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BC381130A76; Sun, 24 Mar 2024 23:37:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323444; cv=none; b=KK9445IRQj/3GT1Nnl2gXPGZglTNjiiMdRu9aQU58EOYgB2mvevNZQwfLY49nYUctmzzpShQR0eBVWRYrW867Td1f1KGuzHCE0Xcc0FSWua/FdWNNydxf0f8LLc38xUnX2IDW8Qnic4edY/xPUNlu8WzbeoI1MIp/5sOkLQ25/w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323444; c=relaxed/simple; bh=OGgpAW3CwXQyDm1f2enAospRQ0zFdOVdHC4x5aOwh7Y=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=aUTiL6T1CWdEIUKo8IMdvF1E0qweUS2QJXiEmoVFX5YtZaCN8KuhokD5gHKA+7J1vx+F5hxI9sENeq/c2XaVPW0H8lsfITfjVvNDagkX9SZ1bAZNp0q+fszgHUNBHYd8P1dsqvRAYyA1uP/vpJgByvmrwdUZI5vr/ShqJBllTYs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Coy1wYhx; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Coy1wYhx" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 06E76C433F1; Sun, 24 Mar 2024 23:37:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323443; bh=OGgpAW3CwXQyDm1f2enAospRQ0zFdOVdHC4x5aOwh7Y=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Coy1wYhx0568CCmo74SZtD9G46jvzg8Ohnx9W2xg2bjnNHfbNkJKvhFa6lKo5SHYy UEH8nKxrq1ihqplW/VgAaUfo3FVMVi5osLgdMtglrSTBJ/CZ0zdst/fxtHZ5BvHEZj klfUPCp3sHEYr6qJ3uUYx5LxEbVxTpmIet+fPgDf+mYQcXsJ+MFykKK5wTZyOfs3FQ uSnn4rvWhsD+PD5eLWmnqCQgyrBlVz2tK64umF98DAnHigvrjqkJvNBevSvoDh49lw 7Il9Dqaz9bqvluDdisU46NwZvIg0xgh8RlLmn8rKyL9zW5O07b1ExnEnzUvceOUW6u TrDP78rH3aftA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Martin KaFai Lau , Alexei Starovoitov , Sasha Levin Subject: [PATCH 5.15 146/317] bpf: net: Change sk_getsockopt() to take the sockptr_t argument Date: Sun, 24 Mar 2024 19:32:06 -0400 Message-ID: <20240324233458.1352854-147-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Martin KaFai Lau [ Upstream commit 4ff09db1b79b98b4a2a7511571c640b76cab3beb ] This patch changes sk_getsockopt() to take the sockptr_t argument such that it can be used by bpf_getsockopt(SOL_SOCKET) in a latter patch. security_socket_getpeersec_stream() is not changed. It stays with the __user ptr (optval.user and optlen.user) to avoid changes to other security hooks. bpf_getsockopt(SOL_SOCKET) also does not support SO_PEERSEC. Signed-off-by: Martin KaFai Lau Link: https://lore.kernel.org/r/20220902002802.2888419-1-kafai@fb.com Signed-off-by: Alexei Starovoitov Stable-dep-of: 5c3be3e0eb44 ("ipmr: fix incorrect parameter validation in t= he ip_mroute_getsockopt() function") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- include/linux/filter.h | 3 +-- include/linux/sockptr.h | 5 +++++ net/core/filter.c | 5 ++--- net/core/sock.c | 43 +++++++++++++++++++++++------------------ 4 files changed, 32 insertions(+), 24 deletions(-) diff --git a/include/linux/filter.h b/include/linux/filter.h index 2b6da8e356aab..ddaeb2afc022f 100644 --- a/include/linux/filter.h +++ b/include/linux/filter.h @@ -943,8 +943,7 @@ int sk_reuseport_attach_filter(struct sock_fprog *fprog= , struct sock *sk); int sk_reuseport_attach_bpf(u32 ufd, struct sock *sk); void sk_reuseport_prog_free(struct bpf_prog *prog); int sk_detach_filter(struct sock *sk); -int sk_get_filter(struct sock *sk, struct sock_filter __user *filter, - unsigned int len); +int sk_get_filter(struct sock *sk, sockptr_t optval, unsigned int len); =20 bool sk_filter_charge(struct sock *sk, struct sk_filter *fp); void sk_filter_uncharge(struct sock *sk, struct sk_filter *fp); diff --git a/include/linux/sockptr.h b/include/linux/sockptr.h index ea193414298b7..38862819e77a1 100644 --- a/include/linux/sockptr.h +++ b/include/linux/sockptr.h @@ -64,6 +64,11 @@ static inline int copy_to_sockptr_offset(sockptr_t dst, = size_t offset, return 0; } =20 +static inline int copy_to_sockptr(sockptr_t dst, const void *src, size_t s= ize) +{ + return copy_to_sockptr_offset(dst, 0, src, size); +} + static inline void *memdup_sockptr(sockptr_t src, size_t len) { void *p =3D kmalloc_track_caller(len, GFP_USER | __GFP_NOWARN); diff --git a/net/core/filter.c b/net/core/filter.c index f0a3cdc4d4961..457d1a164ad5d 100644 --- a/net/core/filter.c +++ b/net/core/filter.c @@ -10316,8 +10316,7 @@ int sk_detach_filter(struct sock *sk) } EXPORT_SYMBOL_GPL(sk_detach_filter); =20 -int sk_get_filter(struct sock *sk, struct sock_filter __user *ubuf, - unsigned int len) +int sk_get_filter(struct sock *sk, sockptr_t optval, unsigned int len) { struct sock_fprog_kern *fprog; struct sk_filter *filter; @@ -10348,7 +10347,7 @@ int sk_get_filter(struct sock *sk, struct sock_filt= er __user *ubuf, goto out; =20 ret =3D -EFAULT; - if (copy_to_user(ubuf, fprog->filter, bpf_classic_proglen(fprog))) + if (copy_to_sockptr(optval, fprog->filter, bpf_classic_proglen(fprog))) goto out; =20 /* Instead of bytes, the API requests to return the number diff --git a/net/core/sock.c b/net/core/sock.c index f8e3ba34e0a34..6f761f3c272aa 100644 --- a/net/core/sock.c +++ b/net/core/sock.c @@ -671,8 +671,8 @@ static int sock_setbindtodevice(struct sock *sk, sockpt= r_t optval, int optlen) return ret; } =20 -static int sock_getbindtodevice(struct sock *sk, char __user *optval, - int __user *optlen, int len) +static int sock_getbindtodevice(struct sock *sk, sockptr_t optval, + sockptr_t optlen, int len) { int ret =3D -ENOPROTOOPT; #ifdef CONFIG_NETDEVICES @@ -695,12 +695,12 @@ static int sock_getbindtodevice(struct sock *sk, char= __user *optval, len =3D strlen(devname) + 1; =20 ret =3D -EFAULT; - if (copy_to_user(optval, devname, len)) + if (copy_to_sockptr(optval, devname, len)) goto out; =20 zero: ret =3D -EFAULT; - if (put_user(len, optlen)) + if (copy_to_sockptr(optlen, &len, sizeof(int))) goto out; =20 ret =3D 0; @@ -1404,20 +1404,23 @@ static void cred_to_ucred(struct pid *pid, const st= ruct cred *cred, } } =20 -static int groups_to_user(gid_t __user *dst, const struct group_info *src) +static int groups_to_user(sockptr_t dst, const struct group_info *src) { struct user_namespace *user_ns =3D current_user_ns(); int i; =20 - for (i =3D 0; i < src->ngroups; i++) - if (put_user(from_kgid_munged(user_ns, src->gid[i]), dst + i)) + for (i =3D 0; i < src->ngroups; i++) { + gid_t gid =3D from_kgid_munged(user_ns, src->gid[i]); + + if (copy_to_sockptr_offset(dst, i * sizeof(gid), &gid, sizeof(gid))) return -EFAULT; + } =20 return 0; } =20 static int sk_getsockopt(struct sock *sk, int level, int optname, - char __user *optval, int __user *optlen) + sockptr_t optval, sockptr_t optlen) { struct socket *sock =3D sk->sk_socket; =20 @@ -1436,7 +1439,7 @@ static int sk_getsockopt(struct sock *sk, int level, = int optname, int lv =3D sizeof(int); int len; =20 - if (get_user(len, optlen)) + if (copy_from_sockptr(&len, optlen, sizeof(int))) return -EFAULT; if (len < 0) return -EINVAL; @@ -1578,7 +1581,7 @@ static int sk_getsockopt(struct sock *sk, int level, = int optname, cred_to_ucred(sk->sk_peer_pid, sk->sk_peer_cred, &peercred); spin_unlock(&sk->sk_peer_lock); =20 - if (copy_to_user(optval, &peercred, len)) + if (copy_to_sockptr(optval, &peercred, len)) return -EFAULT; goto lenout; } @@ -1596,11 +1599,11 @@ static int sk_getsockopt(struct sock *sk, int level= , int optname, if (len < n * sizeof(gid_t)) { len =3D n * sizeof(gid_t); put_cred(cred); - return put_user(len, optlen) ? -EFAULT : -ERANGE; + return copy_to_sockptr(optlen, &len, sizeof(int)) ? -EFAULT : -ERANGE; } len =3D n * sizeof(gid_t); =20 - ret =3D groups_to_user((gid_t __user *)optval, cred->group_info); + ret =3D groups_to_user(optval, cred->group_info); put_cred(cred); if (ret) return ret; @@ -1616,7 +1619,7 @@ static int sk_getsockopt(struct sock *sk, int level, = int optname, return -ENOTCONN; if (lv < len) return -EINVAL; - if (copy_to_user(optval, address, len)) + if (copy_to_sockptr(optval, address, len)) return -EFAULT; goto lenout; } @@ -1633,7 +1636,7 @@ static int sk_getsockopt(struct sock *sk, int level, = int optname, break; =20 case SO_PEERSEC: - return security_socket_getpeersec_stream(sock, optval, optlen, len); + return security_socket_getpeersec_stream(sock, optval.user, optlen.user,= len); =20 case SO_MARK: v.val =3D sk->sk_mark; @@ -1661,7 +1664,7 @@ static int sk_getsockopt(struct sock *sk, int level, = int optname, return sock_getbindtodevice(sk, optval, optlen, len); =20 case SO_GET_FILTER: - len =3D sk_get_filter(sk, (struct sock_filter __user *)optval, len); + len =3D sk_get_filter(sk, optval, len); if (len < 0) return len; =20 @@ -1711,7 +1714,7 @@ static int sk_getsockopt(struct sock *sk, int level, = int optname, sk_get_meminfo(sk, meminfo); =20 len =3D min_t(unsigned int, len, sizeof(meminfo)); - if (copy_to_user(optval, &meminfo, len)) + if (copy_to_sockptr(optval, &meminfo, len)) return -EFAULT; =20 goto lenout; @@ -1772,10 +1775,10 @@ static int sk_getsockopt(struct sock *sk, int level= , int optname, =20 if (len > lv) len =3D lv; - if (copy_to_user(optval, &v, len)) + if (copy_to_sockptr(optval, &v, len)) return -EFAULT; lenout: - if (put_user(len, optlen)) + if (copy_to_sockptr(optlen, &len, sizeof(int))) return -EFAULT; return 0; } @@ -1783,7 +1786,9 @@ static int sk_getsockopt(struct sock *sk, int level, = int optname, int sock_getsockopt(struct socket *sock, int level, int optname, char __user *optval, int __user *optlen) { - return sk_getsockopt(sock->sk, level, optname, optval, optlen); + return sk_getsockopt(sock->sk, level, optname, + USER_SOCKPTR(optval), + USER_SOCKPTR(optlen)); } =20 /* --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A0A1F130A7C; Sun, 24 Mar 2024 23:37:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323445; cv=none; b=U7hWXuSmBfEEB8CaKQR25p1q7DNxsqg+Y+VS2LMenMc4koKvcGsNEzKepk75zaaWrjPzcMLoS5LO5XZU9ff/tpp7fkWS92cI0eDoC7GHPMr7KiwMQxHzs5usK6o083KxXU5Fr2PLAQwX/K7sbJtBU4vRlJwBEJOo1vm9m/N24cI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323445; c=relaxed/simple; bh=wgaPNOuPeE9CuUFKXGx8lRwKYlRPtdYyF6Cq6/9qtmY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=b3Hx2DPx+RKluIO5tyWc2QJUO48cogBhWjsq+VSGKZI2y7TkZo9GHrzol+stF+btKaE8vxpi6EWAX8VfT3DNKcjo8jEXHUCKjski3POV615x58pfKGhfdCwSw0AIbcXVYiuq153sLlaBo8iL46aSlCHTb0Jnf9txY24tqpsCXQA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Jmxamzg3; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Jmxamzg3" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E3672C433B1; Sun, 24 Mar 2024 23:37:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323444; bh=wgaPNOuPeE9CuUFKXGx8lRwKYlRPtdYyF6Cq6/9qtmY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Jmxamzg3v5KAmspBUh5V3p9WIq30hyoNwyqoURjvbNXdupia+LUutZJyT7gTtoeQs Ad5SfKObm7kfR+o9H4AgIMwB6RJhDQG3I7PBHjFsejOoiLzO5EbnS4MmSWvJd7qYuy w5F/atntWKBvdSGjcPLJhdv4lQcHlff6OX29Ms8husljYQQU2FOVMZ9fVkmBh5QMp4 US3sVrb0Xpt+lnDeACnEZsS/0i/U6KCuogtygrO+ouUlCJZ4BMQM7eFvQZ4xnc8617 Sja1sl/i5/W4LS+uIXYW9+GT8rlUtctFIxtKLqc5HBSYT06FBw21eQNm3965ETgq8c QoU/WfCC1CAZA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Martin KaFai Lau , Alexei Starovoitov , Sasha Levin Subject: [PATCH 5.15 147/317] bpf: net: Change do_ip_getsockopt() to take the sockptr_t argument Date: Sun, 24 Mar 2024 19:32:07 -0400 Message-ID: <20240324233458.1352854-148-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Martin KaFai Lau [ Upstream commit 728f064cd7ebea8c182e99e6f152c8b4a0a6b071 ] Similar to the earlier patch that changes sk_getsockopt() to take the sockptr_t argument. This patch also changes do_ip_getsockopt() to take the sockptr_t argument such that a latter patch can make bpf_getsockopt(SOL_IP) to reuse do_ip_getsockopt(). Note on the change in ip_mc_gsfget(). This function is to return an array of sockaddr_storage in optval. This function is shared between ip_get_mcast_msfilter() and compat_ip_get_mcast_msfilter(). However, the sockaddr_storage is stored at different offset of the optval because of the difference between group_filter and compat_group_filter. Thus, a new 'ss_offset' argument is added to ip_mc_gsfget(). Signed-off-by: Martin KaFai Lau Link: https://lore.kernel.org/r/20220902002828.2890585-1-kafai@fb.com Signed-off-by: Alexei Starovoitov Stable-dep-of: 5c3be3e0eb44 ("ipmr: fix incorrect parameter validation in t= he ip_mroute_getsockopt() function") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- include/linux/igmp.h | 4 +-- include/linux/mroute.h | 6 ++-- net/ipv4/igmp.c | 22 +++++++----- net/ipv4/ip_sockglue.c | 80 ++++++++++++++++++++++++------------------ net/ipv4/ipmr.c | 9 ++--- 5 files changed, 68 insertions(+), 53 deletions(-) diff --git a/include/linux/igmp.h b/include/linux/igmp.h index 93c262ecbdc92..78890143f0790 100644 --- a/include/linux/igmp.h +++ b/include/linux/igmp.h @@ -118,9 +118,9 @@ extern int ip_mc_source(int add, int omode, struct sock= *sk, struct ip_mreq_source *mreqs, int ifindex); extern int ip_mc_msfilter(struct sock *sk, struct ip_msfilter *msf,int ifi= ndex); extern int ip_mc_msfget(struct sock *sk, struct ip_msfilter *msf, - struct ip_msfilter __user *optval, int __user *optlen); + sockptr_t optval, sockptr_t optlen); extern int ip_mc_gsfget(struct sock *sk, struct group_filter *gsf, - struct sockaddr_storage __user *p); + sockptr_t optval, size_t offset); extern int ip_mc_sf_allow(struct sock *sk, __be32 local, __be32 rmt, int dif, int sdif); extern void ip_mc_init_dev(struct in_device *); diff --git a/include/linux/mroute.h b/include/linux/mroute.h index 6cbbfe94348ce..80b8400ab8b24 100644 --- a/include/linux/mroute.h +++ b/include/linux/mroute.h @@ -17,7 +17,7 @@ static inline int ip_mroute_opt(int opt) } =20 int ip_mroute_setsockopt(struct sock *, int, sockptr_t, unsigned int); -int ip_mroute_getsockopt(struct sock *, int, char __user *, int __user *); +int ip_mroute_getsockopt(struct sock *, int, sockptr_t, sockptr_t); int ipmr_ioctl(struct sock *sk, int cmd, void __user *arg); int ipmr_compat_ioctl(struct sock *sk, unsigned int cmd, void __user *arg); int ip_mr_init(void); @@ -29,8 +29,8 @@ static inline int ip_mroute_setsockopt(struct sock *sock,= int optname, return -ENOPROTOOPT; } =20 -static inline int ip_mroute_getsockopt(struct sock *sock, int optname, - char __user *optval, int __user *optlen) +static inline int ip_mroute_getsockopt(struct sock *sk, int optname, + sockptr_t optval, sockptr_t optlen) { return -ENOPROTOOPT; } diff --git a/net/ipv4/igmp.c b/net/ipv4/igmp.c index 88e780a168652..d2d0fb6dcff78 100644 --- a/net/ipv4/igmp.c +++ b/net/ipv4/igmp.c @@ -2532,11 +2532,10 @@ int ip_mc_msfilter(struct sock *sk, struct ip_msfil= ter *msf, int ifindex) err =3D ip_mc_leave_group(sk, &imr); return err; } - int ip_mc_msfget(struct sock *sk, struct ip_msfilter *msf, - struct ip_msfilter __user *optval, int __user *optlen) + sockptr_t optval, sockptr_t optlen) { - int err, len, count, copycount; + int err, len, count, copycount, msf_size; struct ip_mreqn imr; __be32 addr =3D msf->imsf_multiaddr; struct ip_mc_socklist *pmc; @@ -2579,12 +2578,15 @@ int ip_mc_msfget(struct sock *sk, struct ip_msfilte= r *msf, copycount =3D count < msf->imsf_numsrc ? count : msf->imsf_numsrc; len =3D flex_array_size(psl, sl_addr, copycount); msf->imsf_numsrc =3D count; - if (put_user(IP_MSFILTER_SIZE(copycount), optlen) || - copy_to_user(optval, msf, IP_MSFILTER_SIZE(0))) { + msf_size =3D IP_MSFILTER_SIZE(copycount); + if (copy_to_sockptr(optlen, &msf_size, sizeof(int)) || + copy_to_sockptr(optval, msf, IP_MSFILTER_SIZE(0))) { return -EFAULT; } if (len && - copy_to_user(&optval->imsf_slist_flex[0], psl->sl_addr, len)) + copy_to_sockptr_offset(optval, + offsetof(struct ip_msfilter, imsf_slist_flex), + psl->sl_addr, len)) return -EFAULT; return 0; done: @@ -2592,7 +2594,7 @@ int ip_mc_msfget(struct sock *sk, struct ip_msfilter = *msf, } =20 int ip_mc_gsfget(struct sock *sk, struct group_filter *gsf, - struct sockaddr_storage __user *p) + sockptr_t optval, size_t ss_offset) { int i, count, copycount; struct sockaddr_in *psin; @@ -2622,15 +2624,17 @@ int ip_mc_gsfget(struct sock *sk, struct group_filt= er *gsf, count =3D psl ? psl->sl_count : 0; copycount =3D count < gsf->gf_numsrc ? count : gsf->gf_numsrc; gsf->gf_numsrc =3D count; - for (i =3D 0; i < copycount; i++, p++) { + for (i =3D 0; i < copycount; i++) { struct sockaddr_storage ss; =20 psin =3D (struct sockaddr_in *)&ss; memset(&ss, 0, sizeof(ss)); psin->sin_family =3D AF_INET; psin->sin_addr.s_addr =3D psl->sl_addr[i]; - if (copy_to_user(p, &ss, sizeof(ss))) + if (copy_to_sockptr_offset(optval, ss_offset, + &ss, sizeof(ss))) return -EFAULT; + ss_offset +=3D sizeof(ss); } return 0; } diff --git a/net/ipv4/ip_sockglue.c b/net/ipv4/ip_sockglue.c index 540002c9f3b35..3620dc739a5bf 100644 --- a/net/ipv4/ip_sockglue.c +++ b/net/ipv4/ip_sockglue.c @@ -1460,37 +1460,37 @@ static bool getsockopt_needs_rtnl(int optname) return false; } =20 -static int ip_get_mcast_msfilter(struct sock *sk, void __user *optval, - int __user *optlen, int len) +static int ip_get_mcast_msfilter(struct sock *sk, sockptr_t optval, + sockptr_t optlen, int len) { const int size0 =3D offsetof(struct group_filter, gf_slist_flex); - struct group_filter __user *p =3D optval; struct group_filter gsf; - int num; + int num, gsf_size; int err; =20 if (len < size0) return -EINVAL; - if (copy_from_user(&gsf, p, size0)) + if (copy_from_sockptr(&gsf, optval, size0)) return -EFAULT; =20 num =3D gsf.gf_numsrc; - err =3D ip_mc_gsfget(sk, &gsf, p->gf_slist_flex); + err =3D ip_mc_gsfget(sk, &gsf, optval, + offsetof(struct group_filter, gf_slist_flex)); if (err) return err; if (gsf.gf_numsrc < num) num =3D gsf.gf_numsrc; - if (put_user(GROUP_FILTER_SIZE(num), optlen) || - copy_to_user(p, &gsf, size0)) + gsf_size =3D GROUP_FILTER_SIZE(num); + if (copy_to_sockptr(optlen, &gsf_size, sizeof(int)) || + copy_to_sockptr(optval, &gsf, size0)) return -EFAULT; return 0; } =20 -static int compat_ip_get_mcast_msfilter(struct sock *sk, void __user *optv= al, - int __user *optlen, int len) +static int compat_ip_get_mcast_msfilter(struct sock *sk, sockptr_t optval, + sockptr_t optlen, int len) { const int size0 =3D offsetof(struct compat_group_filter, gf_slist_flex); - struct compat_group_filter __user *p =3D optval; struct compat_group_filter gf32; struct group_filter gf; int num; @@ -1498,7 +1498,7 @@ static int compat_ip_get_mcast_msfilter(struct sock *= sk, void __user *optval, =20 if (len < size0) return -EINVAL; - if (copy_from_user(&gf32, p, size0)) + if (copy_from_sockptr(&gf32, optval, size0)) return -EFAULT; =20 gf.gf_interface =3D gf32.gf_interface; @@ -1506,21 +1506,24 @@ static int compat_ip_get_mcast_msfilter(struct sock= *sk, void __user *optval, num =3D gf.gf_numsrc =3D gf32.gf_numsrc; gf.gf_group =3D gf32.gf_group; =20 - err =3D ip_mc_gsfget(sk, &gf, p->gf_slist_flex); + err =3D ip_mc_gsfget(sk, &gf, optval, + offsetof(struct compat_group_filter, gf_slist_flex)); if (err) return err; if (gf.gf_numsrc < num) num =3D gf.gf_numsrc; len =3D GROUP_FILTER_SIZE(num) - (sizeof(gf) - sizeof(gf32)); - if (put_user(len, optlen) || - put_user(gf.gf_fmode, &p->gf_fmode) || - put_user(gf.gf_numsrc, &p->gf_numsrc)) + if (copy_to_sockptr(optlen, &len, sizeof(int)) || + copy_to_sockptr_offset(optval, offsetof(struct compat_group_filter, g= f_fmode), + &gf.gf_fmode, sizeof(gf.gf_fmode)) || + copy_to_sockptr_offset(optval, offsetof(struct compat_group_filter, g= f_numsrc), + &gf.gf_numsrc, sizeof(gf.gf_numsrc))) return -EFAULT; return 0; } =20 static int do_ip_getsockopt(struct sock *sk, int level, int optname, - char __user *optval, int __user *optlen) + sockptr_t optval, sockptr_t optlen) { struct inet_sock *inet =3D inet_sk(sk); bool needs_rtnl =3D getsockopt_needs_rtnl(optname); @@ -1533,7 +1536,7 @@ static int do_ip_getsockopt(struct sock *sk, int leve= l, int optname, if (ip_mroute_opt(optname)) return ip_mroute_getsockopt(sk, optname, optval, optlen); =20 - if (get_user(len, optlen)) + if (copy_from_sockptr(&len, optlen, sizeof(int))) return -EFAULT; if (len < 0) return -EINVAL; @@ -1558,15 +1561,17 @@ static int do_ip_getsockopt(struct sock *sk, int le= vel, int optname, inet_opt->opt.optlen); release_sock(sk); =20 - if (opt->optlen =3D=3D 0) - return put_user(0, optlen); + if (opt->optlen =3D=3D 0) { + len =3D 0; + return copy_to_sockptr(optlen, &len, sizeof(int)); + } =20 ip_options_undo(opt); =20 len =3D min_t(unsigned int, len, opt->optlen); - if (put_user(len, optlen)) + if (copy_to_sockptr(optlen, &len, sizeof(int))) return -EFAULT; - if (copy_to_user(optval, opt->__data, len)) + if (copy_to_sockptr(optval, opt->__data, len)) return -EFAULT; return 0; } @@ -1657,9 +1662,9 @@ static int do_ip_getsockopt(struct sock *sk, int leve= l, int optname, addr.s_addr =3D inet->mc_addr; release_sock(sk); =20 - if (put_user(len, optlen)) + if (copy_to_sockptr(optlen, &len, sizeof(int))) return -EFAULT; - if (copy_to_user(optval, &addr, len)) + if (copy_to_sockptr(optval, &addr, len)) return -EFAULT; return 0; } @@ -1671,12 +1676,11 @@ static int do_ip_getsockopt(struct sock *sk, int le= vel, int optname, err =3D -EINVAL; goto out; } - if (copy_from_user(&msf, optval, IP_MSFILTER_SIZE(0))) { + if (copy_from_sockptr(&msf, optval, IP_MSFILTER_SIZE(0))) { err =3D -EFAULT; goto out; } - err =3D ip_mc_msfget(sk, &msf, - (struct ip_msfilter __user *)optval, optlen); + err =3D ip_mc_msfget(sk, &msf, optval, optlen); goto out; } case MCAST_MSFILTER: @@ -1698,8 +1702,13 @@ static int do_ip_getsockopt(struct sock *sk, int lev= el, int optname, if (sk->sk_type !=3D SOCK_STREAM) return -ENOPROTOOPT; =20 - msg.msg_control_is_user =3D true; - msg.msg_control_user =3D optval; + if (optval.is_kernel) { + msg.msg_control_is_user =3D false; + msg.msg_control =3D optval.kernel; + } else { + msg.msg_control_is_user =3D true; + msg.msg_control_user =3D optval.user; + } msg.msg_controllen =3D len; msg.msg_flags =3D in_compat_syscall() ? MSG_CMSG_COMPAT : 0; =20 @@ -1720,7 +1729,7 @@ static int do_ip_getsockopt(struct sock *sk, int leve= l, int optname, put_cmsg(&msg, SOL_IP, IP_TOS, sizeof(tos), &tos); } len -=3D msg.msg_controllen; - return put_user(len, optlen); + return copy_to_sockptr(optlen, &len, sizeof(int)); } case IP_FREEBIND: val =3D inet->freebind; @@ -1743,15 +1752,15 @@ static int do_ip_getsockopt(struct sock *sk, int le= vel, int optname, if (len < sizeof(int) && len > 0 && val >=3D 0 && val <=3D 255) { unsigned char ucval =3D (unsigned char)val; len =3D 1; - if (put_user(len, optlen)) + if (copy_to_sockptr(optlen, &len, sizeof(int))) return -EFAULT; - if (copy_to_user(optval, &ucval, 1)) + if (copy_to_sockptr(optval, &ucval, 1)) return -EFAULT; } else { len =3D min_t(unsigned int, sizeof(int), len); - if (put_user(len, optlen)) + if (copy_to_sockptr(optlen, &len, sizeof(int))) return -EFAULT; - if (copy_to_user(optval, &val, len)) + if (copy_to_sockptr(optval, &val, len)) return -EFAULT; } return 0; @@ -1768,7 +1777,8 @@ int ip_getsockopt(struct sock *sk, int level, { int err; =20 - err =3D do_ip_getsockopt(sk, level, optname, optval, optlen); + err =3D do_ip_getsockopt(sk, level, optname, + USER_SOCKPTR(optval), USER_SOCKPTR(optlen)); =20 #if IS_ENABLED(CONFIG_BPFILTER_UMH) if (optname >=3D BPFILTER_IPT_SO_GET_INFO && diff --git a/net/ipv4/ipmr.c b/net/ipv4/ipmr.c index aea29d97f8dfa..eb3c09340aef8 100644 --- a/net/ipv4/ipmr.c +++ b/net/ipv4/ipmr.c @@ -1540,7 +1540,8 @@ int ip_mroute_setsockopt(struct sock *sk, int optname= , sockptr_t optval, } =20 /* Getsock opt support for the multicast routing system. */ -int ip_mroute_getsockopt(struct sock *sk, int optname, char __user *optval= , int __user *optlen) +int ip_mroute_getsockopt(struct sock *sk, int optname, sockptr_t optval, + sockptr_t optlen) { int olr; int val; @@ -1571,14 +1572,14 @@ int ip_mroute_getsockopt(struct sock *sk, int optna= me, char __user *optval, int return -ENOPROTOOPT; } =20 - if (get_user(olr, optlen)) + if (copy_from_sockptr(&olr, optlen, sizeof(int))) return -EFAULT; olr =3D min_t(unsigned int, olr, sizeof(int)); if (olr < 0) return -EINVAL; - if (put_user(olr, optlen)) + if (copy_to_sockptr(optlen, &olr, sizeof(int))) return -EFAULT; - if (copy_to_user(optval, &val, olr)) + if (copy_to_sockptr(optval, &val, olr)) return -EFAULT; return 0; } --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 893001769E7; Sun, 24 Mar 2024 23:37:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323446; cv=none; b=nBGs2X43px6XRFhxyIr5I0KcynGenQGfyl2eX02hAeXecEqgaRMMoWB2FxHwFY+0QnW0T+4Kfu+S1FxopGeq6ryZpt61pEFKcfVTGdwOwJOantFTZzEjhE6D3On1YAzgMZwhSARk6Jn8LkYWi8W0tg0MhWtWs/GEIQg8eVQAV58= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323446; c=relaxed/simple; bh=SsSv/d1AqjxdLmdNQv7XU4Xc7XOK/CXqj/W6WILv7OE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=dV9yBkZFn6wKSDdy/A9gtyZxsKe4ifuznXnnGN260D8xTaaHeMwevEjHSPVG9EqvqdevpKJNabcpEVqOC1tHfox7fw2tUrgtFQwJKmH00xdpXxgNfgyydFZANNDaYFtJ6Qd4FdjzoxqvYaVDjowhnGeerCRCVEZvtnPt9BLFu/I= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=WebdqqqQ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="WebdqqqQ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id C76E1C43390; Sun, 24 Mar 2024 23:37:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323445; bh=SsSv/d1AqjxdLmdNQv7XU4Xc7XOK/CXqj/W6WILv7OE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=WebdqqqQ6OsXiCq1CbtaOBYyWHtvOZ32L6c9TC8FSoWjSOYHMJz/gWa8cu5/ZySNM IvMylsB0oU4N4PdP1P74dhAf4qXPymMekjfdhHYgLJNeoB83NtEk2u+6o2LFzoCKfu iA6wT+qS2GnevJ4Yth6Y7xy7n2QmeHX2Q4fOq0s7ADNU5VWdHhMUxn8jY/mQmmpOVc s2Nd0QAWBUFF9XGqpWhuI+qQDZkXVaFogScxhNKMOX10y2xJOXxpN+qjwmV7rdAg1M n74lidck4xmpAR/zd/bUSMhWJk/lkygHF97JgVOUr01K0v6smXkeHDxSlFCJy4v4vZ RYGy6+1hmiY7g== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Gavrilov Ilia , "David S . Miller" , Sasha Levin Subject: [PATCH 5.15 148/317] ipmr: fix incorrect parameter validation in the ip_mroute_getsockopt() function Date: Sun, 24 Mar 2024 19:32:08 -0400 Message-ID: <20240324233458.1352854-149-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Gavrilov Ilia [ Upstream commit 5c3be3e0eb44b7f978bb6cbb20ad956adb93f736 ] The 'olr' variable can't be negative when assigned the result of 'min_t' because all 'min_t' parameters are cast to unsigned int, and then the minimum one is chosen. To fix the logic, check 'olr' as read from 'optlen', where the types of relevant variables are (signed) int. Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2") Signed-off-by: Gavrilov Ilia Signed-off-by: David S. Miller Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- net/ipv4/ipmr.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/net/ipv4/ipmr.c b/net/ipv4/ipmr.c index eb3c09340aef8..c9a633559258c 100644 --- a/net/ipv4/ipmr.c +++ b/net/ipv4/ipmr.c @@ -1574,9 +1574,11 @@ int ip_mroute_getsockopt(struct sock *sk, int optnam= e, sockptr_t optval, =20 if (copy_from_sockptr(&olr, optlen, sizeof(int))) return -EFAULT; - olr =3D min_t(unsigned int, olr, sizeof(int)); if (olr < 0) return -EINVAL; + + olr =3D min_t(unsigned int, olr, sizeof(int)); + if (copy_to_sockptr(optlen, &olr, sizeof(int))) return -EFAULT; if (copy_to_sockptr(optval, &val, olr)) --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 822811769E6; Sun, 24 Mar 2024 23:37:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323446; cv=none; b=uKvpcdAf7WOBc0mPrp+9YnFx0VpcdJUcIVCmbqLVbhPLbM8S3WQ5/2t7tjeLAvBHZqA+zLWDEqLNNvC2bN9Yh+qspoog+sjDEO0wn6cxsqX3+wdDSLpBtMLvKhEDjjxC8Kx+oDCxyZyD6LPFlssk5BOQpkQPTlx9TtsH7zX3uno= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323446; c=relaxed/simple; bh=wkw81QTNMZE7CcCiJK6eFwijCpAGFyOZ4hyjY259Npg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=X3E9q8IYBf4wBDRP4Bqe/CE59NubOgVfXwem/mbvZtxQg/n4r7rLJJNyIZyxzBn6rkyYMqhlRhxEyxAX4AWFpBGuePePyNAhoagzgFi3mFwVJQpoSAcsY5FBZwg12iBbbjN0shOhrsGfguAJPpka++a7xMPjfnnBnGs40TodfsA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=mk6rssw5; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="mk6rssw5" Received: by smtp.kernel.org (Postfix) with ESMTPSA id ABBF1C43394; Sun, 24 Mar 2024 23:37:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323446; bh=wkw81QTNMZE7CcCiJK6eFwijCpAGFyOZ4hyjY259Npg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=mk6rssw5V8iVlyh3n4xmSm7hR0MkB7UN4AxSXQJJI/N1mcrHC7rrJowMzXeKqWxyN br4Mw58RXgSAs4rCN4zbxyDIepb6M1uZfN062U15eos5T6pOkf64Yz+nUUifuJWMUs l3jWeb0jMCFlrP6qns6peSM+Xomv5/YFG35rmfHXa9xT7U1hWOu+XeabLJLngIj6Bz RcyTazodIJE9hmWPFIM9vLANykNaPwsMQxWJNnKPtGyuFBEb9uPoXKZAh6aAQy15rL LKc1/vVeNC9SRbLrbuQdtaea3rhZDEN9e9vLZSFiJykVdkwj7Wxsq2yS4a3vCngSt7 1tMMAf9444vlw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Gavrilov Ilia , Tom Parkin , "David S . Miller" , Sasha Levin Subject: [PATCH 5.15 149/317] l2tp: fix incorrect parameter validation in the pppol2tp_getsockopt() function Date: Sun, 24 Mar 2024 19:32:09 -0400 Message-ID: <20240324233458.1352854-150-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Gavrilov Ilia [ Upstream commit 955e9876ba4ee26eeaab1b13517f5b2c88e73d55 ] The 'len' variable can't be negative when assigned the result of 'min_t' because all 'min_t' parameters are cast to unsigned int, and then the minimum one is chosen. To fix the logic, check 'len' as read from 'optlen', where the types of relevant variables are (signed) int. Fixes: 3557baabf280 ("[L2TP]: PPP over L2TP driver core") Reviewed-by: Tom Parkin Signed-off-by: Gavrilov Ilia Signed-off-by: David S. Miller Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- net/l2tp/l2tp_ppp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/net/l2tp/l2tp_ppp.c b/net/l2tp/l2tp_ppp.c index 9cef8e080f644..55de42b000d8a 100644 --- a/net/l2tp/l2tp_ppp.c +++ b/net/l2tp/l2tp_ppp.c @@ -1357,11 +1357,11 @@ static int pppol2tp_getsockopt(struct socket *sock,= int level, int optname, if (get_user(len, optlen)) return -EFAULT; =20 - len =3D min_t(unsigned int, len, sizeof(int)); - if (len < 0) return -EINVAL; =20 + len =3D min_t(unsigned int, len, sizeof(int)); + err =3D -ENOTCONN; if (!sk->sk_user_data) goto end; --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 815ED278980; Sun, 24 Mar 2024 23:37:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323448; cv=none; b=lxt3oYwLATI+VqL/Ty30ZUe1W61O0ki60k2B57JIjcZ07Rd/e9xveT13of5Cme2b+xiLYQ+hMkQ8bVJrW94EoIzdum2qsCaFYqPQnve7uHU+DEcKHDKv/W8iJezWuWDj4g/AP2y9se/ISwK0ilnR/+RUM7MhO45JaNyJyMSaY/g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323448; c=relaxed/simple; bh=wUqvi6MCxNDoX/IRXsB3IsgmfWpXe5W73W19ynJlO4M=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=CSYqKE9amrS9IDBPbDfZG+cfvKP1pi2KyZYIchuo5YzTuqW9SYt9VRSxfNQMlgVzs3FrjfrD/Phm2q7xuEfjejSbMBnhbfrBBXJ1cIfNyLvwOIwcJdA6lvF3y6ojyeLalrjWUytdbPrRTIvCbID45Gv1G3aCZbajxEEpCMGFM9k= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=mZD8w+aw; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="mZD8w+aw" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A7672C433A6; Sun, 24 Mar 2024 23:37:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323447; bh=wUqvi6MCxNDoX/IRXsB3IsgmfWpXe5W73W19ynJlO4M=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=mZD8w+aw3EKleGKA1GhUCoNWA77HnPJok10XE5zgFk9sJTjGj/VS7t6pTYRXEPw/o ZJzbsZSrP/DHv83ja+Chxn3XGfKXyyBQ+f6N0xVdrbS+C9I/SohmznFTex7LYNAitP hm2Zh+jz5r2RRvFASToq7HMZJgLsJqhk11VD71td6b34SZlIxO5hnKASfJZD2cPZDZ yD1VunvowQdlKSqr67/0697mN+7BY9RWn+vz5nG6EQPYxj7LPmFrPvrkHlVFLri0U/ H6fl3wL0a2DVbi7U/hdToqb6wVZrchvV+hJqNRmZ8OGW+9WDgDJUrP7aZGmsxe2nKt SSuVqRpXwW0Rw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Gavrilov Ilia , Willem de Bruijn , "David S . Miller" , Sasha Levin Subject: [PATCH 5.15 150/317] udp: fix incorrect parameter validation in the udp_lib_getsockopt() function Date: Sun, 24 Mar 2024 19:32:10 -0400 Message-ID: <20240324233458.1352854-151-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Gavrilov Ilia [ Upstream commit 4bb3ba7b74fceec6f558745b25a43c6521cf5506 ] The 'len' variable can't be negative when assigned the result of 'min_t' because all 'min_t' parameters are cast to unsigned int, and then the minimum one is chosen. To fix the logic, check 'len' as read from 'optlen', where the types of relevant variables are (signed) int. Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2") Reviewed-by: Willem de Bruijn Signed-off-by: Gavrilov Ilia Signed-off-by: David S. Miller Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- net/ipv4/udp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c index c454daa78a2f8..2caf54c241037 100644 --- a/net/ipv4/udp.c +++ b/net/ipv4/udp.c @@ -2814,11 +2814,11 @@ int udp_lib_getsockopt(struct sock *sk, int level, = int optname, if (get_user(len, optlen)) return -EFAULT; =20 - len =3D min_t(unsigned int, len, sizeof(int)); - if (len < 0) return -EINVAL; =20 + len =3D min_t(unsigned int, len, sizeof(int)); + switch (optname) { case UDP_CORK: val =3D READ_ONCE(up->corkflag); --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 694D027898A; Sun, 24 Mar 2024 23:37:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323448; cv=none; b=u1SmfKzyXwLE+RZL62GUbfrjBaoHRw8CUuAT9H+/vzwrzqpEmLk7f8N+pqzSH53VEAvqQLdQT4K9H8qRE6lo6wIKkEe5fpXtyWxLnzitsMwV4wH0Z+Tuv19Nk5loG9KdOBaqYxrnKME7RQZ0Zh1H5I10zU/yYOt1ABowuLSnn2U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323448; c=relaxed/simple; bh=O1ttdYRd31tN3Bf5moUZC9unMWcanh8NkZgXi6l8KEM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=cWOSjU5Ij0EUjXpH6y8Y+bt60Eiio0pWiwpU6JOtn2+E+qj/ZMMkpEekZpNXi0AqYE7OAvvmGtS6L4noHryy8ZlmlaxBd0HoMoMdMucQIexZ+OtGNnjQIjAJs3qUbYRFMzDY3plCXDSyq6hnL1vJYc9+YTAKJRQRavC/HxXHB9s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=QjdtJ/Yq; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="QjdtJ/Yq" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A3BFEC433F1; Sun, 24 Mar 2024 23:37:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323448; bh=O1ttdYRd31tN3Bf5moUZC9unMWcanh8NkZgXi6l8KEM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=QjdtJ/YqoJicYxdqfENfPMgUuDE6LRw70R9HFirT+NaQz2oB36kZQ4Tx5uvgTQ8rx LtMYPsPreo2/sLKIIYSMZeQ1mL+yqCheSIFoLPKr0WK2WZNmv0aUoyVXE0rGdhq+hl Bq2i0n/83EedccdQmRYRDKrwjuyZt+FaKc70cNPSZtt5bxFUSszCgFquMPYwz/djRY qj2B9nGbnVmoBQjUKhLcmibIY55aiQnelW/RbV2TENCUoQJmU9/1hvABnvDzxoztak czmVXptA3y3kfc05tGBGIfbhFfx7S/JOrSEkM67ZPHWEWA6qLUjg7A/CkPyOG1KiXT 1h6EqLxQ5t5Pg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Gavrilov Ilia , "David S . Miller" , Sasha Levin Subject: [PATCH 5.15 151/317] net: kcm: fix incorrect parameter validation in the kcm_getsockopt) function Date: Sun, 24 Mar 2024 19:32:11 -0400 Message-ID: <20240324233458.1352854-152-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Gavrilov Ilia [ Upstream commit 3ed5f415133f9b7518fbe55ba9ae9a3f5e700929 ] The 'len' variable can't be negative when assigned the result of 'min_t' because all 'min_t' parameters are cast to unsigned int, and then the minimum one is chosen. To fix the logic, check 'len' as read from 'optlen', where the types of relevant variables are (signed) int. Fixes: ab7ac4eb9832 ("kcm: Kernel Connection Multiplexor module") Signed-off-by: Gavrilov Ilia Signed-off-by: David S. Miller Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- net/kcm/kcmsock.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/net/kcm/kcmsock.c b/net/kcm/kcmsock.c index 0d1ab4149553c..5457ca1909801 100644 --- a/net/kcm/kcmsock.c +++ b/net/kcm/kcmsock.c @@ -1275,10 +1275,11 @@ static int kcm_getsockopt(struct socket *sock, int = level, int optname, if (get_user(len, optlen)) return -EFAULT; =20 - len =3D min_t(unsigned int, len, sizeof(int)); if (len < 0) return -EINVAL; =20 + len =3D min_t(unsigned int, len, sizeof(int)); + switch (optname) { case KCM_RECV_DISABLE: val =3D kcm->rx_disabled; --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4F90A278998; Sun, 24 Mar 2024 23:37:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323450; cv=none; b=uvRSPw0BuhNcVdVZVArs8cirsVZfaduozOi0KIZfNtaoiJsjD/EiZIwJsCV0E3RYVXajNKkUtCODRyXrGNmezkIKJS7WETqyo8MC9q7KFQUr4EfdiYluxqf4Fs14uPJFgr1GeE1ZypwQzielwO5U/S5aZGNW0Z6eDjHomMWZLwI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323450; c=relaxed/simple; bh=fRURc9EA+Wjz171uYkXIOhdPEisDxnzCuFLmzd7uGvk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=KUhBmJk5RwoLLJZS2B2NluKf/Ss6GCjWm3v/agzRl6VMuwUStdKc7YR1B9UVZaTOadKj3tg++fGzmpQyfZ8ZhrvtUOJPuyLxuR31AANcJdqFHrG6D9MhpSnmI5CdfG4lgmOca9tKEMVNbbEZrFG4Pt7zqul8plp/9o0fUknTa8Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=NhDCFYsc; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="NhDCFYsc" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8ECBEC43394; Sun, 24 Mar 2024 23:37:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323449; bh=fRURc9EA+Wjz171uYkXIOhdPEisDxnzCuFLmzd7uGvk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=NhDCFYscYM8o+voEkqJdXEeA1t/zfVZ2X5NwQDrG+jfQrYscgLPjdIFsdBnC1Di5B zuBD9LfgDvcngCb4KPvwnPAkJKSv0dfbtPRUv5OfJwZHv0AkNXzNECqCyuul6x0FMy WtyKJ9cx5+DinhjKXJomJyQ9BCRKq8pLMjGqz1Q0VLva+NgA7JbVr/6BPw4FLG1gEu I3h9vI4xLi7ufccaWK+FlcKQvG7PT8exXKJBB4OUucNyps1VnYFXgyGkFPBPe0IOjb k1cusa3gfMVVYzKKJsRMm4LuTffPnV7wOejC+AE6eQFNElDlqAFdb8kSzeX1YCgmob pjxhmqfJbqvNA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Gavrilov Ilia , "David S . Miller" , Sasha Levin Subject: [PATCH 5.15 152/317] net/x25: fix incorrect parameter validation in the x25_getsockopt() function Date: Sun, 24 Mar 2024 19:32:12 -0400 Message-ID: <20240324233458.1352854-153-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Gavrilov Ilia [ Upstream commit d6eb8de2015f0c24822e47356f839167ebde2945 ] The 'len' variable can't be negative when assigned the result of 'min_t' because all 'min_t' parameters are cast to unsigned int, and then the minimum one is chosen. To fix the logic, check 'len' as read from 'optlen', where the types of relevant variables are (signed) int. Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2") Signed-off-by: Gavrilov Ilia Signed-off-by: David S. Miller Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- net/x25/af_x25.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/net/x25/af_x25.c b/net/x25/af_x25.c index 07f6206e7cb47..1e5152fdee589 100644 --- a/net/x25/af_x25.c +++ b/net/x25/af_x25.c @@ -460,12 +460,12 @@ static int x25_getsockopt(struct socket *sock, int le= vel, int optname, if (get_user(len, optlen)) goto out; =20 - len =3D min_t(unsigned int, len, sizeof(int)); - rc =3D -EINVAL; if (len < 0) goto out; =20 + len =3D min_t(unsigned int, len, sizeof(int)); + rc =3D -EFAULT; if (put_user(len, optlen)) goto out; --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4BA8127899C; Sun, 24 Mar 2024 23:37:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323451; cv=none; b=I0wzEoQZ2k5qYQEUMbbCfmoGxzepb7knj0MnX1I5eDsH6E1ijzQ6QkldiYn6YwFiw7bxkJh0XtInojmO5ABibYREPdz1Im9HTXIYGTANR15PvXVb5EZVOfursnzfayo3r4EjUAiPV1+ecMfAuyGJIFaEI5wVJteDbcBpUe2vT9w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323451; c=relaxed/simple; bh=ir/H48WBd9iJTs/xTH8Oz5/Qn+uxWcc9t3DZeEZ5L6g=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=eOUcU6aAv5fu35Htx4s/2xByFyzl6auaAEEFafRZUjl0u+qEDfFfNTZeiK1ALnNidclMzpl2W3M1TwT1js0qN8V5z+UtM95MXQFaSJxvLZ1mHE+LezPOx5RRRtNEgsR6axq2ABEOchpI6Zg8vRERCw2X0v9jXN3Ix2A0yzKDvCA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Bja/JeR1; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Bja/JeR1" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 74547C43390; Sun, 24 Mar 2024 23:37:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323450; bh=ir/H48WBd9iJTs/xTH8Oz5/Qn+uxWcc9t3DZeEZ5L6g=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Bja/JeR1mX9mc0OLtcqk7sM7qTNty+lGyyNRg+Bhvs4AKAG+QNzAl9rqGS+ONZWw0 WUuLEUKAMkC6Rp3PgXJro/dzPc/Z9b7KytVgsLVW3u+ik6HvrnQBE4ZyaDA7enlNzN vZiJWMJuBe62z3tMHwhIZECp2qgpwihx2OvnzmN5deuIi/dLXOIEi6K691qJS7Mr/K t4r5iSyNRQ8Lne5NMFMicg2LMJo1gZSrkIy9udzUohYYGOOW289DY7qHzxDWqd5xBv WbyYNlHkV1PaIHUduuGvkII03RFiiiPxDiyOjStucMhpLA7S0tlB/MuLVg0b8QWyAb y5VWvHI8H86uw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Duoming Zhou , Louis Peens , Jakub Kicinski , Sasha Levin Subject: [PATCH 5.15 153/317] nfp: flower: handle acti_netdevs allocation failure Date: Sun, 24 Mar 2024 19:32:13 -0400 Message-ID: <20240324233458.1352854-154-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Duoming Zhou [ Upstream commit 84e95149bd341705f0eca6a7fcb955c548805002 ] The kmalloc_array() in nfp_fl_lag_do_work() will return null, if the physical memory has run out. As a result, if we dereference the acti_netdevs, the null pointer dereference bugs will happen. This patch adds a check to judge whether allocation failure occurs. If it happens, the delayed work will be rescheduled and try again. Fixes: bb9a8d031140 ("nfp: flower: monitor and offload LAG groups") Signed-off-by: Duoming Zhou Reviewed-by: Louis Peens Link: https://lore.kernel.org/r/20240308142540.9674-1-duoming@zju.edu.cn Signed-off-by: Jakub Kicinski Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/net/ethernet/netronome/nfp/flower/lag_conf.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/net/ethernet/netronome/nfp/flower/lag_conf.c b/drivers= /net/ethernet/netronome/nfp/flower/lag_conf.c index 63907aeb3884e..3167f9675ae0f 100644 --- a/drivers/net/ethernet/netronome/nfp/flower/lag_conf.c +++ b/drivers/net/ethernet/netronome/nfp/flower/lag_conf.c @@ -308,6 +308,11 @@ static void nfp_fl_lag_do_work(struct work_struct *wor= k) =20 acti_netdevs =3D kmalloc_array(entry->slave_cnt, sizeof(*acti_netdevs), GFP_KERNEL); + if (!acti_netdevs) { + schedule_delayed_work(&lag->work, + NFP_FL_LAG_DELAY); + continue; + } =20 /* Include sanity check in the loop. It may be that a bond has * changed between processing the last notification and the --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 47FE227898D; Sun, 24 Mar 2024 23:37:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323451; cv=none; b=rqD5G9s+Wlk+mAGkzAQpxtbq4apnCRImZ8A1oYl9YROo2aJs1mh0dlIAdoyeJlw2ZRBYCS/a2nfVF6ne6IeprHB8t2xZA0k9gF6Mo7PgPbPU0M4oOAfIVOmYNGgPbPJIoeNQ93XRLf9DzVj7PM4+rZe8oqIylbOsdjs//uuq0rI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323451; c=relaxed/simple; bh=1iglNrylsU2Jo217moQ36heLo5ehGv/yQsgFmZHd4EQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=tr++4zWHnuZWfoubFxIL+fA9QTcK43d8hzJ53nq7DrB7kuWQm6zhT1BBjj6Jn4+1NXQ8c5LKSFAnkTukJoTMurZ5z2Ihvbx+eDAIp21qZ54SNS6ddkVo/ZXOJAIvTn5a/3y3CQJohGSF50xGZgGrmPJc5PyBlxebzNEc2zR9e38= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Se9Ote8G; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Se9Ote8G" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6F9B3C433F1; Sun, 24 Mar 2024 23:37:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323451; bh=1iglNrylsU2Jo217moQ36heLo5ehGv/yQsgFmZHd4EQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Se9Ote8Gt1p/Pd+X+xJdHA8U1VYFlVQDVwsxQtLAg18xW6+DVEZQ+LwflaoRjE2x9 IgFzQRjVYwY/wFVfw/wC5pW3lP2no/V7ecIssdJylDETqKG5XFfZyYTvXKaGZvZWR7 hmuc1/RaBFHtHhYqs0oAEidFJw36hvcL1/vH59CNpm8FNH9eWlR6Q2REE+/a96vtzx THFNVWmjXtWJ1boTrpZmAsUXE6wgcijU4T0JxA8EtEr5m8bQSHukd636ICHGUmkOO8 wzRcfqcpeQ4Iav7VX7qB30pe1CIHbaKT2e4IMrq/uiJKf1PHyU3ccVULzfhmGnaYCa sw3X5J89ubM6w== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Ming Lei , Patrick Plenefisch , Mike Snitzer , Sasha Levin Subject: [PATCH 5.15 154/317] dm raid: fix false positive for requeue needed during reshape Date: Sun, 24 Mar 2024 19:32:14 -0400 Message-ID: <20240324233458.1352854-155-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Ming Lei [ Upstream commit b25b8f4b8ecef0f48c05f0c3572daeabefe16526 ] An empty flush doesn't have a payload, so it should never be looked at when considering to possibly requeue a bio for the case when a reshape is in progress. Fixes: 9dbd1aa3a81c ("dm raid: add reshaping support to the target") Reported-by: Patrick Plenefisch Signed-off-by: Ming Lei Signed-off-by: Mike Snitzer Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/md/dm-raid.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/md/dm-raid.c b/drivers/md/dm-raid.c index 8d489933d5792..04769fb20cf7f 100644 --- a/drivers/md/dm-raid.c +++ b/drivers/md/dm-raid.c @@ -3329,14 +3329,14 @@ static int raid_map(struct dm_target *ti, struct bi= o *bio) struct mddev *mddev =3D &rs->md; =20 /* - * If we're reshaping to add disk(s)), ti->len and + * If we're reshaping to add disk(s), ti->len and * mddev->array_sectors will differ during the process * (ti->len > mddev->array_sectors), so we have to requeue * bios with addresses > mddev->array_sectors here or * there will occur accesses past EOD of the component * data images thus erroring the raid set. */ - if (unlikely(bio_end_sector(bio) > mddev->array_sectors)) + if (unlikely(bio_has_data(bio) && bio_end_sector(bio) > mddev->array_sect= ors)) return DM_MAPIO_REQUEUE; =20 md_handle_request(mddev, bio); --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2E50A278991; Sun, 24 Mar 2024 23:37:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323452; cv=none; b=n8wTIdwkk0ppemPAnnwKktEXhwCYq6hScez9xfPVYd6plg9hLB1+hkUxGYXaVsiRr/YZh8mQtOWgIlDJcu4xZ0ydkH/KAt5CLWC0uyM0fN6HnOCCI/ghRc7GL9wunybSp60E2VjRJ2kG5kaBv+CQqg3RZ2HcBN4XKgAsICsvYm4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323452; c=relaxed/simple; bh=Bm86FRU++3NWujhe4JEoNuuQlX8qKcrsPfa2rG3J7UY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=X0XFf4shBzSeEh5agIX9cPgpf090QR1oGDUd5NcHZ/fVraietWXa7yhs3nOl1Y5j50LGmdl1hyYv5i2dMgBSn+Hy7GP9MFCyoCIpBGSzKrMOxBg2IIjvnbE2XPXAKOcbM3n8KSGtO+6TryqIKfBozus19YwPsgyY3lbM05d/94U= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=cikhaUrj; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="cikhaUrj" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6DB59C433C7; Sun, 24 Mar 2024 23:37:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323452; bh=Bm86FRU++3NWujhe4JEoNuuQlX8qKcrsPfa2rG3J7UY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cikhaUrjPZDH27z6RjVop8CDxFBIe+aIHloOfWt6S644/PYVdeu1gnGZXfROG2IFw 4uDoPe4jHchEnde9VbKLTVvuOgBR9LKGword1rEZzS9fc/XNh+jT+qtMEHn8ExTVm6 VzQ+iL5rskgqU3zXizhyF64t6x4uICa/dwkEW41vyktpdZ81eupvXEH1LT47bhp2Vo 61Vj6stpuLh8Om5YXmO8YEqiArK0Wldv8nknW7f8uFfhH/0srSK7JM96a8adZUvs3Y GpJdvryUtdp8AeeB/HSzGSpvVZCm6oaxBMs79Dg8+LyEwfdqcMvtR+0c9KX/FV1h2v HXUXwyK2Ezcvg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Mikulas Patocka , Mike Snitzer , Sasha Levin Subject: [PATCH 5.15 155/317] dm: call the resume method on internal suspend Date: Sun, 24 Mar 2024 19:32:15 -0400 Message-ID: <20240324233458.1352854-156-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Mikulas Patocka [ Upstream commit 65e8fbde64520001abf1c8d0e573561b4746ef38 ] There is this reported crash when experimenting with the lvm2 testsuite. The list corruption is caused by the fact that the postsuspend and resume methods were not paired correctly; there were two consecutive calls to the origin_postsuspend function. The second call attempts to remove the "hash_list" entry from a list, while it was already removed by the first call. Fix __dm_internal_resume so that it calls the preresume and resume methods of the table's targets. If a preresume method of some target fails, we are in a tricky situation. We can't return an error because dm_internal_resume isn't supposed to return errors. We can't return success, because then the "resume" and "postsuspend" methods would not be paired correctly. So, we set the DMF_SUSPENDED flag and we fake normal suspend - it may confuse userspace tools, but it won't cause a kernel crash. Reported-by: Linux Kernel Functional Testing ------------[ cut here ]------------ kernel BUG at lib/list_debug.c:56! invalid opcode: 0000 [#1] PREEMPT SMP CPU: 1 PID: 8343 Comm: dmsetup Not tainted 6.8.0-rc6 #4 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.14.0-2 04/01/= 2014 RIP: 0010:__list_del_entry_valid_or_report+0x77/0xc0 RSP: 0018:ffff8881b831bcc0 EFLAGS: 00010282 RAX: 000000000000004e RBX: ffff888143b6eb80 RCX: 0000000000000000 RDX: 0000000000000001 RSI: ffffffff819053d0 RDI: 00000000ffffffff RBP: ffff8881b83a3400 R08: 00000000fffeffff R09: 0000000000000058 R10: 0000000000000000 R11: ffffffff81a24080 R12: 0000000000000001 R13: ffff88814538e000 R14: ffff888143bc6dc0 R15: ffffffffa02e4bb0 FS: 00000000f7c0f780(0000) GS:ffff8893f0a40000(0000) knlGS:0000000000000000 CS: 0010 DS: 002b ES: 002b CR0: 0000000080050033 CR2: 0000000057fb5000 CR3: 0000000143474000 CR4: 00000000000006b0 Call Trace: ? die+0x2d/0x80 ? do_trap+0xeb/0xf0 ? __list_del_entry_valid_or_report+0x77/0xc0 ? do_error_trap+0x60/0x80 ? __list_del_entry_valid_or_report+0x77/0xc0 ? exc_invalid_op+0x49/0x60 ? __list_del_entry_valid_or_report+0x77/0xc0 ? asm_exc_invalid_op+0x16/0x20 ? table_deps+0x1b0/0x1b0 [dm_mod] ? __list_del_entry_valid_or_report+0x77/0xc0 origin_postsuspend+0x1a/0x50 [dm_snapshot] dm_table_postsuspend_targets+0x34/0x50 [dm_mod] dm_suspend+0xd8/0xf0 [dm_mod] dev_suspend+0x1f2/0x2f0 [dm_mod] ? table_deps+0x1b0/0x1b0 [dm_mod] ctl_ioctl+0x300/0x5f0 [dm_mod] dm_compat_ctl_ioctl+0x7/0x10 [dm_mod] __x64_compat_sys_ioctl+0x104/0x170 do_syscall_64+0x184/0x1b0 entry_SYSCALL_64_after_hwframe+0x46/0x4e RIP: 0033:0xf7e6aead ---[ end trace 0000000000000000 ]--- Fixes: ffcc39364160 ("dm: enhance internal suspend and resume interface") Signed-off-by: Mikulas Patocka Signed-off-by: Mike Snitzer Signed-off-by: Sasha Levin --- drivers/md/dm.c | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/drivers/md/dm.c b/drivers/md/dm.c index d6285a23dc3ed..fd9bb8b53219a 100644 --- a/drivers/md/dm.c +++ b/drivers/md/dm.c @@ -2641,6 +2641,9 @@ static void __dm_internal_suspend(struct mapped_devic= e *md, unsigned suspend_fla =20 static void __dm_internal_resume(struct mapped_device *md) { + int r; + struct dm_table *map; + BUG_ON(!md->internal_suspend_count); =20 if (--md->internal_suspend_count) @@ -2649,12 +2652,23 @@ static void __dm_internal_resume(struct mapped_devi= ce *md) if (dm_suspended_md(md)) goto done; /* resume from nested suspend */ =20 - /* - * NOTE: existing callers don't need to call dm_table_resume_targets - * (which may fail -- so best to avoid it for now by passing NULL map) - */ - (void) __dm_resume(md, NULL); - + map =3D rcu_dereference_protected(md->map, lockdep_is_held(&md->suspend_l= ock)); + r =3D __dm_resume(md, map); + if (r) { + /* + * If a preresume method of some target failed, we are in a + * tricky situation. We can't return an error to the caller. We + * can't fake success because then the "resume" and + * "postsuspend" methods would not be paired correctly, and it + * would break various targets, for example it would cause list + * corruption in the "origin" target. + * + * So, we fake normal suspend here, to make sure that the + * "resume" and "postsuspend" methods will be paired correctly. + */ + DMERR("Preresume method failed: %d", r); + set_bit(DMF_SUSPENDED, &md->flags); + } done: clear_bit(DMF_SUSPENDED_INTERNALLY, &md->flags); smp_mb__after_atomic(); --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5F14627899B; Sun, 24 Mar 2024 23:37:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323453; cv=none; b=ND+n9rrhnz6N0HM0bOF986NJKMlbI76f2X3xw/pKxgTpD3gQByZgJzZ4sjcqRLUzuTy3+Qv518foejIRhk5VgTVPXHmmE6FfKgFrFHItBPBlsuqip5i8+9+t0v6NCJThbTGkFUhQS+k5v7AeiLZh5SfPDXSInRQReZOtSVK4zT4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323453; c=relaxed/simple; bh=V+QTxs8ZNX2e9Unfo7ANnUqWpeXj6vfwQlIB3jSMCBw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=uDJqPDaz6L2qZrETR/cPcTtSycszxSKeL8odm4BVRk5KaaawkxH+ia84TX5skKGJnm/+BFKr1c3nQEe46RBcOQytlWyIfuLXR/UjgunSE/XYu102W96C9u235LmYfF2Pn2YGyYDcthPZ0qkYsxLnWM5xlojD+pZywut5Zv0aw7U= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=QSDHZ4+H; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="QSDHZ4+H" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 52E50C43394; Sun, 24 Mar 2024 23:37:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323452; bh=V+QTxs8ZNX2e9Unfo7ANnUqWpeXj6vfwQlIB3jSMCBw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=QSDHZ4+Hcjn05x7qKjJC0Fl4mTZZ2KdXYwgtWZgVQ0BbpoG7EHSFyfN8OduIVWAw/ WjWKPBux3T8xfe8e5Em8w7jKJ3WKv2sZVsCpBdGBneQd/OZE82tbUMVJ/opTv8/SdH riDWS39cWYxEGP1Eh8OHUaumYQVvavC93r8jn4ED2dWipP6C4zPErpa210avZVFePF ZB84PjW8TK3o1/NNR/aEb9M9CbqmyWDEEimVPZVgTNtkALCr03HNojITqrfAV0UgFx KC7QJy7xja12cxrU3pEkVJXbytPfc2EXJnmWOM862PyN1pGn1gNeO2bbd8SBbWPphS kqPNxGOtqRVow== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Chen Ni , Thierry Reding , Sasha Levin Subject: [PATCH 5.15 156/317] drm/tegra: dsi: Add missing check for of_find_device_by_node Date: Sun, 24 Mar 2024 19:32:16 -0400 Message-ID: <20240324233458.1352854-157-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Chen Ni [ Upstream commit afe6fcb9775882230cd29b529203eabd5d2a638d ] Add check for the return value of of_find_device_by_node() and return the error if it fails in order to avoid NULL pointer dereference. Fixes: e94236cde4d5 ("drm/tegra: dsi: Add ganged mode support") Signed-off-by: Chen Ni Signed-off-by: Thierry Reding Link: https://patchwork.freedesktop.org/patch/msgid/20231024080738.825553-1= -nichen@iscas.ac.cn Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/gpu/drm/tegra/dsi.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/tegra/dsi.c b/drivers/gpu/drm/tegra/dsi.c index de1333dc0d867..0adce882f157b 100644 --- a/drivers/gpu/drm/tegra/dsi.c +++ b/drivers/gpu/drm/tegra/dsi.c @@ -1534,9 +1534,11 @@ static int tegra_dsi_ganged_probe(struct tegra_dsi *= dsi) np =3D of_parse_phandle(dsi->dev->of_node, "nvidia,ganged-mode", 0); if (np) { struct platform_device *gangster =3D of_find_device_by_node(np); + of_node_put(np); + if (!gangster) + return -EPROBE_DEFER; =20 dsi->slave =3D platform_get_drvdata(gangster); - of_node_put(np); =20 if (!dsi->slave) { put_device(&gangster->dev); --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D0D5B2789B3; Sun, 24 Mar 2024 23:37:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323454; cv=none; b=B5zjVuJZ0h7VeaWddbQb8KNTEfwIP6sd6XcAEDXoqNIjpL2GwVZ/WzmGCC04WF3F9XmzIut2g9UHuQOmrTxDU82s1tT+oLIH78ifAWnowYlAjN2yyiuhUHWi0ezGIfMigr2gKuVD3Qa83lPCTvDrtRNvzoLxSjt2WoJAXdycRs8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323454; c=relaxed/simple; bh=CuNdbve/aDMAJHCA8RKTF4o+ELZsUr2WdCEhBLl+Gc8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=FkcegUPu44K55I0prHkc9X+jjd74vQOOt3m8zrLahDkzCCvXPcoIgH5JBQ0B4ITMhJp7mA+s6bZ8Rfs7U4nk5jze0Q366VeV4g0n6UoWY90clOdLHI58JSC3A5LHnRrdOQ0yQzC/haIk60B8NQDADpLigTB2f6tcS1ACWrqFL+o= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=BUm94Oix; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="BUm94Oix" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3432AC433C7; Sun, 24 Mar 2024 23:37:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323453; bh=CuNdbve/aDMAJHCA8RKTF4o+ELZsUr2WdCEhBLl+Gc8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=BUm94Oixin9qBVfZGabrYHOdB4xealLM0KhfCBa+ezb62qITFXtAvC3M3zUEf8BZt msrxzeIvZNmmWcB3hRtPcONmbCl9NPW6EQT0j4Ov5/Irr/k0GSAfcuECOEzTXzRjCT zYERq0HtO/gfWs/T0rGTUSI7/TiZOsNkwRASbW7t0ybYpT0sW4pGvKrOdFWaHTnMvC TIAn9YooMco9hjetq/e6K1mTcXPtBPegRVyKbYfNlDWWxcj1bZMKJsbx4SP2eiqIYt /5OViBOq1AnGp+QMr+Dc3dNbfsxNnw4mb8Sse/6g1IRe3tAsk6NlJeKfuNjnk3I9Oe ZA76pvTtaspIg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Thierry Reding , Sasha Levin Subject: [PATCH 5.15 157/317] drm/tegra: dpaux: Populate AUX bus Date: Sun, 24 Mar 2024 19:32:17 -0400 Message-ID: <20240324233458.1352854-158-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Thierry Reding [ Upstream commit 8913e1aea4b32a866343b14e565c62cec54f3f78 ] The DPAUX hardware block exposes an DP AUX interface that provides access to an AUX bus and the devices on that bus. Use the DP AUX bus infrastructure that was recently introduced to probe devices on this bus from DT. Signed-off-by: Thierry Reding Stable-dep-of: 0800880f4eb7 ("drm/tegra: dpaux: Fix PM disable depth imbala= nce in tegra_dpaux_probe") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/gpu/drm/tegra/Kconfig | 1 + drivers/gpu/drm/tegra/dpaux.c | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/drivers/gpu/drm/tegra/Kconfig b/drivers/gpu/drm/tegra/Kconfig index 1650a448eabd6..b09a500934f73 100644 --- a/drivers/gpu/drm/tegra/Kconfig +++ b/drivers/gpu/drm/tegra/Kconfig @@ -5,6 +5,7 @@ config DRM_TEGRA depends on COMMON_CLK depends on DRM depends on OF + select DRM_DP_AUX_BUS select DRM_KMS_HELPER select DRM_MIPI_DSI select DRM_PANEL diff --git a/drivers/gpu/drm/tegra/dpaux.c b/drivers/gpu/drm/tegra/dpaux.c index c96c07c6458c3..12a92d09ac909 100644 --- a/drivers/gpu/drm/tegra/dpaux.c +++ b/drivers/gpu/drm/tegra/dpaux.c @@ -19,6 +19,7 @@ #include =20 #include +#include #include =20 #include "dp.h" @@ -570,6 +571,12 @@ static int tegra_dpaux_probe(struct platform_device *p= dev) list_add_tail(&dpaux->list, &dpaux_list); mutex_unlock(&dpaux_lock); =20 + err =3D devm_of_dp_aux_populate_ep_devices(&dpaux->aux); + if (err < 0) { + dev_err(dpaux->dev, "failed to populate AUX bus: %d\n", err); + return err; + } + return 0; } =20 --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B69872789AC; Sun, 24 Mar 2024 23:37:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323455; cv=none; b=AD5/oex80QsAvOIMgtI9rm4RGJXY8mY4s40p11UO/Bk//unYgNMk08QScTlQWMTVTbmSZORMWPtYNHvHbE855TmvgHlPQHQ5SM0nq33ULG7f9A3alcg/hNx99b9r3dvrgi5+ySEmHC9yXCfq4H8TgNRALqg2tECmp9bVDN6YJcM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323455; c=relaxed/simple; bh=ipIZkzQCi6dIh+wctaoINwH7cDx3OX72mWoTklLuTJQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=UYTbsJjLT0sO4/Nnsin/l0RP39Lw5EbMe2C5k1G8c4N+UkPrhP+WjmahznjHsXoGSBgBTtgCJ+T7bJQnY/sl4xrBwDciOFga6widGJMklMSvQvS+hauV7lr04eB6H8Ax/IRUvZL88Nl0zAlL4lovj8iMONy6FtzqL/R0m8yJ2gk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=EFQ/jdkc; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="EFQ/jdkc" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0117EC4166A; Sun, 24 Mar 2024 23:37:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323454; bh=ipIZkzQCi6dIh+wctaoINwH7cDx3OX72mWoTklLuTJQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=EFQ/jdkckKWb1F4nP8ILLbo0kPZY2BpIBv5hgFgS2Mgyr8YYRnLpBu0PBY9POMI33 bU7531NCd9LqnmHUq35Zav4LY1p3Rrtg4MvgWKOtIPBarSHTRxBpsaNNTlNAygr9za UaA2J4or2ivZW61z150LAmxdjpuWtTHnnAwgYkRR4eYRUCr56QYx5upukRyKdGyeJS jUsgEEEthYTlALmb/iT0+vVDpb5Txadm6Gvr4UBG9e42ceFsU4YwCpeGoAsVoRh3O7 oEbnb1HPNJuhvKzysX4Sj9efIuAi+avY7+nVmkXiOywGkaE/N0KPgIamRuMiA4dLOq kTrGQAMJRIlGQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Zhang Shurong , Thierry Reding , Sasha Levin Subject: [PATCH 5.15 158/317] drm/tegra: dpaux: Fix PM disable depth imbalance in tegra_dpaux_probe Date: Sun, 24 Mar 2024 19:32:18 -0400 Message-ID: <20240324233458.1352854-159-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Zhang Shurong [ Upstream commit 0800880f4eb789b7d299db40f2e86e056bd33a4e ] The pm_runtime_enable function increases the power disable depth, which means that we must perform a matching decrement on the error handling path to maintain balance within the given context. Additionally, we need to address the same issue for pm_runtime_get_sync. We fix this by invoking pm_runtime_disable and pm_runtime_put_sync when error returns. Fixes: 82b81b3ec1a7 ("drm/tegra: dpaux: Implement runtime PM") Signed-off-by: Zhang Shurong Signed-off-by: Thierry Reding Link: https://patchwork.freedesktop.org/patch/msgid/tencent_B13DB7F6C0023C4= 6157250A524966F326A09@qq.com Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/gpu/drm/tegra/dpaux.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/tegra/dpaux.c b/drivers/gpu/drm/tegra/dpaux.c index 12a92d09ac909..a99f82dc7e6f7 100644 --- a/drivers/gpu/drm/tegra/dpaux.c +++ b/drivers/gpu/drm/tegra/dpaux.c @@ -525,7 +525,7 @@ static int tegra_dpaux_probe(struct platform_device *pd= ev) if (err < 0) { dev_err(dpaux->dev, "failed to request IRQ#%u: %d\n", dpaux->irq, err); - return err; + goto err_pm_disable; } =20 disable_irq(dpaux->irq); @@ -545,7 +545,7 @@ static int tegra_dpaux_probe(struct platform_device *pd= ev) */ err =3D tegra_dpaux_pad_config(dpaux, DPAUX_PADCTL_FUNC_I2C); if (err < 0) - return err; + goto err_pm_disable; =20 #ifdef CONFIG_GENERIC_PINCONF dpaux->desc.name =3D dev_name(&pdev->dev); @@ -558,7 +558,8 @@ static int tegra_dpaux_probe(struct platform_device *pd= ev) dpaux->pinctrl =3D devm_pinctrl_register(&pdev->dev, &dpaux->desc, dpaux); if (IS_ERR(dpaux->pinctrl)) { dev_err(&pdev->dev, "failed to register pincontrol\n"); - return PTR_ERR(dpaux->pinctrl); + err =3D PTR_ERR(dpaux->pinctrl); + goto err_pm_disable; } #endif /* enable and clear all interrupts */ @@ -574,10 +575,15 @@ static int tegra_dpaux_probe(struct platform_device *= pdev) err =3D devm_of_dp_aux_populate_ep_devices(&dpaux->aux); if (err < 0) { dev_err(dpaux->dev, "failed to populate AUX bus: %d\n", err); - return err; + goto err_pm_disable; } =20 return 0; + +err_pm_disable: + pm_runtime_put_sync(&pdev->dev); + pm_runtime_disable(&pdev->dev); + return err; } =20 static int tegra_dpaux_remove(struct platform_device *pdev) --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9DB0A2789BD; Sun, 24 Mar 2024 23:37:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323456; cv=none; b=BfJpw1U80ddRTkg4dQwLa3OregxC5HOmz31v3nDHxK6aFp5pWkdbdbkK2uUK0ifz1eH3XN1l1eR9W0DkPk4D+cQn7ZJL/ELetQAJv9ibx2g2ymJw+dSzqh9ZGN05LGZMByeOByEOqzpC5esmT24CfSW8hWNX9wovYnhycQTnumo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323456; c=relaxed/simple; bh=I5IZLXRovJJX137SJGnoEbJCPVfKKUehgGid1mWVd0k=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Ix17dkZjxcISLEVXma7OCjWhyb3D9h6L3ZCLOsxsU2Yufz4llV2B87UB03NCQLFPtrF1uJ7JC9/Noc5iXjkXBI+3MS8H5aKQR8XK4J0lDWFk7F7o/a3JuxULnpuSwjkXgr03hP1m8H5pe9CooQfcSle+j5KHpPOQUZaQtWmFMTw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=jtapN0J5; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="jtapN0J5" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D8F10C43390; Sun, 24 Mar 2024 23:37:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323455; bh=I5IZLXRovJJX137SJGnoEbJCPVfKKUehgGid1mWVd0k=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jtapN0J5jWghDr0SEnLlYX53mYDQM/SJv+Xpt1TW70lu1hLU/4qW1eFm295V7FdOP i/yB2AlzjUqMvzd+DnXrfIXF7Sw/qfMsozwosVX2rWSGSjtzhZsS1sEh59gap8hV9y s2hZNuBm8mFSX/lms53BxKF5oH9YzDqliLunfEJADxovxoWolASzgiUdz06KywR1hX IZCS4fOZ3dU5jUHF7zwnVoQlEp/V3tP+OXjunxTVByE1xuiXFQwG77bzpSSrjl7OA3 Jm+Rmbkqxcxb6b3DDbEqmLZafB/HX50hWpDoMpEFZSyd6iVkkCQsSDGACR8TuHJl1a A5WV5cdNDnlbQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Cai Huoqing , Thierry Reding , Sasha Levin Subject: [PATCH 5.15 159/317] drm/tegra: dsi: Make use of the helper function dev_err_probe() Date: Sun, 24 Mar 2024 19:32:19 -0400 Message-ID: <20240324233458.1352854-160-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Cai Huoqing [ Upstream commit fc75e4fcbd1e4252a0481ebb23cd4516c127a8e2 ] When possible use dev_err_probe help to properly deal with the PROBE_DEFER error, the benefit is that DEFER issue will be logged in the devices_deferred debugfs file. And using dev_err_probe() can reduce code size, the error value gets printed. Signed-off-by: Cai Huoqing Signed-off-by: Thierry Reding Stable-dep-of: 830c1ded3563 ("drm/tegra: dsi: Fix some error handling paths= in tegra_dsi_probe()") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/gpu/drm/tegra/dsi.c | 28 ++++++++++++---------------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/drivers/gpu/drm/tegra/dsi.c b/drivers/gpu/drm/tegra/dsi.c index 0adce882f157b..6cbba2adb6e5a 100644 --- a/drivers/gpu/drm/tegra/dsi.c +++ b/drivers/gpu/drm/tegra/dsi.c @@ -1591,28 +1591,24 @@ static int tegra_dsi_probe(struct platform_device *= pdev) } =20 dsi->clk =3D devm_clk_get(&pdev->dev, NULL); - if (IS_ERR(dsi->clk)) { - dev_err(&pdev->dev, "cannot get DSI clock\n"); - return PTR_ERR(dsi->clk); - } + if (IS_ERR(dsi->clk)) + return dev_err_probe(&pdev->dev, PTR_ERR(dsi->clk), + "cannot get DSI clock\n"); =20 dsi->clk_lp =3D devm_clk_get(&pdev->dev, "lp"); - if (IS_ERR(dsi->clk_lp)) { - dev_err(&pdev->dev, "cannot get low-power clock\n"); - return PTR_ERR(dsi->clk_lp); - } + if (IS_ERR(dsi->clk_lp)) + return dev_err_probe(&pdev->dev, PTR_ERR(dsi->clk_lp), + "cannot get low-power clock\n"); =20 dsi->clk_parent =3D devm_clk_get(&pdev->dev, "parent"); - if (IS_ERR(dsi->clk_parent)) { - dev_err(&pdev->dev, "cannot get parent clock\n"); - return PTR_ERR(dsi->clk_parent); - } + if (IS_ERR(dsi->clk_parent)) + return dev_err_probe(&pdev->dev, PTR_ERR(dsi->clk_parent), + "cannot get parent clock\n"); =20 dsi->vdd =3D devm_regulator_get(&pdev->dev, "avdd-dsi-csi"); - if (IS_ERR(dsi->vdd)) { - dev_err(&pdev->dev, "cannot get VDD supply\n"); - return PTR_ERR(dsi->vdd); - } + if (IS_ERR(dsi->vdd)) + return dev_err_probe(&pdev->dev, PTR_ERR(dsi->vdd), + "cannot get VDD supply\n"); =20 err =3D tegra_dsi_setup_clocks(dsi); if (err < 0) { --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 819CE2789B6; Sun, 24 Mar 2024 23:37:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323457; cv=none; b=JuviYylA5MS1tcc53jSMQpE/Z3S2d/HYOCKTUOG85oz2X6DsTgRp1CqlwPzI5g2NBVJERnJNbdBxbcUAXiPbd5PQmlKfibCysCs6Qef5xq9Ii+KP7s7MDRBl/HzRUImMOyKCnk54kfV0mIZj25Tqnn6Zxr7v3QICjRSmml6tMqo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323457; c=relaxed/simple; bh=IwqCgXVVD8OsANwC37VO12HTPFTbTHFU2IzrVP1h6pE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=UQlaSXOQTHkEae8Dd4dZ8C4tIkP2+d0C8zFZgUFDfyNPKY4Y5fl+DH8Gled9JojAKjRdx68ppVnu6Ph2Bu/Z1NHlByMa6YpUVSlZVjIdwqmtH4P+QRw5R/IKlSpureh1k70ovWESZTKUOobpGRRjqwtwkjj/69wtWja2S2DR0vw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=YNlWBLxO; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="YNlWBLxO" Received: by smtp.kernel.org (Postfix) with ESMTPSA id C249DC43394; Sun, 24 Mar 2024 23:37:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323456; bh=IwqCgXVVD8OsANwC37VO12HTPFTbTHFU2IzrVP1h6pE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=YNlWBLxOrKeFV8Mxkyo2QWt+5SeEdOyMO1X+mFy333bKhngFcHErlpQPIs9eAX3S0 IzVEHaDJ4PGD0KEh4g63z+ATfe7IM8S5IfIPALxu6PH6T9oKZ/M6q79bn6wtf5+1b8 gO7oshBgZiZ+kI1O1aVndgPwKS+IF6uVGG8ZcBKaZzqCrzXxmdhFILMgDhsgk2zXXF SwUpt/xEA7TW8g/DPjgTfJ10dv/9PtL032WLSXbZLzHnj7H3DuP+r87MYJGRfoNwpy LOofV0R3US41x82C2B5lWG1ofFq/hy0jNbdLx5Ay2z17QYZKO7h1HhM6EjQJeGZyE3 qbOr6dqtj0EBg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Christophe JAILLET , Thierry Reding , Sasha Levin Subject: [PATCH 5.15 160/317] drm/tegra: dsi: Fix some error handling paths in tegra_dsi_probe() Date: Sun, 24 Mar 2024 19:32:20 -0400 Message-ID: <20240324233458.1352854-161-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Christophe JAILLET [ Upstream commit 830c1ded356369cd1303e8bb87ce3fea6e744de8 ] If an error occurs after calling tegra_output_probe(), tegra_output_remove() should be called as already done in the remove function. Fixes: dec727399a4b ("drm/tegra: Add DSI support") Signed-off-by: Christophe JAILLET Signed-off-by: Thierry Reding Link: https://patchwork.freedesktop.org/patch/msgid/16820073278d031f6c474a0= 8d5f22a255158585e.1693667005.git.christophe.jaillet@wanadoo.fr Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/gpu/drm/tegra/dsi.c | 54 ++++++++++++++++++++++++------------- 1 file changed, 35 insertions(+), 19 deletions(-) diff --git a/drivers/gpu/drm/tegra/dsi.c b/drivers/gpu/drm/tegra/dsi.c index 6cbba2adb6e5a..815e32e05f600 100644 --- a/drivers/gpu/drm/tegra/dsi.c +++ b/drivers/gpu/drm/tegra/dsi.c @@ -1586,44 +1586,58 @@ static int tegra_dsi_probe(struct platform_device *= pdev) =20 if (!pdev->dev.pm_domain) { dsi->rst =3D devm_reset_control_get(&pdev->dev, "dsi"); - if (IS_ERR(dsi->rst)) - return PTR_ERR(dsi->rst); + if (IS_ERR(dsi->rst)) { + err =3D PTR_ERR(dsi->rst); + goto remove; + } } =20 dsi->clk =3D devm_clk_get(&pdev->dev, NULL); - if (IS_ERR(dsi->clk)) - return dev_err_probe(&pdev->dev, PTR_ERR(dsi->clk), - "cannot get DSI clock\n"); + if (IS_ERR(dsi->clk)) { + err =3D dev_err_probe(&pdev->dev, PTR_ERR(dsi->clk), + "cannot get DSI clock\n"); + goto remove; + } =20 dsi->clk_lp =3D devm_clk_get(&pdev->dev, "lp"); - if (IS_ERR(dsi->clk_lp)) - return dev_err_probe(&pdev->dev, PTR_ERR(dsi->clk_lp), - "cannot get low-power clock\n"); + if (IS_ERR(dsi->clk_lp)) { + err =3D dev_err_probe(&pdev->dev, PTR_ERR(dsi->clk_lp), + "cannot get low-power clock\n"); + goto remove; + } =20 dsi->clk_parent =3D devm_clk_get(&pdev->dev, "parent"); - if (IS_ERR(dsi->clk_parent)) - return dev_err_probe(&pdev->dev, PTR_ERR(dsi->clk_parent), - "cannot get parent clock\n"); + if (IS_ERR(dsi->clk_parent)) { + err =3D dev_err_probe(&pdev->dev, PTR_ERR(dsi->clk_parent), + "cannot get parent clock\n"); + goto remove; + } =20 dsi->vdd =3D devm_regulator_get(&pdev->dev, "avdd-dsi-csi"); - if (IS_ERR(dsi->vdd)) - return dev_err_probe(&pdev->dev, PTR_ERR(dsi->vdd), - "cannot get VDD supply\n"); + if (IS_ERR(dsi->vdd)) { + err =3D dev_err_probe(&pdev->dev, PTR_ERR(dsi->vdd), + "cannot get VDD supply\n"); + goto remove; + } =20 err =3D tegra_dsi_setup_clocks(dsi); if (err < 0) { dev_err(&pdev->dev, "cannot setup clocks\n"); - return err; + goto remove; } =20 regs =3D platform_get_resource(pdev, IORESOURCE_MEM, 0); dsi->regs =3D devm_ioremap_resource(&pdev->dev, regs); - if (IS_ERR(dsi->regs)) - return PTR_ERR(dsi->regs); + if (IS_ERR(dsi->regs)) { + err =3D PTR_ERR(dsi->regs); + goto remove; + } =20 dsi->mipi =3D tegra_mipi_request(&pdev->dev, pdev->dev.of_node); - if (IS_ERR(dsi->mipi)) - return PTR_ERR(dsi->mipi); + if (IS_ERR(dsi->mipi)) { + err =3D PTR_ERR(dsi->mipi); + goto remove; + } =20 dsi->host.ops =3D &tegra_dsi_host_ops; dsi->host.dev =3D &pdev->dev; @@ -1654,6 +1668,8 @@ static int tegra_dsi_probe(struct platform_device *pd= ev) mipi_dsi_host_unregister(&dsi->host); mipi_free: tegra_mipi_free(dsi->mipi); +remove: + tegra_output_remove(&dsi->output); return err; } =20 --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 65C7C1769F5; Sun, 24 Mar 2024 23:37:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323458; cv=none; b=GMyKmbSJmaOoxczU9pJHvMSjjf96m+KxQM4xSsBLNu1gdrM+26XvnWL/539xMQ+KOaxnxiSto05sbBkfv49ywQGmOzq4yX++PZ8xmmWZt85kT3VJTeo51o62YqYO3J1faFKEcHe5BwbJEsHrtfxL422nSbbMOVgwp64XdDgKOwA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323458; c=relaxed/simple; bh=+ZUl4XWyX2TC41ftSNhfrfsALGaw+PtYVx7wA53zQtM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ufXX54Z+grb9Lh0S9MnAsQqZ+tG78hW7Un+a4BlZZPIp86xIY+MkL4jz35Xrv3uwVlUkK+8mSn/GEQDNIJQprv6IPXy5pWtoL3Bg0Yd7wlYHSbRYMLEcfmTZyqaycRy2GC49Ty9H15uFb3GSKK6OVEi/iu4pDd9ph2sKnXEbMws= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=rsQjhDj5; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="rsQjhDj5" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A6A04C43399; Sun, 24 Mar 2024 23:37:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323457; bh=+ZUl4XWyX2TC41ftSNhfrfsALGaw+PtYVx7wA53zQtM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=rsQjhDj51xWPsuTzbKmxTtkheeRKwsYCfxPG+HDh8Do4/vdgvepFWNPwYYZnamxEr taaDugUCIecLwXIVJab+y8tTktKAcn/YqA8RxyNYXAACwsL1ZyI3f8BbKmVAzDPP1P zHk2R6W3vkO1ikXwi/J71qrqOUFrqJ12EHQob8CkWcFDkVKraUfZHCWuilLkg8gv1S Lg4FPtoUmtqd5VMSI3FkN4Yc3LC/PK+lq3YzqG4KscKHD3Ajtpht5IrnWaaRlFJdcc PevjAf2pzwdzraGskKsiIlbsuK23XrVDpIYgQAtUGtHI9fuv3zIB1shZIGlMqesTzg d3HkvXgwZ10BA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Christophe JAILLET , Thierry Reding , Sasha Levin Subject: [PATCH 5.15 161/317] drm/tegra: dsi: Fix missing pm_runtime_disable() in the error handling path of tegra_dsi_probe() Date: Sun, 24 Mar 2024 19:32:21 -0400 Message-ID: <20240324233458.1352854-162-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Christophe JAILLET [ Upstream commit 5286a9fc280c45b6b307ee1b07f7a997e042252c ] If an error occurs after calling pm_runtime_enable(), pm_runtime_disable() should be called as already done in the remove function. Fixes: ef8187d75265 ("drm/tegra: dsi: Implement runtime PM") Signed-off-by: Christophe JAILLET Signed-off-by: Thierry Reding Link: https://patchwork.freedesktop.org/patch/msgid/ee4a15c9cd4b574a55cd67c= 30d2411239ba2cee9.1693667005.git.christophe.jaillet@wanadoo.fr Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/gpu/drm/tegra/dsi.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/gpu/drm/tegra/dsi.c b/drivers/gpu/drm/tegra/dsi.c index 815e32e05f600..7bb26655cb3cc 100644 --- a/drivers/gpu/drm/tegra/dsi.c +++ b/drivers/gpu/drm/tegra/dsi.c @@ -1665,6 +1665,7 @@ static int tegra_dsi_probe(struct platform_device *pd= ev) return 0; =20 unregister: + pm_runtime_disable(&pdev->dev); mipi_dsi_host_unregister(&dsi->host); mipi_free: tegra_mipi_free(dsi->mipi); --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6242A1769F7; Sun, 24 Mar 2024 23:37:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323458; cv=none; b=F+iXprvq19tHWMZCxwW6lmylt08Ps96C1QiVeCkWqX+xcqcwNZrgObO2VoiegCKqp7IJ9/ksASNqN1/gbjzTJjNg2mItfsOcCg9HIT1Y1MdWW5O7nrEnMKppZ1z+N2FujOt3BmPWaEod1NZjawsEmoiMg6zFP53XBOmadum59KY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323458; c=relaxed/simple; bh=ZGSwcXrrwBI8oVF6JgQbL1JI79+KhMLNKjT5Huj02KQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=pFRwzTcMwJ3hHj/wMuc49i4s17DRSEx6LbVHwCaeuWrTp51lYcDKVcbN31zlBFRgR0AwYhmbsG9sNB3D2mKX5vFPIa1inmFf+sHUVsVavee052OO0DMpK/BOU8PKcfeqvsJcK+DfKsJc/MbpShAjMq0j64ryGwxRp+eLEJBnjCs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=CZtcLxbo; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="CZtcLxbo" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8DF10C43390; Sun, 24 Mar 2024 23:37:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323458; bh=ZGSwcXrrwBI8oVF6JgQbL1JI79+KhMLNKjT5Huj02KQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=CZtcLxbo+96fZIGgZgul3TabS6Cv4cgOWUPQJBNVlFTevbN1JOjzQBq6T3EJaz5cZ AZewsMBggF6pSqN06Ld6lDCEWDy0dTsqMG0hMm9nX06epCq7yl0ZP5HF8wljVo3QYF MfbJaVnTurE4Q3+g4lCivOKanK43bw5j+31xMIoJY7nq+QEZcr4kj3nXscpWiBCoFj /gEp2s/TyVaMHrPq3iQ78TtGsB5BosJsOwQ7Uz2koP4eaQo/FrXRoobrweTWiGnvVN Q5LuwdKfZJL1iMA/bOM/TAFYZkm2RUV+j4wCQbptEjSrxxQ72wl55WjoN0nHXTZFby cUgMHbrDivy+Q== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Dmitry Osipenko , Maxim Schwalm , Thierry Reding , Sasha Levin Subject: [PATCH 5.15 162/317] drm/tegra: dc: rgb: Allow changing PLLD rate on Tegra30+ Date: Sun, 24 Mar 2024 19:32:22 -0400 Message-ID: <20240324233458.1352854-163-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Dmitry Osipenko [ Upstream commit 0c921b6d4ba06bc899fd84d3ce1c1afd3d00bc1c ] Asus Transformer TF700T is a Tegra30 tablet device which uses RGB->DSI bridge that requires a precise clock rate in order to operate properly. Tegra30 has a dedicated PLL for each display controller, hence the PLL rate can be changed freely. Allow PLL rate changes on Tegra30+ for RGB output. Configure the clock rate before display controller is enabled since DC itself may be running off this PLL and it's not okay to change the rate of the active PLL that doesn't support dynamic frequency switching since hardware will hang. Tested-by: Maxim Schwalm #TF700T Signed-off-by: Dmitry Osipenko Signed-off-by: Thierry Reding Stable-dep-of: bc456b5d93db ("drm/tegra: rgb: Fix some error handling paths= in tegra_dc_rgb_probe()") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/gpu/drm/tegra/dc.c | 27 ++++++++++++-------- drivers/gpu/drm/tegra/dc.h | 1 + drivers/gpu/drm/tegra/rgb.c | 49 +++++++++++++++++++++++++++++++++++-- 3 files changed, 65 insertions(+), 12 deletions(-) diff --git a/drivers/gpu/drm/tegra/dc.c b/drivers/gpu/drm/tegra/dc.c index abb409b08bc64..f44a64e896587 100644 --- a/drivers/gpu/drm/tegra/dc.c +++ b/drivers/gpu/drm/tegra/dc.c @@ -1762,10 +1762,9 @@ int tegra_dc_state_setup_clock(struct tegra_dc *dc, return 0; } =20 -static void tegra_dc_commit_state(struct tegra_dc *dc, - struct tegra_dc_state *state) +static void tegra_dc_set_clock_rate(struct tegra_dc *dc, + struct tegra_dc_state *state) { - u32 value; int err; =20 err =3D clk_set_parent(dc->clk, state->clk); @@ -1796,11 +1795,6 @@ static void tegra_dc_commit_state(struct tegra_dc *d= c, DRM_DEBUG_KMS("rate: %lu, div: %u\n", clk_get_rate(dc->clk), state->div); DRM_DEBUG_KMS("pclk: %lu\n", state->pclk); - - if (!dc->soc->has_nvdisplay) { - value =3D SHIFT_CLK_DIVIDER(state->div) | PIXEL_CLK_DIVIDER_PCD1; - tegra_dc_writel(dc, value, DC_DISP_DISP_CLOCK_CONTROL); - } } =20 static void tegra_dc_stop(struct tegra_dc *dc) @@ -2002,6 +1996,9 @@ static void tegra_crtc_atomic_enable(struct drm_crtc = *crtc, u32 value; int err; =20 + /* apply PLL changes */ + tegra_dc_set_clock_rate(dc, crtc_state); + err =3D host1x_client_resume(&dc->client); if (err < 0) { dev_err(dc->dev, "failed to resume: %d\n", err); @@ -2076,8 +2073,11 @@ static void tegra_crtc_atomic_enable(struct drm_crtc= *crtc, else tegra_dc_writel(dc, 0, DC_DISP_BORDER_COLOR); =20 - /* apply PLL and pixel clock changes */ - tegra_dc_commit_state(dc, crtc_state); + /* apply pixel clock changes */ + if (!dc->soc->has_nvdisplay) { + value =3D SHIFT_CLK_DIVIDER(crtc_state->div) | PIXEL_CLK_DIVIDER_PCD1; + tegra_dc_writel(dc, value, DC_DISP_DISP_CLOCK_CONTROL); + } =20 /* program display mode */ tegra_dc_set_timings(dc, mode); @@ -2685,6 +2685,7 @@ static const struct tegra_dc_soc_info tegra20_dc_soc_= info =3D { .has_win_b_vfilter_mem_client =3D true, .has_win_c_without_vert_filter =3D true, .plane_tiled_memory_bandwidth_x2 =3D false, + .has_pll_d2_out0 =3D false, }; =20 static const struct tegra_dc_soc_info tegra30_dc_soc_info =3D { @@ -2707,6 +2708,7 @@ static const struct tegra_dc_soc_info tegra30_dc_soc_= info =3D { .has_win_b_vfilter_mem_client =3D true, .has_win_c_without_vert_filter =3D false, .plane_tiled_memory_bandwidth_x2 =3D true, + .has_pll_d2_out0 =3D true, }; =20 static const struct tegra_dc_soc_info tegra114_dc_soc_info =3D { @@ -2729,6 +2731,7 @@ static const struct tegra_dc_soc_info tegra114_dc_soc= _info =3D { .has_win_b_vfilter_mem_client =3D false, .has_win_c_without_vert_filter =3D false, .plane_tiled_memory_bandwidth_x2 =3D true, + .has_pll_d2_out0 =3D true, }; =20 static const struct tegra_dc_soc_info tegra124_dc_soc_info =3D { @@ -2751,6 +2754,7 @@ static const struct tegra_dc_soc_info tegra124_dc_soc= _info =3D { .has_win_b_vfilter_mem_client =3D false, .has_win_c_without_vert_filter =3D false, .plane_tiled_memory_bandwidth_x2 =3D false, + .has_pll_d2_out0 =3D true, }; =20 static const struct tegra_dc_soc_info tegra210_dc_soc_info =3D { @@ -2773,6 +2777,7 @@ static const struct tegra_dc_soc_info tegra210_dc_soc= _info =3D { .has_win_b_vfilter_mem_client =3D false, .has_win_c_without_vert_filter =3D false, .plane_tiled_memory_bandwidth_x2 =3D false, + .has_pll_d2_out0 =3D true, }; =20 static const struct tegra_windowgroup_soc tegra186_dc_wgrps[] =3D { @@ -2823,6 +2828,7 @@ static const struct tegra_dc_soc_info tegra186_dc_soc= _info =3D { .wgrps =3D tegra186_dc_wgrps, .num_wgrps =3D ARRAY_SIZE(tegra186_dc_wgrps), .plane_tiled_memory_bandwidth_x2 =3D false, + .has_pll_d2_out0 =3D false, }; =20 static const struct tegra_windowgroup_soc tegra194_dc_wgrps[] =3D { @@ -2873,6 +2879,7 @@ static const struct tegra_dc_soc_info tegra194_dc_soc= _info =3D { .wgrps =3D tegra194_dc_wgrps, .num_wgrps =3D ARRAY_SIZE(tegra194_dc_wgrps), .plane_tiled_memory_bandwidth_x2 =3D false, + .has_pll_d2_out0 =3D false, }; =20 static const struct of_device_id tegra_dc_of_match[] =3D { diff --git a/drivers/gpu/drm/tegra/dc.h b/drivers/gpu/drm/tegra/dc.h index 40378308d527a..c9c4c45c05183 100644 --- a/drivers/gpu/drm/tegra/dc.h +++ b/drivers/gpu/drm/tegra/dc.h @@ -76,6 +76,7 @@ struct tegra_dc_soc_info { bool has_win_b_vfilter_mem_client; bool has_win_c_without_vert_filter; bool plane_tiled_memory_bandwidth_x2; + bool has_pll_d2_out0; }; =20 struct tegra_dc { diff --git a/drivers/gpu/drm/tegra/rgb.c b/drivers/gpu/drm/tegra/rgb.c index 606c78a2b988f..a84aee2f4acd0 100644 --- a/drivers/gpu/drm/tegra/rgb.c +++ b/drivers/gpu/drm/tegra/rgb.c @@ -17,6 +17,8 @@ struct tegra_rgb { struct tegra_output output; struct tegra_dc *dc; =20 + struct clk *pll_d_out0; + struct clk *pll_d2_out0; struct clk *clk_parent; struct clk *clk; }; @@ -123,6 +125,18 @@ static void tegra_rgb_encoder_enable(struct drm_encode= r *encoder) tegra_dc_commit(rgb->dc); } =20 +static bool tegra_rgb_pll_rate_change_allowed(struct tegra_rgb *rgb) +{ + if (!rgb->pll_d2_out0) + return false; + + if (!clk_is_match(rgb->clk_parent, rgb->pll_d_out0) && + !clk_is_match(rgb->clk_parent, rgb->pll_d2_out0)) + return false; + + return true; +} + static int tegra_rgb_encoder_atomic_check(struct drm_encoder *encoder, struct drm_crtc_state *crtc_state, @@ -151,8 +165,17 @@ tegra_rgb_encoder_atomic_check(struct drm_encoder *enc= oder, * and hope that the desired frequency can be matched (or at least * matched sufficiently close that the panel will still work). */ - div =3D ((clk_get_rate(rgb->clk) * 2) / pclk) - 2; - pclk =3D 0; + if (tegra_rgb_pll_rate_change_allowed(rgb)) { + /* + * Set display controller clock to x2 of PCLK in order to + * produce higher resolution pulse positions. + */ + div =3D 2; + pclk *=3D 2; + } else { + div =3D ((clk_get_rate(rgb->clk) * 2) / pclk) - 2; + pclk =3D 0; + } =20 err =3D tegra_dc_state_setup_clock(dc, crtc_state, rgb->clk_parent, pclk, div); @@ -210,6 +233,22 @@ int tegra_dc_rgb_probe(struct tegra_dc *dc) return err; } =20 + rgb->pll_d_out0 =3D clk_get_sys(NULL, "pll_d_out0"); + if (IS_ERR(rgb->pll_d_out0)) { + err =3D PTR_ERR(rgb->pll_d_out0); + dev_err(dc->dev, "failed to get pll_d_out0: %d\n", err); + return err; + } + + if (dc->soc->has_pll_d2_out0) { + rgb->pll_d2_out0 =3D clk_get_sys(NULL, "pll_d2_out0"); + if (IS_ERR(rgb->pll_d2_out0)) { + err =3D PTR_ERR(rgb->pll_d2_out0); + dev_err(dc->dev, "failed to get pll_d2_out0: %d\n", err); + return err; + } + } + dc->rgb =3D &rgb->output; =20 return 0; @@ -217,9 +256,15 @@ int tegra_dc_rgb_probe(struct tegra_dc *dc) =20 int tegra_dc_rgb_remove(struct tegra_dc *dc) { + struct tegra_rgb *rgb; + if (!dc->rgb) return 0; =20 + rgb =3D to_rgb(dc->rgb); + clk_put(rgb->pll_d2_out0); + clk_put(rgb->pll_d_out0); + tegra_output_remove(dc->rgb); dc->rgb =3D NULL; =20 --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 42624176A05; Sun, 24 Mar 2024 23:37:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323460; cv=none; b=VTST10euaBNfxB+dPa8eucWmFYEX9qSJ2fQUz3XfpH4jeSFyjad4gUr9AHPKV+aozcYJ4hPrzLhRIPcqDXRgch3jDdfnmaQv+ltYswRlDuGp27UO9bpfW4t+ZKgS0H5iCWp3CpnHkiNW2ynuiwdRe8dc/oIoQdHiroAmmEkhLmE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323460; c=relaxed/simple; bh=nmiQo8635M06RUm0k8y5Xa3XkmqRvGP+aSZCULyn0uY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=dCMfx8vOsZD9AfIoFttBEhaVjyRno2Lkg5fVCwNruHPhA8FXHpJ0aaXuyD3SVxBXnF1j3IbxYTsnwCYrPoCXwHMPaEyUAwnFucc8ksKSS/TXAieKXzgOUxYx24N76YuxauofqNytKVKbR/71YLe3h3ZzFfU1dH0MsrvR4vfzND8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=F8MUZN29; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="F8MUZN29" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 868D0C433C7; Sun, 24 Mar 2024 23:37:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323459; bh=nmiQo8635M06RUm0k8y5Xa3XkmqRvGP+aSZCULyn0uY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=F8MUZN29FLTlcE8/LD8VUxOxEHd/LepQiuV3JCxn+5s7afOZkAgfHHmwQ92DftEik 9Hbn8qgpNT/vohIa79ue0nppi9oaz/jH0cO6poMEKiYDjQhQRm8OTnQyKJC0Tnd+fh 4CV9Ck7kWZnu04fh4RgPULYdL8CNVwDGrlHDFxsYSLVZD/2y/y0uqsIp2r9kpT+3Xg Ld0yNL4xAe80P0YASCOkifugHe1BdWp2ZA9Vwt7fY9Os0sRCwyzFPuXEeBssQ+IKmN CJvVtKn1Qq8bJl1znz1UWIcBASZ6jAiBHSnn1KOneevp099BHohCHW1JRi/DN3ukka G4OjoX7u9znjA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Christophe JAILLET , Thierry Reding , Sasha Levin Subject: [PATCH 5.15 163/317] drm/tegra: rgb: Fix some error handling paths in tegra_dc_rgb_probe() Date: Sun, 24 Mar 2024 19:32:23 -0400 Message-ID: <20240324233458.1352854-164-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Christophe JAILLET [ Upstream commit bc456b5d93dbfdbd89f2a036f4f3d8026595f9e4 ] If an error occurs after calling tegra_output_probe(), tegra_output_remove() should be called as already done in the remove function. Fixes: 59d29c0ec93f ("drm/tegra: Allocate resources at probe time") Signed-off-by: Christophe JAILLET Signed-off-by: Thierry Reding Link: https://patchwork.freedesktop.org/patch/msgid/0001f61eb89048bc3624162= 9b564195689cf54b6.1693667005.git.christophe.jaillet@wanadoo.fr Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/gpu/drm/tegra/rgb.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/tegra/rgb.c b/drivers/gpu/drm/tegra/rgb.c index a84aee2f4acd0..51144faa70f7c 100644 --- a/drivers/gpu/drm/tegra/rgb.c +++ b/drivers/gpu/drm/tegra/rgb.c @@ -218,26 +218,28 @@ int tegra_dc_rgb_probe(struct tegra_dc *dc) rgb->clk =3D devm_clk_get(dc->dev, NULL); if (IS_ERR(rgb->clk)) { dev_err(dc->dev, "failed to get clock\n"); - return PTR_ERR(rgb->clk); + err =3D PTR_ERR(rgb->clk); + goto remove; } =20 rgb->clk_parent =3D devm_clk_get(dc->dev, "parent"); if (IS_ERR(rgb->clk_parent)) { dev_err(dc->dev, "failed to get parent clock\n"); - return PTR_ERR(rgb->clk_parent); + err =3D PTR_ERR(rgb->clk_parent); + goto remove; } =20 err =3D clk_set_parent(rgb->clk, rgb->clk_parent); if (err < 0) { dev_err(dc->dev, "failed to set parent clock: %d\n", err); - return err; + goto remove; } =20 rgb->pll_d_out0 =3D clk_get_sys(NULL, "pll_d_out0"); if (IS_ERR(rgb->pll_d_out0)) { err =3D PTR_ERR(rgb->pll_d_out0); dev_err(dc->dev, "failed to get pll_d_out0: %d\n", err); - return err; + goto remove; } =20 if (dc->soc->has_pll_d2_out0) { @@ -245,13 +247,17 @@ int tegra_dc_rgb_probe(struct tegra_dc *dc) if (IS_ERR(rgb->pll_d2_out0)) { err =3D PTR_ERR(rgb->pll_d2_out0); dev_err(dc->dev, "failed to get pll_d2_out0: %d\n", err); - return err; + goto remove; } } =20 dc->rgb =3D &rgb->output; =20 return 0; + +remove: + tegra_output_remove(&rgb->output); + return err; } =20 int tegra_dc_rgb_remove(struct tegra_dc *dc) --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7DB42176FA2; Sun, 24 Mar 2024 23:37:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323461; cv=none; b=dPkGkGnYe4bKJ6EXVujBa0IFmi9Cc3ecqYtTf8Z+tvYd/pMM0tOFfyaGzPI4mPqG95h1K3AInS/91cMyPTc2bY8Wm6tojcjg2IVHxvHMQEXq22n8SAKuYOj5/cQlXDtkmSZSampqJ6M/SNQouS+J3uRtQPNowodZVMABPQfjGtU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323461; c=relaxed/simple; bh=novvVt+pPZ8rajFosPV9cqEMRBRNxEmT12M7Vj+80tQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=kYbtpkujuZwvlQ5RbzKidgREs4vaURQE4lLrMkmJC/50GL9jTK5IIKdIr+hsNlQPR4irWKFIWEyQ2+tG0vgeJv0cDPKKD2g1Mh2/i3xb//YunKjjST0tcL7EXckdQLN6srWNJrKrYuSWqWVclzncb+C/bChUtKcIx8N3Xn1mS0g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=I+Jha7h9; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="I+Jha7h9" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 67449C43390; Sun, 24 Mar 2024 23:37:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323460; bh=novvVt+pPZ8rajFosPV9cqEMRBRNxEmT12M7Vj+80tQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=I+Jha7h9ZBNtNhGy8RNjIcnyc1RScpfcQ+SVWGdirrEXC6Hz6VC2cUHWDHYKs689C y/I0SjOm0NdHAwEQaujW8QmQy7X9lhSTajXuVTVU9gECDAyKjEDQ+AOrCFt+b5KUza qin0IS1agOkYwoqL+kAQ6U+NXEi7wj0YzekYQaU0T+ZzhFhO6O8XI3xvxst+2MKaNY XyyWWPNmDYdcU0no3YRFhZaXAFiKwglr3ymPz+1GBwFY3hesJs8QEY03W6uLhPnsnV tdFEsI89TLidZhtPy9eqQrbQNU/yyETFeAW0brOJTzYwmPF8kgtwzTmrZCWUPERxOU sUZTHZ9TyjEAQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Christophe JAILLET , Thierry Reding , Sasha Levin Subject: [PATCH 5.15 164/317] drm/tegra: rgb: Fix missing clk_put() in the error handling paths of tegra_dc_rgb_probe() Date: Sun, 24 Mar 2024 19:32:24 -0400 Message-ID: <20240324233458.1352854-165-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Christophe JAILLET [ Upstream commit 45c8034db47842b25a3ab6139d71e13b4e67b9b3 ] If clk_get_sys(..., "pll_d2_out0") fails, the clk_get_sys() call must be undone. Add the missing clk_put and a new 'put_pll_d_out0' label in the error handling path, and use it. Fixes: 0c921b6d4ba0 ("drm/tegra: dc: rgb: Allow changing PLLD rate on Tegra= 30+") Signed-off-by: Christophe JAILLET Signed-off-by: Thierry Reding Link: https://patchwork.freedesktop.org/patch/msgid/0182895ead4e4730426616b= 0d9995954c960b634.1693667005.git.christophe.jaillet@wanadoo.fr Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/gpu/drm/tegra/rgb.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/tegra/rgb.c b/drivers/gpu/drm/tegra/rgb.c index 51144faa70f7c..761cfd49c4876 100644 --- a/drivers/gpu/drm/tegra/rgb.c +++ b/drivers/gpu/drm/tegra/rgb.c @@ -247,7 +247,7 @@ int tegra_dc_rgb_probe(struct tegra_dc *dc) if (IS_ERR(rgb->pll_d2_out0)) { err =3D PTR_ERR(rgb->pll_d2_out0); dev_err(dc->dev, "failed to get pll_d2_out0: %d\n", err); - goto remove; + goto put_pll; } } =20 @@ -255,6 +255,8 @@ int tegra_dc_rgb_probe(struct tegra_dc *dc) =20 return 0; =20 +put_pll: + clk_put(rgb->pll_d_out0); remove: tegra_output_remove(&rgb->output); return err; --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0AB75176FA7; Sun, 24 Mar 2024 23:37:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323462; cv=none; b=e6XrlPXvBqWh+OqNl84DUmjELh7YrV1i8dx/WsBmcQ7GP6cXUVS0BJxcp1uzquz/Qputj6rk8PoqBYmgi7fAYAyfUe+rHnybmEJeFJJGdCaU7Y7CC9VyxbVP3ukF03gvmDyVVJDD6e4bVs0e7owc8twGvXdQrMHO5/vqEo2E6fo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323462; c=relaxed/simple; bh=RZNVU4IURpxBQT1ORogNbGIWkBlDKgL0aWdcsIXGZEw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PX/L898r5uQGrqUu0CMIjDyb0Im0e7VyYHkpOpGHvbgRGgM2jpM/8NZsaNi1e7BZvN8edhGDdpUyjEdlS6Uf8uK/fUlASqGl+FGbKmKhaR53uKfnA84Q/htqk/NmFkY3d93+Z3A7x07w8XCfFTijQgK+Tk5o+COy0rypl8dxt3Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=i8xxxeIn; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="i8xxxeIn" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4E490C433F1; Sun, 24 Mar 2024 23:37:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323460; bh=RZNVU4IURpxBQT1ORogNbGIWkBlDKgL0aWdcsIXGZEw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=i8xxxeInDtwe73YRfTrq2Z2sNRJGkU3mOCd9a2qQTKs1LcjmDU2rLpLHrd2dgNQXv hX8XVXS8eTaxZ7F1IYQ6DvVeLYLMe3rNGKF0X2vh8bS3W2bQn/V2+LmSRmyQrlYYlj e8hqg9WUmhh5meqPJ/WxWR9zdnrUTmAK8I06g4cHb489xMK7Zk8vtaWbjivI6T+fpE vKtxEZuJSsMWtpx/zthkdCelGTF8zNGBP9fVBvF6E322yCxbWkAQ+xG/Pa9GJbdpNi lIizmadKQPqx4X8semnR4u22hBco0/ZYPq7d5uDMCXtijYphx8jOW0O7zxL422yXPz /43bQkmI/DDrA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Christophe JAILLET , Thierry Reding , Sasha Levin Subject: [PATCH 5.15 165/317] drm/tegra: output: Fix missing i2c_put_adapter() in the error handling paths of tegra_output_probe() Date: Sun, 24 Mar 2024 19:32:25 -0400 Message-ID: <20240324233458.1352854-166-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Christophe JAILLET [ Upstream commit 2db4578ef6ffb2b52115ca0ebf897b60ec559556 ] If an error occurs after a successful of_get_i2c_adapter_by_node() call, it should be undone by a corresponding i2c_put_adapter(). Add the missing i2c_put_adapter() call. Fixes: 9be7d864cf07 ("drm/tegra: Implement panel support") Signed-off-by: Christophe JAILLET Signed-off-by: Thierry Reding Link: https://patchwork.freedesktop.org/patch/msgid/b38604178991e1f08b2cda2= 19103be266be2d680.1693667005.git.christophe.jaillet@wanadoo.fr Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/gpu/drm/tegra/output.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/tegra/output.c b/drivers/gpu/drm/tegra/output.c index 47d26b5d99456..7ccd010a821b7 100644 --- a/drivers/gpu/drm/tegra/output.c +++ b/drivers/gpu/drm/tegra/output.c @@ -139,8 +139,10 @@ int tegra_output_probe(struct tegra_output *output) GPIOD_IN, "HDMI hotplug detect"); if (IS_ERR(output->hpd_gpio)) { - if (PTR_ERR(output->hpd_gpio) !=3D -ENOENT) - return PTR_ERR(output->hpd_gpio); + if (PTR_ERR(output->hpd_gpio) !=3D -ENOENT) { + err =3D PTR_ERR(output->hpd_gpio); + goto put_i2c; + } =20 output->hpd_gpio =3D NULL; } @@ -149,7 +151,7 @@ int tegra_output_probe(struct tegra_output *output) err =3D gpiod_to_irq(output->hpd_gpio); if (err < 0) { dev_err(output->dev, "gpiod_to_irq(): %d\n", err); - return err; + goto put_i2c; } =20 output->hpd_irq =3D err; @@ -162,7 +164,7 @@ int tegra_output_probe(struct tegra_output *output) if (err < 0) { dev_err(output->dev, "failed to request IRQ#%u: %d\n", output->hpd_irq, err); - return err; + goto put_i2c; } =20 output->connector.polled =3D DRM_CONNECTOR_POLL_HPD; @@ -176,6 +178,12 @@ int tegra_output_probe(struct tegra_output *output) } =20 return 0; + +put_i2c: + if (output->ddc) + i2c_put_adapter(output->ddc); + + return err; } =20 void tegra_output_remove(struct tegra_output *output) --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 06138176FAD; Sun, 24 Mar 2024 23:37:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323463; cv=none; b=cfCGxa2x+KNpHoiGaRk5+ME6HXQYPySaqULE5J/LYwOweG1lB13brXEeQSugkmekAbRWmC0x4Vv9ayJfsMZEILkSIPTunk0mm2CuzsTjoZeK6MZXK/Zx7EBJ2/ddJ5k0Gz9EaxKZOJG3aj05ElW7p4JYW+tS0EozXVEmWlKxUfs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323463; c=relaxed/simple; bh=hHsHjQUDMUNwTrq8KfLKMh80GfvG17A8FJ8f8Y0O8Us=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=uMvx/PvDjbCmU+ag/kXKaW/BsJ63kuBf3vUWspoI7Zngcu0MVwHw3OxPhYHAkVPekLkEOj07IyuqQFEmj1MzXmjRLhfo3iHEyOIugbMLgj6sm/SYY5iRfEM5rXNR4a1yAmvsZ4nPZwUCh+KLO2yX3Ss09uJRC36Qm+Hz4m7SkTg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=TDpsiTKn; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="TDpsiTKn" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 30AFAC433C7; Sun, 24 Mar 2024 23:37:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323461; bh=hHsHjQUDMUNwTrq8KfLKMh80GfvG17A8FJ8f8Y0O8Us=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=TDpsiTKnjYvV2WB500cdQs5pTvCCsOA6lxfsLx3DU8a/3k/4QxO6dwUytSCmExSRB ICF3kPx/JA2vTzMwsUU3fY9D45Zg33hS7PbpT8nC+eAuPn46ftTNU9pKdLT0MbI2Ac hj14YZVTkkvM+Syl+0Ax+Vg1rikxoaiV5LH8MhyjlBnlNeWXbBl8YXLUDqPtL/rzJW GMPQo31ObrC/qJe3v5DbC5bKhsZWuvTyuztrgKlG/k7QNBpx2kgIwUiytO2QRsVyIt embSS6bH2porvpU/D1L02kEQOq1ObDrVw/vsDI6bzulOAyjnViH3mjJXtqmq9EcbSR G1nCFjeuK4rbA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Alex Bee , Zheng Yang , Heiko Stuebner , Sasha Levin Subject: [PATCH 5.15 166/317] drm/rockchip: inno_hdmi: Fix video timing Date: Sun, 24 Mar 2024 19:32:26 -0400 Message-ID: <20240324233458.1352854-167-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Alex Bee [ Upstream commit 47a145c03484d33e65d773169d5ca1b9fe2a492e ] The controller wants the difference between *total and *sync_start in the HDMI_VIDEO_EXT_*DELAY registers. Otherwise the signal is very unstable for certain non-VIC modes. See downstream commit [0]. [0] https://github.com/rockchip-linux/kernel/commit/8eb559f2502c Fixes: 412d4ae6b7a5 ("drm/rockchip: hdmi: add Innosilicon HDMI support") Co-developed-by: Zheng Yang Signed-off-by: Zheng Yang Signed-off-by: Alex Bee Signed-off-by: Heiko Stuebner Link: https://patchwork.freedesktop.org/patch/msgid/20231222174220.55249-4-= knaerzche@gmail.com Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/gpu/drm/rockchip/inno_hdmi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/rockchip/inno_hdmi.c b/drivers/gpu/drm/rockchi= p/inno_hdmi.c index 78120da5e63aa..27540d308ccb9 100644 --- a/drivers/gpu/drm/rockchip/inno_hdmi.c +++ b/drivers/gpu/drm/rockchip/inno_hdmi.c @@ -402,7 +402,7 @@ static int inno_hdmi_config_video_timing(struct inno_hd= mi *hdmi, hdmi_writeb(hdmi, HDMI_VIDEO_EXT_HBLANK_L, value & 0xFF); hdmi_writeb(hdmi, HDMI_VIDEO_EXT_HBLANK_H, (value >> 8) & 0xFF); =20 - value =3D mode->hsync_start - mode->hdisplay; + value =3D mode->htotal - mode->hsync_start; hdmi_writeb(hdmi, HDMI_VIDEO_EXT_HDELAY_L, value & 0xFF); hdmi_writeb(hdmi, HDMI_VIDEO_EXT_HDELAY_H, (value >> 8) & 0xFF); =20 @@ -417,7 +417,7 @@ static int inno_hdmi_config_video_timing(struct inno_hd= mi *hdmi, value =3D mode->vtotal - mode->vdisplay; hdmi_writeb(hdmi, HDMI_VIDEO_EXT_VBLANK, value & 0xFF); =20 - value =3D mode->vsync_start - mode->vdisplay; + value =3D mode->vtotal - mode->vsync_start; hdmi_writeb(hdmi, HDMI_VIDEO_EXT_VDELAY, value & 0xFF); =20 value =3D mode->vsync_end - mode->vsync_start; --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 15992176FB0; Sun, 24 Mar 2024 23:37:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323463; cv=none; b=RY/kpENVrrKueUE38Qi5G7PHvrCpsxzt1NeNSfKfgQDPDQVZlhDrMcbyBV3HQKDd/QjIEhUAYJP71DfFtf+y3SZd6qyxA8BCAMzV7Bg5gSIl9WE5RVwqMe0ecelNAovGs2XaMdGSOWqRHlD+8iZbG+V+WVeMNwV+0an7AIMKOqU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323463; c=relaxed/simple; bh=gbU2EowSPlHE2x6WXeXSsOfbfUQE1IU/R3YYLu6N2co=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Jcs45uDcSWUFQs5Tx+1Dip9YatQmKH5GXJAENkuR9u5HR0dcSXkSseNV+MuVgdASLBUqiAME4+6bdxE5w9Cz6d+HxL1U1I1ByjK7vM1zNp6FWryp0ZwdXtz23L8pUSd8U0pPG5ukCyPofwil6Mx9xKY4jZgLHUVJVSUT2SfYYGU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=W/mbvzzO; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="W/mbvzzO" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2A9F9C433B1; Sun, 24 Mar 2024 23:37:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323463; bh=gbU2EowSPlHE2x6WXeXSsOfbfUQE1IU/R3YYLu6N2co=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=W/mbvzzO6kOSebJ/DCs8IegFo73/nheH6MEBf6AyOG66TFhuEs9fNVwhqRDVQz9S7 U6TFhmryoDF7SLJ/qJleMFEbH4YjqUIGhX4+bdPyy3v7quZUMxxjzTMGEomw4rYBED Xyj4zZ41G6KI1Wb2H4VE/P7XsFiR8krpYRfIC858io1QxmLHDO3gO4X7vgsr28pHmc 4ZJrIm/HGnRspx7nbSHXXvD0H6ugB/jKYmXLs572rbl4X2zPcQguJRBqqHeAaNj8M4 YQNbSAhkUDL4fTGNVJh6qdn3zkzu8hZ0b2FM+YQlKqsGW4ghsOTX5VUz+aHcQbDUKB azU03rqdIVbAQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Harry Wentland , Simon Ser , Melissa Wen , Melissa Wen , Sasha Levin Subject: [PATCH 5.15 167/317] drm: Don't treat 0 as -1 in drm_fixp2int_ceil Date: Sun, 24 Mar 2024 19:32:27 -0400 Message-ID: <20240324233458.1352854-168-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Harry Wentland [ Upstream commit cf8837d7204481026335461629b84ac7f4538fa5 ] Unit testing this in VKMS shows that passing 0 into this function returns -1, which is highly counter- intuitive. Fix it by checking whether the input is >=3D 0 instead of > 0. Fixes: 64566b5e767f ("drm: Add drm_fixp_from_fraction and drm_fixp2int_ceil= ") Signed-off-by: Harry Wentland Reviewed-by: Simon Ser Reviewed-by: Melissa Wen Signed-off-by: Melissa Wen Link: https://patchwork.freedesktop.org/patch/msgid/20231108163647.106853-2= -harry.wentland@amd.com Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- include/drm/drm_fixed.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/drm/drm_fixed.h b/include/drm/drm_fixed.h index 553210c02ee0f..627efa56e59fb 100644 --- a/include/drm/drm_fixed.h +++ b/include/drm/drm_fixed.h @@ -88,7 +88,7 @@ static inline int drm_fixp2int(s64 a) =20 static inline int drm_fixp2int_ceil(s64 a) { - if (a > 0) + if (a >=3D 0) return drm_fixp2int(a + DRM_FIXED_ALMOST_ONE); else return drm_fixp2int(a - DRM_FIXED_ALMOST_ONE); --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F1995176FB8; Sun, 24 Mar 2024 23:37:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323464; cv=none; b=D45kDA3PIJ9a0O4EPg0ctJ6fRP13ud1As6PIuRxQOySZHsaSjycMZySapu3c3lVXtWz3T6tUSxCrdyxdUkDXVN3uQ/U74Q0W/sckIH770Q71O6bP6zfTHQ1AHsjF7zyHBWHgDFrPM1ospLwUrb2bX/rgjHRCIAXro25j90qcdsQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323464; c=relaxed/simple; bh=6MDhhdy4wZHD+LTDdrq17u2hKHcZzGeV/wYljldK5Ys=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=RED4IYUdYWxrNKAruVPZSKh8ry0EnkqgjFdM6pmiVI0T+ELqWC7nS2hI4oNSao84aXmjMzsFcqZjSx/gGlP9sBGoZXRhlM66Tn+r0emmGvLcLXlU7WP121dW0m/ju1tUJ3XmUOVjoDvhVhdUYnKPaty5vtZPXXv8ZAZcn7dMEOs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=hB9Td2dS; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="hB9Td2dS" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3B74FC433C7; Sun, 24 Mar 2024 23:37:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323463; bh=6MDhhdy4wZHD+LTDdrq17u2hKHcZzGeV/wYljldK5Ys=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=hB9Td2dSxWL8lOgAW+ZEFC1ldUo7RhEqlgQUFWZfwTtpO7PD9oAG9D3YPOUTjE9KG iwKhD8E48mQAtU8Z49P8AqsCO73n2iZnAam4IvWyDQm3Sx/hNIKmIZCKLd8CHgNi5E HFqQTiri1MCaL7AcFQyXhT9eNF7ywBNxyd8P77c/3Kg+IPElTauCOCvoRThisGKf+l AohQKTljbJDjD/MJwlaxNXtzAF9J3uUnvl9o6PFUGdvIkCLpJJGuuvrVKsaFNSoMD8 IcwAPxlODmg/hoyU0OPHHDFe11mIoe1MMO7j0LsSMepqB/0VhwCiTG3G5xUYSaTCWT ypFjdymOX0kXQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?Christian=20K=C3=B6nig?= , Daniel Vetter , Sasha Levin Subject: [PATCH 5.15 168/317] drm/ttm: add ttm_resource_fini v2 Date: Sun, 24 Mar 2024 19:32:28 -0400 Message-ID: <20240324233458.1352854-169-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable From: Christian K=C3=B6nig [ Upstream commit de3688e469b08be958914674e8b01cb0cea42388 ] Make sure we call the common cleanup function in all implementations of the resource manager. v2: fix missing case in i915, rudimentary kerneldoc, should be filled in more when we add more functionality Signed-off-by: Christian K=C3=B6nig Reviewed-by: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/20220124122514.1832-2-c= hristian.koenig@amd.com Stable-dep-of: 89709105a609 ("drm/vmwgfx: fix a memleak in vmw_gmrid_man_ge= t_node") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/gpu/drm/amd/amdgpu/amdgpu_gtt_mgr.c | 2 ++ .../gpu/drm/amd/amdgpu/amdgpu_preempt_mgr.c | 1 + drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c | 2 ++ drivers/gpu/drm/i915/i915_ttm_buddy_manager.c | 2 ++ drivers/gpu/drm/nouveau/nouveau_mem.c | 3 ++- drivers/gpu/drm/nouveau/nouveau_mem.h | 3 ++- drivers/gpu/drm/nouveau/nouveau_ttm.c | 9 ++++---- drivers/gpu/drm/ttm/ttm_range_manager.c | 2 ++ drivers/gpu/drm/ttm/ttm_resource.c | 23 +++++++++++++++++++ drivers/gpu/drm/ttm/ttm_sys_manager.c | 1 + drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c | 2 ++ .../gpu/drm/vmwgfx/vmwgfx_system_manager.c | 1 + include/drm/ttm/ttm_resource.h | 3 +++ 13 files changed, 48 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gtt_mgr.c b/drivers/gpu/drm/= amd/amdgpu/amdgpu_gtt_mgr.c index 675a72ef305da..ea5470c8c9212 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gtt_mgr.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gtt_mgr.c @@ -169,6 +169,7 @@ static int amdgpu_gtt_mgr_new(struct ttm_resource_manag= er *man, return 0; =20 err_free: + ttm_resource_fini(man, &node->base.base); kfree(node); =20 err_out: @@ -200,6 +201,7 @@ static void amdgpu_gtt_mgr_del(struct ttm_resource_mana= ger *man, if (!(res->placement & TTM_PL_FLAG_TEMPORARY)) atomic64_sub(res->num_pages, &mgr->used); =20 + ttm_resource_fini(man, res); kfree(node); } =20 diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_preempt_mgr.c b/drivers/gpu/= drm/amd/amdgpu/amdgpu_preempt_mgr.c index d02c8637f909f..ffddec08e931f 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_preempt_mgr.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_preempt_mgr.c @@ -95,6 +95,7 @@ static void amdgpu_preempt_mgr_del(struct ttm_resource_ma= nager *man, struct amdgpu_preempt_mgr *mgr =3D to_preempt_mgr(man); =20 atomic64_sub(res->num_pages, &mgr->used); + ttm_resource_fini(man, res); kfree(res); } =20 diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c b/drivers/gpu/drm= /amd/amdgpu/amdgpu_vram_mgr.c index 7b2b0980ec412..55d68408951d1 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c @@ -476,6 +476,7 @@ static int amdgpu_vram_mgr_new(struct ttm_resource_mana= ger *man, while (i--) drm_mm_remove_node(&node->mm_nodes[i]); spin_unlock(&mgr->lock); + ttm_resource_fini(man, &node->base); kvfree(node); =20 error_sub: @@ -515,6 +516,7 @@ static void amdgpu_vram_mgr_del(struct ttm_resource_man= ager *man, atomic64_sub(usage, &mgr->usage); atomic64_sub(vis_usage, &mgr->vis_usage); =20 + ttm_resource_fini(man, res); kvfree(node); } =20 diff --git a/drivers/gpu/drm/i915/i915_ttm_buddy_manager.c b/drivers/gpu/dr= m/i915/i915_ttm_buddy_manager.c index 6877362f6b85f..5740087f9ce93 100644 --- a/drivers/gpu/drm/i915/i915_ttm_buddy_manager.c +++ b/drivers/gpu/drm/i915/i915_ttm_buddy_manager.c @@ -109,6 +109,7 @@ static int i915_ttm_buddy_man_alloc(struct ttm_resource= _manager *man, i915_buddy_free_list(mm, &bman_res->blocks); mutex_unlock(&bman->lock); err_free_res: + ttm_resource_fini(man, &bman_res->base); kfree(bman_res); return err; } @@ -123,6 +124,7 @@ static void i915_ttm_buddy_man_free(struct ttm_resource= _manager *man, i915_buddy_free_list(&bman->mm, &bman_res->blocks); mutex_unlock(&bman->lock); =20 + ttm_resource_fini(man, res); kfree(bman_res); } =20 diff --git a/drivers/gpu/drm/nouveau/nouveau_mem.c b/drivers/gpu/drm/nouvea= u/nouveau_mem.c index 2ca3207c13fcd..2e517cdc24c9c 100644 --- a/drivers/gpu/drm/nouveau/nouveau_mem.c +++ b/drivers/gpu/drm/nouveau/nouveau_mem.c @@ -162,11 +162,12 @@ nouveau_mem_vram(struct ttm_resource *reg, bool conti= g, u8 page) } =20 void -nouveau_mem_del(struct ttm_resource *reg) +nouveau_mem_del(struct ttm_resource_manager *man, struct ttm_resource *reg) { struct nouveau_mem *mem =3D nouveau_mem(reg); =20 nouveau_mem_fini(mem); + ttm_resource_fini(man, reg); kfree(mem); } =20 diff --git a/drivers/gpu/drm/nouveau/nouveau_mem.h b/drivers/gpu/drm/nouvea= u/nouveau_mem.h index 2c01166a90f25..325551eba5cd4 100644 --- a/drivers/gpu/drm/nouveau/nouveau_mem.h +++ b/drivers/gpu/drm/nouveau/nouveau_mem.h @@ -23,7 +23,8 @@ nouveau_mem(struct ttm_resource *reg) =20 int nouveau_mem_new(struct nouveau_cli *, u8 kind, u8 comp, struct ttm_resource **); -void nouveau_mem_del(struct ttm_resource *); +void nouveau_mem_del(struct ttm_resource_manager *man, + struct ttm_resource *); int nouveau_mem_vram(struct ttm_resource *, bool contig, u8 page); int nouveau_mem_host(struct ttm_resource *, struct ttm_tt *); void nouveau_mem_fini(struct nouveau_mem *); diff --git a/drivers/gpu/drm/nouveau/nouveau_ttm.c b/drivers/gpu/drm/nouvea= u/nouveau_ttm.c index 2ca9d9a9e5d5e..91ef33f8f22cb 100644 --- a/drivers/gpu/drm/nouveau/nouveau_ttm.c +++ b/drivers/gpu/drm/nouveau/nouveau_ttm.c @@ -36,9 +36,10 @@ #include =20 static void -nouveau_manager_del(struct ttm_resource_manager *man, struct ttm_resource = *reg) +nouveau_manager_del(struct ttm_resource_manager *man, + struct ttm_resource *reg) { - nouveau_mem_del(reg); + nouveau_mem_del(man, reg); } =20 static int @@ -62,7 +63,7 @@ nouveau_vram_manager_new(struct ttm_resource_manager *man, =20 ret =3D nouveau_mem_vram(*res, nvbo->contig, nvbo->page); if (ret) { - nouveau_mem_del(*res); + nouveau_mem_del(man, *res); return ret; } =20 @@ -118,7 +119,7 @@ nv04_gart_manager_new(struct ttm_resource_manager *man, ret =3D nvif_vmm_get(&mem->cli->vmm.vmm, PTES, false, 12, 0, (long)(*res)->num_pages << PAGE_SHIFT, &mem->vma[0]); if (ret) { - nouveau_mem_del(*res); + nouveau_mem_del(man, *res); return ret; } =20 diff --git a/drivers/gpu/drm/ttm/ttm_range_manager.c b/drivers/gpu/drm/ttm/= ttm_range_manager.c index f4b08a8705b32..69962b5769c54 100644 --- a/drivers/gpu/drm/ttm/ttm_range_manager.c +++ b/drivers/gpu/drm/ttm/ttm_range_manager.c @@ -89,6 +89,7 @@ static int ttm_range_man_alloc(struct ttm_resource_manage= r *man, spin_unlock(&rman->lock); =20 if (unlikely(ret)) { + ttm_resource_fini(man, *res); kfree(node); return ret; } @@ -108,6 +109,7 @@ static void ttm_range_man_free(struct ttm_resource_mana= ger *man, drm_mm_remove_node(&node->mm_nodes[0]); spin_unlock(&rman->lock); =20 + ttm_resource_fini(man, res); kfree(node); } =20 diff --git a/drivers/gpu/drm/ttm/ttm_resource.c b/drivers/gpu/drm/ttm/ttm_r= esource.c index 2431717376e70..2c590b4c46cb7 100644 --- a/drivers/gpu/drm/ttm/ttm_resource.c +++ b/drivers/gpu/drm/ttm/ttm_resource.c @@ -29,6 +29,14 @@ #include #include =20 +/** + * ttm_resource_init - resource object constructure + * @bo: buffer object this resources is allocated for + * @place: placement of the resource + * @res: the resource object to inistilize + * + * Initialize a new resource object. Counterpart of &ttm_resource_fini. + */ void ttm_resource_init(struct ttm_buffer_object *bo, const struct ttm_place *place, struct ttm_resource *res) @@ -44,6 +52,21 @@ void ttm_resource_init(struct ttm_buffer_object *bo, } EXPORT_SYMBOL(ttm_resource_init); =20 +/** + * ttm_resource_fini - resource destructor + * @man: the resource manager this resource belongs to + * @res: the resource to clean up + * + * Should be used by resource manager backends to clean up the TTM resource + * objects before freeing the underlying structure. Counterpart of + * &ttm_resource_init + */ +void ttm_resource_fini(struct ttm_resource_manager *man, + struct ttm_resource *res) +{ +} +EXPORT_SYMBOL(ttm_resource_fini); + int ttm_resource_alloc(struct ttm_buffer_object *bo, const struct ttm_place *place, struct ttm_resource **res_ptr) diff --git a/drivers/gpu/drm/ttm/ttm_sys_manager.c b/drivers/gpu/drm/ttm/tt= m_sys_manager.c index 63aca52f75e12..135394dcca95a 100644 --- a/drivers/gpu/drm/ttm/ttm_sys_manager.c +++ b/drivers/gpu/drm/ttm/ttm_sys_manager.c @@ -23,6 +23,7 @@ static int ttm_sys_man_alloc(struct ttm_resource_manager = *man, static void ttm_sys_man_free(struct ttm_resource_manager *man, struct ttm_resource *res) { + ttm_resource_fini(man, res); kfree(res); } =20 diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c b/drivers/gpu/dr= m/vmwgfx/vmwgfx_gmrid_manager.c index b2c4af331c9d5..bfd686bb8d194 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c @@ -116,6 +116,7 @@ static int vmw_gmrid_man_get_node(struct ttm_resource_m= anager *man, gman->used_gmr_pages -=3D (*res)->num_pages; spin_unlock(&gman->lock); ida_free(&gman->gmr_ida, id); + ttm_resource_fini(man, *res); kfree(*res); return -ENOSPC; } @@ -129,6 +130,7 @@ static void vmw_gmrid_man_put_node(struct ttm_resource_= manager *man, spin_lock(&gman->lock); gman->used_gmr_pages -=3D res->num_pages; spin_unlock(&gman->lock); + ttm_resource_fini(man, res); kfree(res); } =20 diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_system_manager.c b/drivers/gpu/d= rm/vmwgfx/vmwgfx_system_manager.c index b0005b03a6174..a64188c7268d5 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_system_manager.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_system_manager.c @@ -49,6 +49,7 @@ static int vmw_sys_man_alloc(struct ttm_resource_manager = *man, static void vmw_sys_man_free(struct ttm_resource_manager *man, struct ttm_resource *res) { + ttm_resource_fini(man, res); kfree(res); } =20 diff --git a/include/drm/ttm/ttm_resource.h b/include/drm/ttm/ttm_resource.h index 140b6b9a8bbe6..dd6929f0c4f6d 100644 --- a/include/drm/ttm/ttm_resource.h +++ b/include/drm/ttm/ttm_resource.h @@ -262,6 +262,9 @@ ttm_resource_manager_cleanup(struct ttm_resource_manage= r *man) void ttm_resource_init(struct ttm_buffer_object *bo, const struct ttm_place *place, struct ttm_resource *res); +void ttm_resource_fini(struct ttm_resource_manager *man, + struct ttm_resource *res); + int ttm_resource_alloc(struct ttm_buffer_object *bo, const struct ttm_place *place, struct ttm_resource **res); --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D7CB2176FC6; Sun, 24 Mar 2024 23:37:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323465; cv=none; b=FltNzyl9BFWkT/7E3+/TwNelZ0nlF/K3TRistcWnjWrKCxFMMNELIgIX+FT0xEmAbdJKps+/T8lxnf6NdfS45mK0e5wP4qa/7sa0JxRxegY7BLJ5pTlMTo/LarO3hIc1XLkmwlHa8k5d3/ZhWn0g4HM089kBEHXh/kiJ5dWbrqg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323465; c=relaxed/simple; bh=MPZkWRHizNJDxVsOELL2yrKRR5ySSqUDjNHTmI+Lx+E=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=DClGeshRqOmnDXQFnpU6WmmlWwV4VHr6jP1ZNqnpvRb4DFA4Z9gf+iqhoAO7dXwFl8wEebmalh5OpygQC4eQc2pVL2jKfYvhjaGYoQYuAhj6n+Q0B+80gZD99OSBXynUGHxMHlW57ZKlsi934MLh0RM/EYE3zKmGUeT0Fscx5TI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=RwB0K8OP; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="RwB0K8OP" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 21905C43394; Sun, 24 Mar 2024 23:37:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323464; bh=MPZkWRHizNJDxVsOELL2yrKRR5ySSqUDjNHTmI+Lx+E=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=RwB0K8OPH0/9nVCA9aW9E/paBnD24U6soopKkMwtAyz0b9t12gL3YrVEiYS4g7E2Z +jDdtBBsctogUaCm5jnEZ6Yq3Y4hfVB3DT4MEvmChO+57cTA0HurNfIEpVHzMrDuUz KsagP2O6U2ao+0+CHEj7tYcqNeekfROEWnS136/cem0vHDAmXY+gID7e9Rw0Z2pm7g CIyvx5VUPth9ZpJ7XcjAJts33qJS6H1TqozYcCvlFoHnKeXQeGsd2PibvpPpbFUfzB wGS1xkfXNIQAPVWRaQNzqZqqU8+5J0/UxzDyQ3Xv5Dp6rY3uNxPRvmbcLFNdjxi2MG 8RmOs3M6z7CvA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Zhipeng Lu , Zack Rusin , Sasha Levin Subject: [PATCH 5.15 169/317] drm/vmwgfx: fix a memleak in vmw_gmrid_man_get_node Date: Sun, 24 Mar 2024 19:32:29 -0400 Message-ID: <20240324233458.1352854-170-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Zhipeng Lu [ Upstream commit 89709105a6091948ffb6ec2427954cbfe45358ce ] When ida_alloc_max fails, resources allocated before should be freed, including *res allocated by kmalloc and ttm_resource_init. Fixes: d3bcb4b02fe9 ("drm/vmwgfx: switch the TTM backends to self alloc") Signed-off-by: Zhipeng Lu Signed-off-by: Zack Rusin Link: https://patchwork.freedesktop.org/patch/msgid/20231204091416.3308430-= 1-alexious@zju.edu.cn Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c b/drivers/gpu/dr= m/vmwgfx/vmwgfx_gmrid_manager.c index bfd686bb8d194..eef7bab8bc3a6 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c @@ -64,8 +64,11 @@ static int vmw_gmrid_man_get_node(struct ttm_resource_ma= nager *man, ttm_resource_init(bo, place, *res); =20 id =3D ida_alloc_max(&gman->gmr_ida, gman->max_gmr_ids - 1, GFP_KERNEL); - if (id < 0) + if (id < 0) { + ttm_resource_fini(man, *res); + kfree(*res); return id; + } =20 spin_lock(&gman->lock); =20 --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 28C05176FD2; Sun, 24 Mar 2024 23:37:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323467; cv=none; b=HOFRpOab3QIA9F+t5YHM+xARN0HE9OLlmIX2SeSWkVPI+qwz9AVvzL1XdVpf79Y5zzGx/2+6+UORDxvMLXSMuDS6slb7fxB/Dgf0p2PSvPttc7k/+1lqzNy4CFfGpIPdQWU+yXKQ64UUJiVhBgFFNhSzGOYhpcBLZXCMxrWMbX0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323467; c=relaxed/simple; bh=J0fDjy152EtNO15ikgnXe/MOlRKpzLGtPE+LYyFXyj4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=RTimVp3fxxzjdtHyhD3aSGW4CII/0PZYGqF6SN++S9ekSemAHJ3LKdvdxYmpgnfdhja4vWaX9sSqHtt6aYxZiH9AyY5xm96kQDXFNcs3W8QMQNb0UVFYDDb/kCU1zNR6fQWKcc+c5MVqiDZYQLMuOpcGuz8q+RKddErQEACJ7w8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=NGjJIR+y; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="NGjJIR+y" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0767AC43390; Sun, 24 Mar 2024 23:37:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323465; bh=J0fDjy152EtNO15ikgnXe/MOlRKpzLGtPE+LYyFXyj4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=NGjJIR+yy9aldWaPiy4iJPmJig3NTDYa6uO0n7n1taTSIHzWkYUb1nMyfJ5vZUotp KHiH+DBeueUq/NGF48sjwqL75JqzK8W4Pu9D6sXDL0xggzWGEBi1UGmbV3BH2ERLxX s3IIBeZwyQkgcq/hadhyE1LIDwHL+LPfPdFl6I0Uej893WiaW1WC3hAoaHWstos1zJ 9raEzO0cj6PDTHJ3kJ7ZUc24hVkr+gbr2a7MqSs/KNrTFHwewyDCPAai/o0+06u9yr AVSrmwYuWaRQsNQaWOKBuK70BB/dHRn/lt1FVsqpuLUud3cIyyickPhf/IqIyt1ZHf qzvOZ27EF8t1g== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Quentin Schulz , Quentin Schulz , Heiko Stuebner , Sasha Levin Subject: [PATCH 5.15 170/317] drm/rockchip: lvds: do not overwrite error code Date: Sun, 24 Mar 2024 19:32:30 -0400 Message-ID: <20240324233458.1352854-171-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Quentin Schulz [ Upstream commit 79b09453c4e369ca81cfb670d0136d089e3b92f0 ] ret variable stores the return value of drm_of_find_panel_or_bridge which can return error codes different from EPROBE_DEFER. Therefore, let's just return that error code instead of forcing it to EPROBE_DEFER. Fixes: 34cc0aa25456 ("drm/rockchip: Add support for Rockchip Soc LVDS") Cc: Quentin Schulz Signed-off-by: Quentin Schulz Signed-off-by: Heiko Stuebner Link: https://patchwork.freedesktop.org/patch/msgid/20231120-rk-lvds-defer-= msg-v2-1-9c59a5779cf9@theobroma-systems.com Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/gpu/drm/rockchip/rockchip_lvds.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/gpu/drm/rockchip/rockchip_lvds.c b/drivers/gpu/drm/roc= kchip/rockchip_lvds.c index 2550429df49fe..4cae30979a790 100644 --- a/drivers/gpu/drm/rockchip/rockchip_lvds.c +++ b/drivers/gpu/drm/rockchip/rockchip_lvds.c @@ -573,7 +573,6 @@ static int rockchip_lvds_bind(struct device *dev, struc= t device *master, goto err_put_port; } else if (ret) { DRM_DEV_ERROR(dev, "failed to find panel and bridge node\n"); - ret =3D -EPROBE_DEFER; goto err_put_port; } if (lvds->panel) --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D1B06176FD7; Sun, 24 Mar 2024 23:37:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323467; cv=none; b=TTjQ/ExvRpWW4w14cLgyGSHjaTyf0oaS7kjEza5mkDUE+mxGhrq+DOZrgwT3ALkuU42FfBWohcXwWdvw2v6AVrz+rzNaTfS5qy/TpkaPFmwrF/oaB1fOAaB9C1dyWGmjLMQFqksZ7g1TPuTRMek2FTWdLw+xj1hAp4RD+0jezVA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323467; c=relaxed/simple; bh=j0g79tzaDeBzMm3nBBzFqDAZZgxwr+95efjOukGcpeM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=sYV5fA7RD4Ob2zUozB7ZHh24ss2k3q04JFaPPmO/Du3GtIdDAC4V6o/s65tz8HZevv2IvC1rC1TLWx9fNJKKwnt+pc3bK+hVEWavC1kxnxHJEKByaL0YvJbs+DBqiOKTDkBn5ikEbs/wEPYk9eE7melLRlBu7iN5KARkbXbMzjM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=SYcPbR98; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="SYcPbR98" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 044E2C43394; Sun, 24 Mar 2024 23:37:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323466; bh=j0g79tzaDeBzMm3nBBzFqDAZZgxwr+95efjOukGcpeM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=SYcPbR98o2QUJzXAgeb94cC3/ILbImuNLTGRkJRMl33mNGO3lw9Rqa11mRzI60sqw 7qgr5kd7epD3eJTtZ675h0Lp4ZE/SZFvhnlxSE0hDgHX3TYl6wfQPXZWdBbFadkLb9 A6Wq6E/nWkclz4iYSnosBAWvrDcvjOs/DvKhx3tw8tOm/yJW6o3nfWDt2RXmLAexEC d2q00ZUcffFwaBOEV+m9PBkCAJHgAM614Loj+Y2/1rqQsMZL9oCcJoOcL8qFHudbnT p3P9HBY9053Othl6jaXyxNU7TlyocGakslc+stFu6xLvRYP6dA547XrMAEtPVfZWxI D1gf7c6xcP6Hw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Quentin Schulz , Quentin Schulz , Heiko Stuebner , Sasha Levin Subject: [PATCH 5.15 171/317] drm/rockchip: lvds: do not print scary message when probing defer Date: Sun, 24 Mar 2024 19:32:31 -0400 Message-ID: <20240324233458.1352854-172-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Quentin Schulz [ Upstream commit 52d11c863ac92e36a0365249f7f6d27ac48c78bc ] This scary message can misled the user into thinking something bad has happened and needs to be fixed, however it could simply be part of a normal boot process where EPROBE_DEFER is taken into account. Therefore, let's use dev_err_probe so that this message doesn't get shown (by default) when the return code is EPROBE_DEFER. Fixes: 34cc0aa25456 ("drm/rockchip: Add support for Rockchip Soc LVDS") Cc: Quentin Schulz Signed-off-by: Quentin Schulz Signed-off-by: Heiko Stuebner Link: https://patchwork.freedesktop.org/patch/msgid/20231120-rk-lvds-defer-= msg-v2-2-9c59a5779cf9@theobroma-systems.com Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/gpu/drm/rockchip/rockchip_lvds.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/rockchip/rockchip_lvds.c b/drivers/gpu/drm/roc= kchip/rockchip_lvds.c index 4cae30979a790..d3a7f8d94b781 100644 --- a/drivers/gpu/drm/rockchip/rockchip_lvds.c +++ b/drivers/gpu/drm/rockchip/rockchip_lvds.c @@ -572,7 +572,7 @@ static int rockchip_lvds_bind(struct device *dev, struc= t device *master, ret =3D -EINVAL; goto err_put_port; } else if (ret) { - DRM_DEV_ERROR(dev, "failed to find panel and bridge node\n"); + dev_err_probe(dev, ret, "failed to find panel and bridge node\n"); goto err_put_port; } if (lvds->panel) --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B2AEC176FDF; Sun, 24 Mar 2024 23:37:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323468; cv=none; b=OHMnyJlxD2Jb5m+ZfTjttyTQWvj0jGz1fxLekoyRBTOzwDROMEOTsB2UoX4+wiRHAhjjGCtElExi80WfDU7ovxhcFjp0DtuyLmT897eUvA5C1R9EDt5iLkvKnHMBUfOc51TI+apgCgmjg9jVNhIFg9e3LsRoKdyTOTSAbUtenNw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323468; c=relaxed/simple; bh=WgZqRi5VOX6J/3ZZhpL+EoSiIi/iIK8rQSXlaTAdAaQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=iGdW7qq3sA2qjaB5TCFx8vwWrG79g2CG1OV6+92stZMdZZsvN7PlVwp348qrL8ZyV/4j6YTU2lcP86XLkZRmZbP3iKK14KgslFyxcPwa6j1d7L+mDSam4am/5P9yhWYbXuL2aybeW2Tt4zzJjRNMIfWcAygP2loQeXbO/c5elfk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=kCiyveN6; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="kCiyveN6" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 00152C433F1; Sun, 24 Mar 2024 23:37:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323467; bh=WgZqRi5VOX6J/3ZZhpL+EoSiIi/iIK8rQSXlaTAdAaQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=kCiyveN609ESnYdwFSje9lIyJHZGXVYrgxQSWxffB2cTynjAYPNpn9t0e4s5D6bp8 KIOnwqoA++WZSujXTqja+qUmRtlU5u4o6BtZaoChqBwqKOU+/EHpcrm2GQvsWzZOxc zWRNqKZgBziubufknK3Vk0/UU3CXPH0BmgLw6xyn6Zz03CzBmqvxJ+ryJsy+J9N0Qo 7i0mNrOklGYrhpnhJxJOjswGiXiiUkgec+p+ZZbPGiVpaPIZVEt+t36QmqSnkEPTRo RAntahniq3knCwW6CNQdTuaVfX1mAul+DLqdc/IHN9EfGbdUYVj6UE8zg2kl9wSAoO U51wQMGcTpbHw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Zhipeng Lu , Qiang Yu , Sasha Levin Subject: [PATCH 5.15 172/317] drm/lima: fix a memleak in lima_heap_alloc Date: Sun, 24 Mar 2024 19:32:32 -0400 Message-ID: <20240324233458.1352854-173-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Zhipeng Lu [ Upstream commit 04ae3eb470e52a3c41babe85ff8cee195e4dcbea ] When lima_vm_map_bo fails, the resources need to be deallocated, or there will be memleaks. Fixes: 6aebc51d7aef ("drm/lima: support heap buffer creation") Signed-off-by: Zhipeng Lu Signed-off-by: Qiang Yu Link: https://patchwork.freedesktop.org/patch/msgid/20240117071328.3811480-= 1-alexious@zju.edu.cn Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/gpu/drm/lima/lima_gem.c | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/drivers/gpu/drm/lima/lima_gem.c b/drivers/gpu/drm/lima/lima_ge= m.c index 09ea621a4806c..65c4327b6d10c 100644 --- a/drivers/gpu/drm/lima/lima_gem.c +++ b/drivers/gpu/drm/lima/lima_gem.c @@ -74,29 +74,34 @@ int lima_heap_alloc(struct lima_bo *bo, struct lima_vm = *vm) } else { bo->base.sgt =3D kmalloc(sizeof(*bo->base.sgt), GFP_KERNEL); if (!bo->base.sgt) { - sg_free_table(&sgt); - return -ENOMEM; + ret =3D -ENOMEM; + goto err_out0; } } =20 ret =3D dma_map_sgtable(dev, &sgt, DMA_BIDIRECTIONAL, 0); - if (ret) { - sg_free_table(&sgt); - kfree(bo->base.sgt); - bo->base.sgt =3D NULL; - return ret; - } + if (ret) + goto err_out1; =20 *bo->base.sgt =3D sgt; =20 if (vm) { ret =3D lima_vm_map_bo(vm, bo, old_size >> PAGE_SHIFT); if (ret) - return ret; + goto err_out2; } =20 bo->heap_size =3D new_size; return 0; + +err_out2: + dma_unmap_sgtable(dev, &sgt, DMA_BIDIRECTIONAL, 0); +err_out1: + kfree(bo->base.sgt); + bo->base.sgt =3D NULL; +err_out0: + sg_free_table(&sgt); + return ret; } =20 int lima_gem_create_handle(struct drm_device *dev, struct drm_file *file, --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 01F855A4D3; Sun, 24 Mar 2024 23:37:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323469; cv=none; b=lL1kwwwFYcYSDlZHaSe8O4R5cviP2OLCFUPHF6ul4ykTo/IKhO/6UbBKmFIRWEbH+sB50xjti4znoxNKGeoggars1JXbKEEQzQt/QMegDYB/AgkFiayQRJkrbSFVm6ABsqE+dikT1c9mFYzp6YEV6YcrTYMOUXu6hqriVsmjPDE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323469; c=relaxed/simple; bh=goEe/dMrrTfl1yemeoIUdBMMh4E8OH1Z3vR5aSMaV9o=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=o3oXYQh3Z0aizuEnCEqc95LKsRCw0APK+TeqMA1mkBzBXu1jjf5HV0ICIN6nfFsi+nmVhbqgLs2TxfadN/rWUw8wCdXixuES1ncKWqLUoc9PFrNIZ2k8/MvMrZ4CMLPYjdO6SEfg38KZ1Fyp9e0nJo9Aq8UpI8/tM37Cql0ZUsQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=uE5YiP8v; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="uE5YiP8v" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D64B4C433C7; Sun, 24 Mar 2024 23:37:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323468; bh=goEe/dMrrTfl1yemeoIUdBMMh4E8OH1Z3vR5aSMaV9o=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=uE5YiP8vgP8iltto3kLnb3Wp2BzOskvX+Z4p08g1KliNINI0kYj3Gr1AejcpdT+FB FA5INLUv38Y9HmUXE8lr+kImfPh/crWs4lowyltDpx3GGYqpHNuJFY8MC+xdaWDkQX B+iOfSUTE+662mgF3Nq3lwPX90N8uL5QuBYNN3GZCTbCbMz1ErQtENzU8UBGNfa+Jd c/UFB0jpwjUMogYvJsJJKEp8Znb8JpYvvkMCSmWdeui7G6VASZogx1eNUVDP0pijQI QIcqn1ku6TggCzCgTYN7/o/WduAttF5fEeFS/9nH375KwBu0qENUoQ+DvIYPdOHx+z uGbCX8p5fkvIw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Peter Robinson , Jon Hunter , Thierry Reding , Sameer Pujar , Laxman Dewangan , Vinod Koul , Sasha Levin Subject: [PATCH 5.15 173/317] dmaengine: tegra210-adma: Update dependency to ARCH_TEGRA Date: Sun, 24 Mar 2024 19:32:33 -0400 Message-ID: <20240324233458.1352854-174-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Peter Robinson [ Upstream commit 33b7db45533af240fe44e809f9dc4d604cf82d07 ] Update the architecture dependency to be the generic Tegra because the driver works on the four latest Tegra generations not just T210, if you build a kernel with a specific ARCH_TEGRA_xxx_SOC option that excludes 210 you don't get this driver. Fixes: 433de642a76c9 ("dmaengine: tegra210-adma: add support for Tegra186/T= egra194") Signed-off-by: Peter Robinson Cc: Jon Hunter Cc: Thierry Reding Cc: Sameer Pujar Cc: Laxman Dewangan Reviewed-by: Jon Hunter Link: https://lore.kernel.org/r/20240112093310.329642-2-pbrobinson@gmail.com Signed-off-by: Vinod Koul Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/dma/Kconfig | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/dma/Kconfig b/drivers/dma/Kconfig index e1beddcc8c84a..143fb0f8c07fa 100644 --- a/drivers/dma/Kconfig +++ b/drivers/dma/Kconfig @@ -645,16 +645,16 @@ config TEGRA20_APB_DMA =20 config TEGRA210_ADMA tristate "NVIDIA Tegra210 ADMA support" - depends on (ARCH_TEGRA_210_SOC || COMPILE_TEST) + depends on (ARCH_TEGRA || COMPILE_TEST) select DMA_ENGINE select DMA_VIRTUAL_CHANNELS help - Support for the NVIDIA Tegra210 ADMA controller driver. The - DMA controller has multiple DMA channels and is used to service - various audio clients in the Tegra210 audio processing engine - (APE). This DMA controller transfers data from memory to - peripheral and vice versa. It does not support memory to - memory data transfer. + Support for the NVIDIA Tegra210/Tegra186/Tegra194/Tegra234 ADMA + controller driver. The DMA controller has multiple DMA channels + and is used to service various audio clients in the Tegra210 + audio processing engine (APE). This DMA controller transfers + data from memory to peripheral and vice versa. It does not + support memory to memory data transfer. =20 config TIMB_DMA tristate "Timberdale FPGA DMA support" --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DCEFE17653B; Sun, 24 Mar 2024 23:37:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323470; cv=none; b=ffy+8JmqnvHQw73/5nyhSoXsAYf+oj3mKX8gqvLeF5tbFg8qRQ8afIFLAeDY0/mW8lbTU/6sYmgq/vGJd1GJeYEmugNJV5g3ofmJuCaADMKKXN9uBF6I69GBctzVOwXCWhQpT/0Hy0HuTWvEK2dzcV3FUNHXEvQycils67PNfXQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323470; c=relaxed/simple; bh=YQYjx84VF8Ytr/8x1QtpeDDlDyUAUDgeseEHLG2KJkc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=eDIcc1Rc/vpy+rp5sszDTFMV0YQUmgzn2hYKfef+qu0RFInk4PoKgVlPun++o18GIewgcQEOSqwmMzA6VG0vEkuwUkpRCk5PuDyKYa/luwcDAb9U0oi28tmrJHplvUs5VFeKDqqvotLwSTiZ8xa5LkRfEhukc8/3Vgj6U4KV5Iw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Dps6SYB7; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Dps6SYB7" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 27A44C43390; Sun, 24 Mar 2024 23:37:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323469; bh=YQYjx84VF8Ytr/8x1QtpeDDlDyUAUDgeseEHLG2KJkc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Dps6SYB7MzXBll5ZfPH2Os65ikZ7sMAWUUCOgE9oai8uL663QDj8dUykz+T1ThUeP 1GkMFlyxNwOKJ4A2VyEWiVOROmtGTS2UuSSlYQjopoXz5ldGMf4s7F4TMHzuSy4IRK BMJxnr4m6MCjjwx8ZV5WJXrwW3mtykOcDy4wMEcJ62fklSoivQLzvx81SvewJZywfY 2H6kFTIx/tqpznkyNMxmEBHwwJoGXfIF3m6Y2SwakItEFcVojVjtD6vENpI5smdzZx CBYjYaFNLXCaPyMSjEeLYHv8kVOOGLYoMEKdrvbRbn8A0zKCW9qB8cYZJTpN5tupOF UrBf9nJ0Gcmrw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Alexander Stein , Robert Foss , Sasha Levin Subject: [PATCH 5.15 174/317] media: tc358743: register v4l2 async device only after successful setup Date: Sun, 24 Mar 2024 19:32:34 -0400 Message-ID: <20240324233458.1352854-175-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Alexander Stein [ Upstream commit 87399f1ff92203d65f1febf5919429f4bb613a02 ] Ensure the device has been setup correctly before registering the v4l2 async device, thus allowing userspace to access. Signed-off-by: Alexander Stein Reviewed-by: Robert Foss Fixes: 4c5211a10039 ("[media] tc358743: register v4l2 asynchronous subdevic= e") Signed-off-by: Robert Foss Link: https://patchwork.freedesktop.org/patch/msgid/20240110090111.458115-1= -alexander.stein@ew.tq-group.com Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/media/i2c/tc358743.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/media/i2c/tc358743.c b/drivers/media/i2c/tc358743.c index 3205cd8298dd8..4c6852dc40a90 100644 --- a/drivers/media/i2c/tc358743.c +++ b/drivers/media/i2c/tc358743.c @@ -2108,9 +2108,6 @@ static int tc358743_probe(struct i2c_client *client) state->mbus_fmt_code =3D MEDIA_BUS_FMT_RGB888_1X24; =20 sd->dev =3D &client->dev; - err =3D v4l2_async_register_subdev(sd); - if (err < 0) - goto err_hdl; =20 mutex_init(&state->confctl_mutex); =20 @@ -2168,6 +2165,10 @@ static int tc358743_probe(struct i2c_client *client) if (err) goto err_work_queues; =20 + err =3D v4l2_async_register_subdev(sd); + if (err < 0) + goto err_work_queues; + v4l2_info(sd, "%s found @ 0x%x (%s)\n", client->name, client->addr << 1, client->adapter->name); =20 --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C2CB6279862; Sun, 24 Mar 2024 23:37:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323471; cv=none; b=FYjYZcHk0rPSvfh8xx+f2gOYmkUSjhl9SymStdBJ7I5cLCjsJdqzi0FL/665nXyc4GRo9J03Si3d+ALHE6NdRWyrGiPCk0aLIr9whQIS4yjTVD4scNHqsK4Dg31E6OquOBiUvHKMaPhDQa4eurL4Q6JWFj6oIc19QtutNQqN4b0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323471; c=relaxed/simple; bh=BEDj/bZZ8ydWaXAwhh7YWirDihFEP8hae+QSA1Zd6Mk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=rTGaIVzuERSUWkne6V2oUwbBBkLXE0qHX8w+gyjm3W+xug6wJs6eKqpv5ho5EGhP/MLNt9pFusC7rPPz8qgRQYGDUl4aK1vzRSa4fD8Y9+1uVkKLiraNEEJj4sDwlrlMUA8f/Bf/YROq6SRBWV1Z576aHxB6O5pq8EL4SUQ2Yjc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ZLCoUU21; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ZLCoUU21" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0B2F9C433F1; Sun, 24 Mar 2024 23:37:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323470; bh=BEDj/bZZ8ydWaXAwhh7YWirDihFEP8hae+QSA1Zd6Mk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ZLCoUU215JGBe5tzmEJZ7AfKDKHCjEUx2ATcvgl7F63MUm98SMrZxE2XQS6shuDr0 eax7235RxOgUqzHPZyF74CuCyMISRxSIOBrr1R9qs6H4RU4syVpIeFiETgp+IGNbgT kvUwOEY+5JJgF7nlDRQyUZfwB3h+ji5CyCwELWruKaleM1D9UyiSpG3zbqPPO5Y9TS c/Xw5k3wUPELS1zJqbK8ouDvH+m31psO6ARRg7c4GgFgJjzLOagRJ6k+lS+dhgChMS RVlvJV03enagsxpL47b0KZ7kyYOKiF02DUogwaFbpsqXnlyZOI5C9FeLT4ffJKIDY8 l52DEHtqj0NRw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= , Bjorn Helgaas , Sasha Levin Subject: [PATCH 5.15 175/317] PCI/DPC: Print all TLP Prefixes, not just the first Date: Sun, 24 Mar 2024 19:32:35 -0400 Message-ID: <20240324233458.1352854-176-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable From: Ilpo J=C3=A4rvinen [ Upstream commit 6568d82512b0a64809acff3d7a747362fa4288c8 ] The TLP Prefix Log Register consists of multiple DWORDs (PCIe r6.1 sec 7.9.14.13) but the loop in dpc_process_rp_pio_error() keeps reading from the first DWORD, so we print only the first PIO TLP Prefix (duplicated several times), and we never print the second, third, etc., Prefixes. Add the iteration count based offset calculation into the config read. Fixes: f20c4ea49ec4 ("PCI/DPC: Add eDPC support") Link: https://lore.kernel.org/r/20240118110815.3867-1-ilpo.jarvinen@linux.i= ntel.com Signed-off-by: Ilpo J=C3=A4rvinen [bhelgaas: add user-visible details to commit log] Signed-off-by: Bjorn Helgaas Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/pci/pcie/dpc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/pci/pcie/dpc.c b/drivers/pci/pcie/dpc.c index f21d64ae4ffcc..cf0d4ba2e157a 100644 --- a/drivers/pci/pcie/dpc.c +++ b/drivers/pci/pcie/dpc.c @@ -231,7 +231,7 @@ static void dpc_process_rp_pio_error(struct pci_dev *pd= ev) =20 for (i =3D 0; i < pdev->dpc_rp_log_size - 5; i++) { pci_read_config_dword(pdev, - cap + PCI_EXP_DPC_RP_PIO_TLPPREFIX_LOG, &prefix); + cap + PCI_EXP_DPC_RP_PIO_TLPPREFIX_LOG + i * 4, &prefix); pci_err(pdev, "TLP Prefix Header: dw%d, %#010x\n", i, prefix); } clear_status: --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A928827986B; Sun, 24 Mar 2024 23:37:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323472; cv=none; b=PT5UiXe7QU7SVOoNJyBuBzcfrRKzclgKcQgfmFsdbHuIis8iCtA9L3meKRVLxwhojr6Ycvif0x3ZyJzlWc6DrxISOyUBby4llliQA1thl10OsGl+okV5Qt5emZENRJKBJ0Hh4HtvGvkFPlVshqZiNtEWFNc+5kM4oyrrh7H2hFM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323472; c=relaxed/simple; bh=FcV2LyNeS5NvwWQZ7eNEJWAEk+UQUWpI6/3m2Ohd3jc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=hRSogJQtmqPIU7Uqw7080RV+YjGWvhqzQw8DSblGKMD4Ro4tDFn0Zyj9QzbwMExLLoKztU9xPYf0jRLXFQcJ0gGSsnyt5l8I+Zj//13nqbUF0WhwyFmbt/w38doxwRp6YSTZ+zhNiE87Z3nkdKO/zYRyDKmVYxlPF7KGeiKueuY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=X85ew9iV; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="X85ew9iV" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E7AFEC433C7; Sun, 24 Mar 2024 23:37:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323471; bh=FcV2LyNeS5NvwWQZ7eNEJWAEk+UQUWpI6/3m2Ohd3jc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=X85ew9iVlj8+LxYB/HrSmDrJcmjH3CUN9iyQpTFd2EBepWH9YzwCEqsFEHsiZigQy lL+zTJcRU4hmfZDF38ykO9aUslx4+URLP5mtKzWTtDOJwAPR+UA9S40HB8D4t/+fni UGQ2AULXPxKEgVM8vxvHDllA3o6D2ZFvet8II0StDO+IHr1E7BXCtouUZ0Ufnjk8oU rZD7i4wt1sNLGXs0ZUICj4mmzVUXb/jpCSsMQDJ7ErOTlBVQtAsj+RklKVqLSlE+Vf FeazBJhU0wPUvZCx94CqRBsPGEKrBxkHOCHGnx5cfD0SGkaGKOqmRMtWtoPScIG16z PhptrTAqaKBCw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Yang Jihong , Namhyung Kim , Sasha Levin Subject: [PATCH 5.15 176/317] perf record: Fix possible incorrect free in record__switch_output() Date: Sun, 24 Mar 2024 19:32:36 -0400 Message-ID: <20240324233458.1352854-177-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Yang Jihong [ Upstream commit aff10a165201f6f60cff225083ce301ad3f5d8f1 ] perf_data__switch() may not assign a legal value to 'new_filename'. In this case, 'new_filename' uses the on-stack value, which may cause a incorrect free and unexpected result. Fixes: 03724b2e9c45 ("perf record: Allow to limit number of reported perf.d= ata files") Signed-off-by: Yang Jihong Acked-by: Namhyung Kim Link: https://lore.kernel.org/r/20240119040304.3708522-2-yangjihong1@huawei= .com Signed-off-by: Namhyung Kim Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- tools/perf/builtin-record.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c index b3509d9d20cc2..b92c26f6aa1d7 100644 --- a/tools/perf/builtin-record.c +++ b/tools/perf/builtin-record.c @@ -1277,8 +1277,8 @@ static int record__switch_output(struct record *rec, bool at_exit) { struct perf_data *data =3D &rec->data; + char *new_filename =3D NULL; int fd, err; - char *new_filename; =20 /* Same Size: "2015122520103046"*/ char timestamp[] =3D "InvalidTimestamp"; --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 909F0279868; Sun, 24 Mar 2024 23:37:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323472; cv=none; b=u9s5kLHufWLCUiKz6eV3bssXFsU9KfLKaekkLT7N6OOglLXdSHdIGipSjhH/6qBn5nldpVO/RG7Gq76MWRrKkS3BxGnU/AZDCCl+JWzzg3v/1vtEDzBo9K00TqQBVaq3tjFb5p8m1Rb+5yozU9sveNGtfT6UMM1OAXIg9JQUSC4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323472; c=relaxed/simple; bh=uH2XdHzls3Z2hRxQe82z2NG7LfIiK2yis/hjhBMRhxs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ThvM5ZwYzNJXe4LNDm2xIT9NHP08ShUs9HfzMlUkQcSH48pO/Sjin7ZEz8xNvpqu9BIUz+v7/6h+coT7swQgd+uLdifgwpDBu801+g2MMz5yryZlEYSYTrspRhAZ7fKg05Tld6D9VB6PRPYSkbq5+3Eh6gYDjf8fCaKzjWEy4ZA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=IaycfeKn; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="IaycfeKn" Received: by smtp.kernel.org (Postfix) with ESMTPSA id CD762C433A6; Sun, 24 Mar 2024 23:37:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323472; bh=uH2XdHzls3Z2hRxQe82z2NG7LfIiK2yis/hjhBMRhxs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=IaycfeKn1AYh7KbKRpYC9DOR1bB0zmRSMi4DeL2ocLW6z2CtCournkZs9aEZOZOJb qDMFuSum2wYKq4QZn/juX8mMZHRPl3ApBx2tTfJVrJ+sAusZqG5WfC6lxoWhXaeVfv 0kO7wUGb4oKcjNNxMRF4jq4bili/Yb0oXe6lPf6/ZNPN85U76iNDCGY5tAvYZpPRp2 ApaHzo8G0LhVbvZJgC1T6xbm78yilSP6KrJjAVmc8BJtIdVKUnDJROYwDdoDVd0C+z 3gQC/qLKXzd3RhjOADeOK+gwxCaaj8XJaR/yzK7UJDobSilZjbXgEizdcCHDjRwWES XW+KGnF40SNaw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Mikhail Khvainitski , Jiri Kosina , Sasha Levin Subject: [PATCH 5.15 177/317] HID: lenovo: Add middleclick_workaround sysfs knob for cptkbd Date: Sun, 24 Mar 2024 19:32:37 -0400 Message-ID: <20240324233458.1352854-178-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Mikhail Khvainitski [ Upstream commit 2814646f76f8518326964f12ff20aaee70ba154d ] Previous attempt to autodetect well-behaving patched firmware introduced in commit 46a0a2c96f0f ("HID: lenovo: Detect quirk-free fw on cptkbd and stop applying workaround") has shown that there are false-positives on original firmware (on both 1st gen and 2nd gen keyboards) which causes the middle button click workaround to be mistakenly disabled. This commit adds explicit parameter to sysfs to control this workaround. Fixes: 46a0a2c96f0f ("HID: lenovo: Detect quirk-free fw on cptkbd and stop = applying workaround") Fixes: 43527a0094c1 ("HID: lenovo: Restrict detection of patched firmware o= nly to USB cptkbd") Signed-off-by: Mikhail Khvainitski Signed-off-by: Jiri Kosina Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/hid/hid-lenovo.c | 57 +++++++++++++++++++++++++++------------- 1 file changed, 39 insertions(+), 18 deletions(-) diff --git a/drivers/hid/hid-lenovo.c b/drivers/hid/hid-lenovo.c index 965bddaa90aee..44fd4a05ace38 100644 --- a/drivers/hid/hid-lenovo.c +++ b/drivers/hid/hid-lenovo.c @@ -53,10 +53,10 @@ struct lenovo_drvdata { /* 0: Up * 1: Down (undecided) * 2: Scrolling - * 3: Patched firmware, disable workaround */ u8 middlebutton_state; bool fn_lock; + bool middleclick_workaround_cptkbd; }; =20 #define map_key_clear(c) hid_map_usage_clear(hi, usage, bit, max, EV_KEY, = (c)) @@ -469,6 +469,36 @@ static ssize_t attr_sensitivity_store_cptkbd(struct de= vice *dev, return count; } =20 +static ssize_t attr_middleclick_workaround_show_cptkbd(struct device *dev, + struct device_attribute *attr, + char *buf) +{ + struct hid_device *hdev =3D to_hid_device(dev); + struct lenovo_drvdata *cptkbd_data =3D hid_get_drvdata(hdev); + + return snprintf(buf, PAGE_SIZE, "%u\n", + cptkbd_data->middleclick_workaround_cptkbd); +} + +static ssize_t attr_middleclick_workaround_store_cptkbd(struct device *dev, + struct device_attribute *attr, + const char *buf, + size_t count) +{ + struct hid_device *hdev =3D to_hid_device(dev); + struct lenovo_drvdata *cptkbd_data =3D hid_get_drvdata(hdev); + int value; + + if (kstrtoint(buf, 10, &value)) + return -EINVAL; + if (value < 0 || value > 1) + return -EINVAL; + + cptkbd_data->middleclick_workaround_cptkbd =3D !!value; + + return count; +} + =20 static struct device_attribute dev_attr_fn_lock =3D __ATTR(fn_lock, S_IWUSR | S_IRUGO, @@ -480,10 +510,16 @@ static struct device_attribute dev_attr_sensitivity_c= ptkbd =3D attr_sensitivity_show_cptkbd, attr_sensitivity_store_cptkbd); =20 +static struct device_attribute dev_attr_middleclick_workaround_cptkbd =3D + __ATTR(middleclick_workaround, S_IWUSR | S_IRUGO, + attr_middleclick_workaround_show_cptkbd, + attr_middleclick_workaround_store_cptkbd); + =20 static struct attribute *lenovo_attributes_cptkbd[] =3D { &dev_attr_fn_lock.attr, &dev_attr_sensitivity_cptkbd.attr, + &dev_attr_middleclick_workaround_cptkbd.attr, NULL }; =20 @@ -534,23 +570,7 @@ static int lenovo_event_cptkbd(struct hid_device *hdev, { struct lenovo_drvdata *cptkbd_data =3D hid_get_drvdata(hdev); =20 - if (cptkbd_data->middlebutton_state !=3D 3) { - /* REL_X and REL_Y events during middle button pressed - * are only possible on patched, bug-free firmware - * so set middlebutton_state to 3 - * to never apply workaround anymore - */ - if (hdev->product =3D=3D USB_DEVICE_ID_LENOVO_CUSBKBD && - cptkbd_data->middlebutton_state =3D=3D 1 && - usage->type =3D=3D EV_REL && - (usage->code =3D=3D REL_X || usage->code =3D=3D REL_Y)) { - cptkbd_data->middlebutton_state =3D 3; - /* send middle button press which was hold before */ - input_event(field->hidinput->input, - EV_KEY, BTN_MIDDLE, 1); - input_sync(field->hidinput->input); - } - + if (cptkbd_data->middleclick_workaround_cptkbd) { /* "wheel" scroll events */ if (usage->type =3D=3D EV_REL && (usage->code =3D=3D REL_WHEEL || usage->code =3D=3D REL_HWHEEL)) { @@ -1015,6 +1035,7 @@ static int lenovo_probe_cptkbd(struct hid_device *hde= v) cptkbd_data->middlebutton_state =3D 0; cptkbd_data->fn_lock =3D true; cptkbd_data->sensitivity =3D 0x05; + cptkbd_data->middleclick_workaround_cptkbd =3D true; lenovo_features_set_cptkbd(hdev); =20 ret =3D sysfs_create_group(&hdev->dev.kobj, &lenovo_attr_group_cptkbd); --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4063C279888; Sun, 24 Mar 2024 23:37:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323475; cv=none; b=U4//GtsamgHA1mEgoUO5Vc/m/HCm7Upl1ZVchjfJBlGKK5VT2oVOUXlMiGeqXhwCXzKC1gT006wqx+zM9s95C72GHa2tQdiu8AJv7LvefMjvjK7pb3p4BhMZ3SPVcOyvmw4CXj6YXCGHP+WRz3ZJ013/dEa/O1GOEyXlhEm3NC4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323475; c=relaxed/simple; bh=gOm8QUKYEAL5SWFQcl/aDpAeWskFHl4skoIU8sTcPuQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mM7O6tooQIXszIuGOA2n8zcOIs4X6EuNmgvO1yTPE09k9H8YdNuVS2bcPEFm3S9zOpUFT7FWEVXMadOSpgKD5w6iKRRVy5ggZipQHezd0lUGwYTytfo5ezaeBJRP90fg/qIOr1f5Q02Mx/ZETJtNeSQqZF7OBJACEHNvQbog2CI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Wwzdg64J; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Wwzdg64J" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B5A06C433F1; Sun, 24 Mar 2024 23:37:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323473; bh=gOm8QUKYEAL5SWFQcl/aDpAeWskFHl4skoIU8sTcPuQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Wwzdg64J+nz9Q1wBrBZSRXDkYzCWMZhLcbW0VmLIynRCZTaSCX8SHJoJZ12l94WdC cyarzKOGwG8GM/W+lYOqgwZ7BqroR1u0f01E6aEeb5UG7dzhGvlzquJkG0xvxunEHB hZqnhvb3y5qwsvfF8flsslWBunL++1HXSL3//GJ6PW+ruNlra1EYO/2Aa/gUiqWhhB slae4MwxwlYjktil4/uDV/P56DJcGk2Ipkfwa67XHnGfGNCgAKwgBCeb40X5b4r1Gz G6eZElQs2lCIoZpPtU1PYzMmqYyXHgtT8XBoaz9PW2p05zgccr5XR+JRD2jmfaVOTF VgNBAQlxbm0hQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Srinivasan Shanmugam , Alex Hung , Qingqing Zhuo , Rodrigo Siqueira , Aurabindo Pillai , Alex Deucher , Harry Wentland , Sasha Levin Subject: [PATCH 5.15 178/317] drm/amd/display: Fix a potential buffer overflow in 'dp_dsc_clock_en_read()' Date: Sun, 24 Mar 2024 19:32:38 -0400 Message-ID: <20240324233458.1352854-179-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Srinivasan Shanmugam [ Upstream commit 4b09715f1504f1b6e8dff0e9643630610bc05141 ] Tell snprintf() to store at most 10 bytes in the output buffer instead of 30. Fixes the below: drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_debugfs.c:1508 dp= _dsc_clock_en_read() error: snprintf() is printing too much 30 vs 10 Fixes: c06e09b76639 ("drm/amd/display: Add DSC parameters logging to debugf= s") Cc: Alex Hung Cc: Qingqing Zhuo Cc: Rodrigo Siqueira Cc: Aurabindo Pillai Cc: Alex Deucher Signed-off-by: Srinivasan Shanmugam Reviewed-by: Harry Wentland Signed-off-by: Alex Deucher Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c b/dr= ivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c index 6d694cea24201..ed2f6802b0e20 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c @@ -1304,7 +1304,7 @@ static ssize_t dp_dsc_clock_en_read(struct file *f, c= har __user *buf, const uint32_t rd_buf_size =3D 10; struct pipe_ctx *pipe_ctx; ssize_t result =3D 0; - int i, r, str_len =3D 30; + int i, r, str_len =3D 10; =20 rd_buf =3D kcalloc(rd_buf_size, sizeof(char), GFP_KERNEL); =20 --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 32C11279894; Sun, 24 Mar 2024 23:37:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323476; cv=none; b=Cl0D9QShVgM/YZU6HSs2thjiRAzdWvv2pj7NFEGSEGucGrcccAtXZKjnDaDO5Zl/38sfN5ldk9L8sy9HYdCZ6EKyEe8mUulQRUsara+hO+VpYAs3qwStAWBKp4iVm1TaF3Z5WANdakKbIECQ2E9R5SFTVW1C4ea1ja7R4J2b4Tw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323476; c=relaxed/simple; bh=Yd4pCZJ/C+Dzzm1hAAzMvgaigAz9I454/3rbKAWfS+I=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ifJusGJMUVUqQq+KTOZCb1KfMI40QHKp2ioLYHIL7jjRlLziVpVMD34FUuACHjwvCTC2Nr6vUYYAjpQ1jDrYf+yGnkL5uR8JJkztXmJIRdzwVLehVYpsb5olnAOL8/6xOFlKtZGAcZjBpkcaQUxEwvQ5BSDZYcy/gRhZgMO6sT8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=CTZ5KG+z; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="CTZ5KG+z" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 164B2C43394; Sun, 24 Mar 2024 23:37:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323475; bh=Yd4pCZJ/C+Dzzm1hAAzMvgaigAz9I454/3rbKAWfS+I=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=CTZ5KG+zavQ+qcTb8iCwqjyQxDcXYe9U0bj6NLm8v7C2/b2NhWDRznk328n0WE1YD pbswHgvEqPbXu9NxE65yUunq6VA8ZZ3FwNxK+8Hrch48Pav/mRBHoCZjbst1d/pQMM znowU8N4wYcatU2h66e3AAvOCYy4eSSXCTtjkO/v9DYqLjhaOzMEIXnJDncgGd/D6R cfK8DYNdlzE+velz7mqRwbq63cK/zGDeQfRxJmo2hGvtMaVyGI+ZbzQoKGk6YGG01e 9/BOVa6ZxwqtfL/HrLtHPutp8WWP23kc4CdwvdhRE2+sW1WoVuUAs4N0n/IV0bU83A lGiPI83J9D0Cg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Srinivasan Shanmugam , Wyatt Wood , Anthony Koo , Rodrigo Siqueira , Aurabindo Pillai , Alex Deucher , Sasha Levin Subject: [PATCH 5.15 179/317] drm/amd/display: Fix potential NULL pointer dereferences in 'dcn10_set_output_transfer_func()' Date: Sun, 24 Mar 2024 19:32:39 -0400 Message-ID: <20240324233458.1352854-180-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Srinivasan Shanmugam [ Upstream commit 9ccfe80d022df7c595f1925afb31de2232900656 ] The 'stream' pointer is used in dcn10_set_output_transfer_func() before the check if 'stream' is NULL. Fixes the below: drivers/gpu/drm/amd/amdgpu/../display/dc/hwss/dcn10/dcn10_hwseq.c:1892 dcn1= 0_set_output_transfer_func() warn: variable dereferenced before check 'stre= am' (see line 1875) Fixes: ddef02de0d71 ("drm/amd/display: add null checks before logging") Cc: Wyatt Wood Cc: Anthony Koo Cc: Rodrigo Siqueira Cc: Aurabindo Pillai Signed-off-by: Srinivasan Shanmugam Reviewed-by: Anthony Koo Signed-off-by: Alex Deucher Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c b/dr= ivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c index aa5a1fa68da05..bc603c8af3b66 100644 --- a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c +++ b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c @@ -1745,6 +1745,9 @@ bool dcn10_set_output_transfer_func(struct dc *dc, st= ruct pipe_ctx *pipe_ctx, { struct dpp *dpp =3D pipe_ctx->plane_res.dpp; =20 + if (!stream) + return false; + if (dpp =3D=3D NULL) return false; =20 @@ -1767,8 +1770,8 @@ bool dcn10_set_output_transfer_func(struct dc *dc, st= ruct pipe_ctx *pipe_ctx, } else dpp->funcs->dpp_program_regamma_pwl(dpp, NULL, OPP_REGAMMA_BYPASS); =20 - if (stream !=3D NULL && stream->ctx !=3D NULL && - stream->out_transfer_func !=3D NULL) { + if (stream->ctx && + stream->out_transfer_func) { log_tf(stream->ctx, stream->out_transfer_func, dpp->regamma_params.hw_points_num); --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8BDEF13C662; Sun, 24 Mar 2024 23:37:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323477; cv=none; b=I2/FnJUJ1EGR3BCEyDcsiDztfXayt+Krim7dSHPDreJI69Ndmn9ymZYWk955FtONRJnygf3aKxGBeiKrAfbSh5rYK83hud/U6MBO/5DW1By3kO9cn6DE00DQjZIGRiC+BPUmzpjv1SYyg53HfdT0wx6VAMWxu8k0BsdTskdM6x4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323477; c=relaxed/simple; bh=lqgJ4pjtgnbZVl4rOq7wjtiKpzEeNfUDxzln4C2LXAs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=LmpwpdyvNnzchxp3QnRCuKfQZsT5YtkAz+1alrUfHZjv472ZWTUZ1tETLEdRHJ3MdwnelvJ1iKU1QzB3mk2ezCEy4iCj4+Xyve4Cf9/Qs50tCzxVkkxS5MCVpSNMcaaUJRHQ270ngJ31e/Rz0A0FmSNuLwB9XSPBcWF1tXdQFYM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ixw9U5yN; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ixw9U5yN" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 57E21C433C7; Sun, 24 Mar 2024 23:37:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323476; bh=lqgJ4pjtgnbZVl4rOq7wjtiKpzEeNfUDxzln4C2LXAs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ixw9U5yNhdfqKo78dN2T+npwgeWflu/Ghl/o8E3l5utHuOkXz6Rw2xcioBu2mHWIa DeNgy562wK4rUTjUkXSevWgF8E9hfHyvAzcaucyqTMjv1fyTwuQG+Bc8SOgaIdCrZi t0Q5ypChB1YiWtDPxdhsZr3EFJjoGm3POrOTrflgVKtyaT/+11krbdclXD96uN84AV yLVJmlUBBn0lJai0ElLOH9UC65o2Lf+c9LTpCAd6VyGf2wq3oXAkp2nQXcAuz9uP/F J32xrxbi/jipJ/s9roOpUcsHh/m4MPB9qAWouES6/GWoFSIzHWu2y8gkGSxAZTL/P9 YtW/Pe0mOZKZQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Yang Jihong , Arnaldo Carvalho de Melo , Ian Rogers , Namhyung Kim , Sasha Levin Subject: [PATCH 5.15 180/317] perf evsel: Fix duplicate initialization of data->id in evsel__parse_sample() Date: Sun, 24 Mar 2024 19:32:40 -0400 Message-ID: <20240324233458.1352854-181-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Yang Jihong [ Upstream commit 4962aec0d684c8edb14574ccd0da53e4926ff834 ] data->id has been initialized at line 2362, remove duplicate initialization. Fixes: 3ad31d8a0df2 ("perf evsel: Centralize perf_sample initialization") Signed-off-by: Yang Jihong Reviewed-by: Arnaldo Carvalho de Melo Reviewed-by: Ian Rogers Signed-off-by: Namhyung Kim Link: https://lore.kernel.org/r/20240127025756.4041808-1-yangjihong1@huawei= .com Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- tools/perf/util/evsel.c | 1 - 1 file changed, 1 deletion(-) diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c index c87f9974c0c10..c19a583ca9f66 100644 --- a/tools/perf/util/evsel.c +++ b/tools/perf/util/evsel.c @@ -2252,7 +2252,6 @@ int evsel__parse_sample(struct evsel *evsel, union pe= rf_event *event, data->period =3D evsel->core.attr.sample_period; data->cpumode =3D event->header.misc & PERF_RECORD_MISC_CPUMODE_MASK; data->misc =3D event->header.misc; - data->id =3D -1ULL; data->data_src =3D PERF_MEM_DATA_SRC_NONE; =20 if (event->header.type !=3D PERF_RECORD_SAMPLE) { --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 28FC827989F; Sun, 24 Mar 2024 23:37:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323477; cv=none; b=g/5ZYvsDPt51EByhwbTUWZxXfP2hlOKl7Chq4+sjl3HHdqLP8W8cRSaEWegzSqaKI9ttr4CTVDjPdsosu8syldVrUmxAWDOgX18tpg5d/Su5xkUL3/4Ssp+IGOu1335rNRNxrtzDap1/xSxH75FPSG5H77uNuILrK4outnONUjo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323477; c=relaxed/simple; bh=AblLMCLKhGeVcNTlP4GxhDoq/j9RcxhSil5RYWBtqm4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=RDzjl1E929UvK+jgLn07w4Yx2uJnXza69TOZG8J+1IzpO0FjtYLKDEIl2k7Mj0Xmj5bPcDFcxTCqQj/ESK5THcTy113cNi04L8vGqEnKR+TU7Ul7GU2NaZK73zkIKou4ngwvf7IUurzfw/G2YBOo3FJOmGogdIKnhmvSfGGlZcQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=nA5qcW+Q; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="nA5qcW+Q" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6844CC43394; Sun, 24 Mar 2024 23:37:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323477; bh=AblLMCLKhGeVcNTlP4GxhDoq/j9RcxhSil5RYWBtqm4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nA5qcW+QJjQJxagNJp9qOf5RPxBDa9FLsURO1TKEk8SXhoYgu6UXcHtiVdZgf3BYH kc3ChXtGlrKhpSzccp9PEApgYC2j21fpiEVI/ukq9R6k9mSjWKBQzpp102YHm7DVUL PT5zYe4qOmwujsXIwmgT7O3pHswDUVgzZYGr0TUXlbo84YshJE47YSx8QzjZ8CwQ7K 0ebSPHhqpt3ZMQj46OXfZ2mRQJu701L0SidNet/mSh2rXo0dr1xYtf3W1QuAau8KP/ 9aRv8qhuXAmHmmYJvMorVrHkaPRR6qY8aLMSefwpdTsp3aadI/xYG2Clbano/i9KZG HFPGXvQ1Xh7sA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Johan Hovold , Bjorn Helgaas , Sasha Levin Subject: [PATCH 5.15 181/317] PCI/AER: Fix rootport attribute paths in ABI docs Date: Sun, 24 Mar 2024 19:32:41 -0400 Message-ID: <20240324233458.1352854-182-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Johan Hovold [ Upstream commit 0e7d29a39a546161ea3a49e8e282a43212d7ff68 ] The 'aer_stats' directory never made it into the sixth and final revision of the series adding the sysfs AER attributes. Link: https://lore.kernel.org/r/20240202131635.11405-2-johan+linaro@kernel.= org Link: https://lore.kernel.org/lkml/20180621184822.GB14136@bhelgaas-glaptop.= roam.corp.google.com/ Fixes: 12833017e581 ("PCI/AER: Add sysfs attributes for rootport cumulative= stats") Signed-off-by: Johan Hovold Signed-off-by: Bjorn Helgaas Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- Documentation/ABI/testing/sysfs-bus-pci-devices-aer_stats | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Documentation/ABI/testing/sysfs-bus-pci-devices-aer_stats b/Do= cumentation/ABI/testing/sysfs-bus-pci-devices-aer_stats index 860db53037a58..24087d5fd417a 100644 --- a/Documentation/ABI/testing/sysfs-bus-pci-devices-aer_stats +++ b/Documentation/ABI/testing/sysfs-bus-pci-devices-aer_stats @@ -100,19 +100,19 @@ collectors) that are AER capable. These indicate the = number of error messages as device, so these counters include them and are thus cumulative of all the = error messages on the PCI hierarchy originating at that root port. =20 -What: /sys/bus/pci/devices//aer_stats/aer_rootport_total_err_cor +What: /sys/bus/pci/devices//aer_rootport_total_err_cor Date: July 2018 KernelVersion: 4.19.0 Contact: linux-pci@vger.kernel.org, rajatja@google.com Description: Total number of ERR_COR messages reported to rootport. =20 -What: /sys/bus/pci/devices//aer_stats/aer_rootport_total_err_fatal +What: /sys/bus/pci/devices//aer_rootport_total_err_fatal Date: July 2018 KernelVersion: 4.19.0 Contact: linux-pci@vger.kernel.org, rajatja@google.com Description: Total number of ERR_FATAL messages reported to rootport. =20 -What: /sys/bus/pci/devices//aer_stats/aer_rootport_total_err_nonf= atal +What: /sys/bus/pci/devices//aer_rootport_total_err_nonfatal Date: July 2018 KernelVersion: 4.19.0 Contact: linux-pci@vger.kernel.org, rajatja@google.com --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1019513C670; Sun, 24 Mar 2024 23:37:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323479; cv=none; b=aaVP/TdZQEbMiTnJ9pt29H/910MvQXM6hK3KBPbp6IDFoeL6aFw3Pcf+K3KFJOEQMRJOwfb1IfGtYJTtCCyxIcLNQYVXMlnOvt2swJ8y6zljJpiSPgbfB8aUz89nSV8Pqpoq11NBgxJAqKg8iUul7OS+dggl3zCAdaRJCKH6cOI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323479; c=relaxed/simple; bh=1DhKusQ9HhD6fC5v6ak+Lgulwfz5amcq1rUMjvB5gtY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=fy4MS46S2mgQlxox7tHPynKK33C9UrLNbawtA9SPnwdKkqZkHNRIFyQfrJbV07L+iG5zSBKtiT1dRDzQCI0Fxx2BXrBukx0re7/LVAekFk3hxUcaNSwZ2VoyybhOZtsPr1oq846QVdcpaZZOQkT3zzOBSgWctJCc5EdhMMtZEdI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=aM6EO2ui; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="aM6EO2ui" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4DC3FC433A6; Sun, 24 Mar 2024 23:37:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323477; bh=1DhKusQ9HhD6fC5v6ak+Lgulwfz5amcq1rUMjvB5gtY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=aM6EO2uiu90nYLEt2WV4Vu1eBmSvJELUdBvtJ9SUyRAxc1kARPq2G5JHm94OMaPfQ e+i9TXE7f2wvPXbRa1yS/Oqy4D97R0af5g5XAQDK5x7JhRZz1cW3EDkLX7gjfQ6uCM q77F7+9r0qtrzFJOK0y/jfmBikG2oO2wjXqwLH9lDNxprHG8h+fOwUzTwzq4mLtq5+ k6vUY2AW6s409noeVzwsrsde9ZWufIXM4R0w8GPSYrnPYdH7GQ9fNYjurfHXEFswRC ChUOKLBm8RzQL1z95h6kmMUtVoFmUe/l9trLnfF91TzQco75G53vcX4jbqwvMEkxqW Stpm9Hq2NqoLA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Igor Prusov , Jerome Brunet , Sasha Levin Subject: [PATCH 5.15 182/317] clk: meson: Add missing clocks to axg_clk_regmaps Date: Sun, 24 Mar 2024 19:32:42 -0400 Message-ID: <20240324233458.1352854-183-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Igor Prusov [ Upstream commit ba535bce57e71463a86f8b33a0ea88c26e3a6418 ] Some clocks were missing from axg_clk_regmaps, which caused kernel panic during cat /sys/kernel/debug/clk/clk_summary [ 57.349402] Unable to handle kernel NULL pointer dereference at virtual = address 00000000000001fc ... [ 57.430002] pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE= =3D--) [ 57.436900] pc : regmap_read+0x1c/0x88 [ 57.440608] lr : clk_regmap_gate_is_enabled+0x3c/0xb0 [ 57.445611] sp : ffff800082f1b690 [ 57.448888] x29: ffff800082f1b690 x28: 0000000000000000 x27: ffff800080e= b9a70 [ 57.455961] x26: 0000000000000007 x25: 0000000000000016 x24: 00000000000= 00000 [ 57.463033] x23: ffff800080e8b488 x22: 0000000000000015 x21: ffff00000e7= e7000 [ 57.470106] x20: ffff00000400ec00 x19: 0000000000000000 x18: fffffffffff= fffff [ 57.477178] x17: 0000000000000000 x16: 0000000000000000 x15: ffff0000042= a3000 [ 57.484251] x14: 0000000000000000 x13: ffff0000042a2fec x12: 0000000005f= 5e100 [ 57.491323] x11: abcc77118461cefd x10: 0000000000000020 x9 : ffff8000805= e4b24 [ 57.498396] x8 : ffff0000028063c0 x7 : ffff800082f1b710 x6 : ffff800082f= 1b710 [ 57.505468] x5 : 00000000ffffffd0 x4 : ffff800082f1b6e0 x3 : 00000000000= 01000 [ 57.512541] x2 : ffff800082f1b6e4 x1 : 000000000000012c x0 : 00000000000= 00000 [ 57.519615] Call trace: [ 57.522030] regmap_read+0x1c/0x88 [ 57.525393] clk_regmap_gate_is_enabled+0x3c/0xb0 [ 57.530050] clk_core_is_enabled+0x44/0x120 [ 57.534190] clk_summary_show_subtree+0x154/0x2f0 [ 57.538847] clk_summary_show_subtree+0x220/0x2f0 [ 57.543505] clk_summary_show_subtree+0x220/0x2f0 [ 57.548162] clk_summary_show_subtree+0x220/0x2f0 [ 57.552820] clk_summary_show_subtree+0x220/0x2f0 [ 57.557477] clk_summary_show_subtree+0x220/0x2f0 [ 57.562135] clk_summary_show_subtree+0x220/0x2f0 [ 57.566792] clk_summary_show_subtree+0x220/0x2f0 [ 57.571450] clk_summary_show+0x84/0xb8 [ 57.575245] seq_read_iter+0x1bc/0x4b8 [ 57.578954] seq_read+0x8c/0xd0 [ 57.582059] full_proxy_read+0x68/0xc8 [ 57.585767] vfs_read+0xb0/0x268 [ 57.588959] ksys_read+0x70/0x108 [ 57.592236] __arm64_sys_read+0x24/0x38 [ 57.596031] invoke_syscall+0x50/0x128 [ 57.599740] el0_svc_common.constprop.0+0x48/0xf8 [ 57.604397] do_el0_svc+0x28/0x40 [ 57.607675] el0_svc+0x34/0xb8 [ 57.610694] el0t_64_sync_handler+0x13c/0x158 [ 57.615006] el0t_64_sync+0x190/0x198 [ 57.618635] Code: a9bd7bfd 910003fd a90153f3 aa0003f3 (b941fc00) [ 57.624668] ---[ end trace 0000000000000000 ]--- [jbrunet: add missing Fixes tag] Signed-off-by: Igor Prusov Link: https://lore.kernel.org/r/20240202172537.1.I64656c75d84284bc91e6126b5= 0b33c502be7c42a@changeid Fixes: 14ebb3154b8f ("clk: meson: axg: add Video Clocks") Signed-off-by: Jerome Brunet Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/clk/meson/axg.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/clk/meson/axg.c b/drivers/clk/meson/axg.c index 2ad3801398dc1..7802dabb26f6d 100644 --- a/drivers/clk/meson/axg.c +++ b/drivers/clk/meson/axg.c @@ -2144,7 +2144,9 @@ static struct clk_regmap *const axg_clk_regmaps[] =3D= { &axg_vclk_input, &axg_vclk2_input, &axg_vclk_div, + &axg_vclk_div1, &axg_vclk2_div, + &axg_vclk2_div1, &axg_vclk_div2_en, &axg_vclk_div4_en, &axg_vclk_div6_en, --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5B60713C672; Sun, 24 Mar 2024 23:37:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323479; cv=none; b=LX8hmcmFXxrfBEJuL0WyyN+dJgH/FaueAp9BX/X6gTgHRon/Qli1QWh/C/SqoVPu2uCd0w9qKpeAn20Tx26AXWZfFJlGiUa5aZeaqPEi9yWCpJ5hyL9rASybLuIxmiQi1S5Z6uCjJJNLCZmjREp+Q3rQ4A188kszuGNO25zsNas= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323479; c=relaxed/simple; bh=jiL9wfyJXlDE5MK27tjQQfAKCMTvZq36JY4t91RIOjA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ItUx9/2z1Q6FInjQy+rq7rKlJY9yiqEQXT/bfaHQ2bqH5E2zFvv85NSMCfpaP/ceGAgZuBRIrwvpvEFZW+rQw67sqUlfF+PX635/2kp/kprdZVWOP8HfrYwX3E92as5evZEyaqNZG7J0/nA6LAPo+KfY329DWVm6pMPFnK5bzWM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=oEbqJETY; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="oEbqJETY" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 349A3C43390; Sun, 24 Mar 2024 23:37:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323478; bh=jiL9wfyJXlDE5MK27tjQQfAKCMTvZq36JY4t91RIOjA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=oEbqJETY6ouO8KEkO+z6wTooNmD9cTSIOt0eFi9tWyJkh5TtjzBZddRgeCkrVxt+b TC1K3ilX9ZjauyHV4Iy1QqLTv3WPAxM7g8Wx2MXqFAtFsw1Bkqfwm+bszHjnwhO1hw Xp2XiSPT8x9H+rkEB4JXkG8DwTem318ylV/0PUlMMKExgkL59qTpot/uDAr+yeIK6g 1CYmnU2eYje3agreM0eMb64NSO1nM9TApqjW258QnZhoPZ8I9CPX+0ewZW6lApAkkX bX37XE6kv3IVc0g5aq7ZYpjHGVWfxIWGDQsoHsVxryfdKW4V3cdKEo4lMhR4AIRNKg SH5RYcpoLTD6g== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Nikita Zhandarovich , Mauro Carvalho Chehab , Hans Verkuil , Sasha Levin Subject: [PATCH 5.15 183/317] media: em28xx: annotate unchecked call to media_device_register() Date: Sun, 24 Mar 2024 19:32:43 -0400 Message-ID: <20240324233458.1352854-184-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Nikita Zhandarovich [ Upstream commit fd61d77a3d28444b2635f0c8b5a2ecd6a4d94026 ] Static analyzers generate alerts for an unchecked call to `media_device_register()`. However, in this case, the device will work reliably without the media controller API. Add a comment above the call to prevent future unnecessary changes. Suggested-by: Mauro Carvalho Chehab Fixes: 37ecc7b1278f ("[media] em28xx: add media controller support") Signed-off-by: Nikita Zhandarovich Signed-off-by: Hans Verkuil Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/media/usb/em28xx/em28xx-cards.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/media/usb/em28xx/em28xx-cards.c b/drivers/media/usb/em= 28xx/em28xx-cards.c index 92d867fc519c4..8ab10518957c4 100644 --- a/drivers/media/usb/em28xx/em28xx-cards.c +++ b/drivers/media/usb/em28xx/em28xx-cards.c @@ -4099,6 +4099,10 @@ static int em28xx_usb_probe(struct usb_interface *in= tf, * topology will likely change after the load of the em28xx subdrivers. */ #ifdef CONFIG_MEDIA_CONTROLLER + /* + * No need to check the return value, the device will still be + * usable without media controller API. + */ retval =3D media_device_register(dev->media_dev); #endif =20 --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 38DC21774CE; Sun, 24 Mar 2024 23:37:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323481; cv=none; b=srzDOJk3GvQGDU9JePmksgvm9Om2sENv6Mfe3LoXJOl0+CGMPZ9sMg0Q6iu5UCohsiIhqdPVuAAhgBEFUv2RfW2pliK0muI8iTWTkW5afflSYnwAacVh9Q7T8HNN9+9UVeq67c8ZmKGSi9SyYJFHShktZM2MANZdkcH23MC/Eh4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323481; c=relaxed/simple; bh=VybEtaiHM3RUVHWaxHA3J6K57xG86oXNEcOzIuXJSE4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=uetNfV3hP1PjG6gj3JNM3Zj1OjfXwVyEDMIbVTHWFtdPUfeRweF168Hj1h04OOJYwNDBBpnToHuWrB3Wo3MlVaQ6To9F7Mfwo9Hn2HdbeLNZUwgiPpX7ZYKOZILLxoeKR4OyJM0FCNdaxdw2GH5CM9QvgEjwqrXXP+3BIkLUOiY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=gJuiESTM; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="gJuiESTM" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2DA52C43399; Sun, 24 Mar 2024 23:37:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323479; bh=VybEtaiHM3RUVHWaxHA3J6K57xG86oXNEcOzIuXJSE4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=gJuiESTMWWqJ8IzynIsmDvFFfiReT8BTDRI8sAtDhaKMQFTHKovH1VyYhh2eUkSxx Os8v1hohmTWEGg/UfELsOozi8IlGTgmuXE6zV+m4LQ7aNlImUVXv3c9aQIYf/l8oA3 BEHhIhHDXakb7FGP0nOCb3jVGvKGLmVdIYWXGsxcfCeeRy1OarC4oZSbDsW1HNNQlk eMYBHaxi2f/gWm8ZM93TqTtn8rxeAJVIYR1RCtUYw9TjWJhAs6c7ZLa6J8xHED/iKj PdaT6ml/rm1qPO2++rWafP4zpGM5Uyq1Dk3Ca+avG2OiB1hDNGYG09iXwxQfu4rHn1 esE/D65Ttb7Zw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Zhipeng Lu , Hans Verkuil , Sasha Levin Subject: [PATCH 5.15 184/317] media: v4l2-tpg: fix some memleaks in tpg_alloc Date: Sun, 24 Mar 2024 19:32:44 -0400 Message-ID: <20240324233458.1352854-185-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Zhipeng Lu [ Upstream commit 8cf9c5051076e0eb958f4361d50d8b0c3ee6691c ] In tpg_alloc, resources should be deallocated in each and every error-handling paths, since they are allocated in for statements. Otherwise there would be memleaks because tpg_free is called only when tpg_alloc return 0. Fixes: 63881df94d3e ("[media] vivid: add the Test Pattern Generator") Signed-off-by: Zhipeng Lu Signed-off-by: Hans Verkuil Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/media/common/v4l2-tpg/v4l2-tpg-core.c | 52 +++++++++++++++---- 1 file changed, 42 insertions(+), 10 deletions(-) diff --git a/drivers/media/common/v4l2-tpg/v4l2-tpg-core.c b/drivers/media/= common/v4l2-tpg/v4l2-tpg-core.c index 7607b516a7c43..68968bfa2edc1 100644 --- a/drivers/media/common/v4l2-tpg/v4l2-tpg-core.c +++ b/drivers/media/common/v4l2-tpg/v4l2-tpg-core.c @@ -113,6 +113,7 @@ int tpg_alloc(struct tpg_data *tpg, unsigned max_w) { unsigned pat; unsigned plane; + int ret =3D 0; =20 tpg->max_line_width =3D max_w; for (pat =3D 0; pat < TPG_MAX_PAT_LINES; pat++) { @@ -121,14 +122,18 @@ int tpg_alloc(struct tpg_data *tpg, unsigned max_w) =20 tpg->lines[pat][plane] =3D vzalloc(array3_size(max_w, 2, pixelsz)); - if (!tpg->lines[pat][plane]) - return -ENOMEM; + if (!tpg->lines[pat][plane]) { + ret =3D -ENOMEM; + goto free_lines; + } if (plane =3D=3D 0) continue; tpg->downsampled_lines[pat][plane] =3D vzalloc(array3_size(max_w, 2, pixelsz)); - if (!tpg->downsampled_lines[pat][plane]) - return -ENOMEM; + if (!tpg->downsampled_lines[pat][plane]) { + ret =3D -ENOMEM; + goto free_lines; + } } } for (plane =3D 0; plane < TPG_MAX_PLANES; plane++) { @@ -136,18 +141,45 @@ int tpg_alloc(struct tpg_data *tpg, unsigned max_w) =20 tpg->contrast_line[plane] =3D vzalloc(array_size(pixelsz, max_w)); - if (!tpg->contrast_line[plane]) - return -ENOMEM; + if (!tpg->contrast_line[plane]) { + ret =3D -ENOMEM; + goto free_contrast_line; + } tpg->black_line[plane] =3D vzalloc(array_size(pixelsz, max_w)); - if (!tpg->black_line[plane]) - return -ENOMEM; + if (!tpg->black_line[plane]) { + ret =3D -ENOMEM; + goto free_contrast_line; + } tpg->random_line[plane] =3D vzalloc(array3_size(max_w, 2, pixelsz)); - if (!tpg->random_line[plane]) - return -ENOMEM; + if (!tpg->random_line[plane]) { + ret =3D -ENOMEM; + goto free_contrast_line; + } } return 0; + +free_contrast_line: + for (plane =3D 0; plane < TPG_MAX_PLANES; plane++) { + vfree(tpg->contrast_line[plane]); + vfree(tpg->black_line[plane]); + vfree(tpg->random_line[plane]); + tpg->contrast_line[plane] =3D NULL; + tpg->black_line[plane] =3D NULL; + tpg->random_line[plane] =3D NULL; + } +free_lines: + for (pat =3D 0; pat < TPG_MAX_PAT_LINES; pat++) + for (plane =3D 0; plane < TPG_MAX_PLANES; plane++) { + vfree(tpg->lines[pat][plane]); + tpg->lines[pat][plane] =3D NULL; + if (plane =3D=3D 0) + continue; + vfree(tpg->downsampled_lines[pat][plane]); + tpg->downsampled_lines[pat][plane] =3D NULL; + } + return ret; } EXPORT_SYMBOL_GPL(tpg_alloc); =20 --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C4B8D1774CA; Sun, 24 Mar 2024 23:38:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323480; cv=none; b=ESyiyVI1Dz7dT1kMZzVca+XbG6JznUPp9Aim9P3izuenmEA4Msup0Kr+cq21BI91c2GA65vHrRbETLbFcmjgG4t3OcHi5w8FvsaN/xNOFRxl85KMrRpmO2Ji3EYT9h7+hleBa7R8a5isnrzhGdjwQ4StkKAavCSJoh3Whu6y/g4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323480; c=relaxed/simple; bh=LqNuI54SZG/j3JOM/Yao4FqRkZ3a3sKSz8TdXZ2yarI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=i3xHUUJSUXMXujX3RhMF7/O16NcM9fwoS5J3UFAo0P24uGoOrAiToNZbD5f5JAJokFuvxOWwXmGALM3VGjj6hQvDONJUk90hwOEERl4o/Hq4jDm8+9WA2dLanwyPfCZQ4yLc/xEYfo7fzDv6BrZH3ZxvZQKeuzdN6gyyW8VLFbk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=quPfKd+t; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="quPfKd+t" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 10F9BC433F1; Sun, 24 Mar 2024 23:37:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323480; bh=LqNuI54SZG/j3JOM/Yao4FqRkZ3a3sKSz8TdXZ2yarI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=quPfKd+t2cwKZWMc0Ij+1yXyLeH7QiibMbPZ9+cFRNNqmIy58YfjBIDHORQRLZv5t 0lM/Yt9/LP0G7j2XFLQOa0E52LFUCuuYEGsCOOi1J+BlxxQFMvqBhmm32/AQIbVXit FGcGFlc9XLwwsOZxTF1I9oZtJeHKs+wwzF4y/xK2K67EItM/ILQqp192dD0513iDFz bSD36vxzScsiNxEkLA4h+0IbZKV+sLnfdCL5o/5ba1bbOJlxCjYcrRcY4SLxAvEie7 ZDT4SxEPZoWaqV7sLgCGiThVjMlk5reoy9bTVkB60bUHyOfjSe6BsD7uKod1EqCTae NcyvfzRZuYXyQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Zhipeng Lu , Hans Verkuil , Sasha Levin Subject: [PATCH 5.15 185/317] media: v4l2-mem2mem: fix a memleak in v4l2_m2m_register_entity Date: Sun, 24 Mar 2024 19:32:45 -0400 Message-ID: <20240324233458.1352854-186-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Zhipeng Lu [ Upstream commit 8f94b49a5b5d386c038e355bef6347298aabd211 ] The entity->name (i.e. name) is allocated in v4l2_m2m_register_entity but isn't freed in its following error-handling paths. This patch adds such deallocation to prevent memleak of entity->name. Fixes: be2fff656322 ("media: add helpers for memory-to-memory media control= ler") Signed-off-by: Zhipeng Lu Signed-off-by: Hans Verkuil Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/media/v4l2-core/v4l2-mem2mem.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/media/v4l2-core/v4l2-mem2mem.c b/drivers/media/v4l2-co= re/v4l2-mem2mem.c index 8aeed39c415f2..5677bccd583e9 100644 --- a/drivers/media/v4l2-core/v4l2-mem2mem.c +++ b/drivers/media/v4l2-core/v4l2-mem2mem.c @@ -1062,11 +1062,17 @@ static int v4l2_m2m_register_entity(struct media_de= vice *mdev, entity->function =3D function; =20 ret =3D media_entity_pads_init(entity, num_pads, pads); - if (ret) + if (ret) { + kfree(entity->name); + entity->name =3D NULL; return ret; + } ret =3D media_device_register_entity(mdev, entity); - if (ret) + if (ret) { + kfree(entity->name); + entity->name =3D NULL; return ret; + } =20 return 0; } --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C82D11774E1; Sun, 24 Mar 2024 23:38:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323482; cv=none; b=uAKkKMorPYuGEBlcqBBe4oOlXuThUUDdlLcDiU4DGTqbTCCD/hyo2q1J5sngm8EVuaQv7aE+v14YfbufcyqWnVR23oecxL37wpgUjr2JQ4IsSeaPdBpqhA88o0qOB8QsfssGeutlyYFKpbqd1uprx8b6PYakeeA2HaaKlTwSGUk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323482; c=relaxed/simple; bh=AMhjcr4iHcg/uPkM3R5hsZYfMAcH9jNbS1n+IIKneoc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=eVGWIgvRJwbV1sfwXGhzvO/a79q/GJK7VR28/ye8vD6yE+n6g1I8jkyc1HOf/gFOsa81fA9viv0L6utmh7Pp/GHW6gbAyCzIB9ei72txHWDJr0Jfue0ksvFgsMQ9CuxK7+DzZlvdDC0oBWUAzY4UydORMxwvcfVOHFanBxGSQIg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=XQ5LT+6O; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="XQ5LT+6O" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E85ABC43390; Sun, 24 Mar 2024 23:38:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323481; bh=AMhjcr4iHcg/uPkM3R5hsZYfMAcH9jNbS1n+IIKneoc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=XQ5LT+6OVBHYn2+3sR8fwiUkj3d+quS/yVUVQjnj4nUTXHEa8c4chuDuBGHR2Ff/e TP6rhF8Hdk9BBrkMKe1Gi0+trvnEDnmR7RiXJim4P5Gu5gevgY2SJAqNk4h62vtnEv 0AO5tOhMP9xSMnWyJzcUePh68XNwtVUEacJM5gJq80f1GGf+9FY0mwBbLnebMErcvt t9ScEq/WAQprCAJkLmMgwdAMnXXXB9PXl/nnIP7L24bIcPnS+Lut70NbEULfDPhosb y8ADSFyiy8lWjYulHT9SV/CDFuUg4IoYvgNAcYvguBIV1+u6q0nrfN3wAmqWwo5dBg pAQf0v3JDCWVQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Zhipeng Lu , Mauro Carvalho Chehab , Sasha Levin Subject: [PATCH 5.15 186/317] media: edia: dvbdev: fix a use-after-free Date: Sun, 24 Mar 2024 19:32:46 -0400 Message-ID: <20240324233458.1352854-187-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Zhipeng Lu [ Upstream commit 8c64f4cdf4e6cc5682c52523713af8c39c94e6d5 ] In dvb_register_device, *pdvbdev is set equal to dvbdev, which is freed in several error-handling paths. However, *pdvbdev is not set to NULL after dvbdev's deallocation, causing use-after-frees in many places, for example, in the following call chain: budget_register |-> dvb_dmxdev_init |-> dvb_register_device |-> dvb_dmxdev_release |-> dvb_unregister_device |-> dvb_remove_device |-> dvb_device_put |-> kref_put When calling dvb_unregister_device, dmxdev->dvbdev (i.e. *pdvbdev in dvb_register_device) could point to memory that had been freed in dvb_register_device. Thereafter, this pointer is transferred to kref_put and triggering a use-after-free. Link: https://lore.kernel.org/linux-media/20240203134046.3120099-1-alexious= @zju.edu.cn Fixes: b61901024776 ("V4L/DVB (5244): Dvbdev: fix illegal re-usage of fileo= perations struct") Signed-off-by: Zhipeng Lu Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/media/dvb-core/dvbdev.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/media/dvb-core/dvbdev.c b/drivers/media/dvb-core/dvbde= v.c index 3a83e8e092568..23a0c209744dc 100644 --- a/drivers/media/dvb-core/dvbdev.c +++ b/drivers/media/dvb-core/dvbdev.c @@ -504,6 +504,7 @@ int dvb_register_device(struct dvb_adapter *adap, struc= t dvb_device **pdvbdev, dvbdevfops =3D kmemdup(template->fops, sizeof(*dvbdevfops), GFP_KERNEL); if (!dvbdevfops) { kfree(dvbdev); + *pdvbdev =3D NULL; mutex_unlock(&dvbdev_register_lock); return -ENOMEM; } @@ -512,6 +513,7 @@ int dvb_register_device(struct dvb_adapter *adap, struc= t dvb_device **pdvbdev, if (!new_node) { kfree(dvbdevfops); kfree(dvbdev); + *pdvbdev =3D NULL; mutex_unlock(&dvbdev_register_lock); return -ENOMEM; } @@ -545,6 +547,7 @@ int dvb_register_device(struct dvb_adapter *adap, struc= t dvb_device **pdvbdev, } list_del (&dvbdev->list_head); kfree(dvbdev); + *pdvbdev =3D NULL; up_write(&minor_rwsem); mutex_unlock(&dvbdev_register_lock); return -EINVAL; @@ -567,6 +570,7 @@ int dvb_register_device(struct dvb_adapter *adap, struc= t dvb_device **pdvbdev, dvb_media_device_free(dvbdev); list_del (&dvbdev->list_head); kfree(dvbdev); + *pdvbdev =3D NULL; mutex_unlock(&dvbdev_register_lock); return ret; } @@ -585,6 +589,7 @@ int dvb_register_device(struct dvb_adapter *adap, struc= t dvb_device **pdvbdev, dvb_media_device_free(dvbdev); list_del (&dvbdev->list_head); kfree(dvbdev); + *pdvbdev =3D NULL; mutex_unlock(&dvbdev_register_lock); return PTR_ERR(clsdev); } --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AFDDA1774DC; Sun, 24 Mar 2024 23:38:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323482; cv=none; b=QRhhAiIQLd+DBHD9MtlSlZbMJU9B7lLIsAy2DvhnFMi6pBdo2Y3L19xfQ8B+cZCzFCJOR0rLvdAfZgJvIH1oIjBa6mCkToD2+R4Ypc8bGQYHAsSvQEkt1TAsr9v7GN2BGir+CI6MdMJqUoH6yFQ8cp8eXFB8cupHQZVE3FLFjkA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323482; c=relaxed/simple; bh=J5+ydmUTB6GHW5Flj4avryRijwC5zl0W+aYGABAuqX8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PgJI91quu4wW3SLzgNHa64jxsqGhpYm0Gi98J/0cipWuAxK/762FiRwnflJaN+o+PvIPYQAuUK1wW0eUBi///+fo6xl5lwvdiYgGWqje43bzpY8wzYF/UHikiJrj2mkg/fYYmaG9JQlYsCIj1h3rHtROzQVFZcn73V/NaKVYwKo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=etQ7rCGT; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="etQ7rCGT" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D5BF7C43394; Sun, 24 Mar 2024 23:38:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323482; bh=J5+ydmUTB6GHW5Flj4avryRijwC5zl0W+aYGABAuqX8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=etQ7rCGTULQhHPdfo1fZcQ7/S2J6TGGeXyTxPEGGQEyC6xcukaXaga0G+gO9LvbLH ELvqCmzOUNR7X/LOcnlH6f6B/H0O2dEZ/7PmpHDYxOV7PEsXT3CX/xidMgFuLvfKn+ gAvTayKe84diRQUjCyeBP3H4kG7nXMpAlQs0vhF/RKvmH2WXcXX/l6l84PI+rQUegT WsObAzhtmBKQHnq5YLnVb/URI/TsaoSeip4QG3j1eNaI43g/bZWLj2jcdEbKiqTjzk F2/nXprqXpEE+ME6L2sKY32A3osCV6b7NBW5NRQCKgxG1QIvISewVQO0yqq4S0pGJ5 pO/PCYTN09rYg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Chen-Yu Tsai , AngeloGioacchino Del Regno , Linus Walleij , Sasha Levin Subject: [PATCH 5.15 187/317] pinctrl: mediatek: Drop bogus slew rate register range for MT8192 Date: Sun, 24 Mar 2024 19:32:47 -0400 Message-ID: <20240324233458.1352854-188-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Chen-Yu Tsai [ Upstream commit e15ab05a6b3ed42f2f43f8bd1a1abdbde64afecd ] The MT8192 does not support configuring pin slew rate. This is evident from both the datasheet, and the fact that the driver points the slew rate register range at the GPIO direction register range. Drop the bogus setting. Fixes: d32f38f2a8fc ("pinctrl: mediatek: Add pinctrl driver for mt8192") Signed-off-by: Chen-Yu Tsai Reviewed-by: AngeloGioacchino Del Regno Link: https://lore.kernel.org/r/20240131071910.3950450-2-wenst@chromium.org Signed-off-by: Linus Walleij Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/pinctrl/mediatek/pinctrl-mt8192.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/pinctrl/mediatek/pinctrl-mt8192.c b/drivers/pinctrl/me= diatek/pinctrl-mt8192.c index 0c16b2c756bf3..f3020e3c8533b 100644 --- a/drivers/pinctrl/mediatek/pinctrl-mt8192.c +++ b/drivers/pinctrl/mediatek/pinctrl-mt8192.c @@ -1346,7 +1346,6 @@ static const struct mtk_pin_reg_calc mt8192_reg_cals[= PINCTRL_PIN_REG_MAX] =3D { [PINCTRL_PIN_REG_DIR] =3D MTK_RANGE(mt8192_pin_dir_range), [PINCTRL_PIN_REG_DI] =3D MTK_RANGE(mt8192_pin_di_range), [PINCTRL_PIN_REG_DO] =3D MTK_RANGE(mt8192_pin_do_range), - [PINCTRL_PIN_REG_SR] =3D MTK_RANGE(mt8192_pin_dir_range), [PINCTRL_PIN_REG_SMT] =3D MTK_RANGE(mt8192_pin_smt_range), [PINCTRL_PIN_REG_IES] =3D MTK_RANGE(mt8192_pin_ies_range), [PINCTRL_PIN_REG_PU] =3D MTK_RANGE(mt8192_pin_pu_range), --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AF0641774F3; Sun, 24 Mar 2024 23:38:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323484; cv=none; b=dtxigUcw3C4iGLrxoe61wOKGdi56qvb24gcbqA+Sl4J0oZfkp0dKVXPixuudnQnOaHoHpt3+TH7ruz8Fgb1hdJprricbdhJJvs/+6lzDVcadj8qx1JBXr2KjMTAMpBVOTB+jvIAywLrjF3cwHT4zfULS/PyPWG/wEhlBb6H0Ktk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323484; c=relaxed/simple; bh=uIDSKaGEKevri4m+701P4fwqcj5BZkuhrTLKSp6QbB8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=iIJJuBLwHl69AD6ZSPcN6MAOueiX6dDanYXcRDRUg+WS3aYQlZs8X27A/YhYryI/Q9VdqfGppSA9QFYf8URfe1FeaMnilEUlZZqSTG1/9IHs3ecEQRfQcmGLDXwNP2DH04jVx5SaPkVwYjybr27XgIWNzN8vYJn0oTeNmoYecss= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=O0vLHXQG; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="O0vLHXQG" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D2CA3C433C7; Sun, 24 Mar 2024 23:38:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323483; bh=uIDSKaGEKevri4m+701P4fwqcj5BZkuhrTLKSp6QbB8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=O0vLHXQGuWUeBJS56iyo53ZKq7h2lJ8E1n2C7tJfHkcMko+ChmOpsGTD/YpcZew+j Ythf3E4bTELA1MnQ4BaPliQD8SVAaPNbCns+G1iSkqZMptIn7iFuHJgsmjhZymEzD0 Hz9e68pWJbAtl6AmCSNNByL3nGX1hZh6/cYqGncbLxkOEGWUttiWeqrSXZpXwO/CLp vlSEy2AkHg+XzKAn3pOywaMhdQxP/A+qTyyeHFw394qX3wXrkuSAK+iNigsGyxpMha deI2mTvkeki4s/3Q8qeEe3K2e+/+cpkDD7A4uVipN3XyCKGUQga3pwhXAt6Rq/Kgub JFKhXNaL8kB4w== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Konrad Dybcio , Bryan O'Donoghue , Bjorn Andersson , Sasha Levin Subject: [PATCH 5.15 188/317] clk: qcom: reset: Commonize the de/assert functions Date: Sun, 24 Mar 2024 19:32:48 -0400 Message-ID: <20240324233458.1352854-189-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Konrad Dybcio [ Upstream commit eda40d9c583e95e0b6ac69d2950eec10f802e0e8 ] They do the same thing, except the last argument of the last function call differs. Commonize them. Reviewed-by: Bryan O'Donoghue Signed-off-by: Konrad Dybcio Link: https://lore.kernel.org/r/20240105-topic-venus_reset-v2-2-c37eba13b5c= e@linaro.org Signed-off-by: Bjorn Andersson Stable-dep-of: 2f8cf2c3f3e3 ("clk: qcom: reset: Ensure write completion on = reset de/assertion") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/clk/qcom/reset.c | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/drivers/clk/qcom/reset.c b/drivers/clk/qcom/reset.c index e45e32804d2c7..20d1d35aaf229 100644 --- a/drivers/clk/qcom/reset.c +++ b/drivers/clk/qcom/reset.c @@ -22,8 +22,8 @@ static int qcom_reset(struct reset_controller_dev *rcdev,= unsigned long id) return 0; } =20 -static int -qcom_reset_assert(struct reset_controller_dev *rcdev, unsigned long id) +static int qcom_reset_set_assert(struct reset_controller_dev *rcdev, + unsigned long id, bool assert) { struct qcom_reset_controller *rst; const struct qcom_reset_map *map; @@ -33,21 +33,17 @@ qcom_reset_assert(struct reset_controller_dev *rcdev, u= nsigned long id) map =3D &rst->reset_map[id]; mask =3D map->bitmask ? map->bitmask : BIT(map->bit); =20 - return regmap_update_bits(rst->regmap, map->reg, mask, mask); + return regmap_update_bits(rst->regmap, map->reg, mask, assert ? mask : 0); } =20 -static int -qcom_reset_deassert(struct reset_controller_dev *rcdev, unsigned long id) +static int qcom_reset_assert(struct reset_controller_dev *rcdev, unsigned = long id) { - struct qcom_reset_controller *rst; - const struct qcom_reset_map *map; - u32 mask; - - rst =3D to_qcom_reset_controller(rcdev); - map =3D &rst->reset_map[id]; - mask =3D map->bitmask ? map->bitmask : BIT(map->bit); + return qcom_reset_set_assert(rcdev, id, true); +} =20 - return regmap_update_bits(rst->regmap, map->reg, mask, 0); +static int qcom_reset_deassert(struct reset_controller_dev *rcdev, unsigne= d long id) +{ + return qcom_reset_set_assert(rcdev, id, false); } =20 const struct reset_control_ops qcom_reset_ops =3D { --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 96DB81774F9; Sun, 24 Mar 2024 23:38:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323485; cv=none; b=NMYJfIf9SoYZkddWwJPGtCDUmrGiFm23WnEi+s/1UDEWM9qUEBVDnH2k9efy9gZjbab7W1ilgBKLMggvWPy7IL3efxH3pe/cgjLOtYaA4gqggKNc01YM9sRcoUTQ7x7PM2ScuVqF8ZvQQV5I9QKtGIYbZEkLcamlbCUcQNjtrP8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323485; c=relaxed/simple; bh=pCc5yRqiW7zrM8WJbTTAP0OTtZg+beqdp63g2hcZTaQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=A/Uk8wpgc7J6yDsgnlDYchWJ8Apvi3q3Z67fUj7SRmm3hd6+3msGgDlzfXCp15Ehsqd5SdnIBIc3bpxZ6NQQEbWPOOokmheHyvEeUPmOX5IRte29SpRsm/ebgq37wzzK/mz/YW/TwrznMMzFCK4m2AP7i2s3vUCrgVY+CyMwFBY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Ox2QTGA9; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Ox2QTGA9" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D2E0FC43394; Sun, 24 Mar 2024 23:38:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323484; bh=pCc5yRqiW7zrM8WJbTTAP0OTtZg+beqdp63g2hcZTaQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Ox2QTGA9hKex/6mW/h9qLg4Ydq5WPahhjbLuAob/7pyIDXnzysSm8VapGGqL+jcVx l2sZdCWvqnzQfL5T/4HD1sYAxgyBGrFXJ/l74W4zodukK9yCc/HCEGQNCFCoKXkYBl 9O0q42NZ+6Wh7wtB1gqB7hDQvpyC4+AFGlbbQNNrcbb9j8v/u3dX8FNVIRIcZtapPu f1TNaQjxTPfhK8A8alXOPP1kn27OoNWdZlCtHlfHh7BH1fUSp8kSgsaDl67aeUwVDl +9LOOH4JvRYmz59Cj+BRyk7NTW/ZX2dJC2EmH63FgsrySD/CVevyxVWzd7JP2Zqk3U pdyZK2yaU4/Yw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Konrad Dybcio , Bjorn Andersson , Sasha Levin Subject: [PATCH 5.15 189/317] clk: qcom: reset: Ensure write completion on reset de/assertion Date: Sun, 24 Mar 2024 19:32:49 -0400 Message-ID: <20240324233458.1352854-190-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Konrad Dybcio [ Upstream commit 2f8cf2c3f3e3f7ef61bd19abb4b0bb797ad50aaf ] Trying to toggle the resets in a rapid fashion can lead to the changes not actually arriving at the clock controller block when we expect them to. This was observed at least on SM8250. Read back the value after regmap_update_bits to ensure write completion. Fixes: b36ba30c8ac6 ("clk: qcom: Add reset controller support") Signed-off-by: Konrad Dybcio Link: https://lore.kernel.org/r/20240105-topic-venus_reset-v2-3-c37eba13b5c= e@linaro.org Signed-off-by: Bjorn Andersson Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/clk/qcom/reset.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/clk/qcom/reset.c b/drivers/clk/qcom/reset.c index 20d1d35aaf229..d96c96a9089f4 100644 --- a/drivers/clk/qcom/reset.c +++ b/drivers/clk/qcom/reset.c @@ -33,7 +33,12 @@ static int qcom_reset_set_assert(struct reset_controller= _dev *rcdev, map =3D &rst->reset_map[id]; mask =3D map->bitmask ? map->bitmask : BIT(map->bit); =20 - return regmap_update_bits(rst->regmap, map->reg, mask, assert ? mask : 0); + regmap_update_bits(rst->regmap, map->reg, mask, assert ? mask : 0); + + /* Read back the register to ensure write completion, ignore the value */ + regmap_read(rst->regmap, map->reg, &mask); + + return 0; } =20 static int qcom_reset_assert(struct reset_controller_dev *rcdev, unsigned = long id) --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 79CCF1774ED; Sun, 24 Mar 2024 23:38:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323486; cv=none; b=o8xu01W7Ex0xyV51W/iput1lLd6bgNCEAWIyxTyjQ8ePRJ/pIq/Hhd1FCF3NUd3d+NV4QTadZbYOei9uvC1z4CfpN+peq0FNMCdoqWN+OZQ0oaDm7xI/s5x6GPDpayKOeDF4DBMv3WhoQioY0Kj2l11jJIWpKKM9DPV7bPB3ALs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323486; c=relaxed/simple; bh=BH/Oe6Za7hwJSjCNdDO1HHW6sU+06qst04XA7RxXClw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=DBE3OWUoaD9GUc5PbmgAk3D3Gt2X84SZmAgCVOdy8R2/LSBkxrhUapeo5WD+3Px0vLthV5fOzplY7+PyOlAXLmrBKPt7fEa3cpUjEsfc5SgGdsFQAcJmWe0gZRpMnSCsEcQ9tJaRKCIRWN1eldqmR53K6lUpweRHB7uhovsdM2w= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ERfjF/ia; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ERfjF/ia" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B79FEC43390; Sun, 24 Mar 2024 23:38:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323485; bh=BH/Oe6Za7hwJSjCNdDO1HHW6sU+06qst04XA7RxXClw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ERfjF/ia6pPCjyscUNTzBzYaUCJqTE3v+nvKlXAumwYy3lzJaqW+9P5tMytQmUEz1 grblSTqeDXZrTSLkbP8i+TrVSdcL41jVPBoxCYn0m3b6H+fgZ7gQBNXVip5N6fPyZW 7M7SPOd7P7Qmq/pns1K4eYtmSMlNLKi3ssGEr9e7gjaguxqwoAIg4gxY8zURLBV/Rn rGEATx+ejrg5+r+3+doHWS5yBr7x0LbHyTEf9AiDAeE4OSnIEjloP62XnlpH5bzhiz 7tegW+2O8slpgICb8DQDin2+Jc90rK9DJizBzRPRD04lVdeL7iRl0q+y5RuIZ0jIjR XcndrAu62WAcA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Baokun Li , Jan Kara , Sasha Levin Subject: [PATCH 5.15 190/317] quota: simplify drop_dquot_ref() Date: Sun, 24 Mar 2024 19:32:50 -0400 Message-ID: <20240324233458.1352854-191-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Baokun Li [ Upstream commit 7bce48f0fec602b3b6c335963b26d9eefa417788 ] As Honza said, remove_inode_dquot_ref() currently does not release the last dquot reference but instead adds the dquot to tofree_head list. This is because dqput() can sleep while dropping of the last dquot reference (writing back the dquot and calling ->release_dquot()) and that must not happen under dq_list_lock. Now that dqput() queues the final dquot cleanup into a workqueue, remove_inode_dquot_ref() can call dqput() unconditionally and we can significantly simplify it. Here we open code the simplified code of remove_inode_dquot_ref() into remove_dquot_ref() and remove the function put_dquot_list() which is no longer used. Signed-off-by: Baokun Li Signed-off-by: Jan Kara Message-Id: <20230630110822.3881712-6-libaokun1@huawei.com> Stable-dep-of: 179b8c97ebf6 ("quota: Fix rcu annotations of inode dquot poi= nters") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- fs/quota/dquot.c | 70 +++++++----------------------------------------- 1 file changed, 9 insertions(+), 61 deletions(-) diff --git a/fs/quota/dquot.c b/fs/quota/dquot.c index 75e593b1c03e8..b7d8cd84df576 100644 --- a/fs/quota/dquot.c +++ b/fs/quota/dquot.c @@ -1084,59 +1084,7 @@ static int add_dquot_ref(struct super_block *sb, int= type) return err; } =20 -/* - * Remove references to dquots from inode and add dquot to list for freeing - * if we have the last reference to dquot - */ -static void remove_inode_dquot_ref(struct inode *inode, int type, - struct list_head *tofree_head) -{ - struct dquot **dquots =3D i_dquot(inode); - struct dquot *dquot =3D dquots[type]; - - if (!dquot) - return; - - dquots[type] =3D NULL; - if (list_empty(&dquot->dq_free)) { - /* - * The inode still has reference to dquot so it can't be in the - * free list - */ - spin_lock(&dq_list_lock); - list_add(&dquot->dq_free, tofree_head); - spin_unlock(&dq_list_lock); - } else { - /* - * Dquot is already in a list to put so we won't drop the last - * reference here. - */ - dqput(dquot); - } -} - -/* - * Free list of dquots - * Dquots are removed from inodes and no new references can be got so we a= re - * the only ones holding reference - */ -static void put_dquot_list(struct list_head *tofree_head) -{ - struct list_head *act_head; - struct dquot *dquot; - - act_head =3D tofree_head->next; - while (act_head !=3D tofree_head) { - dquot =3D list_entry(act_head, struct dquot, dq_free); - act_head =3D act_head->next; - /* Remove dquot from the list so we won't have problems... */ - list_del_init(&dquot->dq_free); - dqput(dquot); - } -} - -static void remove_dquot_ref(struct super_block *sb, int type, - struct list_head *tofree_head) +static void remove_dquot_ref(struct super_block *sb, int type) { struct inode *inode; #ifdef CONFIG_QUOTA_DEBUG @@ -1153,11 +1101,16 @@ static void remove_dquot_ref(struct super_block *sb= , int type, */ spin_lock(&dq_data_lock); if (!IS_NOQUOTA(inode)) { + struct dquot **dquots =3D i_dquot(inode); + struct dquot *dquot =3D dquots[type]; + #ifdef CONFIG_QUOTA_DEBUG if (unlikely(inode_get_rsv_space(inode) > 0)) reserved =3D 1; #endif - remove_inode_dquot_ref(inode, type, tofree_head); + dquots[type] =3D NULL; + if (dquot) + dqput(dquot); } spin_unlock(&dq_data_lock); } @@ -1174,13 +1127,8 @@ static void remove_dquot_ref(struct super_block *sb,= int type, /* Gather all references from inodes and drop them */ static void drop_dquot_ref(struct super_block *sb, int type) { - LIST_HEAD(tofree_head); - - if (sb->dq_op) { - remove_dquot_ref(sb, type, &tofree_head); - synchronize_srcu(&dquot_srcu); - put_dquot_list(&tofree_head); - } + if (sb->dq_op) + remove_dquot_ref(sb, type); } =20 static inline --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AC57C13C673; Sun, 24 Mar 2024 23:38:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323486; cv=none; b=Sefcofx4BB9W2zay5TjDtb8ets9lg2/sunrIhQbCiu/jSdaTM3eu7ZngMzJEplCoCoo8DQFuOzTe68Fx29sH0YcoYK8T7X1rwEAk8I5l7eoTzOl2+f971qhBsR4sfrHfmAeoq6XGlQJjOnizPTWORiiI3xqD+cR7sqsPbbw6l2M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323486; c=relaxed/simple; bh=fNrT7pe91RDgkLmsl88yxJzI8kcVy6KeYcN5iz2h4wI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Qwa/PO88/OP/qtY6dXl8aj82zswqHq8I3rpKNshvwSvg2ZG4br6GwuEN2N/QI/GmJiMFfVl4qFWJH/MR18JidDTZAfgTuZ+MmFUAuxVont3oL/OKWmeMZay2stbNhyYfnidxBGYcrKbBzuFL4wCNT2uT+lB4Gpgi6gUmZEXV6b0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=SJ2n/g2M; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="SJ2n/g2M" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9F2F7C433B1; Sun, 24 Mar 2024 23:38:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323486; bh=fNrT7pe91RDgkLmsl88yxJzI8kcVy6KeYcN5iz2h4wI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=SJ2n/g2MF5JQQY94yKketUg1F8iO/h6PZ9ngAApAu6LuiAGEvA+swgSsjSqacB+sB MszQ1KCVsMFE0Wo9H8SS+T1m/MhdnpKQcx/hEg1lEuA4Xef+miNOqpnPD71zxVhbpv wavFfFIF6AK782sdYlWrMH3LM1kA2bAQEgPQk3gjoYtwGbxu1ezBzb6H/BkolZkB8K UkxwtBT0QDLhKBDkbZCouLpSMCKrjBTbwIadvI96grJYcItrTbOS3RRAbHBrp6Tum5 HScmXnVxIS1f1BbcsVFtfW3J7T1UAo0M8/r02Udpt9f2ErVZVjjsmIwTiVziJCC+zo pdGtjdxLSsNRQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Wang Jianjian , Jan Kara , Sasha Levin Subject: [PATCH 5.15 191/317] quota: Fix potential NULL pointer dereference Date: Sun, 24 Mar 2024 19:32:51 -0400 Message-ID: <20240324233458.1352854-192-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Wang Jianjian [ Upstream commit d0aa72604fbd80c8aabb46eda00535ed35570f1f ] Below race may cause NULL pointer dereference P1 P2 dquot_free_inode quota_off drop_dquot_ref remove_dquot_ref dquots =3D i_dquot(inode) dquots =3D i_dquot(inode) srcu_read_lock dquots[cnt]) !=3D NULL (1) dquots[type] =3D NULL (2) spin_lock(&dquots[cnt]->dq_dqb_lock) (3) .... If dquot_free_inode(or other routines) checks inode's quota pointers (1) before quota_off sets it to NULL(2) and use it (3) after that, NULL pointer dereference will be triggered. So let's fix it by using a temporary pointer to avoid this issue. Signed-off-by: Wang Jianjian Signed-off-by: Jan Kara Message-Id: <20240202081852.2514092-1-wangjianjian3@huawei.com> Stable-dep-of: 179b8c97ebf6 ("quota: Fix rcu annotations of inode dquot poi= nters") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- fs/quota/dquot.c | 98 ++++++++++++++++++++++++++++-------------------- 1 file changed, 57 insertions(+), 41 deletions(-) diff --git a/fs/quota/dquot.c b/fs/quota/dquot.c index b7d8cd84df576..041459526abcf 100644 --- a/fs/quota/dquot.c +++ b/fs/quota/dquot.c @@ -399,15 +399,17 @@ int dquot_mark_dquot_dirty(struct dquot *dquot) EXPORT_SYMBOL(dquot_mark_dquot_dirty); =20 /* Dirtify all the dquots - this can block when journalling */ -static inline int mark_all_dquot_dirty(struct dquot * const *dquot) +static inline int mark_all_dquot_dirty(struct dquot * const *dquots) { int ret, err, cnt; + struct dquot *dquot; =20 ret =3D err =3D 0; for (cnt =3D 0; cnt < MAXQUOTAS; cnt++) { - if (dquot[cnt]) + dquot =3D srcu_dereference(dquots[cnt], &dquot_srcu); + if (dquot) /* Even in case of error we have to continue */ - ret =3D mark_dquot_dirty(dquot[cnt]); + ret =3D mark_dquot_dirty(dquot); if (!err) err =3D ret; } @@ -1684,6 +1686,7 @@ int __dquot_alloc_space(struct inode *inode, qsize_t = number, int flags) struct dquot_warn warn[MAXQUOTAS]; int reserve =3D flags & DQUOT_SPACE_RESERVE; struct dquot **dquots; + struct dquot *dquot; =20 if (!inode_quota_active(inode)) { if (reserve) { @@ -1703,27 +1706,26 @@ int __dquot_alloc_space(struct inode *inode, qsize_= t number, int flags) index =3D srcu_read_lock(&dquot_srcu); spin_lock(&inode->i_lock); for (cnt =3D 0; cnt < MAXQUOTAS; cnt++) { - if (!dquots[cnt]) + dquot =3D srcu_dereference(dquots[cnt], &dquot_srcu); + if (!dquot) continue; if (reserve) { - ret =3D dquot_add_space(dquots[cnt], 0, number, flags, - &warn[cnt]); + ret =3D dquot_add_space(dquot, 0, number, flags, &warn[cnt]); } else { - ret =3D dquot_add_space(dquots[cnt], number, 0, flags, - &warn[cnt]); + ret =3D dquot_add_space(dquot, number, 0, flags, &warn[cnt]); } if (ret) { /* Back out changes we already did */ for (cnt--; cnt >=3D 0; cnt--) { - if (!dquots[cnt]) + dquot =3D srcu_dereference(dquots[cnt], &dquot_srcu); + if (!dquot) continue; - spin_lock(&dquots[cnt]->dq_dqb_lock); + spin_lock(&dquot->dq_dqb_lock); if (reserve) - dquot_free_reserved_space(dquots[cnt], - number); + dquot_free_reserved_space(dquot, number); else - dquot_decr_space(dquots[cnt], number); - spin_unlock(&dquots[cnt]->dq_dqb_lock); + dquot_decr_space(dquot, number); + spin_unlock(&dquot->dq_dqb_lock); } spin_unlock(&inode->i_lock); goto out_flush_warn; @@ -1754,6 +1756,7 @@ int dquot_alloc_inode(struct inode *inode) int cnt, ret =3D 0, index; struct dquot_warn warn[MAXQUOTAS]; struct dquot * const *dquots; + struct dquot *dquot; =20 if (!inode_quota_active(inode)) return 0; @@ -1764,17 +1767,19 @@ int dquot_alloc_inode(struct inode *inode) index =3D srcu_read_lock(&dquot_srcu); spin_lock(&inode->i_lock); for (cnt =3D 0; cnt < MAXQUOTAS; cnt++) { - if (!dquots[cnt]) + dquot =3D srcu_dereference(dquots[cnt], &dquot_srcu); + if (!dquot) continue; - ret =3D dquot_add_inodes(dquots[cnt], 1, &warn[cnt]); + ret =3D dquot_add_inodes(dquot, 1, &warn[cnt]); if (ret) { for (cnt--; cnt >=3D 0; cnt--) { - if (!dquots[cnt]) + dquot =3D srcu_dereference(dquots[cnt], &dquot_srcu); + if (!dquot) continue; /* Back out changes we already did */ - spin_lock(&dquots[cnt]->dq_dqb_lock); - dquot_decr_inodes(dquots[cnt], 1); - spin_unlock(&dquots[cnt]->dq_dqb_lock); + spin_lock(&dquot->dq_dqb_lock); + dquot_decr_inodes(dquot, 1); + spin_unlock(&dquot->dq_dqb_lock); } goto warn_put_all; } @@ -1796,6 +1801,7 @@ EXPORT_SYMBOL(dquot_alloc_inode); int dquot_claim_space_nodirty(struct inode *inode, qsize_t number) { struct dquot **dquots; + struct dquot *dquot; int cnt, index; =20 if (!inode_quota_active(inode)) { @@ -1811,9 +1817,8 @@ int dquot_claim_space_nodirty(struct inode *inode, qs= ize_t number) spin_lock(&inode->i_lock); /* Claim reserved quotas to allocated quotas */ for (cnt =3D 0; cnt < MAXQUOTAS; cnt++) { - if (dquots[cnt]) { - struct dquot *dquot =3D dquots[cnt]; - + dquot =3D srcu_dereference(dquots[cnt], &dquot_srcu); + if (dquot) { spin_lock(&dquot->dq_dqb_lock); if (WARN_ON_ONCE(dquot->dq_dqb.dqb_rsvspace < number)) number =3D dquot->dq_dqb.dqb_rsvspace; @@ -1838,6 +1843,7 @@ EXPORT_SYMBOL(dquot_claim_space_nodirty); void dquot_reclaim_space_nodirty(struct inode *inode, qsize_t number) { struct dquot **dquots; + struct dquot *dquot; int cnt, index; =20 if (!inode_quota_active(inode)) { @@ -1853,9 +1859,8 @@ void dquot_reclaim_space_nodirty(struct inode *inode,= qsize_t number) spin_lock(&inode->i_lock); /* Claim reserved quotas to allocated quotas */ for (cnt =3D 0; cnt < MAXQUOTAS; cnt++) { - if (dquots[cnt]) { - struct dquot *dquot =3D dquots[cnt]; - + dquot =3D srcu_dereference(dquots[cnt], &dquot_srcu); + if (dquot) { spin_lock(&dquot->dq_dqb_lock); if (WARN_ON_ONCE(dquot->dq_dqb.dqb_curspace < number)) number =3D dquot->dq_dqb.dqb_curspace; @@ -1882,6 +1887,7 @@ void __dquot_free_space(struct inode *inode, qsize_t = number, int flags) unsigned int cnt; struct dquot_warn warn[MAXQUOTAS]; struct dquot **dquots; + struct dquot *dquot; int reserve =3D flags & DQUOT_SPACE_RESERVE, index; =20 if (!inode_quota_active(inode)) { @@ -1902,17 +1908,18 @@ void __dquot_free_space(struct inode *inode, qsize_= t number, int flags) int wtype; =20 warn[cnt].w_type =3D QUOTA_NL_NOWARN; - if (!dquots[cnt]) + dquot =3D srcu_dereference(dquots[cnt], &dquot_srcu); + if (!dquot) continue; - spin_lock(&dquots[cnt]->dq_dqb_lock); - wtype =3D info_bdq_free(dquots[cnt], number); + spin_lock(&dquot->dq_dqb_lock); + wtype =3D info_bdq_free(dquot, number); if (wtype !=3D QUOTA_NL_NOWARN) - prepare_warning(&warn[cnt], dquots[cnt], wtype); + prepare_warning(&warn[cnt], dquot, wtype); if (reserve) - dquot_free_reserved_space(dquots[cnt], number); + dquot_free_reserved_space(dquot, number); else - dquot_decr_space(dquots[cnt], number); - spin_unlock(&dquots[cnt]->dq_dqb_lock); + dquot_decr_space(dquot, number); + spin_unlock(&dquot->dq_dqb_lock); } if (reserve) *inode_reserved_space(inode) -=3D number; @@ -1937,6 +1944,7 @@ void dquot_free_inode(struct inode *inode) unsigned int cnt; struct dquot_warn warn[MAXQUOTAS]; struct dquot * const *dquots; + struct dquot *dquot; int index; =20 if (!inode_quota_active(inode)) @@ -1947,16 +1955,16 @@ void dquot_free_inode(struct inode *inode) spin_lock(&inode->i_lock); for (cnt =3D 0; cnt < MAXQUOTAS; cnt++) { int wtype; - warn[cnt].w_type =3D QUOTA_NL_NOWARN; - if (!dquots[cnt]) + dquot =3D srcu_dereference(dquots[cnt], &dquot_srcu); + if (!dquot) continue; - spin_lock(&dquots[cnt]->dq_dqb_lock); - wtype =3D info_idq_free(dquots[cnt], 1); + spin_lock(&dquot->dq_dqb_lock); + wtype =3D info_idq_free(dquot, 1); if (wtype !=3D QUOTA_NL_NOWARN) - prepare_warning(&warn[cnt], dquots[cnt], wtype); - dquot_decr_inodes(dquots[cnt], 1); - spin_unlock(&dquots[cnt]->dq_dqb_lock); + prepare_warning(&warn[cnt], dquot, wtype); + dquot_decr_inodes(dquot, 1); + spin_unlock(&dquot->dq_dqb_lock); } spin_unlock(&inode->i_lock); mark_all_dquot_dirty(dquots); @@ -1983,7 +1991,7 @@ int __dquot_transfer(struct inode *inode, struct dquo= t **transfer_to) qsize_t rsv_space =3D 0; qsize_t inode_usage =3D 1; struct dquot *transfer_from[MAXQUOTAS] =3D {}; - int cnt, ret =3D 0; + int cnt, index, ret =3D 0; char is_valid[MAXQUOTAS] =3D {}; struct dquot_warn warn_to[MAXQUOTAS]; struct dquot_warn warn_from_inodes[MAXQUOTAS]; @@ -2072,8 +2080,16 @@ int __dquot_transfer(struct inode *inode, struct dqu= ot **transfer_to) spin_unlock(&inode->i_lock); spin_unlock(&dq_data_lock); =20 + /* + * These arrays are local and we hold dquot references so we don't need + * the srcu protection but still take dquot_srcu to avoid warning in + * mark_all_dquot_dirty(). + */ + index =3D srcu_read_lock(&dquot_srcu); mark_all_dquot_dirty(transfer_from); mark_all_dquot_dirty(transfer_to); + srcu_read_unlock(&dquot_srcu, index); + flush_warnings(warn_to); flush_warnings(warn_from_inodes); flush_warnings(warn_from_space); --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9775413C680; Sun, 24 Mar 2024 23:38:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323487; cv=none; b=E6cOJVbKNqH0s31+Gt2xwrdhEn7cgIP4UbqlYRBUC/RWSKiGbKwexja96ygzVqDw0evoHC3LyuELJEALkasSa8+HFD//ZPsVHf3Iap4WawXF4bo5fGTDKB+s1hLQJYeZLrT/ASyzrKpd/xzId7w21o+K2RSelL2gNy5x2likuOE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323487; c=relaxed/simple; bh=GLuf8cIyLE8OMYgKZlV1Z0o42kAN7UFshQuxKE7KeYc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=bpbAIVNKugNN9tGmV6uDbO/osBRvSz+ic+WyCp85bsrDnI8eyrg4HZDvJrxKapCweIo4rlXg0LrMnFzhijDV4HvOapVFGsNfChVJEmOcwOVrB5Ki+ptZlq+i7dqSD72HKcd3b9GJ+EuKnELYM5rnUROe9X+Pr7VKdipOiBGqigw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=O24tW1f6; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="O24tW1f6" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 86CFBC43394; Sun, 24 Mar 2024 23:38:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323487; bh=GLuf8cIyLE8OMYgKZlV1Z0o42kAN7UFshQuxKE7KeYc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=O24tW1f6Hqtayho/TY76Et3LJ9HRgumtVDuY5dajpgYhpOFpa26olSdVx3X7d1ASF LtSYwan58YizDaxSOj3h4yt4+nW55ER1KnSN8mnGDutL9S0vZijcfPnRJtkv9BkJyu mqorm6a600ZqMvbrwgBEAAqxKBDXDiS7O5gZi9rWaAp0iuvg63aN54zXGJTl6DjZy1 rXyWcx4uIbD+XLJqpxCWZbBNLAOfjj5wCPh6VEN7kZSAwV3Ne7f/fr7KaRGHl1Ge8O SXH+s9Ta1RwJTDU/ykgmTIcqnatEqeU4ZM1x6q2P6HweWz0xs8rHI2USa0Pz2Srt/0 BEVx9rVSd7SDw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jan Kara , kernel test robot , Sasha Levin Subject: [PATCH 5.15 192/317] quota: Fix rcu annotations of inode dquot pointers Date: Sun, 24 Mar 2024 19:32:52 -0400 Message-ID: <20240324233458.1352854-193-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Jan Kara [ Upstream commit 179b8c97ebf63429589f5afeba59a181fe70603e ] Dquot pointers in i_dquot array in the inode are protected by dquot_srcu. Annotate the array pointers with __rcu, perform the locked dereferences with srcu_dereference_check() instead of plain reads, and set the array elements with rcu_assign_pointer(). Fixes: b9ba6f94b238 ("quota: remove dqptr_sem") Reported-by: kernel test robot Closes: https://lore.kernel.org/oe-kbuild-all/202402061900.rTuYDlo6-lkp@int= el.com/ Signed-off-by: Jan Kara Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- fs/quota/dquot.c | 66 ++++++++++++++++++++++++++++-------------------- 1 file changed, 39 insertions(+), 27 deletions(-) diff --git a/fs/quota/dquot.c b/fs/quota/dquot.c index 041459526abcf..edb414d3fd164 100644 --- a/fs/quota/dquot.c +++ b/fs/quota/dquot.c @@ -399,7 +399,7 @@ int dquot_mark_dquot_dirty(struct dquot *dquot) EXPORT_SYMBOL(dquot_mark_dquot_dirty); =20 /* Dirtify all the dquots - this can block when journalling */ -static inline int mark_all_dquot_dirty(struct dquot * const *dquots) +static inline int mark_all_dquot_dirty(struct dquot __rcu * const *dquots) { int ret, err, cnt; struct dquot *dquot; @@ -1006,14 +1006,15 @@ struct dquot *dqget(struct super_block *sb, struct = kqid qid) } EXPORT_SYMBOL(dqget); =20 -static inline struct dquot **i_dquot(struct inode *inode) +static inline struct dquot __rcu **i_dquot(struct inode *inode) { - return inode->i_sb->s_op->get_dquots(inode); + /* Force __rcu for now until filesystems are fixed */ + return (struct dquot __rcu **)inode->i_sb->s_op->get_dquots(inode); } =20 static int dqinit_needed(struct inode *inode, int type) { - struct dquot * const *dquots; + struct dquot __rcu * const *dquots; int cnt; =20 if (IS_NOQUOTA(inode)) @@ -1103,14 +1104,16 @@ static void remove_dquot_ref(struct super_block *sb= , int type) */ spin_lock(&dq_data_lock); if (!IS_NOQUOTA(inode)) { - struct dquot **dquots =3D i_dquot(inode); - struct dquot *dquot =3D dquots[type]; + struct dquot __rcu **dquots =3D i_dquot(inode); + struct dquot *dquot =3D srcu_dereference_check( + dquots[type], &dquot_srcu, + lockdep_is_held(&dq_data_lock)); =20 #ifdef CONFIG_QUOTA_DEBUG if (unlikely(inode_get_rsv_space(inode) > 0)) reserved =3D 1; #endif - dquots[type] =3D NULL; + rcu_assign_pointer(dquots[type], NULL); if (dquot) dqput(dquot); } @@ -1463,7 +1466,8 @@ static int inode_quota_active(const struct inode *ino= de) static int __dquot_initialize(struct inode *inode, int type) { int cnt, init_needed =3D 0; - struct dquot **dquots, *got[MAXQUOTAS] =3D {}; + struct dquot __rcu **dquots; + struct dquot *got[MAXQUOTAS] =3D {}; struct super_block *sb =3D inode->i_sb; qsize_t rsv; int ret =3D 0; @@ -1538,7 +1542,7 @@ static int __dquot_initialize(struct inode *inode, in= t type) if (!got[cnt]) continue; if (!dquots[cnt]) { - dquots[cnt] =3D got[cnt]; + rcu_assign_pointer(dquots[cnt], got[cnt]); got[cnt] =3D NULL; /* * Make quota reservation system happy if someone @@ -1546,12 +1550,16 @@ static int __dquot_initialize(struct inode *inode, = int type) */ rsv =3D inode_get_rsv_space(inode); if (unlikely(rsv)) { + struct dquot *dquot =3D srcu_dereference_check( + dquots[cnt], &dquot_srcu, + lockdep_is_held(&dq_data_lock)); + spin_lock(&inode->i_lock); /* Get reservation again under proper lock */ rsv =3D __inode_get_rsv_space(inode); - spin_lock(&dquots[cnt]->dq_dqb_lock); - dquots[cnt]->dq_dqb.dqb_rsvspace +=3D rsv; - spin_unlock(&dquots[cnt]->dq_dqb_lock); + spin_lock(&dquot->dq_dqb_lock); + dquot->dq_dqb.dqb_rsvspace +=3D rsv; + spin_unlock(&dquot->dq_dqb_lock); spin_unlock(&inode->i_lock); } } @@ -1573,7 +1581,7 @@ EXPORT_SYMBOL(dquot_initialize); =20 bool dquot_initialize_needed(struct inode *inode) { - struct dquot **dquots; + struct dquot __rcu **dquots; int i; =20 if (!inode_quota_active(inode)) @@ -1598,13 +1606,14 @@ EXPORT_SYMBOL(dquot_initialize_needed); static void __dquot_drop(struct inode *inode) { int cnt; - struct dquot **dquots =3D i_dquot(inode); + struct dquot __rcu **dquots =3D i_dquot(inode); struct dquot *put[MAXQUOTAS]; =20 spin_lock(&dq_data_lock); for (cnt =3D 0; cnt < MAXQUOTAS; cnt++) { - put[cnt] =3D dquots[cnt]; - dquots[cnt] =3D NULL; + put[cnt] =3D srcu_dereference_check(dquots[cnt], &dquot_srcu, + lockdep_is_held(&dq_data_lock)); + rcu_assign_pointer(dquots[cnt], NULL); } spin_unlock(&dq_data_lock); dqput_all(put); @@ -1612,7 +1621,7 @@ static void __dquot_drop(struct inode *inode) =20 void dquot_drop(struct inode *inode) { - struct dquot * const *dquots; + struct dquot __rcu * const *dquots; int cnt; =20 if (IS_NOQUOTA(inode)) @@ -1685,7 +1694,7 @@ int __dquot_alloc_space(struct inode *inode, qsize_t = number, int flags) int cnt, ret =3D 0, index; struct dquot_warn warn[MAXQUOTAS]; int reserve =3D flags & DQUOT_SPACE_RESERVE; - struct dquot **dquots; + struct dquot __rcu **dquots; struct dquot *dquot; =20 if (!inode_quota_active(inode)) { @@ -1755,7 +1764,7 @@ int dquot_alloc_inode(struct inode *inode) { int cnt, ret =3D 0, index; struct dquot_warn warn[MAXQUOTAS]; - struct dquot * const *dquots; + struct dquot __rcu * const *dquots; struct dquot *dquot; =20 if (!inode_quota_active(inode)) @@ -1800,7 +1809,7 @@ EXPORT_SYMBOL(dquot_alloc_inode); */ int dquot_claim_space_nodirty(struct inode *inode, qsize_t number) { - struct dquot **dquots; + struct dquot __rcu **dquots; struct dquot *dquot; int cnt, index; =20 @@ -1842,7 +1851,7 @@ EXPORT_SYMBOL(dquot_claim_space_nodirty); */ void dquot_reclaim_space_nodirty(struct inode *inode, qsize_t number) { - struct dquot **dquots; + struct dquot __rcu **dquots; struct dquot *dquot; int cnt, index; =20 @@ -1886,7 +1895,7 @@ void __dquot_free_space(struct inode *inode, qsize_t = number, int flags) { unsigned int cnt; struct dquot_warn warn[MAXQUOTAS]; - struct dquot **dquots; + struct dquot __rcu **dquots; struct dquot *dquot; int reserve =3D flags & DQUOT_SPACE_RESERVE, index; =20 @@ -1943,7 +1952,7 @@ void dquot_free_inode(struct inode *inode) { unsigned int cnt; struct dquot_warn warn[MAXQUOTAS]; - struct dquot * const *dquots; + struct dquot __rcu * const *dquots; struct dquot *dquot; int index; =20 @@ -1990,6 +1999,7 @@ int __dquot_transfer(struct inode *inode, struct dquo= t **transfer_to) qsize_t cur_space; qsize_t rsv_space =3D 0; qsize_t inode_usage =3D 1; + struct dquot __rcu **dquots; struct dquot *transfer_from[MAXQUOTAS] =3D {}; int cnt, index, ret =3D 0; char is_valid[MAXQUOTAS] =3D {}; @@ -2022,6 +2032,7 @@ int __dquot_transfer(struct inode *inode, struct dquo= t **transfer_to) } cur_space =3D __inode_get_bytes(inode); rsv_space =3D __inode_get_rsv_space(inode); + dquots =3D i_dquot(inode); /* * Build the transfer_from list, check limits, and update usage in * the target structures. @@ -2036,7 +2047,8 @@ int __dquot_transfer(struct inode *inode, struct dquo= t **transfer_to) if (!sb_has_quota_active(inode->i_sb, cnt)) continue; is_valid[cnt] =3D 1; - transfer_from[cnt] =3D i_dquot(inode)[cnt]; + transfer_from[cnt] =3D srcu_dereference_check(dquots[cnt], + &dquot_srcu, lockdep_is_held(&dq_data_lock)); ret =3D dquot_add_inodes(transfer_to[cnt], inode_usage, &warn_to[cnt]); if (ret) @@ -2075,7 +2087,7 @@ int __dquot_transfer(struct inode *inode, struct dquo= t **transfer_to) rsv_space); spin_unlock(&transfer_from[cnt]->dq_dqb_lock); } - i_dquot(inode)[cnt] =3D transfer_to[cnt]; + rcu_assign_pointer(dquots[cnt], transfer_to[cnt]); } spin_unlock(&inode->i_lock); spin_unlock(&dq_data_lock); @@ -2086,8 +2098,8 @@ int __dquot_transfer(struct inode *inode, struct dquo= t **transfer_to) * mark_all_dquot_dirty(). */ index =3D srcu_read_lock(&dquot_srcu); - mark_all_dquot_dirty(transfer_from); - mark_all_dquot_dirty(transfer_to); + mark_all_dquot_dirty((struct dquot __rcu **)transfer_from); + mark_all_dquot_dirty((struct dquot __rcu **)transfer_to); srcu_read_unlock(&dquot_srcu, index); =20 flush_warnings(warn_to); --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4231627A820; Sun, 24 Mar 2024 23:38:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323489; cv=none; b=hZ14bLAG5krcbKs7NBMWP29MmiogoejNKzHs0etZS2KPjlt3XXq2UkuULIqRScl/BXHRuHAQx51Bwo4rjAdUjfxwSSN+YR4p7H1DWUCEMcnP4lEqDFKD18CwduOmnB9espS9MbneEGR1B/M0WMyEUWNz6uOwlnKrzi20vnzqR2s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323489; c=relaxed/simple; bh=vHZPofxw8AN48sAFxEHgXaF8fZSmhRexjjuE+y/44oY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Wfy8pMiwKeDWFcZObo/5vzfLYQnqOjKAtBEEs4nJjJZf8NMnnw1xDSMFXfO3/U9oBg8Zlr3aa7c4y02lJvTRfYGONsBS0jSH9hUjM5WTFGIQvoOfWw+PqAWASXccbCCn0Nf9sutFFqKySf2xNKSuTlTEVWLyMrI0vpaJeJYX/XI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=A1uVzA2N; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="A1uVzA2N" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6D6C3C43390; Sun, 24 Mar 2024 23:38:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323488; bh=vHZPofxw8AN48sAFxEHgXaF8fZSmhRexjjuE+y/44oY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=A1uVzA2NDv7+OyFn/bIjCv7PoJbWvxWZkHJKu7CmLvrGwd76FNBDhlcrs38Zhfy5g 1S4fGu06tWRNb87wGoZyAXS22TA2c59n6eUb4p2AjpjRyNBqlBa8Aw+3VT8oM02U3w 8gtk5iBQZB21Q/0lL5sLa8AMsX22hGXP2ogJbQkuVjAOSRsG1v9LT0zAYXHvLoe0uC IZKVIXP6zmEVp2767g0h+TdAjmEdBn+ydLYkwJ2ruS7a7cieyvtVFWRK1eKO/vGBYe 02rIVrEMK3qQlFDmGoQ4L9NpRgqXakv9z1MG71VQl+2WpzkxAIZYeGtqPOA66zJmuV XuhnXi6TKjmPQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Christophe JAILLET , Bjorn Helgaas , Logan Gunthorpe , Sasha Levin Subject: [PATCH 5.15 193/317] PCI/P2PDMA: Fix a sleeping issue in a RCU read section Date: Sun, 24 Mar 2024 19:32:53 -0400 Message-ID: <20240324233458.1352854-194-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Christophe JAILLET [ Upstream commit 1e5c66afd4a40bb7be17cb33cbb1a1085f727730 ] It is not allowed to sleep within a RCU read section, so use GFP_ATOMIC instead of GFP_KERNEL here. Link: https://lore.kernel.org/r/02d9ec4a10235def0e764ff1f5be881ba12e16e8.17= 04397858.git.christophe.jaillet@wanadoo.fr Fixes: ae21f835a5bd ("PCI/P2PDMA: Finish RCU conversion of pdev->p2pdma") Signed-off-by: Christophe JAILLET Signed-off-by: Bjorn Helgaas Reviewed-by: Logan Gunthorpe Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/pci/p2pdma.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/pci/p2pdma.c b/drivers/pci/p2pdma.c index 316fd2f44df45..57654c82b08e8 100644 --- a/drivers/pci/p2pdma.c +++ b/drivers/pci/p2pdma.c @@ -536,7 +536,7 @@ calc_map_type_and_dist(struct pci_dev *provider, struct= pci_dev *client, p2pdma =3D rcu_dereference(provider->p2pdma); if (p2pdma) xa_store(&p2pdma->map_types, map_types_idx(client), - xa_mk_value(map_type), GFP_KERNEL); + xa_mk_value(map_type), GFP_ATOMIC); rcu_read_unlock(); return map_type; } --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2601713C677; Sun, 24 Mar 2024 23:38:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323489; cv=none; b=pC2UF7FNOszApE0QGikF8XbmchA+Xm3ymtll4Q/nm0/Vloy2rKRDCh6dTNqlOmi/IHRNWRo49ABgJlNks/5HXQlq7tXlFfEAPmUT5QQLIrpJg8BLBcRMOa7mE6CECrAFVQwd3ThpFNFU+RfrS4gSfoDFwEHy2qSiLxT72XlusrA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323489; c=relaxed/simple; bh=WReDACMQmPunMLZC8QVpYUoZg04+20qLAGtip4GPPPU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=a31pwMdNqU49d6C7q1LHMX0oPdS/UPD5HeS96CrC8zrU7Dm2hhS2lsF4JqI6YPLE5A72pmQFgQxXOTWNbndzazJKMBWVgZ78w5cH/JfmOXpF5lRMMHGp0MOhrVavNP276uk584Xz++ojJgIsx95CdBWS+b/YN+oSE0dZbL0Ey2A= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=lA4SrdTp; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="lA4SrdTp" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 646D1C43394; Sun, 24 Mar 2024 23:38:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323489; bh=WReDACMQmPunMLZC8QVpYUoZg04+20qLAGtip4GPPPU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=lA4SrdTpO9wFpGR/+AMDDeshis+NlvekEk9CzPqgZuPbLKSi+8x1UYoHFBzM7VmwO r9BZ3yhlnnX8QjridWaSvq12vbSEqVUZcKNiZuKT1XA1AJzlunZh5FaaTbXDWtVKrK 3/npExh7X8qzW1RBg7Sd6joYRARF8Yv+EQIwzgbZ/MTcxEUKF9en+Tozo2HnldLPNZ pMzNTIVspJPRuoYQ4pTc3M0TGWUzBjB3Vl/ACUwO7ZJiGc+SMnFH5K+/RMDypk/wQK QEb/wfRDOhkXSgGawk1dG2mxv3ll6KcF5BEqO+2QBfdu9xFzj8Hgc7ija553qf5A0h Gg8LEmGLs4xpg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Christophe JAILLET , Bjorn Helgaas , Sasha Levin Subject: [PATCH 5.15 194/317] PCI: switchtec: Fix an error handling path in switchtec_pci_probe() Date: Sun, 24 Mar 2024 19:32:54 -0400 Message-ID: <20240324233458.1352854-195-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Christophe JAILLET [ Upstream commit dec529b0b0572b32f9eb91c882dd1f08ca657efb ] The commit in Fixes changed the logic on how resources are released and introduced a new switchtec_exit_pci() that need to be called explicitly in order to undo a corresponding switchtec_init_pci(). This was done in the remove function, but not in the probe. Fix the probe now. Fixes: df25461119d9 ("PCI: switchtec: Fix stdev_release() crash after surpr= ise hot remove") Link: https://lore.kernel.org/r/01446d2ccb91a578239915812f2b7dfbeb2882af.17= 03428183.git.christophe.jaillet@wanadoo.fr Signed-off-by: Christophe JAILLET Signed-off-by: Bjorn Helgaas Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/pci/switch/switchtec.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/pci/switch/switchtec.c b/drivers/pci/switch/switchtec.c index 2a026183f06b3..bc14386ba440c 100644 --- a/drivers/pci/switch/switchtec.c +++ b/drivers/pci/switch/switchtec.c @@ -1614,7 +1614,7 @@ static int switchtec_pci_probe(struct pci_dev *pdev, rc =3D switchtec_init_isr(stdev); if (rc) { dev_err(&stdev->dev, "failed to init isr.\n"); - goto err_put; + goto err_exit_pci; } =20 iowrite32(SWITCHTEC_EVENT_CLEAR | @@ -1635,6 +1635,8 @@ static int switchtec_pci_probe(struct pci_dev *pdev, =20 err_devadd: stdev_kill(stdev); +err_exit_pci: + switchtec_exit_pci(stdev); err_put: ida_simple_remove(&switchtec_minor_ida, MINOR(stdev->dev.devt)); put_device(&stdev->dev); --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0EA2F27A827; Sun, 24 Mar 2024 23:38:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323490; cv=none; b=YqjCxdW9/uumn9iG+xrJTP9P2frOdFlMORBUA1GfmJrJaIWM1JUoOYCWRShvQqtmqfN21fcL+YX1VO12VfqLUFK4DKDrZB634ANWy3r149bE7+d9B5vWwxj9qgxtUOJEWB84qBLz3QqzSY+vnApv3co4JxrrsZ+JNytRNs10r6g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323490; c=relaxed/simple; bh=T9fqgdc0Zuf66eYIIK+NU8AboiJdLsdVvvdMTpz4FUY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=l6knr57Q+2ldJYRe0sLAWuO8dZyEzjSg0f4J4r+7mYf3nErLJfdw9F+K14KWocnnvOCyRGIXw/eoDyanAPBsP+X3QNoShl/UC6xKVSJOfyLh5W3B1Zrsd1ubKkpuk6sSDCZtRSAUX7gOBdNtvn8eicxry1V0FrMzKBCtcshqKTQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=I4wSxT16; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="I4wSxT16" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4938AC433A6; Sun, 24 Mar 2024 23:38:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323489; bh=T9fqgdc0Zuf66eYIIK+NU8AboiJdLsdVvvdMTpz4FUY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=I4wSxT16NbDAyR0dKTR5cO0R6eTVJYkHJ4uzlZQHS7i50kYBHVs+DSWMKNgpOzZlO SdgNTx+yUI2JzWJnrwOUj4PgeC2Sng8ObiDTt9shbXpvdukb16sTc3z3Hh/UxR652i R3XSZIH4guxbxvcJoWB4DT6r8Z9NGe0nqo6pzQAbG+xl4rEXQUsR9xLAw71lR1miXQ +kpSREh4ODnz6W9QMQWD1K4sHVLEDEiWrONvcFfqoelL3kqsh459aTnTfxOe2Y3FI5 B03hNM0HxyFnU/bi4eGb8Go+LmBjwbbFlH9wQuYr3Xo23dBPUDcd2kDknwl1qy80gM o/UQz2xaZRbTg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Quanyang Wang , Herbert Xu , Sasha Levin Subject: [PATCH 5.15 195/317] crypto: xilinx - call finalize with bh disabled Date: Sun, 24 Mar 2024 19:32:55 -0400 Message-ID: <20240324233458.1352854-196-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Quanyang Wang [ Upstream commit a853450bf4c752e664abab0b2fad395b7ad7701c ] When calling crypto_finalize_request, BH should be disabled to avoid triggering the following calltrace: ------------[ cut here ]------------ WARNING: CPU: 2 PID: 74 at crypto/crypto_engine.c:58 crypto_finalize_re= quest+0xa0/0x118 Modules linked in: cryptodev(O) CPU: 2 PID: 74 Comm: firmware:zynqmp Tainted: G O 6.8.0= -rc1-yocto-standard #323 Hardware name: ZynqMP ZCU102 Rev1.0 (DT) pstate: 40000005 (nZcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=3D--) pc : crypto_finalize_request+0xa0/0x118 lr : crypto_finalize_request+0x104/0x118 sp : ffffffc085353ce0 x29: ffffffc085353ce0 x28: 0000000000000000 x27: ffffff8808ea8688 x26: ffffffc081715038 x25: 0000000000000000 x24: ffffff880100db00 x23: ffffff880100da80 x22: 0000000000000000 x21: 0000000000000000 x20: ffffff8805b14000 x19: ffffff880100da80 x18: 0000000000010450 x17: 0000000000000000 x16: 0000000000000000 x15: 0000000000000000 x14: 0000000000000003 x13: 0000000000000000 x12: ffffff880100dad0 x11: 0000000000000000 x10: ffffffc0832dcd08 x9 : ffffffc0812416d8 x8 : 00000000000001f4 x7 : ffffffc0830d2830 x6 : 0000000000000001 x5 : ffffffc082091000 x4 : ffffffc082091658 x3 : 0000000000000000 x2 : ffffffc7f9653000 x1 : 0000000000000000 x0 : ffffff8802d20000 Call trace: crypto_finalize_request+0xa0/0x118 crypto_finalize_aead_request+0x18/0x30 zynqmp_handle_aes_req+0xcc/0x388 crypto_pump_work+0x168/0x2d8 kthread_worker_fn+0xfc/0x3a0 kthread+0x118/0x138 ret_from_fork+0x10/0x20 irq event stamp: 40 hardirqs last enabled at (39): [] _raw_spin_unlock_i= rqrestore+0x70/0xb0 hardirqs last disabled at (40): [] el1_dbg+0x28/0x90 softirqs last enabled at (36): [] kernel_neon_begin+= 0x8c/0xf0 softirqs last disabled at (34): [] kernel_neon_begin+= 0x60/0xf0 ---[ end trace 0000000000000000 ]--- Fixes: 4d96f7d48131 ("crypto: xilinx - Add Xilinx AES driver") Signed-off-by: Quanyang Wang Signed-off-by: Herbert Xu Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/crypto/xilinx/zynqmp-aes-gcm.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/crypto/xilinx/zynqmp-aes-gcm.c b/drivers/crypto/xilinx= /zynqmp-aes-gcm.c index bf1f421e05f25..74bd3eb63734d 100644 --- a/drivers/crypto/xilinx/zynqmp-aes-gcm.c +++ b/drivers/crypto/xilinx/zynqmp-aes-gcm.c @@ -231,7 +231,10 @@ static int zynqmp_handle_aes_req(struct crypto_engine = *engine, err =3D zynqmp_aes_aead_cipher(areq); } =20 + local_bh_disable(); crypto_finalize_aead_request(engine, areq, err); + local_bh_enable(); + return 0; } =20 --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0613727A82F; Sun, 24 Mar 2024 23:38:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323491; cv=none; b=PZvU4n5XoVQA+7Bl3X+qAhxS53w3vBmD3UabBObycSJ3qkKopBOtCTgUUPWR5oFDWAw9JwXNx8i1YudKJg/i2w6qHQ9qiZ6NZF3/6hoNKRATlz8jVo4HQeKsQKjs9ue5RDJkAEXvXPWJ9GAnfjvH0yS20JdT89yrMEZblSIxCe4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323491; c=relaxed/simple; bh=ch4msB6QbAfyxOHVuIwLakn8UTa3SdoazWxzYOmU5xY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=BU2x47vpUMKkCeZIjZJBDSOr2ceiBwNjEkLaO/+KPR2yHoIqkBbMbBIJkZENe2UYs6DROiQonP1pFHi0xZvAmALs/eH9ca4uBrneeON8WV62AhxBTtdpkJw4Fr9kq9s/XGqFDx6RqG8am9s6aMcsg+JV/xGxIAcPpW/XVvZhZFE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=uwa3zTRJ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="uwa3zTRJ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2E3A3C43394; Sun, 24 Mar 2024 23:38:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323490; bh=ch4msB6QbAfyxOHVuIwLakn8UTa3SdoazWxzYOmU5xY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=uwa3zTRJvf5w/J2k9+F+12KZbkW4nqhbduJH2cBuK+r9YeqzJ4lXpjO6Q/QGa1Bfu 0OJ7/8UfwJqi5FSRsu9UNN6RywI2LOhfwBGr7Qsgr7pHnL8QdcdEP7kxE7KzjJFioL Snh1V0pDoE4vSM/ELgPPUzwmeHe/znJbG3DOLkJnI1Oy0Hjcf19MhwE/VuGqUAegHW R4NaOufCg52uW5nPGEOvPwTrVL0Lm9dX7x0xowM9SymoGZh69HJCin9SIDbCMgg7Xu 0crGqB2SdGNCNFw2nwKWtx5L0fNVS60hA5cEszgMLZ3Bb1u8TTKZ/STW7M8val2+IH Gy55+aO43wzuw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Yang Jihong , Arnaldo Carvalho de Melo , Namhyung Kim , Sasha Levin Subject: [PATCH 5.15 196/317] perf thread_map: Free strlist on normal path in thread_map__new_by_tid_str() Date: Sun, 24 Mar 2024 19:32:56 -0400 Message-ID: <20240324233458.1352854-197-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Yang Jihong [ Upstream commit 1eb3d924e3c0b8c27388b0583a989d757866efb6 ] slist needs to be freed in both error path and normal path in thread_map__new_by_tid_str(). Fixes: b52956c961be3a04 ("perf tools: Allow multiple threads or processes i= n record, stat, top") Reviewed-by: Arnaldo Carvalho de Melo Signed-off-by: Yang Jihong Signed-off-by: Namhyung Kim Link: https://lore.kernel.org/r/20240206083228.172607-6-yangjihong1@huawei.= com Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- tools/perf/util/thread_map.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/perf/util/thread_map.c b/tools/perf/util/thread_map.c index c9bfe4696943b..cee7fc3b5bb0c 100644 --- a/tools/perf/util/thread_map.c +++ b/tools/perf/util/thread_map.c @@ -279,13 +279,13 @@ struct perf_thread_map *thread_map__new_by_tid_str(co= nst char *tid_str) threads->nr =3D ntasks; } out: + strlist__delete(slist); if (threads) refcount_set(&threads->refcnt, 1); return threads; =20 out_free_threads: zfree(&threads); - strlist__delete(slist); goto out; } =20 --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DBBFD27A834; Sun, 24 Mar 2024 23:38:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323491; cv=none; b=T3O0TZRsEXt2vHeTFke3Jmqj5FZWBDZqjs/rXg05g+Nxcp/cB5steza+UyZ8cnzV9btb2qaGrKv1L+iqHZDRIV9kYRvStZy4W+nnaNurUyppmb1Ijf1yIRNErayorpCPDpBs9rdrjqnXVD7lsRs2r0C6qGehn89e2x4Sjo4hTgc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323491; c=relaxed/simple; bh=tKj454ypPCbhkDrsMDWUObexL7a78f2S5jbHcsMACmk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=on9mwN1e9TT1STjH0QRnOGwMI087AdbnZF7EinB6AcKmOxSecAqTzBXfML/9EF7EfIdl9WNK8W55VwVYC7ewwaIR9Q8F926yxhjsIoM7kwKzT/ba3spd1Y8YCVHp+lG0AF3bA8Sh5q6s3H0n9XBObo9E30G9tVnDeqW4UgeNMOw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ipXR1IFv; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ipXR1IFv" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 26FBDC433F1; Sun, 24 Mar 2024 23:38:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323491; bh=tKj454ypPCbhkDrsMDWUObexL7a78f2S5jbHcsMACmk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ipXR1IFv+xoaHZRpijhWdjvg6+i3gYtaiUdfkczgY6Id6HYlCduyZE9Ng7MQwofOP NkM0/b8rZvFNstmrcS4PLe4n822QO7cM+5bYtTlO7r+Ji4ddkYNxQOM8tT4SDdZEIb g+jX/rUUTQ7VHRMLE8zb5fmsOmjeNq6Aaro7I/lLc2PXw9wq37EmqkmidvrtdX9JnF 6sb84L7MXJgQQU929dUjCYp5z1YgOhOsAuM7YZVczl3MQq0CPlQ37XxXsn+zMBJN1H jE9ojTSMAAHfmPK5Gf/uPsmt3v87RA3kWVcVfyHca9FZ77uplNmRn/0W7ZEkqnLHjE mNVvl6DufqPjA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Nikita Zhandarovich , Alex Deucher , Sasha Levin Subject: [PATCH 5.15 197/317] drm/radeon/ni: Fix wrong firmware size logging in ni_init_microcode() Date: Sun, 24 Mar 2024 19:32:57 -0400 Message-ID: <20240324233458.1352854-198-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Nikita Zhandarovich [ Upstream commit c4891d979c7668b195a0a75787967ec95a24ecef ] Clean up a typo in pr_err() erroneously printing NI MC 'rdev->mc_fw->size' during SMC firmware load. Log 'rdev->smc_fw->size' instead. Found by Linux Verification Center (linuxtesting.org) with static analysis tool SVACE. Fixes: 6596afd48af4 ("drm/radeon/kms: add dpm support for btc (v3)") Signed-off-by: Nikita Zhandarovich Signed-off-by: Alex Deucher Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/gpu/drm/radeon/ni.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/radeon/ni.c b/drivers/gpu/drm/radeon/ni.c index 4a364ca7a1be7..b041b6bfaeca6 100644 --- a/drivers/gpu/drm/radeon/ni.c +++ b/drivers/gpu/drm/radeon/ni.c @@ -813,7 +813,7 @@ int ni_init_microcode(struct radeon_device *rdev) err =3D 0; } else if (rdev->smc_fw->size !=3D smc_req_size) { pr_err("ni_mc: Bogus length %zu in firmware \"%s\"\n", - rdev->mc_fw->size, fw_name); + rdev->smc_fw->size, fw_name); err =3D -EINVAL; } } --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BD7D627A83B; Sun, 24 Mar 2024 23:38:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323492; cv=none; b=Zm2EKBHrWLy1oj48z4Xoqga8Ei4TjFVqmiV2LeIHayoLPJ78s2vXhFH94JoImdizvJJ/9CUOhfUGfsyxWQWsrgeBGvr57i8niyFvAD/PuQ6y3zSM+51qHpARFSFDkHdF6ahSBAq36ip75QHeAMJWhHGrjqLI1HXPnFP8/LhTI0w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323492; c=relaxed/simple; bh=555+qw8hj6CxmJ34SvS5ji6v7XhwIImlAMXxNMOMDRc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=uOKy11LXmfLowxHAfLFvfeToyLVm5Kx2vafhOXFYYhIQ/lzcItmjDzgJYt+7XL0lhLZrmb2rxn+ktYKYeENLOi2n99NXsKm0a3CySp7/HP2tqL2piNNZWIM8zR+AtXnH5EU3Odxj67wuT34PndH6Iu8FnvdX3VzNb8DYKfjGEQA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ZWgNInGS; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ZWgNInGS" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 07FA1C43390; Sun, 24 Mar 2024 23:38:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323492; bh=555+qw8hj6CxmJ34SvS5ji6v7XhwIImlAMXxNMOMDRc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ZWgNInGSsAfrX417ANfuCT/ZyKrwsKsOGJUtl9CwWC4+/4BNyEmChjyHxvvm6iZHk V3YElWNZD37CAgnSj8FqCMnZNrWziugP5WNGsA5/DU95wDf3DmK6o/Xe+VhVbSHYng dJsdkYBxcPzLy5YIjH7slbmP5gaoGrb512zqoItXcSt1kfd4DnxcZ0JyWdpYYqC8rz LrHAMLOpMVrl/b3MSByvmjFVOOVVYAw7zWJmEPUCXi1Vcg3MSF3yLstVAkZ6o7puH1 8GD1h2kS+2UKqxDz9xj4BDdZJdlu1lcaW8KC/oWYPxCP5EffpwEpmCCV2z7oxuGFf9 LNhsTReruHZ6A== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Takashi Iwai , Arnd Bergmann , Sasha Levin Subject: [PATCH 5.15 198/317] ALSA: seq: fix function cast warnings Date: Sun, 24 Mar 2024 19:32:58 -0400 Message-ID: <20240324233458.1352854-199-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Takashi Iwai [ Upstream commit d7bf73809849463f76de42aad62c850305dd6c5d ] clang-16 points out a control flow integrity (kcfi) issue when event callbacks get converted to incompatible types: sound/core/seq/seq_midi.c:135:30: error: cast from 'int (*)(struct snd_rawm= idi_substream *, const char *, int)' to 'snd_seq_dump_func_t' (aka 'int (*)= (void *, void *, int)') converts to incompatible function type [-Werror,-Wc= ast-function-type-strict] 135 | snd_seq_dump_var_event(ev, (snd_seq_dump_func_t)dum= p_midi, substream); | ^~~~~~~~~~~~~~~~~~~~~~~~= ~~~~~~ sound/core/seq/seq_virmidi.c:83:31: error: cast from 'int (*)(struct snd_ra= wmidi_substream *, const unsigned char *, int)' to 'snd_seq_dump_func_t' (a= ka 'int (*)(void *, void *, int)') converts to incompatible function type [= -Werror,-Wcast-function-type-strict] 83 | snd_seq_dump_var_event(ev, (snd_seq_dump_fu= nc_t)snd_rawmidi_receive, vmidi->substream); | ^~~~~~~~~~~~~~~~= ~~~~~~~~~~~~~~~~~~~~~~~~ For addressing those errors, introduce wrapper functions that are used for callbacks and bridge to the actual function call with pointer cast. The code was originally added with the initial ALSA merge in linux-2.5.4. [ the patch description shamelessly copied from Arnd's original patch -- tiwai ] Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2") Reported-by: Arnd Bergmann Link: https://lore.kernel.org/r/20240213101020.459183-1-arnd@kernel.org Link: https://lore.kernel.org/r/20240213135343.16411-1-tiwai@suse.de Signed-off-by: Takashi Iwai Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- sound/core/seq/seq_midi.c | 8 +++++++- sound/core/seq/seq_virmidi.c | 9 ++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/sound/core/seq/seq_midi.c b/sound/core/seq/seq_midi.c index 4589aac091542..b00bbf18a6f5d 100644 --- a/sound/core/seq/seq_midi.c +++ b/sound/core/seq/seq_midi.c @@ -112,6 +112,12 @@ static int dump_midi(struct snd_rawmidi_substream *sub= stream, const char *buf, i return 0; } =20 +/* callback for snd_seq_dump_var_event(), bridging to dump_midi() */ +static int __dump_midi(void *ptr, void *buf, int count) +{ + return dump_midi(ptr, buf, count); +} + static int event_process_midi(struct snd_seq_event *ev, int direct, void *private_data, int atomic, int hop) { @@ -131,7 +137,7 @@ static int event_process_midi(struct snd_seq_event *ev,= int direct, pr_debug("ALSA: seq_midi: invalid sysex event flags =3D 0x%x\n", ev->fl= ags); return 0; } - snd_seq_dump_var_event(ev, (snd_seq_dump_func_t)dump_midi, substream); + snd_seq_dump_var_event(ev, __dump_midi, substream); snd_midi_event_reset_decode(msynth->parser); } else { if (msynth->parser =3D=3D NULL) diff --git a/sound/core/seq/seq_virmidi.c b/sound/core/seq/seq_virmidi.c index 4abc38c70cae2..339799bfaad9d 100644 --- a/sound/core/seq/seq_virmidi.c +++ b/sound/core/seq/seq_virmidi.c @@ -62,6 +62,13 @@ static void snd_virmidi_init_event(struct snd_virmidi *v= midi, /* * decode input event and put to read buffer of each opened file */ + +/* callback for snd_seq_dump_var_event(), bridging to snd_rawmidi_receive(= ) */ +static int dump_to_rawmidi(void *ptr, void *buf, int count) +{ + return snd_rawmidi_receive(ptr, buf, count); +} + static int snd_virmidi_dev_receive_event(struct snd_virmidi_dev *rdev, struct snd_seq_event *ev, bool atomic) @@ -80,7 +87,7 @@ static int snd_virmidi_dev_receive_event(struct snd_virmi= di_dev *rdev, if (ev->type =3D=3D SNDRV_SEQ_EVENT_SYSEX) { if ((ev->flags & SNDRV_SEQ_EVENT_LENGTH_MASK) !=3D SNDRV_SEQ_EVENT_LENG= TH_VARIABLE) continue; - snd_seq_dump_var_event(ev, (snd_seq_dump_func_t)snd_rawmidi_receive, vm= idi->substream); + snd_seq_dump_var_event(ev, dump_to_rawmidi, vmidi->substream); snd_midi_event_reset_decode(vmidi->parser); } else { len =3D snd_midi_event_decode(vmidi->parser, msg, sizeof(msg), ev); --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 22A3C5A7AA; Sun, 24 Mar 2024 23:38:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323495; cv=none; b=nqNaiKII4e69UHBqGUtKAEz5J251uZQWLHevqgPQSu1tA+z8t2poeNs48QHAnSMxBpncg9pFG/1foVHsPcXZl6PnkdDkRB5J8zmlLuYxVhmBFCNZZ9g0hw47ZkNJSYjotYWW7mRRy+gN5OikMaeNT5MflhNm7UFJIaxontzkmM0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323495; c=relaxed/simple; bh=FR9iFq0oFXyS9NTUKTwHsIX+vwgMzeAlE3rBx35uoko=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=KcSEew5UpFgrTC1yh7/+tWRDcviKq0tZJNO03PjhOXOdt6y99OsQN+qHmXxtmbN9VavO9kCwCDs0eqX87gy1rEhMPoFFU2npgJiDcF5rIy6cVg2sMaWlrQ6LrMGtGcMYkPiYGM6gfnVUPJISgkLbKmiX7Av+2hTyWyHRf1uEHRc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=fK1KXTAV; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="fK1KXTAV" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E584FC433C7; Sun, 24 Mar 2024 23:38:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323494; bh=FR9iFq0oFXyS9NTUKTwHsIX+vwgMzeAlE3rBx35uoko=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=fK1KXTAVfOvZe8tOom6ZvL6eRytiTBcmy3DtGj8lM5iW7RZ9yoCM2Zyf7xE0cSw/F S8T5wRjTKAiFVrj+NAAGj0MHZX7M2InGG0AYteylMt/8Q1qwzA3lHKcersUY/CksEF orGcWoINNiOsJ4oxj4Sw1D7QnizqMO2FR3mVyjR46JHalyKpecETD3S+4KG+/5MM8y QaTBPFgSFF05H7LK3w/5AF98hJG3d6iXSWBb5bZ0PNyP0ppz6CTkWd3WB4lq2jELfA XlmS3c9sY8Yb+qDI0fe2iw7/6GB56knBqJ6OI276rDUnE6s5lQfPhkjDEBFjGmJKaP bWNGH1wbJ8PXA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Ian Rogers , Kan Liang , K Prateek Nayak , James Clark , Kaige Ye , John Garry , Namhyung Kim , Sasha Levin Subject: [PATCH 5.15 199/317] perf stat: Avoid metric-only segv Date: Sun, 24 Mar 2024 19:32:59 -0400 Message-ID: <20240324233458.1352854-200-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Ian Rogers [ Upstream commit 2543947c77e0e224bda86b4e7220c2f6714da463 ] Cycles is recognized as part of a hard coded metric in stat-shadow.c, it may call print_metric_only with a NULL fmt string leading to a segfault. Handle the NULL fmt explicitly. Fixes: 088519f318be ("perf stat: Move the display functions to stat-display= .c") Signed-off-by: Ian Rogers Reviewed-by: Kan Liang Cc: K Prateek Nayak Cc: James Clark Cc: Kaige Ye Cc: John Garry Signed-off-by: Namhyung Kim Link: https://lore.kernel.org/r/20240209204947.3873294-4-irogers@google.com Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- tools/perf/util/stat-display.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/perf/util/stat-display.c b/tools/perf/util/stat-display.c index 24e50fabb6c33..5ed20e1e09aef 100644 --- a/tools/perf/util/stat-display.c +++ b/tools/perf/util/stat-display.c @@ -275,7 +275,7 @@ static void print_metric_only(struct perf_stat_config *= config, if (color) mlen +=3D strlen(color) + sizeof(PERF_COLOR_RESET) - 1; =20 - color_snprintf(str, sizeof(str), color ?: "", fmt, val); + color_snprintf(str, sizeof(str), color ?: "", fmt ?: "", val); fprintf(out, "%*s ", mlen, str); } =20 --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0940A27A859; Sun, 24 Mar 2024 23:38:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323496; cv=none; b=d+etKOtXqaFDx2xQozGh7HJecfnSmq8MXnAmzxTRpZ+TZ3wezQsWIdpk+o8NPNXRzEDOLwATArPPbeNxM/kwAgvWgsZC4MJw9OPGqi2q6yIDO5gBeYFqbc4I0K7rvZE7LcavaEONj7IK7PuILUS8UZ3tj09GdwY1DSBRjfTO6mU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323496; c=relaxed/simple; bh=dTOA1i0hR5O16Wzf2Byk5Ct+tFTOOYDBRh69BN9FK8o=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Qdq6IjWQbJGPM+pKrexUGTp8wUCVThP8WtvKpVeyiO3aITRLYr5x/PstrA/YMbzaCzwv++UGM89OOdFe7vxVn2P2dI3py0oYk0kr6ylGqJXNgp2jBP5j+M671hMbESBPMMCARse2r++oRtUTaKxCbXRKkciBFk+VpJ+reNrVZIs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=R6RxAY0p; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="R6RxAY0p" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 46AA6C433F1; Sun, 24 Mar 2024 23:38:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323494; bh=dTOA1i0hR5O16Wzf2Byk5Ct+tFTOOYDBRh69BN9FK8o=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=R6RxAY0ph0GvrfhiQt/5/wyc9+5pQ90iNuWIriAuAdFWmHGOsTLc2MN2gk0ZSTH13 Q0pu1+sU0JgErI78R3CmE0gnNwlpZDEb6bSydSMj3pwvV2YlVbwBOyO/YP/tgsEjXk gV/Z5OCWb94YdTeXS3Q84WbK/QzI/pnG1UQsMCXDJPq9OrOJgSbTEQ1ZWvoWhY48lo 7WBdO6ZN6g+2oqS0yDERPAk6J8y4YZSWJkBir6vjzu6LouEDG9xqMAoufa5Pu9sbsQ KhRH8rk7jff54oL7xb+iwgBzbPR/VE/xiB7GXGeUuVAZUL0HLfTXW49ZsFghVoONJU C7lg0pFTlv2YQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Kuninori Morimoto , Mark Brown , Sasha Levin Subject: [PATCH 5.15 200/317] ASoC: meson: Use dev_err_probe() helper Date: Sun, 24 Mar 2024 19:33:00 -0400 Message-ID: <20240324233458.1352854-201-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Kuninori Morimoto [ Upstream commit 2ff4e003e8e105fb65c682c876a5cb0e00f854bf ] Use the dev_err_probe() helper, instead of open-coding the same operation. Signed-off-by: Kuninori Morimoto Link: https://lore.kernel.org/r/20211214020843.2225831-17-kuninori.morimoto= .gx@renesas.com Signed-off-by: Mark Brown Stable-dep-of: 98ac85a00f31 ("ASoC: meson: aiu: fix function pointer type m= ismatch") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- sound/soc/meson/aiu.c | 36 +++++++-------------- sound/soc/meson/axg-fifo.c | 16 +++------ sound/soc/meson/axg-pdm.c | 25 ++++----------- sound/soc/meson/axg-spdifin.c | 17 +++------- sound/soc/meson/axg-spdifout.c | 17 +++------- sound/soc/meson/axg-tdm-formatter.c | 50 ++++++++--------------------- sound/soc/meson/axg-tdm-interface.c | 25 ++++----------- sound/soc/meson/meson-card-utils.c | 8 ++--- sound/soc/meson/t9015.c | 14 +++----- 9 files changed, 56 insertions(+), 152 deletions(-) diff --git a/sound/soc/meson/aiu.c b/sound/soc/meson/aiu.c index ba15d5762b0bf..d299a70db7e59 100644 --- a/sound/soc/meson/aiu.c +++ b/sound/soc/meson/aiu.c @@ -218,34 +218,23 @@ static int aiu_clk_get(struct device *dev) int ret; =20 aiu->pclk =3D devm_clk_get(dev, "pclk"); - if (IS_ERR(aiu->pclk)) { - if (PTR_ERR(aiu->pclk) !=3D -EPROBE_DEFER) - dev_err(dev, "Can't get the aiu pclk\n"); - return PTR_ERR(aiu->pclk); - } + if (IS_ERR(aiu->pclk)) + return dev_err_probe(dev, PTR_ERR(aiu->pclk), "Can't get the aiu pclk\n"= ); =20 aiu->spdif_mclk =3D devm_clk_get(dev, "spdif_mclk"); - if (IS_ERR(aiu->spdif_mclk)) { - if (PTR_ERR(aiu->spdif_mclk) !=3D -EPROBE_DEFER) - dev_err(dev, "Can't get the aiu spdif master clock\n"); - return PTR_ERR(aiu->spdif_mclk); - } + if (IS_ERR(aiu->spdif_mclk)) + return dev_err_probe(dev, PTR_ERR(aiu->spdif_mclk), + "Can't get the aiu spdif master clock\n"); =20 ret =3D aiu_clk_bulk_get(dev, aiu_i2s_ids, ARRAY_SIZE(aiu_i2s_ids), &aiu->i2s); - if (ret) { - if (ret !=3D -EPROBE_DEFER) - dev_err(dev, "Can't get the i2s clocks\n"); - return ret; - } + if (ret) + return dev_err_probe(dev, ret, "Can't get the i2s clocks\n"); =20 ret =3D aiu_clk_bulk_get(dev, aiu_spdif_ids, ARRAY_SIZE(aiu_spdif_ids), &aiu->spdif); - if (ret) { - if (ret !=3D -EPROBE_DEFER) - dev_err(dev, "Can't get the spdif clocks\n"); - return ret; - } + if (ret) + return dev_err_probe(dev, ret, "Can't get the spdif clocks\n"); =20 ret =3D clk_prepare_enable(aiu->pclk); if (ret) { @@ -281,11 +270,8 @@ static int aiu_probe(struct platform_device *pdev) platform_set_drvdata(pdev, aiu); =20 ret =3D device_reset(dev); - if (ret) { - if (ret !=3D -EPROBE_DEFER) - dev_err(dev, "Failed to reset device\n"); - return ret; - } + if (ret) + return dev_err_probe(dev, ret, "Failed to reset device\n"); =20 regs =3D devm_platform_ioremap_resource(pdev, 0); if (IS_ERR(regs)) diff --git a/sound/soc/meson/axg-fifo.c b/sound/soc/meson/axg-fifo.c index b9af2d513e096..bccfb770b3391 100644 --- a/sound/soc/meson/axg-fifo.c +++ b/sound/soc/meson/axg-fifo.c @@ -351,20 +351,12 @@ int axg_fifo_probe(struct platform_device *pdev) } =20 fifo->pclk =3D devm_clk_get(dev, NULL); - if (IS_ERR(fifo->pclk)) { - if (PTR_ERR(fifo->pclk) !=3D -EPROBE_DEFER) - dev_err(dev, "failed to get pclk: %ld\n", - PTR_ERR(fifo->pclk)); - return PTR_ERR(fifo->pclk); - } + if (IS_ERR(fifo->pclk)) + return dev_err_probe(dev, PTR_ERR(fifo->pclk), "failed to get pclk\n"); =20 fifo->arb =3D devm_reset_control_get_exclusive(dev, NULL); - if (IS_ERR(fifo->arb)) { - if (PTR_ERR(fifo->arb) !=3D -EPROBE_DEFER) - dev_err(dev, "failed to get arb reset: %ld\n", - PTR_ERR(fifo->arb)); - return PTR_ERR(fifo->arb); - } + if (IS_ERR(fifo->arb)) + return dev_err_probe(dev, PTR_ERR(fifo->arb), "failed to get arb reset\n= "); =20 fifo->irq =3D of_irq_get(dev->of_node, 0); if (fifo->irq <=3D 0) { diff --git a/sound/soc/meson/axg-pdm.c b/sound/soc/meson/axg-pdm.c index bfd37d49a73ef..672e43a9729dc 100644 --- a/sound/soc/meson/axg-pdm.c +++ b/sound/soc/meson/axg-pdm.c @@ -586,7 +586,6 @@ static int axg_pdm_probe(struct platform_device *pdev) struct device *dev =3D &pdev->dev; struct axg_pdm *priv; void __iomem *regs; - int ret; =20 priv =3D devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); if (!priv) @@ -611,28 +610,16 @@ static int axg_pdm_probe(struct platform_device *pdev) } =20 priv->pclk =3D devm_clk_get(dev, "pclk"); - if (IS_ERR(priv->pclk)) { - ret =3D PTR_ERR(priv->pclk); - if (ret !=3D -EPROBE_DEFER) - dev_err(dev, "failed to get pclk: %d\n", ret); - return ret; - } + if (IS_ERR(priv->pclk)) + return dev_err_probe(dev, PTR_ERR(priv->pclk), "failed to get pclk\n"); =20 priv->dclk =3D devm_clk_get(dev, "dclk"); - if (IS_ERR(priv->dclk)) { - ret =3D PTR_ERR(priv->dclk); - if (ret !=3D -EPROBE_DEFER) - dev_err(dev, "failed to get dclk: %d\n", ret); - return ret; - } + if (IS_ERR(priv->dclk)) + return dev_err_probe(dev, PTR_ERR(priv->dclk), "failed to get dclk\n"); =20 priv->sysclk =3D devm_clk_get(dev, "sysclk"); - if (IS_ERR(priv->sysclk)) { - ret =3D PTR_ERR(priv->sysclk); - if (ret !=3D -EPROBE_DEFER) - dev_err(dev, "failed to get dclk: %d\n", ret); - return ret; - } + if (IS_ERR(priv->sysclk)) + return dev_err_probe(dev, PTR_ERR(priv->sysclk), "failed to get dclk\n"); =20 return devm_snd_soc_register_component(dev, &axg_pdm_component_drv, &axg_pdm_dai_drv, 1); diff --git a/sound/soc/meson/axg-spdifin.c b/sound/soc/meson/axg-spdifin.c index 7aaded1fc376b..245189d2ee95f 100644 --- a/sound/soc/meson/axg-spdifin.c +++ b/sound/soc/meson/axg-spdifin.c @@ -439,7 +439,6 @@ static int axg_spdifin_probe(struct platform_device *pd= ev) struct axg_spdifin *priv; struct snd_soc_dai_driver *dai_drv; void __iomem *regs; - int ret; =20 priv =3D devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); if (!priv) @@ -464,20 +463,12 @@ static int axg_spdifin_probe(struct platform_device *= pdev) } =20 priv->pclk =3D devm_clk_get(dev, "pclk"); - if (IS_ERR(priv->pclk)) { - ret =3D PTR_ERR(priv->pclk); - if (ret !=3D -EPROBE_DEFER) - dev_err(dev, "failed to get pclk: %d\n", ret); - return ret; - } + if (IS_ERR(priv->pclk)) + return dev_err_probe(dev, PTR_ERR(priv->pclk), "failed to get pclk\n"); =20 priv->refclk =3D devm_clk_get(dev, "refclk"); - if (IS_ERR(priv->refclk)) { - ret =3D PTR_ERR(priv->refclk); - if (ret !=3D -EPROBE_DEFER) - dev_err(dev, "failed to get mclk: %d\n", ret); - return ret; - } + if (IS_ERR(priv->refclk)) + return dev_err_probe(dev, PTR_ERR(priv->refclk), "failed to get mclk\n"); =20 dai_drv =3D axg_spdifin_get_dai_drv(dev, priv); if (IS_ERR(dai_drv)) { diff --git a/sound/soc/meson/axg-spdifout.c b/sound/soc/meson/axg-spdifout.c index e769a5ee6e27e..3960d082e1436 100644 --- a/sound/soc/meson/axg-spdifout.c +++ b/sound/soc/meson/axg-spdifout.c @@ -403,7 +403,6 @@ static int axg_spdifout_probe(struct platform_device *p= dev) struct device *dev =3D &pdev->dev; struct axg_spdifout *priv; void __iomem *regs; - int ret; =20 priv =3D devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); if (!priv) @@ -422,20 +421,12 @@ static int axg_spdifout_probe(struct platform_device = *pdev) } =20 priv->pclk =3D devm_clk_get(dev, "pclk"); - if (IS_ERR(priv->pclk)) { - ret =3D PTR_ERR(priv->pclk); - if (ret !=3D -EPROBE_DEFER) - dev_err(dev, "failed to get pclk: %d\n", ret); - return ret; - } + if (IS_ERR(priv->pclk)) + return dev_err_probe(dev, PTR_ERR(priv->pclk), "failed to get pclk\n"); =20 priv->mclk =3D devm_clk_get(dev, "mclk"); - if (IS_ERR(priv->mclk)) { - ret =3D PTR_ERR(priv->mclk); - if (ret !=3D -EPROBE_DEFER) - dev_err(dev, "failed to get mclk: %d\n", ret); - return ret; - } + if (IS_ERR(priv->mclk)) + return dev_err_probe(dev, PTR_ERR(priv->mclk), "failed to get mclk\n"); =20 return devm_snd_soc_register_component(dev, &axg_spdifout_component_drv, axg_spdifout_dai_drv, ARRAY_SIZE(axg_spdifout_dai_drv)); diff --git a/sound/soc/meson/axg-tdm-formatter.c b/sound/soc/meson/axg-tdm-= formatter.c index 4834cfd163c03..63333a2b0a9c3 100644 --- a/sound/soc/meson/axg-tdm-formatter.c +++ b/sound/soc/meson/axg-tdm-formatter.c @@ -265,7 +265,6 @@ int axg_tdm_formatter_probe(struct platform_device *pde= v) const struct axg_tdm_formatter_driver *drv; struct axg_tdm_formatter *formatter; void __iomem *regs; - int ret; =20 drv =3D of_device_get_match_data(dev); if (!drv) { @@ -292,57 +291,34 @@ int axg_tdm_formatter_probe(struct platform_device *p= dev) =20 /* Peripharal clock */ formatter->pclk =3D devm_clk_get(dev, "pclk"); - if (IS_ERR(formatter->pclk)) { - ret =3D PTR_ERR(formatter->pclk); - if (ret !=3D -EPROBE_DEFER) - dev_err(dev, "failed to get pclk: %d\n", ret); - return ret; - } + if (IS_ERR(formatter->pclk)) + return dev_err_probe(dev, PTR_ERR(formatter->pclk), "failed to get pclk\= n"); =20 /* Formatter bit clock */ formatter->sclk =3D devm_clk_get(dev, "sclk"); - if (IS_ERR(formatter->sclk)) { - ret =3D PTR_ERR(formatter->sclk); - if (ret !=3D -EPROBE_DEFER) - dev_err(dev, "failed to get sclk: %d\n", ret); - return ret; - } + if (IS_ERR(formatter->sclk)) + return dev_err_probe(dev, PTR_ERR(formatter->sclk), "failed to get sclk\= n"); =20 /* Formatter sample clock */ formatter->lrclk =3D devm_clk_get(dev, "lrclk"); - if (IS_ERR(formatter->lrclk)) { - ret =3D PTR_ERR(formatter->lrclk); - if (ret !=3D -EPROBE_DEFER) - dev_err(dev, "failed to get lrclk: %d\n", ret); - return ret; - } + if (IS_ERR(formatter->lrclk)) + return dev_err_probe(dev, PTR_ERR(formatter->lrclk), "failed to get lrcl= k\n"); =20 /* Formatter bit clock input multiplexer */ formatter->sclk_sel =3D devm_clk_get(dev, "sclk_sel"); - if (IS_ERR(formatter->sclk_sel)) { - ret =3D PTR_ERR(formatter->sclk_sel); - if (ret !=3D -EPROBE_DEFER) - dev_err(dev, "failed to get sclk_sel: %d\n", ret); - return ret; - } + if (IS_ERR(formatter->sclk_sel)) + return dev_err_probe(dev, PTR_ERR(formatter->sclk_sel), "failed to get s= clk_sel\n"); =20 /* Formatter sample clock input multiplexer */ formatter->lrclk_sel =3D devm_clk_get(dev, "lrclk_sel"); - if (IS_ERR(formatter->lrclk_sel)) { - ret =3D PTR_ERR(formatter->lrclk_sel); - if (ret !=3D -EPROBE_DEFER) - dev_err(dev, "failed to get lrclk_sel: %d\n", ret); - return ret; - } + if (IS_ERR(formatter->lrclk_sel)) + return dev_err_probe(dev, PTR_ERR(formatter->lrclk_sel), + "failed to get lrclk_sel\n"); =20 /* Formatter dedicated reset line */ formatter->reset =3D devm_reset_control_get_optional_exclusive(dev, NULL); - if (IS_ERR(formatter->reset)) { - ret =3D PTR_ERR(formatter->reset); - if (ret !=3D -EPROBE_DEFER) - dev_err(dev, "failed to get reset: %d\n", ret); - return ret; - } + if (IS_ERR(formatter->reset)) + return dev_err_probe(dev, PTR_ERR(formatter->reset), "failed to get rese= t\n"); =20 return devm_snd_soc_register_component(dev, drv->component_drv, NULL, 0); diff --git a/sound/soc/meson/axg-tdm-interface.c b/sound/soc/meson/axg-tdm-= interface.c index 87cac440b3693..e076ced300257 100644 --- a/sound/soc/meson/axg-tdm-interface.c +++ b/sound/soc/meson/axg-tdm-interface.c @@ -517,21 +517,13 @@ static int axg_tdm_iface_probe(struct platform_device= *pdev) =20 /* Bit clock provided on the pad */ iface->sclk =3D devm_clk_get(dev, "sclk"); - if (IS_ERR(iface->sclk)) { - ret =3D PTR_ERR(iface->sclk); - if (ret !=3D -EPROBE_DEFER) - dev_err(dev, "failed to get sclk: %d\n", ret); - return ret; - } + if (IS_ERR(iface->sclk)) + return dev_err_probe(dev, PTR_ERR(iface->sclk), "failed to get sclk\n"); =20 /* Sample clock provided on the pad */ iface->lrclk =3D devm_clk_get(dev, "lrclk"); - if (IS_ERR(iface->lrclk)) { - ret =3D PTR_ERR(iface->lrclk); - if (ret !=3D -EPROBE_DEFER) - dev_err(dev, "failed to get lrclk: %d\n", ret); - return ret; - } + if (IS_ERR(iface->lrclk)) + return dev_err_probe(dev, PTR_ERR(iface->lrclk), "failed to get lrclk\n"= ); =20 /* * mclk maybe be missing when the cpu dai is in slave mode and @@ -542,13 +534,10 @@ static int axg_tdm_iface_probe(struct platform_device= *pdev) iface->mclk =3D devm_clk_get(dev, "mclk"); if (IS_ERR(iface->mclk)) { ret =3D PTR_ERR(iface->mclk); - if (ret =3D=3D -ENOENT) { + if (ret =3D=3D -ENOENT) iface->mclk =3D NULL; - } else { - if (ret !=3D -EPROBE_DEFER) - dev_err(dev, "failed to get mclk: %d\n", ret); - return ret; - } + else + return dev_err_probe(dev, ret, "failed to get mclk\n"); } =20 return devm_snd_soc_register_component(dev, diff --git a/sound/soc/meson/meson-card-utils.c b/sound/soc/meson/meson-car= d-utils.c index 415cc0046e4b4..23ccd2a720e19 100644 --- a/sound/soc/meson/meson-card-utils.c +++ b/sound/soc/meson/meson-card-utils.c @@ -85,11 +85,9 @@ int meson_card_parse_dai(struct snd_soc_card *card, =20 ret =3D of_parse_phandle_with_args(node, "sound-dai", "#sound-dai-cells", 0, &args); - if (ret) { - if (ret !=3D -EPROBE_DEFER) - dev_err(card->dev, "can't parse dai %d\n", ret); - return ret; - } + if (ret) + return dev_err_probe(card->dev, ret, "can't parse dai\n"); + *dai_of_node =3D args.np; =20 return snd_soc_get_dai_name(&args, dai_name); diff --git a/sound/soc/meson/t9015.c b/sound/soc/meson/t9015.c index 4c1349dd1e06a..a9b8c4e77d405 100644 --- a/sound/soc/meson/t9015.c +++ b/sound/soc/meson/t9015.c @@ -258,18 +258,12 @@ static int t9015_probe(struct platform_device *pdev) platform_set_drvdata(pdev, priv); =20 priv->pclk =3D devm_clk_get(dev, "pclk"); - if (IS_ERR(priv->pclk)) { - if (PTR_ERR(priv->pclk) !=3D -EPROBE_DEFER) - dev_err(dev, "failed to get core clock\n"); - return PTR_ERR(priv->pclk); - } + if (IS_ERR(priv->pclk)) + return dev_err_probe(dev, PTR_ERR(priv->pclk), "failed to get core clock= \n"); =20 priv->avdd =3D devm_regulator_get(dev, "AVDD"); - if (IS_ERR(priv->avdd)) { - if (PTR_ERR(priv->avdd) !=3D -EPROBE_DEFER) - dev_err(dev, "failed to AVDD\n"); - return PTR_ERR(priv->avdd); - } + if (IS_ERR(priv->avdd)) + return dev_err_probe(dev, PTR_ERR(priv->avdd), "failed to AVDD\n"); =20 ret =3D clk_prepare_enable(priv->pclk); if (ret) { --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7104527A85F; Sun, 24 Mar 2024 23:38:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323497; cv=none; b=upGtmsRvkUneNIRsK/UyrnVtbAWEk5H0d1w5JbxSZaFr4FdqV6hlCX6/zboKplL/5xE/89h5Zg60x09DyK2kWjlpTuux3BOhNxi0FT8o/HgcAToz08003uN+gMHdgZ+hhynVLlBl/cjRmfra40nksP0TA6nEti4zVEXYhZsZ+fI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323497; c=relaxed/simple; bh=TcBsGfVcMD3EtPVOIGdNV8dQNmF63mnpU6DYFDlur2k=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=okLurgk3GLBJ1Cw68YDUPrwP1hQSqXQXckBnVFRfcuD7WMBX7LlVhA6AATSwpTQW6qeE8cu3FGFEZqbylWge2vIWgP9SkAC5Xtw5AGyG8XVh8gtEBufPAaYwdhBdYEmbTS7sjKSK9Geq4nMIxRxH+FqcTN8kb0RVaind3jq+c1g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=kWR8/jT/; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="kWR8/jT/" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 27E11C43390; Sun, 24 Mar 2024 23:38:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323496; bh=TcBsGfVcMD3EtPVOIGdNV8dQNmF63mnpU6DYFDlur2k=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=kWR8/jT/GufWMu0nRZmYF+Y82fs4yuF5b24Bm0rrLGUhd0KqyiL6eDIS5etSyjkx0 JNpODIINhy2SSRJsPPj1BCnWlstzWF/sm30YqDF85fcL179N9tLyGlazdWfD3wOeGB NBOuUht1AvSKH4KcvbFX74NXfzEO5lhcsPOLFCJUmfgTRObsLKvNuTxD+9dF6gfmu0 Twy0m03zJ2oZM1nuuZCmaBxIcz63m40ql09Ux/fGeLGi6Ih4NHV558oWZ73ILl4U4g QDuB00qFPOkfRvt13l1lkBqUp+z48kFPb8AWSDBZBc/Ab6oZfskvFJ7jBhLpdpxgVI CFnP7R98jbKjQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jerome Brunet , Arnd Bergmann , Justin Stitt , Mark Brown , Sasha Levin Subject: [PATCH 5.15 201/317] ASoC: meson: aiu: fix function pointer type mismatch Date: Sun, 24 Mar 2024 19:33:01 -0400 Message-ID: <20240324233458.1352854-202-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Jerome Brunet [ Upstream commit 98ac85a00f31d2e9d5452b825a9ed0153d934043 ] clang-16 warns about casting functions to incompatible types, as is done here to call clk_disable_unprepare: sound/soc/meson/aiu.c:243:12: error: cast from 'void (*)(struct clk *)' to = 'void (*)(void *)' converts to incompatible function type [-Werror,-Wcast-f= unction-type-strict] 243 | (void(*)(void *))clk_disable= _unprepare, The pattern of getting, enabling and setting a disable callback for a clock can be replaced with devm_clk_get_enabled(), which also fixes this warning. Fixes: 6ae9ca9ce986 ("ASoC: meson: aiu: add i2s and spdif support") Reported-by: Arnd Bergmann Signed-off-by: Jerome Brunet Reviewed-by: Justin Stitt Link: https://msgid.link/r/20240213215807.3326688-2-jbrunet@baylibre.com Signed-off-by: Mark Brown Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- sound/soc/meson/aiu.c | 19 ++++--------------- sound/soc/meson/aiu.h | 1 - 2 files changed, 4 insertions(+), 16 deletions(-) diff --git a/sound/soc/meson/aiu.c b/sound/soc/meson/aiu.c index d299a70db7e59..a164ca2446ecd 100644 --- a/sound/soc/meson/aiu.c +++ b/sound/soc/meson/aiu.c @@ -215,11 +215,12 @@ static const char * const aiu_spdif_ids[] =3D { static int aiu_clk_get(struct device *dev) { struct aiu *aiu =3D dev_get_drvdata(dev); + struct clk *pclk; int ret; =20 - aiu->pclk =3D devm_clk_get(dev, "pclk"); - if (IS_ERR(aiu->pclk)) - return dev_err_probe(dev, PTR_ERR(aiu->pclk), "Can't get the aiu pclk\n"= ); + pclk =3D devm_clk_get_enabled(dev, "pclk"); + if (IS_ERR(pclk)) + return dev_err_probe(dev, PTR_ERR(pclk), "Can't get the aiu pclk\n"); =20 aiu->spdif_mclk =3D devm_clk_get(dev, "spdif_mclk"); if (IS_ERR(aiu->spdif_mclk)) @@ -236,18 +237,6 @@ static int aiu_clk_get(struct device *dev) if (ret) return dev_err_probe(dev, ret, "Can't get the spdif clocks\n"); =20 - ret =3D clk_prepare_enable(aiu->pclk); - if (ret) { - dev_err(dev, "peripheral clock enable failed\n"); - return ret; - } - - ret =3D devm_add_action_or_reset(dev, - (void(*)(void *))clk_disable_unprepare, - aiu->pclk); - if (ret) - dev_err(dev, "failed to add reset action on pclk"); - return ret; } =20 diff --git a/sound/soc/meson/aiu.h b/sound/soc/meson/aiu.h index 393b6c2307e49..0f94c8bf60818 100644 --- a/sound/soc/meson/aiu.h +++ b/sound/soc/meson/aiu.h @@ -33,7 +33,6 @@ struct aiu_platform_data { }; =20 struct aiu { - struct clk *pclk; struct clk *spdif_mclk; struct aiu_interface i2s; struct aiu_interface spdif; --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3013B13C681; Sun, 24 Mar 2024 23:38:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323498; cv=none; b=UEIosC+otVD8lAGGSK6hq/Y4LFnvJ9reOI1RnrZx1fWuMMozYLJShYjCCK859ae+QoKYs8tovOyBLy+q3mYYTg+mly1pa5sVSj/QF2U6tt+UxTqPVJ0EfIRM5Uy5ZQtbjLHqkoZJgoK5NAv8ogt5wavn+DMSfTtsaczdrVXaCzg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323498; c=relaxed/simple; bh=7hbWTUPCJquy2fKqhgCABsd6LUQRy3Rai4i++CpOixM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MEhfEE/ddLFvTs5PXzUUgEyOBOAxLRl+XPmE5ZDW19oKls9mTz3XLIrtcgATiuGd5ooAmR9hkXMQiWKaITv6aJcbxNn+P1OZRJBFk9LO9tQzD2kZk4CVl/HLzfRO4aiM3qrqAEba3vxDtwfk7tcN4MT7GmtvsaYd6LnbP6nbpZ0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ByPB6DLU; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ByPB6DLU" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 40879C43399; Sun, 24 Mar 2024 23:38:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323497; bh=7hbWTUPCJquy2fKqhgCABsd6LUQRy3Rai4i++CpOixM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ByPB6DLUY4kiHgXrE9VSOb68IhEzayxVZqgjyJ47Drageec9g0DixAQEiJ14MMuUY iy48fUvUEMtZQfLAToPy5a8OsVmudB/ZciMF1CRuvUJhb0uW1Yg66QYad0m8BtpVoG Z7iV2v/WPsRd1aNI0LP9ff10MS34fMtz1b3IpTjoXmh75GNQeihbhVj6UN+YO5Z4Rm 10E267NUssQ3RGb+hs6O7uiRqzeAKyKnpBiYNquAcLD6tYwAUuM3ofZMWAhAAvY5v+ w6Q+H8yW+b3w7SqBRcyE3TT+pUrUQ3G8Y6uGdP85GFwyyWEni4VO/sEcdM07L2KuQy OjpFqCHTcX0Fw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jerome Brunet , Arnd Bergmann , Justin Stitt , Mark Brown , Sasha Levin Subject: [PATCH 5.15 202/317] ASoC: meson: t9015: fix function pointer type mismatch Date: Sun, 24 Mar 2024 19:33:02 -0400 Message-ID: <20240324233458.1352854-203-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Jerome Brunet [ Upstream commit 5ad992c71b6a8e8a547954addc7af9fbde6ca10a ] clang-16 warns about casting functions to incompatible types, as is done here to call clk_disable_unprepare: sound/soc/meson/t9015.c:274:4: error: cast from 'void (*)(struct clk *)' to= 'void (*)(void *)' converts to incompatible function type [-Werror,-Wcast-= function-type-strict] 274 | (void(*)(void *))clk_disable_unprepare, The pattern of getting, enabling and setting a disable callback for a clock can be replaced with devm_clk_get_enabled(), which also fixes this warning. Fixes: 33901f5b9b16 ("ASoC: meson: add t9015 internal DAC driver") Reported-by: Arnd Bergmann Signed-off-by: Jerome Brunet Reviewed-by: Justin Stitt Link: https://msgid.link/r/20240213215807.3326688-3-jbrunet@baylibre.com Signed-off-by: Mark Brown Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- sound/soc/meson/t9015.c | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/sound/soc/meson/t9015.c b/sound/soc/meson/t9015.c index a9b8c4e77d405..0571549a88206 100644 --- a/sound/soc/meson/t9015.c +++ b/sound/soc/meson/t9015.c @@ -48,7 +48,6 @@ #define POWER_CFG 0x10 =20 struct t9015 { - struct clk *pclk; struct regulator *avdd; }; =20 @@ -250,6 +249,7 @@ static int t9015_probe(struct platform_device *pdev) struct t9015 *priv; void __iomem *regs; struct regmap *regmap; + struct clk *pclk; int ret; =20 priv =3D devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); @@ -257,26 +257,14 @@ static int t9015_probe(struct platform_device *pdev) return -ENOMEM; platform_set_drvdata(pdev, priv); =20 - priv->pclk =3D devm_clk_get(dev, "pclk"); - if (IS_ERR(priv->pclk)) - return dev_err_probe(dev, PTR_ERR(priv->pclk), "failed to get core clock= \n"); + pclk =3D devm_clk_get_enabled(dev, "pclk"); + if (IS_ERR(pclk)) + return dev_err_probe(dev, PTR_ERR(pclk), "failed to get core clock\n"); =20 priv->avdd =3D devm_regulator_get(dev, "AVDD"); if (IS_ERR(priv->avdd)) return dev_err_probe(dev, PTR_ERR(priv->avdd), "failed to AVDD\n"); =20 - ret =3D clk_prepare_enable(priv->pclk); - if (ret) { - dev_err(dev, "core clock enable failed\n"); - return ret; - } - - ret =3D devm_add_action_or_reset(dev, - (void(*)(void *))clk_disable_unprepare, - priv->pclk); - if (ret) - return ret; - ret =3D device_reset(dev); if (ret) { dev_err(dev, "reset failed\n"); --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2B91427A856; Sun, 24 Mar 2024 23:38:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323498; cv=none; b=aRU5rfVjDMOs34ojik+PSM3wm19Y6/cYyWN3AvuUZOt8Lvjcq/4vGuaEGJ27kUCr/yv53jlh03NqXYuXauNb72coJkFCz0fIPCiDaRGnpaCYAv5vqJ3wSSt6AkKikyzV3MnJExHX6Pd2anAGIC83egnEjAi1joZIukNHUKSP1Jw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323498; c=relaxed/simple; bh=+PUu5RM10hKszLtQ9PhN2GrdWiBPvEkFSKTRdD/60jc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=hxXRv1fa9iapw77vXpFAH5DrV1vT24NAodZy2EmDJS51Pi5nBR+Tg16Hk/8xNBWlh8EVEwTp9L/oiYQ4t+ZbVlUCnV2Uu+e4T9VHk/nTf5VkkeHKWVLbT+0SwiyiQK8dYn9qQ59Rz3Nm0c97pBYUqNmhv/1WUFKatku6w+KWX1Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=F+0mZF4T; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="F+0mZF4T" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 540A7C43394; Sun, 24 Mar 2024 23:38:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323498; bh=+PUu5RM10hKszLtQ9PhN2GrdWiBPvEkFSKTRdD/60jc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=F+0mZF4Tc01QHgr51r7YPRUyBowSH2Pr01P25EByXtrMx/hD/vLTfnoh8UEavEChU LJ+NAwhLqlbGixAO/BEfaKHwwhrf/YbeqA1SIrcPf79qqzvVbi7ey+JAsFbXwY3wxZ Eozsp7gaFMJoBOk97T36LhhuuQjNkWgBI+HMt5ewHIpx1PB8PCetJgGF8MWDa9JlNs QK/2YWIpjsgq9NCuQEzraEFL98FtYEbnB3lo6+wcig5O2EOQQoDlgdDwi0kgrYYnID VP8QTEJZi6mCVsYR7sMv4YZnTD+noDRLk+4QQsHD/EniqO3DakU75KwoF56K9vFbt6 XjKRdf46Oi1Pw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Christophe Leroy , kernel test robot , Michael Ellerman , Sasha Levin Subject: [PATCH 5.15 203/317] powerpc: Force inlining of arch_vmap_p{u/m}d_supported() Date: Sun, 24 Mar 2024 19:33:03 -0400 Message-ID: <20240324233458.1352854-204-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Christophe Leroy [ Upstream commit c5aebb53b32460bc52680dd4e2a2f6b84d5ea521 ] arch_vmap_pud_supported() and arch_vmap_pmd_supported() are expected to constant-fold to false when RADIX is not enabled. Force inlining in order to avoid following failure which leads to unexpected call of non-existing pud_set_huge() and pmd_set_huge() on powerpc 8xx. In function 'pud_huge_tests', inlined from 'debug_vm_pgtable' at mm/debug_vm_pgtable.c:1399:2: ./arch/powerpc/include/asm/vmalloc.h:9:33: warning: inlining failed in call= to 'arch_vmap_pud_supported.isra': call is unlikely and code size would gr= ow [-Winline] 9 | #define arch_vmap_pud_supported arch_vmap_pud_supported | ^~~~~~~~~~~~~~~~~~~~~~~ ./arch/powerpc/include/asm/vmalloc.h:10:20: note: in expansion of macro 'ar= ch_vmap_pud_supported' 10 | static inline bool arch_vmap_pud_supported(pgprot_t prot) | ^~~~~~~~~~~~~~~~~~~~~~~ ./arch/powerpc/include/asm/vmalloc.h:9:33: note: called from here 9 | #define arch_vmap_pud_supported arch_vmap_pud_supported mm/debug_vm_pgtable.c:458:14: note: in expansion of macro 'arch_vmap_pud_su= pported' 458 | if (!arch_vmap_pud_supported(args->page_prot) || | ^~~~~~~~~~~~~~~~~~~~~~~ Reported-by: kernel test robot Closes: https://lore.kernel.org/oe-kbuild-all/202402131836.OU1TDuoi-lkp@int= el.com/ Fixes: 8309c9d71702 ("powerpc: inline huge vmap supported functions") Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman Link: https://msgid.link/bbd84ad52bf377e8d3b5865a906f2dc5d99964ba.170783267= 7.git.christophe.leroy@csgroup.eu Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- arch/powerpc/include/asm/vmalloc.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/powerpc/include/asm/vmalloc.h b/arch/powerpc/include/asm/= vmalloc.h index 4c69ece52a31e..59ed89890c902 100644 --- a/arch/powerpc/include/asm/vmalloc.h +++ b/arch/powerpc/include/asm/vmalloc.h @@ -7,14 +7,14 @@ #ifdef CONFIG_HAVE_ARCH_HUGE_VMAP =20 #define arch_vmap_pud_supported arch_vmap_pud_supported -static inline bool arch_vmap_pud_supported(pgprot_t prot) +static __always_inline bool arch_vmap_pud_supported(pgprot_t prot) { /* HPT does not cope with large pages in the vmalloc area */ return radix_enabled(); } =20 #define arch_vmap_pmd_supported arch_vmap_pmd_supported -static inline bool arch_vmap_pmd_supported(pgprot_t prot) +static __always_inline bool arch_vmap_pmd_supported(pgprot_t prot) { return radix_enabled(); } --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8068013C698; Sun, 24 Mar 2024 23:38:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323500; cv=none; b=RDb1nCJ6qqgmqTaPCfKN89teuIIkUiUO8Cu3laC6tJ6xbV4+L3bGDpvxHyHEUaqyEDun4CWsLN0EjzgVoSBfDdYdcmORiD5LVJUqiOilqBFxi3vh6ekSvB3cN/VepqYH00e3d7ABkb+FkzFDYPNAs+Ug/fWLfJDulmSlhZdkOso= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323500; c=relaxed/simple; bh=Hy+afWrBG2zZ12MjJaz8Glne/22pYbGGT55Tkih+mBE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=qpMmi8jL2RmYH+VQ71gjAjgtECNWikpADlvOvQGp38tpwMaKEqtNG6ZH8xQc/PKP/pBmSnkX6+/oGNu/BhY7xoG5s72QQmCb9r/WT8jX+0a/J+C+9QigBawNnQy9J8ukteH/dFPQnQiFlbUHJziJ5MR/9VXJi+JvIZKaKToE8Ss= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=JBs9g6Zj; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="JBs9g6Zj" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 52FA8C433F1; Sun, 24 Mar 2024 23:38:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323499; bh=Hy+afWrBG2zZ12MjJaz8Glne/22pYbGGT55Tkih+mBE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=JBs9g6Zj4iwTL3oQO4/WZRKYGc5/FbYfOzhnoXk+rqXGPY6HM4/d57ctJAvHYwcL7 5yUk3zI7DoiY2oV4sifBm8Hc5zBkoSEO5z2CLa1SpJuJLFqtMo9BqJ0+ZQb3mSM2Bd wqOSswFcQlzpVnBPDWdTvnZJkn8xx3Km9q7xNNPjS/4qrPGKjguYxlXEzCWaK6SCvn epI1Ig98uWMwtVKa3S1T18WPbHpMqChnejReCM7kn5oeUAllZe7RWJ96XiXSTTh+U4 ehmwdUjHszNUH6wL/2Buvh8aaV/DWWNj8KVGkP6mjQIEkxZhEIRb+f5V+FKY4rCbWO huueJbVVEVLig== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Frank Li , Jon Mason , Sasha Levin Subject: [PATCH 5.15 204/317] PCI: endpoint: Support NTB transfer between RC and EP Date: Sun, 24 Mar 2024 19:33:04 -0400 Message-ID: <20240324233458.1352854-205-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable From: Frank Li [ Upstream commit e35f56bb03304abc92c928b641af41ca372966bb ] Add NTB function driver and virtual PCI Bus and Virtual NTB driver to implement communication between PCIe Root Port and PCIe EP devices =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=90 =E2=94=8C=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=90 =E2=94=82 =E2=94=82 =E2=94=82 = =E2=94=82 =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4 =E2=94=82 = =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=A4 =E2=94=82 NTB =E2=94=82 =E2=94=82 =E2= =94=82 NTB =E2=94=82 =E2=94=82 NetDev =E2=94=82 =E2=94=82 =E2= =94=82 NetDev =E2=94=82 =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4 =E2=94=82 = =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=A4 =E2=94=82 NTB =E2=94=82 =E2=94=82 =E2= =94=82 NTB =E2=94=82 =E2=94=82 Transfer =E2=94=82 =E2=94=82 =E2= =94=82 Transfer =E2=94=82 =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4 =E2=94=82 = =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=A4 =E2=94=82 =E2=94=82 =E2=94=82 =E2= =94=82 =E2=94=82 =E2=94=82 PCI NTB =E2=94=82 =E2=94=82 =E2= =94=82 =E2=94=82 =E2=94=82 EPF =E2=94=82 =E2=94=82 =E2= =94=82 =E2=94=82 =E2=94=82 Driver =E2=94=82 =E2=94=82 =E2= =94=82 PCI Virtual =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=9C=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=90 =E2=94=82 NTB Driver =E2= =94=82 =E2=94=82 =E2=94=82 =E2=94=82 PCI EP NTB =E2=94=82=E2= =97=84=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=96=BA=E2=94=82 = =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 FN Driver =E2=94=82 = =E2=94=82 =E2=94=82 =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4 =E2=94=9C=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4 =E2=94= =9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 = =E2=94=82 =E2=94=82 =E2=94=82 PCI Bus =E2=94=82 =E2=97=84=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=96=BA =E2=94=82 PCI EP Bus =E2=94=82 =E2=94=82 Vir= tual PCI =E2=94=82 =E2=94=82 =E2=94=82 PCI =E2=94=82 =E2=94=82 = =E2=94=82 Bus =E2=94=82 =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=98 =E2=94=94=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=B4=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=B4=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=98 PCIe Root Port PCI EP This driver includes 3 parts: 1 PCI EP NTB function driver 2 Virtual PCI bus 3 PCI virtual NTB driver, which is loaded only by above virtual PCI bus Signed-off-by: Frank Li Signed-off-by: Jon Mason Stable-dep-of: aebfdfe39b93 ("NTB: fix possible name leak in ntb_register_d= evice()") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/pci/endpoint/functions/Kconfig | 11 + drivers/pci/endpoint/functions/Makefile | 1 + drivers/pci/endpoint/functions/pci-epf-vntb.c | 1424 +++++++++++++++++ 3 files changed, 1436 insertions(+) create mode 100644 drivers/pci/endpoint/functions/pci-epf-vntb.c diff --git a/drivers/pci/endpoint/functions/Kconfig b/drivers/pci/endpoint/= functions/Kconfig index 5f1242ca2f4e4..65217428d17b9 100644 --- a/drivers/pci/endpoint/functions/Kconfig +++ b/drivers/pci/endpoint/functions/Kconfig @@ -25,3 +25,14 @@ config PCI_EPF_NTB device tree. =20 If in doubt, say "N" to disable Endpoint NTB driver. + +config PCI_EPF_VNTB + tristate "PCI Endpoint NTB driver" + depends on PCI_ENDPOINT + select CONFIGFS_FS + help + Select this configuration option to enable the Non-Transparent + Bridge (NTB) driver for PCIe Endpoint. NTB driver implements NTB + between PCI Root Port and PCIe Endpoint. + + If in doubt, say "N" to disable Endpoint NTB driver. diff --git a/drivers/pci/endpoint/functions/Makefile b/drivers/pci/endpoint= /functions/Makefile index 96ab932a537a2..5c13001deaba1 100644 --- a/drivers/pci/endpoint/functions/Makefile +++ b/drivers/pci/endpoint/functions/Makefile @@ -5,3 +5,4 @@ =20 obj-$(CONFIG_PCI_EPF_TEST) +=3D pci-epf-test.o obj-$(CONFIG_PCI_EPF_NTB) +=3D pci-epf-ntb.o +obj-$(CONFIG_PCI_EPF_VNTB) +=3D pci-epf-vntb.o diff --git a/drivers/pci/endpoint/functions/pci-epf-vntb.c b/drivers/pci/en= dpoint/functions/pci-epf-vntb.c new file mode 100644 index 0000000000000..1466dd1904175 --- /dev/null +++ b/drivers/pci/endpoint/functions/pci-epf-vntb.c @@ -0,0 +1,1424 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Endpoint Function Driver to implement Non-Transparent Bridge functional= ity + * Between PCI RC and EP + * + * Copyright (C) 2020 Texas Instruments + * Copyright (C) 2022 NXP + * + * Based on pci-epf-ntb.c + * Author: Frank Li + * Author: Kishon Vijay Abraham I + */ + +/** + * +------------+ +---------------------------------------+ + * | | | | + * +------------+ | +--------------+ + * | NTB | | | NTB | + * | NetDev | | | NetDev | + * +------------+ | +--------------+ + * | NTB | | | NTB | + * | Transfer | | | Transfer | + * +------------+ | +--------------+ + * | | | | | + * | PCI NTB | | | | + * | EPF | | | | + * | Driver | | | PCI Virtual | + * | | +---------------+ | NTB Driver | + * | | | PCI EP NTB |<------>| | + * | | | FN Driver | | | + * +------------+ +---------------+ +--------------+ + * | | | | | | + * | PCI Bus | <-----> | PCI EP Bus | | Virtual PCI | + * | | PCI | | | Bus | + * +------------+ +---------------+--------+--------------+ + * PCIe Root Port PCI EP + */ + +#include +#include +#include +#include + +#include +#include +#include + +static struct workqueue_struct *kpcintb_workqueue; + +#define COMMAND_CONFIGURE_DOORBELL 1 +#define COMMAND_TEARDOWN_DOORBELL 2 +#define COMMAND_CONFIGURE_MW 3 +#define COMMAND_TEARDOWN_MW 4 +#define COMMAND_LINK_UP 5 +#define COMMAND_LINK_DOWN 6 + +#define COMMAND_STATUS_OK 1 +#define COMMAND_STATUS_ERROR 2 + +#define LINK_STATUS_UP BIT(0) + +#define SPAD_COUNT 64 +#define DB_COUNT 4 +#define NTB_MW_OFFSET 2 +#define DB_COUNT_MASK GENMASK(15, 0) +#define MSIX_ENABLE BIT(16) +#define MAX_DB_COUNT 32 +#define MAX_MW 4 + +enum epf_ntb_bar { + BAR_CONFIG, + BAR_DB, + BAR_MW0, + BAR_MW1, + BAR_MW2, +}; + +/* + * +--------------------------------------------------+ Base + * | | + * | | + * | | + * | Common Control Register | + * | | + * | | + * | | + * +-----------------------+--------------------------+ Base+span_offset + * | | | + * | Peer Span Space | Span Space | + * | | | + * | | | + * +-----------------------+--------------------------+ Base+span_offset + * | | | +span_count * 4 + * | | | + * | Span Space | Peer Span Space | + * | | | + * +-----------------------+--------------------------+ + * Virtual PCI PCIe Endpoint + * NTB Driver NTB Driver + */ +struct epf_ntb_ctrl { + u32 command; + u32 argument; + u16 command_status; + u16 link_status; + u32 topology; + u64 addr; + u64 size; + u32 num_mws; + u32 reserved; + u32 spad_offset; + u32 spad_count; + u32 db_entry_size; + u32 db_data[MAX_DB_COUNT]; + u32 db_offset[MAX_DB_COUNT]; +} __packed; + +struct epf_ntb { + struct ntb_dev ntb; + struct pci_epf *epf; + struct config_group group; + + u32 num_mws; + u32 db_count; + u32 spad_count; + u64 mws_size[MAX_MW]; + u64 db; + u32 vbus_number; + u16 vntb_pid; + u16 vntb_vid; + + bool linkup; + u32 spad_size; + + enum pci_barno epf_ntb_bar[6]; + + struct epf_ntb_ctrl *reg; + + phys_addr_t epf_db_phy; + void __iomem *epf_db; + + phys_addr_t vpci_mw_phy[MAX_MW]; + void __iomem *vpci_mw_addr[MAX_MW]; + + struct delayed_work cmd_handler; +}; + +#define to_epf_ntb(epf_group) container_of((epf_group), struct epf_ntb, gr= oup) +#define ntb_ndev(__ntb) container_of(__ntb, struct epf_ntb, ntb) + +static struct pci_epf_header epf_ntb_header =3D { + .vendorid =3D PCI_ANY_ID, + .deviceid =3D PCI_ANY_ID, + .baseclass_code =3D PCI_BASE_CLASS_MEMORY, + .interrupt_pin =3D PCI_INTERRUPT_INTA, +}; + +/** + * epf_ntb_link_up() - Raise link_up interrupt to Virtual Host + * @ntb: NTB device that facilitates communication between HOST and VHOST + * @link_up: true or false indicating Link is UP or Down + * + * Once NTB function in HOST invoke ntb_link_enable(), + * this NTB function driver will trigger a link event to vhost. + */ +static int epf_ntb_link_up(struct epf_ntb *ntb, bool link_up) +{ + if (link_up) + ntb->reg->link_status |=3D LINK_STATUS_UP; + else + ntb->reg->link_status &=3D ~LINK_STATUS_UP; + + ntb_link_event(&ntb->ntb); + return 0; +} + +/** + * epf_ntb_configure_mw() - Configure the Outbound Address Space for vhost + * to access the memory window of host + * @ntb: NTB device that facilitates communication between host and vhost + * @mw: Index of the memory window (either 0, 1, 2 or 3) + * + * EP Outbound Window + * +--------+ +-----------+ + * | | | | + * | | | | + * | | | | + * | | | | + * | | +-----------+ + * | Virtual| | Memory Win| + * | NTB | -----------> | | + * | Driver | | | + * | | +-----------+ + * | | | | + * | | | | + * +--------+ +-----------+ + * VHost PCI EP + */ +static int epf_ntb_configure_mw(struct epf_ntb *ntb, u32 mw) +{ + phys_addr_t phys_addr; + u8 func_no, vfunc_no; + u64 addr, size; + int ret =3D 0; + + phys_addr =3D ntb->vpci_mw_phy[mw]; + addr =3D ntb->reg->addr; + size =3D ntb->reg->size; + + func_no =3D ntb->epf->func_no; + vfunc_no =3D ntb->epf->vfunc_no; + + ret =3D pci_epc_map_addr(ntb->epf->epc, func_no, vfunc_no, phys_addr, add= r, size); + if (ret) + dev_err(&ntb->epf->epc->dev, + "Failed to map memory window %d address\n", mw); + return ret; +} + +/** + * epf_ntb_teardown_mw() - Teardown the configured OB ATU + * @ntb: NTB device that facilitates communication between HOST and vHOST + * @mw: Index of the memory window (either 0, 1, 2 or 3) + * + * Teardown the configured OB ATU configured in epf_ntb_configure_mw() usi= ng + * pci_epc_unmap_addr() + */ +static void epf_ntb_teardown_mw(struct epf_ntb *ntb, u32 mw) +{ + pci_epc_unmap_addr(ntb->epf->epc, + ntb->epf->func_no, + ntb->epf->vfunc_no, + ntb->vpci_mw_phy[mw]); +} + +/** + * epf_ntb_cmd_handler() - Handle commands provided by the NTB Host + * @work: work_struct for the epf_ntb_epc + * + * Workqueue function that gets invoked for the two epf_ntb_epc + * periodically (once every 5ms) to see if it has received any commands + * from NTB host. The host can send commands to configure doorbell or + * configure memory window or to update link status. + */ +static void epf_ntb_cmd_handler(struct work_struct *work) +{ + struct epf_ntb_ctrl *ctrl; + u32 command, argument; + struct epf_ntb *ntb; + struct device *dev; + int ret; + int i; + + ntb =3D container_of(work, struct epf_ntb, cmd_handler.work); + + for (i =3D 1; i < ntb->db_count; i++) { + if (readl(ntb->epf_db + i * 4)) { + if (readl(ntb->epf_db + i * 4)) + ntb->db |=3D 1 << (i - 1); + + ntb_db_event(&ntb->ntb, i); + writel(0, ntb->epf_db + i * 4); + } + } + + ctrl =3D ntb->reg; + command =3D ctrl->command; + if (!command) + goto reset_handler; + argument =3D ctrl->argument; + + ctrl->command =3D 0; + ctrl->argument =3D 0; + + ctrl =3D ntb->reg; + dev =3D &ntb->epf->dev; + + switch (command) { + case COMMAND_CONFIGURE_DOORBELL: + ctrl->command_status =3D COMMAND_STATUS_OK; + break; + case COMMAND_TEARDOWN_DOORBELL: + ctrl->command_status =3D COMMAND_STATUS_OK; + break; + case COMMAND_CONFIGURE_MW: + ret =3D epf_ntb_configure_mw(ntb, argument); + if (ret < 0) + ctrl->command_status =3D COMMAND_STATUS_ERROR; + else + ctrl->command_status =3D COMMAND_STATUS_OK; + break; + case COMMAND_TEARDOWN_MW: + epf_ntb_teardown_mw(ntb, argument); + ctrl->command_status =3D COMMAND_STATUS_OK; + break; + case COMMAND_LINK_UP: + ntb->linkup =3D true; + ret =3D epf_ntb_link_up(ntb, true); + if (ret < 0) + ctrl->command_status =3D COMMAND_STATUS_ERROR; + else + ctrl->command_status =3D COMMAND_STATUS_OK; + goto reset_handler; + case COMMAND_LINK_DOWN: + ntb->linkup =3D false; + ret =3D epf_ntb_link_up(ntb, false); + if (ret < 0) + ctrl->command_status =3D COMMAND_STATUS_ERROR; + else + ctrl->command_status =3D COMMAND_STATUS_OK; + break; + default: + dev_err(dev, "UNKNOWN command: %d\n", command); + break; + } + +reset_handler: + queue_delayed_work(kpcintb_workqueue, &ntb->cmd_handler, + msecs_to_jiffies(5)); +} + +/** + * epf_ntb_config_sspad_bar_clear() - Clear Config + Self scratchpad BAR + * @ntb_epc: EPC associated with one of the HOST which holds peer's outbou= nd + * address. + * + * Clear BAR0 of EP CONTROLLER 1 which contains the HOST1's config and + * self scratchpad region (removes inbound ATU configuration). While BAR0 = is + * the default self scratchpad BAR, an NTB could have other BARs for self + * scratchpad (because of reserved BARs). This function can get the exact = BAR + * used for self scratchpad from epf_ntb_bar[BAR_CONFIG]. + * + * Please note the self scratchpad region and config region is combined to + * a single region and mapped using the same BAR. Also note HOST2's peer + * scratchpad is HOST1's self scratchpad. + */ +static void epf_ntb_config_sspad_bar_clear(struct epf_ntb *ntb) +{ + struct pci_epf_bar *epf_bar; + enum pci_barno barno; + + barno =3D ntb->epf_ntb_bar[BAR_CONFIG]; + epf_bar =3D &ntb->epf->bar[barno]; + + pci_epc_clear_bar(ntb->epf->epc, ntb->epf->func_no, ntb->epf->vfunc_no, e= pf_bar); +} + +/** + * epf_ntb_config_sspad_bar_set() - Set Config + Self scratchpad BAR + * @ntb: NTB device that facilitates communication between HOST and vHOST + * + * Map BAR0 of EP CONTROLLER 1 which contains the HOST1's config and + * self scratchpad region. + * + * Please note the self scratchpad region and config region is combined to + * a single region and mapped using the same BAR. + */ +static int epf_ntb_config_sspad_bar_set(struct epf_ntb *ntb) +{ + struct pci_epf_bar *epf_bar; + enum pci_barno barno; + u8 func_no, vfunc_no; + struct device *dev; + int ret; + + dev =3D &ntb->epf->dev; + func_no =3D ntb->epf->func_no; + vfunc_no =3D ntb->epf->vfunc_no; + barno =3D ntb->epf_ntb_bar[BAR_CONFIG]; + epf_bar =3D &ntb->epf->bar[barno]; + + ret =3D pci_epc_set_bar(ntb->epf->epc, func_no, vfunc_no, epf_bar); + if (ret) { + dev_err(dev, "inft: Config/Status/SPAD BAR set failed\n"); + return ret; + } + return 0; +} + +/** + * epf_ntb_config_spad_bar_free() - Free the physical memory associated wi= th + * config + scratchpad region + * @ntb: NTB device that facilitates communication between HOST and vHOST + */ +static void epf_ntb_config_spad_bar_free(struct epf_ntb *ntb) +{ + enum pci_barno barno; + + barno =3D ntb->epf_ntb_bar[BAR_CONFIG]; + pci_epf_free_space(ntb->epf, ntb->reg, barno, 0); +} + +/** + * epf_ntb_config_spad_bar_alloc() - Allocate memory for config + scratchp= ad + * region + * @ntb: NTB device that facilitates communication between HOST1 and HOST2 + * + * Allocate the Local Memory mentioned in the above diagram. The size of + * CONFIG REGION is sizeof(struct epf_ntb_ctrl) and size of SCRATCHPAD REG= ION + * is obtained from "spad-count" configfs entry. + */ +static int epf_ntb_config_spad_bar_alloc(struct epf_ntb *ntb) +{ + size_t align; + enum pci_barno barno; + struct epf_ntb_ctrl *ctrl; + u32 spad_size, ctrl_size; + u64 size; + struct pci_epf *epf =3D ntb->epf; + struct device *dev =3D &epf->dev; + u32 spad_count; + void *base; + int i; + const struct pci_epc_features *epc_features =3D pci_epc_get_features(epf-= >epc, + epf->func_no, + epf->vfunc_no); + barno =3D ntb->epf_ntb_bar[BAR_CONFIG]; + size =3D epc_features->bar_fixed_size[barno]; + align =3D epc_features->align; + + if ((!IS_ALIGNED(size, align))) + return -EINVAL; + + spad_count =3D ntb->spad_count; + + ctrl_size =3D sizeof(struct epf_ntb_ctrl); + spad_size =3D 2 * spad_count * 4; + + if (!align) { + ctrl_size =3D roundup_pow_of_two(ctrl_size); + spad_size =3D roundup_pow_of_two(spad_size); + } else { + ctrl_size =3D ALIGN(ctrl_size, align); + spad_size =3D ALIGN(spad_size, align); + } + + if (!size) + size =3D ctrl_size + spad_size; + else if (size < ctrl_size + spad_size) + return -EINVAL; + + base =3D pci_epf_alloc_space(epf, size, barno, align, 0); + if (!base) { + dev_err(dev, "Config/Status/SPAD alloc region fail\n"); + return -ENOMEM; + } + + ntb->reg =3D base; + + ctrl =3D ntb->reg; + ctrl->spad_offset =3D ctrl_size; + + ctrl->spad_count =3D spad_count; + ctrl->num_mws =3D ntb->num_mws; + ntb->spad_size =3D spad_size; + + ctrl->db_entry_size =3D 4; + + for (i =3D 0; i < ntb->db_count; i++) { + ntb->reg->db_data[i] =3D 1 + i; + ntb->reg->db_offset[i] =3D 0; + } + + return 0; +} + +/** + * epf_ntb_configure_interrupt() - Configure MSI/MSI-X capaiblity + * @ntb: NTB device that facilitates communication between HOST and vHOST + * + * Configure MSI/MSI-X capability for each interface with number of + * interrupts equal to "db_count" configfs entry. + */ +static int epf_ntb_configure_interrupt(struct epf_ntb *ntb) +{ + const struct pci_epc_features *epc_features; + struct device *dev; + u32 db_count; + int ret; + + dev =3D &ntb->epf->dev; + + epc_features =3D pci_epc_get_features(ntb->epf->epc, ntb->epf->func_no, n= tb->epf->vfunc_no); + + if (!(epc_features->msix_capable || epc_features->msi_capable)) { + dev_err(dev, "MSI or MSI-X is required for doorbell\n"); + return -EINVAL; + } + + db_count =3D ntb->db_count; + if (db_count > MAX_DB_COUNT) { + dev_err(dev, "DB count cannot be more than %d\n", MAX_DB_COUNT); + return -EINVAL; + } + + ntb->db_count =3D db_count; + + if (epc_features->msi_capable) { + ret =3D pci_epc_set_msi(ntb->epf->epc, + ntb->epf->func_no, + ntb->epf->vfunc_no, + 16); + if (ret) { + dev_err(dev, "MSI configuration failed\n"); + return ret; + } + } + + return 0; +} + +/** + * epf_ntb_db_bar_init() - Configure Doorbell window BARs + * @ntb: NTB device that facilitates communication between HOST and vHOST + */ +static int epf_ntb_db_bar_init(struct epf_ntb *ntb) +{ + const struct pci_epc_features *epc_features; + u32 align; + struct device *dev =3D &ntb->epf->dev; + int ret; + struct pci_epf_bar *epf_bar; + void __iomem *mw_addr; + enum pci_barno barno; + size_t size =3D 4 * ntb->db_count; + + epc_features =3D pci_epc_get_features(ntb->epf->epc, + ntb->epf->func_no, + ntb->epf->vfunc_no); + align =3D epc_features->align; + + if (size < 128) + size =3D 128; + + if (align) + size =3D ALIGN(size, align); + else + size =3D roundup_pow_of_two(size); + + barno =3D ntb->epf_ntb_bar[BAR_DB]; + + mw_addr =3D pci_epf_alloc_space(ntb->epf, size, barno, align, 0); + if (!mw_addr) { + dev_err(dev, "Failed to allocate OB address\n"); + return -ENOMEM; + } + + ntb->epf_db =3D mw_addr; + + epf_bar =3D &ntb->epf->bar[barno]; + + ret =3D pci_epc_set_bar(ntb->epf->epc, ntb->epf->func_no, ntb->epf->vfunc= _no, epf_bar); + if (ret) { + dev_err(dev, "Doorbell BAR set failed\n"); + goto err_alloc_peer_mem; + } + return ret; + +err_alloc_peer_mem: + pci_epc_mem_free_addr(ntb->epf->epc, epf_bar->phys_addr, mw_addr, epf_bar= ->size); + return -1; +} + +/** + * epf_ntb_db_bar_clear() - Clear doorbell BAR and free memory + * allocated in peer's outbound address space + * @ntb: NTB device that facilitates communication between HOST and vHOST + */ +static void epf_ntb_db_bar_clear(struct epf_ntb *ntb) +{ + enum pci_barno barno; + + barno =3D ntb->epf_ntb_bar[BAR_DB]; + pci_epf_free_space(ntb->epf, ntb->epf_db, barno, 0); + pci_epc_clear_bar(ntb->epf->epc, + ntb->epf->func_no, + ntb->epf->vfunc_no, + &ntb->epf->bar[barno]); +} + +/** + * epf_ntb_mw_bar_init() - Configure Memory window BARs + * @ntb: NTB device that facilitates communication between HOST and vHOST + * + */ +static int epf_ntb_mw_bar_init(struct epf_ntb *ntb) +{ + int ret =3D 0; + int i; + u64 size; + enum pci_barno barno; + struct device *dev =3D &ntb->epf->dev; + + for (i =3D 0; i < ntb->num_mws; i++) { + size =3D ntb->mws_size[i]; + barno =3D ntb->epf_ntb_bar[BAR_MW0 + i]; + + ntb->epf->bar[barno].barno =3D barno; + ntb->epf->bar[barno].size =3D size; + ntb->epf->bar[barno].addr =3D 0; + ntb->epf->bar[barno].phys_addr =3D 0; + ntb->epf->bar[barno].flags |=3D upper_32_bits(size) ? + PCI_BASE_ADDRESS_MEM_TYPE_64 : + PCI_BASE_ADDRESS_MEM_TYPE_32; + + ret =3D pci_epc_set_bar(ntb->epf->epc, + ntb->epf->func_no, + ntb->epf->vfunc_no, + &ntb->epf->bar[barno]); + if (ret) { + dev_err(dev, "MW set failed\n"); + goto err_alloc_mem; + } + + /* Allocate EPC outbound memory windows to vpci vntb device */ + ntb->vpci_mw_addr[i] =3D pci_epc_mem_alloc_addr(ntb->epf->epc, + &ntb->vpci_mw_phy[i], + size); + if (!ntb->vpci_mw_addr[i]) { + dev_err(dev, "Failed to allocate source address\n"); + goto err_alloc_mem; + } + } + + return ret; +err_alloc_mem: + return ret; +} + +/** + * epf_ntb_mw_bar_clear() - Clear Memory window BARs + * @ntb: NTB device that facilitates communication between HOST and vHOST + */ +static void epf_ntb_mw_bar_clear(struct epf_ntb *ntb) +{ + enum pci_barno barno; + int i; + + for (i =3D 0; i < ntb->num_mws; i++) { + barno =3D ntb->epf_ntb_bar[BAR_MW0 + i]; + pci_epc_clear_bar(ntb->epf->epc, + ntb->epf->func_no, + ntb->epf->vfunc_no, + &ntb->epf->bar[barno]); + + pci_epc_mem_free_addr(ntb->epf->epc, + ntb->vpci_mw_phy[i], + ntb->vpci_mw_addr[i], + ntb->mws_size[i]); + } +} + +/** + * epf_ntb_epc_destroy() - Cleanup NTB EPC interface + * @ntb: NTB device that facilitates communication between HOST and vHOST + * + * Wrapper for epf_ntb_epc_destroy_interface() to cleanup all the NTB inte= rfaces + */ +static void epf_ntb_epc_destroy(struct epf_ntb *ntb) +{ + pci_epc_remove_epf(ntb->epf->epc, ntb->epf, 0); + pci_epc_put(ntb->epf->epc); +} + +/** + * epf_ntb_init_epc_bar() - Identify BARs to be used for each of the NTB + * constructs (scratchpad region, doorbell, memorywindow) + * @ntb: NTB device that facilitates communication between HOST and vHOST + */ +static int epf_ntb_init_epc_bar(struct epf_ntb *ntb) +{ + const struct pci_epc_features *epc_features; + enum pci_barno barno; + enum epf_ntb_bar bar; + struct device *dev; + u32 num_mws; + int i; + + barno =3D BAR_0; + num_mws =3D ntb->num_mws; + dev =3D &ntb->epf->dev; + epc_features =3D pci_epc_get_features(ntb->epf->epc, ntb->epf->func_no, n= tb->epf->vfunc_no); + + /* These are required BARs which are mandatory for NTB functionality */ + for (bar =3D BAR_CONFIG; bar <=3D BAR_MW0; bar++, barno++) { + barno =3D pci_epc_get_next_free_bar(epc_features, barno); + if (barno < 0) { + dev_err(dev, "Fail to get NTB function BAR\n"); + return barno; + } + ntb->epf_ntb_bar[bar] =3D barno; + } + + /* These are optional BARs which don't impact NTB functionality */ + for (bar =3D BAR_MW1, i =3D 1; i < num_mws; bar++, barno++, i++) { + barno =3D pci_epc_get_next_free_bar(epc_features, barno); + if (barno < 0) { + ntb->num_mws =3D i; + dev_dbg(dev, "BAR not available for > MW%d\n", i + 1); + } + ntb->epf_ntb_bar[bar] =3D barno; + } + + return 0; +} + +/** + * epf_ntb_epc_init() - Initialize NTB interface + * @ntb: NTB device that facilitates communication between HOST and vHOST2 + * + * Wrapper to initialize a particular EPC interface and start the workqueue + * to check for commands from host. This function will write to the + * EP controller HW for configuring it. + */ +static int epf_ntb_epc_init(struct epf_ntb *ntb) +{ + u8 func_no, vfunc_no; + struct pci_epc *epc; + struct pci_epf *epf; + struct device *dev; + int ret; + + epf =3D ntb->epf; + dev =3D &epf->dev; + epc =3D epf->epc; + func_no =3D ntb->epf->func_no; + vfunc_no =3D ntb->epf->vfunc_no; + + ret =3D epf_ntb_config_sspad_bar_set(ntb); + if (ret) { + dev_err(dev, "Config/self SPAD BAR init failed"); + return ret; + } + + ret =3D epf_ntb_configure_interrupt(ntb); + if (ret) { + dev_err(dev, "Interrupt configuration failed\n"); + goto err_config_interrupt; + } + + ret =3D epf_ntb_db_bar_init(ntb); + if (ret) { + dev_err(dev, "DB BAR init failed\n"); + goto err_db_bar_init; + } + + ret =3D epf_ntb_mw_bar_init(ntb); + if (ret) { + dev_err(dev, "MW BAR init failed\n"); + goto err_mw_bar_init; + } + + if (vfunc_no <=3D 1) { + ret =3D pci_epc_write_header(epc, func_no, vfunc_no, epf->header); + if (ret) { + dev_err(dev, "Configuration header write failed\n"); + goto err_write_header; + } + } + + INIT_DELAYED_WORK(&ntb->cmd_handler, epf_ntb_cmd_handler); + queue_work(kpcintb_workqueue, &ntb->cmd_handler.work); + + return 0; + +err_write_header: + epf_ntb_mw_bar_clear(ntb); +err_mw_bar_init: + epf_ntb_db_bar_clear(ntb); +err_db_bar_init: +err_config_interrupt: + epf_ntb_config_sspad_bar_clear(ntb); + + return ret; +} + + +/** + * epf_ntb_epc_cleanup() - Cleanup all NTB interfaces + * @ntb: NTB device that facilitates communication between HOST1 and HOST2 + * + * Wrapper to cleanup all NTB interfaces. + */ +static void epf_ntb_epc_cleanup(struct epf_ntb *ntb) +{ + epf_ntb_db_bar_clear(ntb); + epf_ntb_mw_bar_clear(ntb); +} + +#define EPF_NTB_R(_name) \ +static ssize_t epf_ntb_##_name##_show(struct config_item *item, \ + char *page) \ +{ \ + struct config_group *group =3D to_config_group(item); \ + struct epf_ntb *ntb =3D to_epf_ntb(group); \ + \ + return sprintf(page, "%d\n", ntb->_name); \ +} + +#define EPF_NTB_W(_name) \ +static ssize_t epf_ntb_##_name##_store(struct config_item *item, \ + const char *page, size_t len) \ +{ \ + struct config_group *group =3D to_config_group(item); \ + struct epf_ntb *ntb =3D to_epf_ntb(group); \ + u32 val; \ + int ret; \ + \ + ret =3D kstrtou32(page, 0, &val); \ + if (ret) \ + return ret; \ + \ + ntb->_name =3D val; \ + \ + return len; \ +} + +#define EPF_NTB_MW_R(_name) \ +static ssize_t epf_ntb_##_name##_show(struct config_item *item, \ + char *page) \ +{ \ + struct config_group *group =3D to_config_group(item); \ + struct epf_ntb *ntb =3D to_epf_ntb(group); \ + int win_no; \ + \ + sscanf(#_name, "mw%d", &win_no); \ + \ + return sprintf(page, "%lld\n", ntb->mws_size[win_no - 1]); \ +} + +#define EPF_NTB_MW_W(_name) \ +static ssize_t epf_ntb_##_name##_store(struct config_item *item, \ + const char *page, size_t len) \ +{ \ + struct config_group *group =3D to_config_group(item); \ + struct epf_ntb *ntb =3D to_epf_ntb(group); \ + struct device *dev =3D &ntb->epf->dev; \ + int win_no; \ + u64 val; \ + int ret; \ + \ + ret =3D kstrtou64(page, 0, &val); \ + if (ret) \ + return ret; \ + \ + if (sscanf(#_name, "mw%d", &win_no) !=3D 1) \ + return -EINVAL; \ + \ + if (ntb->num_mws < win_no) { \ + dev_err(dev, "Invalid num_nws: %d value\n", ntb->num_mws); \ + return -EINVAL; \ + } \ + \ + ntb->mws_size[win_no - 1] =3D val; \ + \ + return len; \ +} + +static ssize_t epf_ntb_num_mws_store(struct config_item *item, + const char *page, size_t len) +{ + struct config_group *group =3D to_config_group(item); + struct epf_ntb *ntb =3D to_epf_ntb(group); + u32 val; + int ret; + + ret =3D kstrtou32(page, 0, &val); + if (ret) + return ret; + + if (val > MAX_MW) + return -EINVAL; + + ntb->num_mws =3D val; + + return len; +} + +EPF_NTB_R(spad_count) +EPF_NTB_W(spad_count) +EPF_NTB_R(db_count) +EPF_NTB_W(db_count) +EPF_NTB_R(num_mws) +EPF_NTB_R(vbus_number) +EPF_NTB_W(vbus_number) +EPF_NTB_R(vntb_pid) +EPF_NTB_W(vntb_pid) +EPF_NTB_R(vntb_vid) +EPF_NTB_W(vntb_vid) +EPF_NTB_MW_R(mw1) +EPF_NTB_MW_W(mw1) +EPF_NTB_MW_R(mw2) +EPF_NTB_MW_W(mw2) +EPF_NTB_MW_R(mw3) +EPF_NTB_MW_W(mw3) +EPF_NTB_MW_R(mw4) +EPF_NTB_MW_W(mw4) + +CONFIGFS_ATTR(epf_ntb_, spad_count); +CONFIGFS_ATTR(epf_ntb_, db_count); +CONFIGFS_ATTR(epf_ntb_, num_mws); +CONFIGFS_ATTR(epf_ntb_, mw1); +CONFIGFS_ATTR(epf_ntb_, mw2); +CONFIGFS_ATTR(epf_ntb_, mw3); +CONFIGFS_ATTR(epf_ntb_, mw4); +CONFIGFS_ATTR(epf_ntb_, vbus_number); +CONFIGFS_ATTR(epf_ntb_, vntb_pid); +CONFIGFS_ATTR(epf_ntb_, vntb_vid); + +static struct configfs_attribute *epf_ntb_attrs[] =3D { + &epf_ntb_attr_spad_count, + &epf_ntb_attr_db_count, + &epf_ntb_attr_num_mws, + &epf_ntb_attr_mw1, + &epf_ntb_attr_mw2, + &epf_ntb_attr_mw3, + &epf_ntb_attr_mw4, + &epf_ntb_attr_vbus_number, + &epf_ntb_attr_vntb_pid, + &epf_ntb_attr_vntb_vid, + NULL, +}; + +static const struct config_item_type ntb_group_type =3D { + .ct_attrs =3D epf_ntb_attrs, + .ct_owner =3D THIS_MODULE, +}; + +/** + * epf_ntb_add_cfs() - Add configfs directory specific to NTB + * @epf: NTB endpoint function device + * @group: A pointer to the config_group structure referencing a group of + * config_items of a specific type that belong to a specific sub-system. + * + * Add configfs directory specific to NTB. This directory will hold + * NTB specific properties like db_count, spad_count, num_mws etc., + */ +static struct config_group *epf_ntb_add_cfs(struct pci_epf *epf, + struct config_group *group) +{ + struct epf_ntb *ntb =3D epf_get_drvdata(epf); + struct config_group *ntb_group =3D &ntb->group; + struct device *dev =3D &epf->dev; + + config_group_init_type_name(ntb_group, dev_name(dev), &ntb_group_type); + + return ntb_group; +} + +/*=3D=3D=3D=3D virtual PCI bus driver, which only load virtual NTB PCI dri= ver =3D=3D=3D=3D*/ + +static u32 pci_space[] =3D { + 0xffffffff, /*DeviceID, Vendor ID*/ + 0, /*Status, Command*/ + 0xffffffff, /*Class code, subclass, prog if, revision id*/ + 0x40, /*bist, header type, latency Timer, cache line size*/ + 0, /*BAR 0*/ + 0, /*BAR 1*/ + 0, /*BAR 2*/ + 0, /*BAR 3*/ + 0, /*BAR 4*/ + 0, /*BAR 5*/ + 0, /*Cardbus cis point*/ + 0, /*Subsystem ID Subystem vendor id*/ + 0, /*ROM Base Address*/ + 0, /*Reserved, Cap. Point*/ + 0, /*Reserved,*/ + 0, /*Max Lat, Min Gnt, interrupt pin, interrupt line*/ +}; + +int pci_read(struct pci_bus *bus, unsigned int devfn, int where, int size,= u32 *val) +{ + if (devfn =3D=3D 0) { + memcpy(val, ((u8 *)pci_space) + where, size); + return PCIBIOS_SUCCESSFUL; + } + return PCIBIOS_DEVICE_NOT_FOUND; +} + +int pci_write(struct pci_bus *bus, unsigned int devfn, int where, int size= , u32 val) +{ + return 0; +} + +struct pci_ops vpci_ops =3D { + .read =3D pci_read, + .write =3D pci_write, +}; + +static int vpci_scan_bus(void *sysdata) +{ + struct pci_bus *vpci_bus; + struct epf_ntb *ndev =3D sysdata; + + vpci_bus =3D pci_scan_bus(ndev->vbus_number, &vpci_ops, sysdata); + if (vpci_bus) + pr_err("create pci bus\n"); + + pci_bus_add_devices(vpci_bus); + + return 0; +} + +/*=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Virtual PCI= e NTB driver =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D*/ + +static int vntb_epf_mw_count(struct ntb_dev *ntb, int pidx) +{ + struct epf_ntb *ndev =3D ntb_ndev(ntb); + + return ndev->num_mws; +} + +static int vntb_epf_spad_count(struct ntb_dev *ntb) +{ + return ntb_ndev(ntb)->spad_count; +} + +static int vntb_epf_peer_mw_count(struct ntb_dev *ntb) +{ + return ntb_ndev(ntb)->num_mws; +} + +static u64 vntb_epf_db_valid_mask(struct ntb_dev *ntb) +{ + return BIT_ULL(ntb_ndev(ntb)->db_count) - 1; +} + +static int vntb_epf_db_set_mask(struct ntb_dev *ntb, u64 db_bits) +{ + return 0; +} + +static int vntb_epf_mw_set_trans(struct ntb_dev *ndev, int pidx, int idx, + dma_addr_t addr, resource_size_t size) +{ + struct epf_ntb *ntb =3D ntb_ndev(ndev); + struct pci_epf_bar *epf_bar; + enum pci_barno barno; + int ret; + struct device *dev; + + dev =3D &ntb->ntb.dev; + barno =3D ntb->epf_ntb_bar[BAR_MW0 + idx]; + epf_bar =3D &ntb->epf->bar[barno]; + epf_bar->phys_addr =3D addr; + epf_bar->barno =3D barno; + epf_bar->size =3D size; + + ret =3D pci_epc_set_bar(ntb->epf->epc, 0, 0, epf_bar); + if (ret) { + dev_err(dev, "failure set mw trans\n"); + return ret; + } + return 0; +} + +static int vntb_epf_mw_clear_trans(struct ntb_dev *ntb, int pidx, int idx) +{ + return 0; +} + +static int vntb_epf_peer_mw_get_addr(struct ntb_dev *ndev, int idx, + phys_addr_t *base, resource_size_t *size) +{ + + struct epf_ntb *ntb =3D ntb_ndev(ndev); + + if (base) + *base =3D ntb->vpci_mw_phy[idx]; + + if (size) + *size =3D ntb->mws_size[idx]; + + return 0; +} + +static int vntb_epf_link_enable(struct ntb_dev *ntb, + enum ntb_speed max_speed, + enum ntb_width max_width) +{ + return 0; +} + +static u32 vntb_epf_spad_read(struct ntb_dev *ndev, int idx) +{ + struct epf_ntb *ntb =3D ntb_ndev(ndev); + int off =3D ntb->reg->spad_offset, ct =3D ntb->reg->spad_count * 4; + u32 val; + void __iomem *base =3D ntb->reg; + + val =3D readl(base + off + ct + idx * 4); + return val; +} + +static int vntb_epf_spad_write(struct ntb_dev *ndev, int idx, u32 val) +{ + struct epf_ntb *ntb =3D ntb_ndev(ndev); + struct epf_ntb_ctrl *ctrl =3D ntb->reg; + int off =3D ctrl->spad_offset, ct =3D ctrl->spad_count * 4; + void __iomem *base =3D ntb->reg; + + writel(val, base + off + ct + idx * 4); + return 0; +} + +static u32 vntb_epf_peer_spad_read(struct ntb_dev *ndev, int pidx, int idx) +{ + struct epf_ntb *ntb =3D ntb_ndev(ndev); + struct epf_ntb_ctrl *ctrl =3D ntb->reg; + int off =3D ctrl->spad_offset; + void __iomem *base =3D ntb->reg; + u32 val; + + val =3D readl(base + off + idx * 4); + return val; +} + +static int vntb_epf_peer_spad_write(struct ntb_dev *ndev, int pidx, int id= x, u32 val) +{ + struct epf_ntb *ntb =3D ntb_ndev(ndev); + struct epf_ntb_ctrl *ctrl =3D ntb->reg; + int off =3D ctrl->spad_offset; + void __iomem *base =3D ntb->reg; + + writel(val, base + off + idx * 4); + return 0; +} + +static int vntb_epf_peer_db_set(struct ntb_dev *ndev, u64 db_bits) +{ + u32 interrupt_num =3D ffs(db_bits) + 1; + struct epf_ntb *ntb =3D ntb_ndev(ndev); + u8 func_no, vfunc_no; + int ret; + + func_no =3D ntb->epf->func_no; + vfunc_no =3D ntb->epf->vfunc_no; + + ret =3D pci_epc_raise_irq(ntb->epf->epc, + func_no, + vfunc_no, + PCI_EPC_IRQ_MSI, + interrupt_num + 1); + if (ret) + dev_err(&ntb->ntb.dev, "Failed to raise IRQ\n"); + + return ret; +} + +static u64 vntb_epf_db_read(struct ntb_dev *ndev) +{ + struct epf_ntb *ntb =3D ntb_ndev(ndev); + + return ntb->db; +} + +static int vntb_epf_mw_get_align(struct ntb_dev *ndev, int pidx, int idx, + resource_size_t *addr_align, + resource_size_t *size_align, + resource_size_t *size_max) +{ + struct epf_ntb *ntb =3D ntb_ndev(ndev); + + if (addr_align) + *addr_align =3D SZ_4K; + + if (size_align) + *size_align =3D 1; + + if (size_max) + *size_max =3D ntb->mws_size[idx]; + + return 0; +} + +static u64 vntb_epf_link_is_up(struct ntb_dev *ndev, + enum ntb_speed *speed, + enum ntb_width *width) +{ + struct epf_ntb *ntb =3D ntb_ndev(ndev); + + return ntb->reg->link_status; +} + +static int vntb_epf_db_clear_mask(struct ntb_dev *ndev, u64 db_bits) +{ + return 0; +} + +static int vntb_epf_db_clear(struct ntb_dev *ndev, u64 db_bits) +{ + struct epf_ntb *ntb =3D ntb_ndev(ndev); + + ntb->db &=3D ~db_bits; + return 0; +} + +static int vntb_epf_link_disable(struct ntb_dev *ntb) +{ + return 0; +} + +static const struct ntb_dev_ops vntb_epf_ops =3D { + .mw_count =3D vntb_epf_mw_count, + .spad_count =3D vntb_epf_spad_count, + .peer_mw_count =3D vntb_epf_peer_mw_count, + .db_valid_mask =3D vntb_epf_db_valid_mask, + .db_set_mask =3D vntb_epf_db_set_mask, + .mw_set_trans =3D vntb_epf_mw_set_trans, + .mw_clear_trans =3D vntb_epf_mw_clear_trans, + .peer_mw_get_addr =3D vntb_epf_peer_mw_get_addr, + .link_enable =3D vntb_epf_link_enable, + .spad_read =3D vntb_epf_spad_read, + .spad_write =3D vntb_epf_spad_write, + .peer_spad_read =3D vntb_epf_peer_spad_read, + .peer_spad_write =3D vntb_epf_peer_spad_write, + .peer_db_set =3D vntb_epf_peer_db_set, + .db_read =3D vntb_epf_db_read, + .mw_get_align =3D vntb_epf_mw_get_align, + .link_is_up =3D vntb_epf_link_is_up, + .db_clear_mask =3D vntb_epf_db_clear_mask, + .db_clear =3D vntb_epf_db_clear, + .link_disable =3D vntb_epf_link_disable, +}; + +static int pci_vntb_probe(struct pci_dev *pdev, const struct pci_device_id= *id) +{ + int ret; + struct epf_ntb *ndev =3D (struct epf_ntb *)pdev->sysdata; + struct device *dev =3D &pdev->dev; + + ndev->ntb.pdev =3D pdev; + ndev->ntb.topo =3D NTB_TOPO_NONE; + ndev->ntb.ops =3D &vntb_epf_ops; + + ret =3D dma_set_mask_and_coherent(dev, DMA_BIT_MASK(32)); + if (ret) { + dev_err(dev, "Cannot set DMA mask\n"); + return -EINVAL; + } + + ret =3D ntb_register_device(&ndev->ntb); + if (ret) { + dev_err(dev, "Failed to register NTB device\n"); + goto err_register_dev; + } + + dev_dbg(dev, "PCI Virtual NTB driver loaded\n"); + return 0; + +err_register_dev: + return -EINVAL; +} + +static struct pci_device_id pci_vntb_table[] =3D { + { + PCI_DEVICE(0xffff, 0xffff), + }, + {}, +}; + +static struct pci_driver vntb_pci_driver =3D { + .name =3D "pci-vntb", + .id_table =3D pci_vntb_table, + .probe =3D pci_vntb_probe, +}; + +/* =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D PCIe EPF Driver Bind =3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D*/ + +/** + * epf_ntb_bind() - Initialize endpoint controller to provide NTB function= ality + * @epf: NTB endpoint function device + * + * Initialize both the endpoint controllers associated with NTB function d= evice. + * Invoked when a primary interface or secondary interface is bound to EPC + * device. This function will succeed only when EPC is bound to both the + * interfaces. + */ +static int epf_ntb_bind(struct pci_epf *epf) +{ + struct epf_ntb *ntb =3D epf_get_drvdata(epf); + struct device *dev =3D &epf->dev; + int ret; + + if (!epf->epc) { + dev_dbg(dev, "PRIMARY EPC interface not yet bound\n"); + return 0; + } + + ret =3D epf_ntb_init_epc_bar(ntb); + if (ret) { + dev_err(dev, "Failed to create NTB EPC\n"); + goto err_bar_init; + } + + ret =3D epf_ntb_config_spad_bar_alloc(ntb); + if (ret) { + dev_err(dev, "Failed to allocate BAR memory\n"); + goto err_bar_alloc; + } + + ret =3D epf_ntb_epc_init(ntb); + if (ret) { + dev_err(dev, "Failed to initialize EPC\n"); + goto err_bar_alloc; + } + + epf_set_drvdata(epf, ntb); + + pci_space[0] =3D (ntb->vntb_pid << 16) | ntb->vntb_vid; + pci_vntb_table[0].vendor =3D ntb->vntb_vid; + pci_vntb_table[0].device =3D ntb->vntb_pid; + + if (pci_register_driver(&vntb_pci_driver)) { + dev_err(dev, "failure register vntb pci driver\n"); + goto err_bar_alloc; + } + + vpci_scan_bus(ntb); + + return 0; + +err_bar_alloc: + epf_ntb_config_spad_bar_free(ntb); + +err_bar_init: + epf_ntb_epc_destroy(ntb); + + return ret; +} + +/** + * epf_ntb_unbind() - Cleanup the initialization from epf_ntb_bind() + * @epf: NTB endpoint function device + * + * Cleanup the initialization from epf_ntb_bind() + */ +static void epf_ntb_unbind(struct pci_epf *epf) +{ + struct epf_ntb *ntb =3D epf_get_drvdata(epf); + + epf_ntb_epc_cleanup(ntb); + epf_ntb_config_spad_bar_free(ntb); + epf_ntb_epc_destroy(ntb); + + pci_unregister_driver(&vntb_pci_driver); +} + +// EPF driver probe +static struct pci_epf_ops epf_ntb_ops =3D { + .bind =3D epf_ntb_bind, + .unbind =3D epf_ntb_unbind, + .add_cfs =3D epf_ntb_add_cfs, +}; + +/** + * epf_ntb_probe() - Probe NTB function driver + * @epf: NTB endpoint function device + * + * Probe NTB function driver when endpoint function bus detects a NTB + * endpoint function. + */ +static int epf_ntb_probe(struct pci_epf *epf) +{ + struct epf_ntb *ntb; + struct device *dev; + + dev =3D &epf->dev; + + ntb =3D devm_kzalloc(dev, sizeof(*ntb), GFP_KERNEL); + if (!ntb) + return -ENOMEM; + + epf->header =3D &epf_ntb_header; + ntb->epf =3D epf; + ntb->vbus_number =3D 0xff; + epf_set_drvdata(epf, ntb); + + dev_info(dev, "pci-ep epf driver loaded\n"); + return 0; +} + +static const struct pci_epf_device_id epf_ntb_ids[] =3D { + { + .name =3D "pci_epf_vntb", + }, + {}, +}; + +static struct pci_epf_driver epf_ntb_driver =3D { + .driver.name =3D "pci_epf_vntb", + .probe =3D epf_ntb_probe, + .id_table =3D epf_ntb_ids, + .ops =3D &epf_ntb_ops, + .owner =3D THIS_MODULE, +}; + +static int __init epf_ntb_init(void) +{ + int ret; + + kpcintb_workqueue =3D alloc_workqueue("kpcintb", WQ_MEM_RECLAIM | + WQ_HIGHPRI, 0); + ret =3D pci_epf_register_driver(&epf_ntb_driver); + if (ret) { + destroy_workqueue(kpcintb_workqueue); + pr_err("Failed to register pci epf ntb driver --> %d\n", ret); + return ret; + } + + return 0; +} +module_init(epf_ntb_init); + +static void __exit epf_ntb_exit(void) +{ + pci_epf_unregister_driver(&epf_ntb_driver); + destroy_workqueue(kpcintb_workqueue); +} +module_exit(epf_ntb_exit); + +MODULE_DESCRIPTION("PCI EPF NTB DRIVER"); +MODULE_AUTHOR("Frank Li "); +MODULE_LICENSE("GPL v2"); --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1923413C69D; Sun, 24 Mar 2024 23:38:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323501; cv=none; b=d70tAt2/GlH/A5oZcFIIM2O8WLEv9/Z1whRsuzuS7AWZVe6lR6ElszWCeO9u5/3dFOQbRRjTNezQj02BJrP5cZXhqjDmZ94YZh/1dYswIWZLBAuao13nF0Tk9VJKxyC0v+/Hv/wOYNEU/e7xLpy407ZikkzG/sqbx4O9B1oZHug= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323501; c=relaxed/simple; bh=Mxp24LmxsCqh2e6gTaltUkJ8wrb/zpt0VG+Im8hGxx4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZB3rFkRi+bT6d5xxYU+h3btKcEgMa1MoQbkR9cz8/s6rIP+fMafe+w055kVQstcPRkV4McgZAoNcFbsmbfzrGGpcIShINzZwwespFslYjt8zNGdEE3BrKYMFT69HGG8roN2URfEtdhaDFi8+bsqHe6Z1BQuJpW3h8sQP2RTfYhk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=BglFJyU/; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="BglFJyU/" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 54270C43390; Sun, 24 Mar 2024 23:38:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323500; bh=Mxp24LmxsCqh2e6gTaltUkJ8wrb/zpt0VG+Im8hGxx4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=BglFJyU/zOm5IFKvuBFfzr5hjsdioNUKaADWxvF0pU4T7PoBXMuNnNfd+6CRJGSh2 yRgcpOgYI7l0z5kOeecmDYbPD1JktmxQBwprUgBkAO6uMNtHR11lilLFFVS/PFS/AQ vJHtcO0Blke89NH81jbGje329zAL6usLNN/pe+Q6WJSg642ZVS7zoK1DoCCQbeenxN ZMQkTAIxBBTK4I/M9sUYmC71MOMFn6B1XyXH4ClyAf1rnbrhL6ujOTN+TDegKaqQE5 dzjm+aDVViHGgVcs9arnvMizPxhnkR+IMV0uOyrTWZa3dk8HNsrYl9FE2kDfB+0eCD U0RmZ2/v2I1tw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: ruanjinjie , Jon Mason , Sasha Levin Subject: [PATCH 5.15 205/317] NTB: EPF: fix possible memory leak in pci_vntb_probe() Date: Sun, 24 Mar 2024 19:33:05 -0400 Message-ID: <20240324233458.1352854-206-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: ruanjinjie [ Upstream commit 956578e3d397e00d6254dc7b5194d28587f98518 ] As ntb_register_device() don't handle error of device_register(), if ntb_register_device() returns error in pci_vntb_probe(), name of kobject which is allocated in dev_set_name() called in device_add() is leaked. As comment of device_add() says, it should call put_device() to drop the reference count that was set in device_initialize() when it fails, so the name can be freed in kobject_cleanup(). Signed-off-by: ruanjinjie Signed-off-by: Jon Mason Stable-dep-of: aebfdfe39b93 ("NTB: fix possible name leak in ntb_register_d= evice()") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/pci/endpoint/functions/pci-epf-vntb.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/pci/endpoint/functions/pci-epf-vntb.c b/drivers/pci/en= dpoint/functions/pci-epf-vntb.c index 1466dd1904175..138742af51707 100644 --- a/drivers/pci/endpoint/functions/pci-epf-vntb.c +++ b/drivers/pci/endpoint/functions/pci-epf-vntb.c @@ -1249,6 +1249,7 @@ static int pci_vntb_probe(struct pci_dev *pdev, const= struct pci_device_id *id) return 0; =20 err_register_dev: + put_device(&ndev->ntb.dev); return -EINVAL; } =20 --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2C2E513C695; Sun, 24 Mar 2024 23:38:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323502; cv=none; b=bzBGV9qYNd94MxK/fX9UWrCTNLa4Vzf5WbtacoTi5rGC/DMPSxlQgs0ZQzXgijbttX5MbeJZdynXb8INgCjIUAH19FmNYQgMuNSfh4Frjn4vAT0ZIKL9tGaUV4zy/7aUrBWeqkBvH9U4p7ZYOTx8K3vTvlBtvwq6B4lk/+J+Gxk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323502; c=relaxed/simple; bh=AEgavoyrrcEhc7TQRZz57wcjIAh4rUCr3ZqQ1UuR1uQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=taSrir7wQCmyW9Z/ueOFDejWYWBWAoS+jR0ZdEOa+QwO+oDwCgjEO0qrgtVYqsvawUkxhQnb9B50397TUG9TYboU9KUg2qHFw96myYT8IdtDZKpN/R2sZjF+/741S1okzGF5E0y7l1jA/v9QwUx7Al7JVkVX9V+HkB6REa0KAXU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=qtVt4cvz; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="qtVt4cvz" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3BD2BC43394; Sun, 24 Mar 2024 23:38:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323501; bh=AEgavoyrrcEhc7TQRZz57wcjIAh4rUCr3ZqQ1UuR1uQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qtVt4cvzus2D2vTdmPs0V9EQGjfJ0z8BGIJvrlC+enMwrwQmXqstPpbACrKMUruYi Bc54hfMghmv/0DLfoStpFF92V8PhUrG4hpZYa6xrTz0xT3cB6E1ywniw9tjpluwIZu J18kOuAZQCHPp7i2rboDFLGBH5nARzA6EVPmamEZE1bGk8cEak1ktttBYBsnm7C9gt tXOssNKKqL6P5QDF6uEVVUfWAM4LPzSNFXuYKV7eurFEcmwcxmzb/BUV0ss2cFh8Cb bNI1YYlHZ3lnVTH9XIy7Z1ABAYgVKug2CZ75JJsAoJjZ/cEs1pIWMbVyCMPMaRP6/4 6FTmgk5TGR7vg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Yang Yingliang , =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= , Manivannan Sadhasivam , Dave Jiang , Sasha Levin Subject: [PATCH 5.15 206/317] NTB: fix possible name leak in ntb_register_device() Date: Sun, 24 Mar 2024 19:33:06 -0400 Message-ID: <20240324233458.1352854-207-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable From: Yang Yingliang [ Upstream commit aebfdfe39b9327a3077d0df8db3beb3160c9bdd0 ] If device_register() fails in ntb_register_device(), the device name allocated by dev_set_name() should be freed. As per the comment in device_register(), callers should use put_device() to give up the reference in the error path. So fix this by calling put_device() in the error path so that the name can be freed in kobject_cleanup(). As a result of this, put_device() in the error path of ntb_register_device() is removed and the actual error is returned. Fixes: a1bd3baeb2f1 ("NTB: Add NTB hardware abstraction layer") Signed-off-by: Yang Yingliang Reviewed-by: Ilpo J=C3=A4rvinen Reviewed-by: Manivannan Sadhasivam Reviewed-by: Dave Jiang Link: https://lore.kernel.org/r/20231201033057.1399131-1-yangyingliang@huaw= eicloud.com [mani: reworded commit message] Signed-off-by: Manivannan Sadhasivam Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/ntb/core.c | 8 +++++++- drivers/pci/endpoint/functions/pci-epf-vntb.c | 6 +----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/drivers/ntb/core.c b/drivers/ntb/core.c index 27dd93deff6e5..d702bee780826 100644 --- a/drivers/ntb/core.c +++ b/drivers/ntb/core.c @@ -100,6 +100,8 @@ EXPORT_SYMBOL(ntb_unregister_client); =20 int ntb_register_device(struct ntb_dev *ntb) { + int ret; + if (!ntb) return -EINVAL; if (!ntb->pdev) @@ -120,7 +122,11 @@ int ntb_register_device(struct ntb_dev *ntb) ntb->ctx_ops =3D NULL; spin_lock_init(&ntb->ctx_lock); =20 - return device_register(&ntb->dev); + ret =3D device_register(&ntb->dev); + if (ret) + put_device(&ntb->dev); + + return ret; } EXPORT_SYMBOL(ntb_register_device); =20 diff --git a/drivers/pci/endpoint/functions/pci-epf-vntb.c b/drivers/pci/en= dpoint/functions/pci-epf-vntb.c index 138742af51707..d4cd4bd4a0881 100644 --- a/drivers/pci/endpoint/functions/pci-epf-vntb.c +++ b/drivers/pci/endpoint/functions/pci-epf-vntb.c @@ -1242,15 +1242,11 @@ static int pci_vntb_probe(struct pci_dev *pdev, con= st struct pci_device_id *id) ret =3D ntb_register_device(&ndev->ntb); if (ret) { dev_err(dev, "Failed to register NTB device\n"); - goto err_register_dev; + return ret; } =20 dev_dbg(dev, "PCI Virtual NTB driver loaded\n"); return 0; - -err_register_dev: - put_device(&ndev->ntb.dev); - return -EINVAL; } =20 static struct pci_device_id pci_vntb_table[] =3D { --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0F5C71769FD; Sun, 24 Mar 2024 23:38:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323503; cv=none; b=ny5+01ggd81YnVpVo95Ns2r1vLDNX00fs4A1zFsfwjiWZ/jRfD46hKCsMewJ8W+MXe3+la5BsTGb69CesNpeMqMutxxqg07x/P98EORY2CdeojNvZGNsjjJQgN0ilYZIK4CK4w5O64ysqASbo9bZ0QrjlYNGoyCqkT78j0Ruyuw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323503; c=relaxed/simple; bh=vzvGbXL+49eDjUdw6sUa8nAJ5qfNhT2THOeIEtzub5M=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mypi+hEq0DAwhEcfGGXfT7dOyGdIqYaDWR+F1bC1yPCzrlzBNEHmGDHgaDu+8tTY5QjAowu9yQOdudeAIexLmsHajvAnZnVnb3O/8yeqGtLafTEidxWoopL6dgnl0YwUB3rdHmrQyhr1wH6n+OsjVEEm+i58GPGZrcj8t/9sjkU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ErgS/hqJ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ErgS/hqJ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4CB17C433C7; Sun, 24 Mar 2024 23:38:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323501; bh=vzvGbXL+49eDjUdw6sUa8nAJ5qfNhT2THOeIEtzub5M=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ErgS/hqJ3OAEIucrhdGZg2TSe9eTDKv6ojOqW9YDSMnBaAPGqIYnuqAU8VBbSeQOq Z/N8a6pj0R0C2DvSY619pw3PKtxOjWBRJmVfkY9lnqm3eWcwJN0+86x5YHuX+MAKoU QzUZHOAAtqZJa6F5HtxnrFH0SQnU8Ve4aKAIlovH9Hd9eFGRAP3C/uvpKi/4c1jjng hef5c064lmWcQdu8ZogwknBi/cIHaKT5H4YlIGbkt2IE6j6oydFePYsL9YWPwH83C7 0FeqHg36Ln91mLIjwjnFiI3aVCUmF9+M3Oax7l6m9uL+n6mEpWW7XQX1uuKJzgb2u2 GXT7ggi4DC7rA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jernej Skrabec , Hans Verkuil , Sasha Levin Subject: [PATCH 5.15 207/317] media: sun8i-di: Fix coefficient writes Date: Sun, 24 Mar 2024 19:33:07 -0400 Message-ID: <20240324233458.1352854-208-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Jernej Skrabec [ Upstream commit 794b581f8c6eb7b60fe468ccb96dd3cd38ff779f ] Currently coefficients are applied only once, since they don't change. However, this is done before enable bit is set and thus it doesn't get applied properly. Fix that by applying coefficients after enable bit is set. While this means that it will be done evey time, it doesn't bring much time penalty. Fixes: a4260ea49547 ("media: sun4i: Add H3 deinterlace driver") Signed-off-by: Jernej Skrabec Signed-off-by: Hans Verkuil Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- .../media/platform/sunxi/sun8i-di/sun8i-di.c | 42 +++++++++---------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/drivers/media/platform/sunxi/sun8i-di/sun8i-di.c b/drivers/med= ia/platform/sunxi/sun8i-di/sun8i-di.c index 671e4a928993d..073a61c094183 100644 --- a/drivers/media/platform/sunxi/sun8i-di/sun8i-di.c +++ b/drivers/media/platform/sunxi/sun8i-di/sun8i-di.c @@ -66,6 +66,7 @@ static void deinterlace_device_run(void *priv) struct vb2_v4l2_buffer *src, *dst; unsigned int hstep, vstep; dma_addr_t addr; + int i; =20 src =3D v4l2_m2m_next_src_buf(ctx->fh.m2m_ctx); dst =3D v4l2_m2m_next_dst_buf(ctx->fh.m2m_ctx); @@ -160,6 +161,26 @@ static void deinterlace_device_run(void *priv) deinterlace_write(dev, DEINTERLACE_CH1_HORZ_FACT, hstep); deinterlace_write(dev, DEINTERLACE_CH1_VERT_FACT, vstep); =20 + /* neutral filter coefficients */ + deinterlace_set_bits(dev, DEINTERLACE_FRM_CTRL, + DEINTERLACE_FRM_CTRL_COEF_ACCESS); + readl_poll_timeout(dev->base + DEINTERLACE_STATUS, val, + val & DEINTERLACE_STATUS_COEF_STATUS, 2, 40); + + for (i =3D 0; i < 32; i++) { + deinterlace_write(dev, DEINTERLACE_CH0_HORZ_COEF0 + i * 4, + DEINTERLACE_IDENTITY_COEF); + deinterlace_write(dev, DEINTERLACE_CH0_VERT_COEF + i * 4, + DEINTERLACE_IDENTITY_COEF); + deinterlace_write(dev, DEINTERLACE_CH1_HORZ_COEF0 + i * 4, + DEINTERLACE_IDENTITY_COEF); + deinterlace_write(dev, DEINTERLACE_CH1_VERT_COEF + i * 4, + DEINTERLACE_IDENTITY_COEF); + } + + deinterlace_clr_set_bits(dev, DEINTERLACE_FRM_CTRL, + DEINTERLACE_FRM_CTRL_COEF_ACCESS, 0); + deinterlace_clr_set_bits(dev, DEINTERLACE_FIELD_CTRL, DEINTERLACE_FIELD_CTRL_FIELD_CNT_MSK, DEINTERLACE_FIELD_CTRL_FIELD_CNT(ctx->field)); @@ -248,7 +269,6 @@ static irqreturn_t deinterlace_irq(int irq, void *data) static void deinterlace_init(struct deinterlace_dev *dev) { u32 val; - int i; =20 deinterlace_write(dev, DEINTERLACE_BYPASS, DEINTERLACE_BYPASS_CSC); @@ -285,26 +305,6 @@ static void deinterlace_init(struct deinterlace_dev *d= ev) deinterlace_clr_set_bits(dev, DEINTERLACE_CHROMA_DIFF, DEINTERLACE_CHROMA_DIFF_TH_MSK, DEINTERLACE_CHROMA_DIFF_TH(5)); - - /* neutral filter coefficients */ - deinterlace_set_bits(dev, DEINTERLACE_FRM_CTRL, - DEINTERLACE_FRM_CTRL_COEF_ACCESS); - readl_poll_timeout(dev->base + DEINTERLACE_STATUS, val, - val & DEINTERLACE_STATUS_COEF_STATUS, 2, 40); - - for (i =3D 0; i < 32; i++) { - deinterlace_write(dev, DEINTERLACE_CH0_HORZ_COEF0 + i * 4, - DEINTERLACE_IDENTITY_COEF); - deinterlace_write(dev, DEINTERLACE_CH0_VERT_COEF + i * 4, - DEINTERLACE_IDENTITY_COEF); - deinterlace_write(dev, DEINTERLACE_CH1_HORZ_COEF0 + i * 4, - DEINTERLACE_IDENTITY_COEF); - deinterlace_write(dev, DEINTERLACE_CH1_VERT_COEF + i * 4, - DEINTERLACE_IDENTITY_COEF); - } - - deinterlace_clr_set_bits(dev, DEINTERLACE_FRM_CTRL, - DEINTERLACE_FRM_CTRL_COEF_ACCESS, 0); } =20 static inline struct deinterlace_ctx *deinterlace_file2ctx(struct file *fi= le) --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E5B6A27B104; Sun, 24 Mar 2024 23:38:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323504; cv=none; b=mpZeCrLOMlcF02QFyOCpr7/2dfcnxXbnv7Qd69RRDBnSM1j/iKvPA05JoQxaNdoVc3VIFWm4NixiXxcwUHOUlLNxC+d6ZpiG5Z74NOZ4mac2KFmjz41wR0mlYFi/w1Gd95MnpUzTPkxoe8pxQsBf5JBbRzLn++sqddxVeH3NAoo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323504; c=relaxed/simple; bh=0Eg9GoRURLgZukSzhlo77FcQHJEdGPmW8mmGZ5+MOeM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=V9MiZRByj0MTght9g+eLroB3pTAogGtsT9f/G6DHAMypQTzhzc5cpolK4HnGcBQbnf6SztWYKaQT+VVf0xjGcgimYCSkOq77+VuhsogU3A4dR2faBbjvX1KBZkcQJ2263KySQ7KbUvcPGzBoUoR7Nxpo+R9VTVvki6gxrznKBHo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=E93yB//g; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="E93yB//g" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 330C0C43399; Sun, 24 Mar 2024 23:38:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323502; bh=0Eg9GoRURLgZukSzhlo77FcQHJEdGPmW8mmGZ5+MOeM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=E93yB//ge0VM5CKhf1NIDuf4DH2FP/wzKzAxRd2rjxDQjqv37D+k+ZpFl0mPmCrGO 5lamaniHpqt0fsUM+Ii5Y8sJYxxNrW9OFXBDnWJsSUhJWFaFEZD8kCuLAwnBItsIr0 t18UaPvS3/0g3PUi7nJFgM21QeD417ozgnpXC7pOyoj+DGo3aOqqW+aOdHiSCg7gmV +aRxo03im2JTfyDHZ77IZkzprRen6NGtHtEXPuQhCx/EPgaj6UqPUFmtyrUm/mOjhG tUrFMlT5kjo+mOmQJVnMtMUrHI1z1vEMOq4XTsVMSzLlV2GgKw+vtidb7ACQxwAsom CBIAQCRhoGFrA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jernej Skrabec , Hans Verkuil , Sasha Levin Subject: [PATCH 5.15 208/317] media: sun8i-di: Fix power on/off sequences Date: Sun, 24 Mar 2024 19:33:08 -0400 Message-ID: <20240324233458.1352854-209-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Jernej Skrabec [ Upstream commit cff104e33bad38f4b2c8d58816a7accfaa2879f9 ] According to user manual, reset line should be deasserted before clocks are enabled. Also fix power down sequence to be reverse of that. Fixes: a4260ea49547 ("media: sun4i: Add H3 deinterlace driver") Signed-off-by: Jernej Skrabec Signed-off-by: Hans Verkuil Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- .../media/platform/sunxi/sun8i-di/sun8i-di.c | 25 ++++++++++--------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/drivers/media/platform/sunxi/sun8i-di/sun8i-di.c b/drivers/med= ia/platform/sunxi/sun8i-di/sun8i-di.c index 073a61c094183..8faf93c418ed5 100644 --- a/drivers/media/platform/sunxi/sun8i-di/sun8i-di.c +++ b/drivers/media/platform/sunxi/sun8i-di/sun8i-di.c @@ -933,11 +933,18 @@ static int deinterlace_runtime_resume(struct device *= device) return ret; } =20 + ret =3D reset_control_deassert(dev->rstc); + if (ret) { + dev_err(dev->dev, "Failed to apply reset\n"); + + goto err_exclusive_rate; + } + ret =3D clk_prepare_enable(dev->bus_clk); if (ret) { dev_err(dev->dev, "Failed to enable bus clock\n"); =20 - goto err_exclusive_rate; + goto err_rst; } =20 ret =3D clk_prepare_enable(dev->mod_clk); @@ -954,23 +961,16 @@ static int deinterlace_runtime_resume(struct device *= device) goto err_mod_clk; } =20 - ret =3D reset_control_deassert(dev->rstc); - if (ret) { - dev_err(dev->dev, "Failed to apply reset\n"); - - goto err_ram_clk; - } - deinterlace_init(dev); =20 return 0; =20 -err_ram_clk: - clk_disable_unprepare(dev->ram_clk); err_mod_clk: clk_disable_unprepare(dev->mod_clk); err_bus_clk: clk_disable_unprepare(dev->bus_clk); +err_rst: + reset_control_assert(dev->rstc); err_exclusive_rate: clk_rate_exclusive_put(dev->mod_clk); =20 @@ -981,11 +981,12 @@ static int deinterlace_runtime_suspend(struct device = *device) { struct deinterlace_dev *dev =3D dev_get_drvdata(device); =20 - reset_control_assert(dev->rstc); - clk_disable_unprepare(dev->ram_clk); clk_disable_unprepare(dev->mod_clk); clk_disable_unprepare(dev->bus_clk); + + reset_control_assert(dev->rstc); + clk_rate_exclusive_put(dev->mod_clk); =20 return 0; --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C86A627B108; Sun, 24 Mar 2024 23:38:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323504; cv=none; b=i10wOJ1agtAj+96z+S6sYdalOYGmMTgvVHcJ8Z9yV/C66/Lf2sbh2tIJToZ2gfCor8tt09bSXDQV6M/kKjVG/hmRfjx1epqwJP8R9wg2QPnptuxAYgTy2GAmbGLUjN9nA64hv3X2153C+ut4lz8Wi4hmBZOMfyR1S7RIkm0F/2Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323504; c=relaxed/simple; bh=Xuc3oBGo7liqs2HCz2Zg1SBZ8t+5y5rY/zRMJBrLpR4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=E3dFnh3WpnGVG7ECqb2N8HvBfg9nCDfvneytXjmIKQ7RDj0EOQM918J45QbvrUZCT6qpsDzBBgmc7G544Qc0bP5OizjEtGpcV1kZ5AXjkZHpi7eFy4TJXg0tZxZFcX38rRkbCOGWFT0zgZQNQB5+q9GaVOnQNz8pnkUp6YY6krg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=S3hmVW8i; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="S3hmVW8i" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 16C97C433F1; Sun, 24 Mar 2024 23:38:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323503; bh=Xuc3oBGo7liqs2HCz2Zg1SBZ8t+5y5rY/zRMJBrLpR4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=S3hmVW8iuCJw7i/TNYIS1sJ1hq/XM0XGn++tbUjwGRCiaV7FRkpD6o4/E+4V2x5dA eMj3ZNMGd5OsoTZR9ntTPc1kxYDXlHByj9ZID8VP4gZwZEsi/t85L6nw1V3DeSPAgH WQtdZnjrO37sraW2YBz/ClNRsw9z8OIqrFRYRfNvNld06osc3sToajK7EYkWMvQ+wM ft/DjTzAZzpLWHEaz+SBdiUIreijSZNhDjHW8DrSSI2lZQC/1NPGwzFJoYek8MHkYJ 3LMxmIsI2uRPj9AwYlAOlEEwyOrmB3onJl80QJn24InSTViRzVyR9KqVcSA3BR2CDa zgicY7zjVLM6g== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jernej Skrabec , Hans Verkuil , Sasha Levin Subject: [PATCH 5.15 209/317] media: sun8i-di: Fix chroma difference threshold Date: Sun, 24 Mar 2024 19:33:09 -0400 Message-ID: <20240324233458.1352854-210-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Jernej Skrabec [ Upstream commit 856525e8db272b0ce6d9c6e6c2eeb97892b485a6 ] While there is no good explanation what this value does, vendor driver uses value 31 for it. Align driver with it. Fixes: a4260ea49547 ("media: sun4i: Add H3 deinterlace driver") Signed-off-by: Jernej Skrabec Signed-off-by: Hans Verkuil Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/media/platform/sunxi/sun8i-di/sun8i-di.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/media/platform/sunxi/sun8i-di/sun8i-di.c b/drivers/med= ia/platform/sunxi/sun8i-di/sun8i-di.c index 8faf93c418ed5..dd289c7c93bc2 100644 --- a/drivers/media/platform/sunxi/sun8i-di/sun8i-di.c +++ b/drivers/media/platform/sunxi/sun8i-di/sun8i-di.c @@ -304,7 +304,7 @@ static void deinterlace_init(struct deinterlace_dev *de= v) =20 deinterlace_clr_set_bits(dev, DEINTERLACE_CHROMA_DIFF, DEINTERLACE_CHROMA_DIFF_TH_MSK, - DEINTERLACE_CHROMA_DIFF_TH(5)); + DEINTERLACE_CHROMA_DIFF_TH(31)); } =20 static inline struct deinterlace_ctx *deinterlace_file2ctx(struct file *fi= le) --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C387227B110; Sun, 24 Mar 2024 23:38:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323505; cv=none; b=TaH1OFg/X8N1M0M5XexKqX71598mlIFpfjlNCj0E+g+Lo49obOA9IW/QnFddsbmSpmO/4N+rAYa6IdhiQ2C7k8LfdC9xkDRgv6PfyXL4wPcvozxTgsUkZPGjKiI20zyIizA78AkjXbtWbwS5NIWEEhspdTq7S/rqYdZCMVxv34s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323505; c=relaxed/simple; bh=1+J6QYKpPbWfELo6BtEJ8dydpL7F24zkrHNhJf6zRe4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=tEYn+PBjlUoANPhgz4sf0Q3CuAQdwQzcYDVlPqOkZyDDdEtbDnIOUj7CddMa7mF1qEn93MLX9UcnwJvn3WknvrZrdGJ9clXNu7JEweAwSGwzWHKXBN8VHX1A0sFkrqoysSXPz2Nc447a26kqhX7CRLo47W9cX0xNdWiWU+azHoE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=BY8zURmD; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="BY8zURmD" Received: by smtp.kernel.org (Postfix) with ESMTPSA id EFD74C43390; Sun, 24 Mar 2024 23:38:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323504; bh=1+J6QYKpPbWfELo6BtEJ8dydpL7F24zkrHNhJf6zRe4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=BY8zURmDLrwG6z/8T2UqKYgiXoGLAhpEOyRYhfg4WF+x/VjdlpUOIsO9xyMyLul1j gZCDFFsr9LfdSXfXd9oRJPe5bdgvt7zkbU3ngrPj0aoVqZKCfn95Pp3XrY6T29pqcJ nIFrDCYx0W+Wo7ZRgDoA0TS6l79LhDjab/aMleeUAn0XXwVHP3IdD4tvelDXZEz+R7 oE09QUYJlNAX0afIZ/yZBdOUwnoV7TxeYMR/tV5M1KbmAdA2MRLKZjk4VfiKuK/Ws4 H7YN03zBvN97111saywJ/xRKfArN6ouzIb/MVNKgM09uRMluJU3QfesuYmQdmXHdxq tGqtmMYHHyMqw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Lucas Stach , Philipp Zabel , Hans Verkuil , Sasha Levin Subject: [PATCH 5.15 210/317] media: imx: csc/scaler: fix v4l2_ctrl_handler memory leak Date: Sun, 24 Mar 2024 19:33:10 -0400 Message-ID: <20240324233458.1352854-211-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Lucas Stach [ Upstream commit 4797a3dd46f220e6d83daf54d70c5b33db6deb01 ] Free the memory allocated in v4l2_ctrl_handler_init on release. Fixes: a8ef0488cc59 ("media: imx: add csc/scaler mem2mem device") Signed-off-by: Lucas Stach Reviewed-by: Philipp Zabel Signed-off-by: Hans Verkuil Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/staging/media/imx/imx-media-csc-scaler.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/staging/media/imx/imx-media-csc-scaler.c b/drivers/sta= ging/media/imx/imx-media-csc-scaler.c index eb6da9b9d8ba8..c29a950639e46 100644 --- a/drivers/staging/media/imx/imx-media-csc-scaler.c +++ b/drivers/staging/media/imx/imx-media-csc-scaler.c @@ -803,6 +803,7 @@ static int ipu_csc_scaler_release(struct file *file) =20 dev_dbg(priv->dev, "Releasing instance %p\n", ctx); =20 + v4l2_ctrl_handler_free(&ctx->ctrl_hdlr); v4l2_m2m_ctx_release(ctx->fh.m2m_ctx); v4l2_fh_del(&ctx->fh); v4l2_fh_exit(&ctx->fh); --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AA24327B114; Sun, 24 Mar 2024 23:38:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323506; cv=none; b=tOZ2p6KUCgju6AWdlmdV9/FMb4h/APUSiOnjM2xavPUk9DLUVuzPiTg45e8P8jKWkj+Bfg57vbjrIBeWun3tTUhvdjqjQgRctZPlPHC/rA23AX+sjAt1hgzqSkevv7loqbFZnhb6Pq317Z9s++sAJ9yyycLNs9s5xFdoPESfwEo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323506; c=relaxed/simple; bh=BApVoZr1HWgG77uIAlP5say5xUHr6e9CzMP/GXvg8hE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=WgvZVGkbaejrEf5PuQ1V76tfMhpkyBQtw5flkP3gVhGog9FKfOX/8L/MJ9F9eM7hZxmvUA3KqJgQh+92sAV3OnimUx1kCDZ3chXXU5FlFb2yvm2MrEdx5/vEf5K72qc7LpvXkEA/yU+FUJdC5SznpLFzn9cB0kpAMHgmPCPr1N0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=PYgThkYH; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="PYgThkYH" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E9209C433F1; Sun, 24 Mar 2024 23:38:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323505; bh=BApVoZr1HWgG77uIAlP5say5xUHr6e9CzMP/GXvg8hE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=PYgThkYHElOhh+fkG5KIzcWRXE/NOumdlOHbnXS3M2MsOblMyDuA1RATkpCvlfIn8 DTjotGdwOBANMQISQQGXv+4GLVVrWlvUvzs8BLL5Eo36ddtXC3wgn58M9MIu+hdOtc FX/JsD7VplWO2rs0PmgjLY9PBGawEPqxcy77aIePFz3Dm6iCoFT5tEq80ErncBsCTy /QR+STDRP20THZqM9HubzbqNEiY9TMPEDS2/F6qMjLFdWpTitNJj29peFMDyVocb+Z pQy973Q7K+7gn/7uCy3AeUUsCCqph2i9H9pkLD3TGHSGOiFsPUAeS5fmOi0to/keN5 zs9JeyzpXNdEg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Daniil Dulov , Hans Verkuil , Sasha Levin Subject: [PATCH 5.15 211/317] media: go7007: add check of return value of go7007_read_addr() Date: Sun, 24 Mar 2024 19:33:11 -0400 Message-ID: <20240324233458.1352854-212-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Daniil Dulov [ Upstream commit 0b70530ee740861f4776ff724fcc25023df1799a ] If go7007_read_addr() returns error channel is not assigned a value. In this case go to allocfail. Found by Linux Verification Center (linuxtesting.org) with SVACE. Fixes: 866b8695d67e ("Staging: add the go7007 video driver") Signed-off-by: Daniil Dulov Signed-off-by: Hans Verkuil Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/media/usb/go7007/go7007-usb.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/media/usb/go7007/go7007-usb.c b/drivers/media/usb/go70= 07/go7007-usb.c index eeb85981e02b6..762c13e49bfa5 100644 --- a/drivers/media/usb/go7007/go7007-usb.c +++ b/drivers/media/usb/go7007/go7007-usb.c @@ -1201,7 +1201,9 @@ static int go7007_usb_probe(struct usb_interface *int= f, u16 channel; =20 /* read channel number from GPIO[1:0] */ - go7007_read_addr(go, 0x3c81, &channel); + if (go7007_read_addr(go, 0x3c81, &channel)) + goto allocfail; + channel &=3D 0x3; go->board_id =3D GO7007_BOARDID_ADLINK_MPG24; usb->board =3D board =3D &board_adlink_mpg24; --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8E8D327B100; Sun, 24 Mar 2024 23:38:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323507; cv=none; b=G/ZCVQATzrb5L8OTaZkV9M+Bn5E51MOIXyd53X9p0YnFdqW/I65cYmLThc5FfJLuC78dcq+iGyneVzBmzYX3VYEEwueRzePFwRuCmkluU1kidXVp8LhC4FYy8uXL2BRjvcsYyzIVosskDCDxHFqWFESZVAk1xSuzp5Im6r5aSbU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323507; c=relaxed/simple; bh=fkQUcbORkODKGwcIjJeKyjjU5hkBPC4MQG1SSmB4Lms=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=dc9sv2jr1NNwMBnO5lVa0Q0W/ioFWD+M38sqYZw2r53pqnQmnz7g6f0dsJd0Ir04DKDVb0R1det4bx+2ir07GRwi3C1KJIvvNlEBXYIvSW46gsfVI/xFR11yf0/flkw0/JFTHC/fRVZUvN5naS8ncytTX+kCTJLTjJdHPSZ58r8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=MOfKFE4C; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="MOfKFE4C" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D0644C433A6; Sun, 24 Mar 2024 23:38:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323506; bh=fkQUcbORkODKGwcIjJeKyjjU5hkBPC4MQG1SSmB4Lms=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=MOfKFE4CwvttOpVEGIrqdz6zm8HJFnWnp1DNCPvyvZVeODto4QR883jon1F9NW4KJ SHxAjRRSOmZSZ5AuGsRx0wy/PSYUxq2yOj4OUBN+Z2qj2dne2E+wjSuLGBOirfNG2/ kBUTWDSPuAiQEt3Bm12kE7jGqW+HWAN49tcHX8bDtIYS19HBBPvVn7iyJCX+QSAQ2T OnGU1TGlcqmuTxKGEpP9PltqLHgeKrYFipvxqcn/GE4OZKjFSDDUbvxNLxQ3xRKA94 4tI4lP4Ls7ZvNBNQnWoTMH9L5QIs1bHU0OqVwz+AA8PurFrw0UJzmvBzclUm80twJN 9Al2u0k5KS0fA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Daniil Dulov , Hans Verkuil , Sasha Levin Subject: [PATCH 5.15 212/317] media: pvrusb2: remove redundant NULL check Date: Sun, 24 Mar 2024 19:33:12 -0400 Message-ID: <20240324233458.1352854-213-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Daniil Dulov [ Upstream commit 95ac1210fb2753f968ebce0730d4fbc553c2a3dc ] Pointer dip->stream cannot be NULL due to a shift, thus remove redundant NULL check. Found by Linux Verification Center (linuxtesting.org) with SVACE. Fixes: c74e0062684b ("V4L/DVB (5059): Pvrusb2: Be smarter about mode restor= ation") Signed-off-by: Daniil Dulov Signed-off-by: Hans Verkuil Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/media/usb/pvrusb2/pvrusb2-v4l2.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/drivers/media/usb/pvrusb2/pvrusb2-v4l2.c b/drivers/media/usb/p= vrusb2/pvrusb2-v4l2.c index 9657c18833116..c872868becbdc 100644 --- a/drivers/media/usb/pvrusb2/pvrusb2-v4l2.c +++ b/drivers/media/usb/pvrusb2/pvrusb2-v4l2.c @@ -1202,11 +1202,6 @@ static void pvr2_v4l2_dev_init(struct pvr2_v4l2_dev = *dip, dip->minor_type =3D pvr2_v4l_type_video; nr_ptr =3D video_nr; caps |=3D V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_AUDIO; - if (!dip->stream) { - pr_err(KBUILD_MODNAME - ": Failed to set up pvrusb2 v4l video dev due to missing stream instan= ce\n"); - return; - } break; case VFL_TYPE_VBI: dip->config =3D pvr2_config_vbi; --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 729EF27B11E; Sun, 24 Mar 2024 23:38:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323508; cv=none; b=SH8UUGXcPud2GTmq2nZK7BzK21LwuMnQdyNOmX11Nxcw5JIc1/9c7y4UIrLOTuGBUtFp0kpMNMgY3PYh789Lei6kidUokU3ErjlRU2DF0NtvBGKA6SDjq77J0VfEbexLYLVMgpvAlzYWjU6FFwe428ImjHNXnqQMITvxAUYxMbU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323508; c=relaxed/simple; bh=5F+W2XVBb8jBoA1hXh/onNUbYNMRYXAAcVlmlGC3wtQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=AF8hWihUx+2gING4PxlhM6wrbbCTipd3QOgh0vZdCAYol7774Fnzms5QgXd4erzWrB20rKy2801wqz4yeEEXvuCM0K01eact5hkOuGFvhYIsm8g/PfMnUxp+HNCPdYRZYu2HHRQ/EcVOY1WiPZF00ATONxDoLwmK1QsGRw6Z5V4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=o8w0waXD; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="o8w0waXD" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B5AF8C433C7; Sun, 24 Mar 2024 23:38:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323507; bh=5F+W2XVBb8jBoA1hXh/onNUbYNMRYXAAcVlmlGC3wtQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=o8w0waXDB1f/Ojsj3BHAFSvlpHsxlz6JnQ1IUVPxGK3p+K8g1NyFqtAJR8KGCl3P7 BokJHLtuQ/9p3lDmlgS8ZAdNUF09Y87SbXJi3bRjHd1T3+9Fs2sVihIDE4Z9OJPz8Y 1fegMxW2FxjMgA7LwwsSD9hGPbFSK0IRIqf7AJBTf0uLVnX046nun7/MRI0SEYVG4v Pp145inkLI5SyDb6XDOiiT+BzUz1UD5YzPIkQIqFaTaSSsD297+TWLY3smbGyMcprq GamO1M22uFi2827ydAWajvZFZ4Wv/BCbJeuq4gl0C7QSL6QjpPlv2aguRrHYpe2uU9 94DhtNr2epLCw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Arnd Bergmann , Hans Verkuil , Sasha Levin Subject: [PATCH 5.15 213/317] media: pvrusb2: fix pvr2_stream_callback casts Date: Sun, 24 Mar 2024 19:33:13 -0400 Message-ID: <20240324233458.1352854-214-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Arnd Bergmann [ Upstream commit 30baa4a96b23add91a87305baaeba82c4e109e1f ] clang-16 complains about a control flow integrity (KCFI) issue in pvrusb2, which casts three different prototypes into pvr2_stream_callback: drivers/media/usb/pvrusb2/pvrusb2-v4l2.c:1070:30: error: cast from 'void (*= )(struct pvr2_v4l2_fh *)' to 'pvr2_stream_callback' (aka 'void (*)(void *)'= ) converts to incompatible function type [-Werror,-Wcast-function-type-stri= ct] 1070 | pvr2_stream_set_callback(sp,(pvr2_stream_callback)pvr2_v4l2= _notify,fh); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~= ~~~~~~~ drivers/media/usb/pvrusb2/pvrusb2-context.c:110:6: error: cast from 'void (= *)(struct pvr2_context *)' to 'void (*)(void *)' converts to incompatible f= unction type [-Werror,-Wcast-function-type-strict] 110 | (void (*)(void *))pvr2_cont= ext_notify, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~= ~~~~~~~~~~ drivers/media/usb/pvrusb2/pvrusb2-dvb.c:152:6: error: cast from 'void (*)(s= truct pvr2_dvb_adapter *)' to 'pvr2_stream_callback' (aka 'void (*)(void *)= ') converts to incompatible function type [-Werror,-Wcast-function-type-str= ict] 152 | (pvr2_stream_callback) pvr2_dvb_no= tify, adap); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~= ~~~~ Change the functions to actually take a void* argument so the cast is no lo= nger needed. Fixes: bb8ce9d9143c ("V4L/DVB (7682): pvrusb2-dvb: finish up stream & buffe= r handling") Signed-off-by: Arnd Bergmann Signed-off-by: Hans Verkuil Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/media/usb/pvrusb2/pvrusb2-context.c | 8 ++++---- drivers/media/usb/pvrusb2/pvrusb2-dvb.c | 6 ++++-- drivers/media/usb/pvrusb2/pvrusb2-v4l2.c | 6 ++++-- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/drivers/media/usb/pvrusb2/pvrusb2-context.c b/drivers/media/us= b/pvrusb2/pvrusb2-context.c index 1764674de98bc..58f2f3ff10ee2 100644 --- a/drivers/media/usb/pvrusb2/pvrusb2-context.c +++ b/drivers/media/usb/pvrusb2/pvrusb2-context.c @@ -90,8 +90,10 @@ static void pvr2_context_destroy(struct pvr2_context *mp) } =20 =20 -static void pvr2_context_notify(struct pvr2_context *mp) +static void pvr2_context_notify(void *ptr) { + struct pvr2_context *mp =3D ptr; + pvr2_context_set_notify(mp,!0); } =20 @@ -106,9 +108,7 @@ static void pvr2_context_check(struct pvr2_context *mp) pvr2_trace(PVR2_TRACE_CTXT, "pvr2_context %p (initialize)", mp); /* Finish hardware initialization */ - if (pvr2_hdw_initialize(mp->hdw, - (void (*)(void *))pvr2_context_notify, - mp)) { + if (pvr2_hdw_initialize(mp->hdw, pvr2_context_notify, mp)) { mp->video_stream.stream =3D pvr2_hdw_get_video_stream(mp->hdw); /* Trigger interface initialization. By doing this diff --git a/drivers/media/usb/pvrusb2/pvrusb2-dvb.c b/drivers/media/usb/pv= rusb2/pvrusb2-dvb.c index 6954584526a32..1b768e7466721 100644 --- a/drivers/media/usb/pvrusb2/pvrusb2-dvb.c +++ b/drivers/media/usb/pvrusb2/pvrusb2-dvb.c @@ -88,8 +88,10 @@ static int pvr2_dvb_feed_thread(void *data) return stat; } =20 -static void pvr2_dvb_notify(struct pvr2_dvb_adapter *adap) +static void pvr2_dvb_notify(void *ptr) { + struct pvr2_dvb_adapter *adap =3D ptr; + wake_up(&adap->buffer_wait_data); } =20 @@ -149,7 +151,7 @@ static int pvr2_dvb_stream_do_start(struct pvr2_dvb_ada= pter *adap) } =20 pvr2_stream_set_callback(pvr->video_stream.stream, - (pvr2_stream_callback) pvr2_dvb_notify, adap); + pvr2_dvb_notify, adap); =20 ret =3D pvr2_stream_set_buffer_count(stream, PVR2_DVB_BUFFER_COUNT); if (ret < 0) return ret; diff --git a/drivers/media/usb/pvrusb2/pvrusb2-v4l2.c b/drivers/media/usb/p= vrusb2/pvrusb2-v4l2.c index c872868becbdc..29f2e767f236f 100644 --- a/drivers/media/usb/pvrusb2/pvrusb2-v4l2.c +++ b/drivers/media/usb/pvrusb2/pvrusb2-v4l2.c @@ -1037,8 +1037,10 @@ static int pvr2_v4l2_open(struct file *file) } =20 =20 -static void pvr2_v4l2_notify(struct pvr2_v4l2_fh *fhp) +static void pvr2_v4l2_notify(void *ptr) { + struct pvr2_v4l2_fh *fhp =3D ptr; + wake_up(&fhp->wait_data); } =20 @@ -1071,7 +1073,7 @@ static int pvr2_v4l2_iosetup(struct pvr2_v4l2_fh *fh) =20 hdw =3D fh->channel.mc_head->hdw; sp =3D fh->pdi->stream->stream; - pvr2_stream_set_callback(sp,(pvr2_stream_callback)pvr2_v4l2_notify,fh); + pvr2_stream_set_callback(sp, pvr2_v4l2_notify, fh); pvr2_hdw_set_stream_type(hdw,fh->pdi->config); if ((ret =3D pvr2_hdw_set_streaming(hdw,!0)) < 0) return ret; return pvr2_ioread_set_enabled(fh->rhp,!0); --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6838A27B124; Sun, 24 Mar 2024 23:38:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323509; cv=none; b=Z6r/MVLNaIozO5DTJ2HJkRcYlh8YcUcU8DL24PcMsbocVYfu9AQi6hpu2EE/uUKPGf7KCg4qr4WtvKF4eXsgZ6cPxSte004bUur9RbR62J8KUPiSluZv0iicF8up4CF+o8W7wtybFNHGGoGrGQFxS4SkkJkxA5XyYianEXwQRVU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323509; c=relaxed/simple; bh=bZsBnUnfKdFw2VCk5QyKwh671+Xs8KoP7fsGfnZBPpw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=r3D915VkR+wjyqDPP5v5JimxQ9BMgRxdJLAhWp2Atp9Tho/sh8NE3mOVDg9vTbe5IwLZ6AAUfbaxnHEBcORMvKvTxsMN0Xw6Ob7RWHcm3xvBV6Lq/ei/rg/UlXlDY7arYov3mhGaVFVRKvz5hLn1P5y6eltMgJyRqY7rng577jo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=VF3Lh7XV; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="VF3Lh7XV" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 96C8AC433F1; Sun, 24 Mar 2024 23:38:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323508; bh=bZsBnUnfKdFw2VCk5QyKwh671+Xs8KoP7fsGfnZBPpw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=VF3Lh7XVVydJniBt/RSZbhp+HZmccVA44bx/N0+gC+5kwDKGMDO1FLKhfNxL2Fm7b 9y1Q7SXvVeGkS6InrEhsmAi/yYwTra97C6/OK+wCIM4YylXlaP0tJbOU1KicZIGMNy i50i4SEZWJWBgli6xckF9xXTEILRj3TBMtnLNeHYqiMqIhNafBKosJ9JSyfilEPTCe jUsGjGoXfS/ezWwi0vhP48uKweJPpd0qGZMHwcaXHJq3TgtgGThuCRCefB8oTA8Rz0 rWYy7T9xp9VZ26BNFiDv8SEvAa3pFbu+KNR2kqVr6NhJdaKcwKOe33QKm+8thZVka9 kLQPutCa2YBiA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Konrad Dybcio , Caleb Connolly , Bjorn Andersson , Sasha Levin Subject: [PATCH 5.15 214/317] clk: qcom: dispcc-sdm845: Adjust internal GDSC wait times Date: Sun, 24 Mar 2024 19:33:14 -0400 Message-ID: <20240324233458.1352854-215-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Konrad Dybcio [ Upstream commit 117e7dc697c2739d754db8fe0c1e2d4f1f5d5f82 ] SDM845 downstream uses non-default values for GDSC internal waits. Program them accordingly to avoid surprises. Fixes: 81351776c9fb ("clk: qcom: Add display clock controller driver for SD= M845") Signed-off-by: Konrad Dybcio Tested-by: Caleb Connolly # OnePlus 6 Link: https://lore.kernel.org/r/20240103-topic-845gdsc-v1-1-368efbe1a61d@li= naro.org Signed-off-by: Bjorn Andersson Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/clk/qcom/dispcc-sdm845.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/clk/qcom/dispcc-sdm845.c b/drivers/clk/qcom/dispcc-sdm= 845.c index 735adfefc3798..e792e0b130d33 100644 --- a/drivers/clk/qcom/dispcc-sdm845.c +++ b/drivers/clk/qcom/dispcc-sdm845.c @@ -759,6 +759,8 @@ static struct clk_branch disp_cc_mdss_vsync_clk =3D { =20 static struct gdsc mdss_gdsc =3D { .gdscr =3D 0x3000, + .en_few_wait_val =3D 0x6, + .en_rest_wait_val =3D 0x5, .pd =3D { .name =3D "mdss_gdsc", }, --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7374027B12C; Sun, 24 Mar 2024 23:38:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323510; cv=none; b=LWKCU4Cln2of8bEQQtehnKgRhh82uwfyUDTjqrigku8qpFvc1AIEj/IWQCAZ8xFz715AtaOFx1KMH+h0sB87q8Jj/sEWhU8wX0yS1E7f/A5LfMGx5Fv3Uv/z3WzZehH5P5Wg15W9SEoGSt7fS+UHqUD1pYndqMjbZG/42zpGQgM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323510; c=relaxed/simple; bh=b79EiSGynL91pVsZeyJVlfZ6C3AKeK6xiHQUqCCbOwQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=BavZHXCCNUGMgY1nERheqkxaywkFPl8LJ0GqSdcfJJbw97kdsluLijeIjMHxrUCPRFEQ+B9lnMqcNxnz686aBl2s4QL9rBR0vG9egYLqTRwY+p8oMkIEb5n5vnaLcX+oG/CTDvK2+JUOa4BvHn1CJYbGtKvso+EmnYkGnxP6c6E= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=b6p3U+rr; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="b6p3U+rr" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8C7EFC433A6; Sun, 24 Mar 2024 23:38:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323509; bh=b79EiSGynL91pVsZeyJVlfZ6C3AKeK6xiHQUqCCbOwQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=b6p3U+rr8Ni9AiQJ4E0g/AE/MkrG/4wVaq188maLHJgf/wXCNN0/WtA1d6/KcKd1j DyG4CPXk0T2ZLrbsfJCghL/MrCsXIKePl0+yr9ho5RiMlpPhKeEqe2V8UM7dNQ3Bi/ H96EvodgZnalLlPU4Sbmsq2YYoeW8h1N7Uzgfec9Lb2qBSb52eA9rCjFvs8wtmZ2e7 jYa47SMGrlc9XCVdnWL1t9qDcxVkM1/Lb6yuGnfMzTevfSFc/cW+DxyIp3TnYGYcdY R/vJ+3FG7R8cuqI+MvehoKtnqKebUlyC+nQhz0Locd/3f61cSdsnKhvSFxDtjnOG2h fr0fESKMRSdkg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: AngeloGioacchino Del Regno , Alexandre Mergnat , CK Hu , Chun-Kuang Hu , Sasha Levin Subject: [PATCH 5.15 215/317] drm/mediatek: dsi: Fix DSI RGB666 formats and definitions Date: Sun, 24 Mar 2024 19:33:15 -0400 Message-ID: <20240324233458.1352854-216-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: AngeloGioacchino Del Regno [ Upstream commit fae6f815505301b92d9113764f4d76d0bfe45607 ] The register bits definitions for RGB666 formats are wrong in multiple ways: first, in the DSI_PS_SEL bits region, the Packed 18-bits RGB666 format is selected with bit 1, while the Loosely Packed one is bit 2, and second - the definition name "LOOSELY_PS_18BIT_RGB666" is wrong because the loosely packed format is 24 bits instead! Either way, functions mtk_dsi_ps_control_vact() and mtk_dsi_ps_control() do not even agree on the DSI_PS_SEL bit to set in DSI_PSCTRL: one sets loosely packed (24) on RGB666, the other sets packed (18), and the other way around for RGB666_PACKED. Fixing this entire stack of issues is done in one go: - Use the correct bit for the Loosely Packed RGB666 definition - Rename LOOSELY_PS_18BIT_RGB666 to LOOSELY_PS_24BIT_RGB666 - Change ps_bpp_mode in mtk_dsi_ps_control_vact() to set: - Loosely Packed, 24-bits for MIPI_DSI_FMT_RGB666 - Packed, 18-bits for MIPI_DSI_FMT_RGB666_PACKED Fixes: 2e54c14e310f ("drm/mediatek: Add DSI sub driver") Reviewed-by: Alexandre Mergnat Reviewed-by: CK Hu Signed-off-by: AngeloGioacchino Del Regno Link: https://patchwork.kernel.org/project/dri-devel/patch/20240215085316.5= 6835-3-angelogioacchino.delregno@collabora.com/ Signed-off-by: Chun-Kuang Hu Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/gpu/drm/mediatek/mtk_dsi.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/mediatek/mtk_dsi.c b/drivers/gpu/drm/mediatek/= mtk_dsi.c index 57eaf111b6a8a..3b55a83b7cdff 100644 --- a/drivers/gpu/drm/mediatek/mtk_dsi.c +++ b/drivers/gpu/drm/mediatek/mtk_dsi.c @@ -70,8 +70,8 @@ #define DSI_PS_WC 0x3fff #define DSI_PS_SEL (3 << 16) #define PACKED_PS_16BIT_RGB565 (0 << 16) -#define LOOSELY_PS_18BIT_RGB666 (1 << 16) -#define PACKED_PS_18BIT_RGB666 (2 << 16) +#define PACKED_PS_18BIT_RGB666 (1 << 16) +#define LOOSELY_PS_24BIT_RGB666 (2 << 16) #define PACKED_PS_24BIT_RGB888 (3 << 16) =20 #define DSI_VSA_NL 0x20 @@ -366,10 +366,10 @@ static void mtk_dsi_ps_control_vact(struct mtk_dsi *d= si) ps_bpp_mode |=3D PACKED_PS_24BIT_RGB888; break; case MIPI_DSI_FMT_RGB666: - ps_bpp_mode |=3D PACKED_PS_18BIT_RGB666; + ps_bpp_mode |=3D LOOSELY_PS_24BIT_RGB666; break; case MIPI_DSI_FMT_RGB666_PACKED: - ps_bpp_mode |=3D LOOSELY_PS_18BIT_RGB666; + ps_bpp_mode |=3D PACKED_PS_18BIT_RGB666; break; case MIPI_DSI_FMT_RGB565: ps_bpp_mode |=3D PACKED_PS_16BIT_RGB565; @@ -423,7 +423,7 @@ static void mtk_dsi_ps_control(struct mtk_dsi *dsi) dsi_tmp_buf_bpp =3D 3; break; case MIPI_DSI_FMT_RGB666: - tmp_reg =3D LOOSELY_PS_18BIT_RGB666; + tmp_reg =3D LOOSELY_PS_24BIT_RGB666; dsi_tmp_buf_bpp =3D 3; break; case MIPI_DSI_FMT_RGB666_PACKED: --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5915927B137; Sun, 24 Mar 2024 23:38:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323511; cv=none; b=T+BhH5Tz7pnC846bLbqLAlqBhEmlcwAlovlMCBlbaIoYybBwo19MrMc3eeh0ECbXt2/u4i/QfFGM9o1sYwlhFkddlwHXSPXaDRV/WHxvKgOIcfOLVD7Z7HCBuzssI/G1L6yLNoUykP20MFKXWkt9ZmaadCPpvIdwTfdCQwO7KkU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323511; c=relaxed/simple; bh=ISOVR7lUtvRg3YD0g46BrpkVoBWzXCBG3j54mlxcGQ0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=J0BAqsUXw9s3F8Osim8w6ytT1eugriqsrT2wu1SavoJFZxvQIkJ7QukI3ef4qOab9Rl7gmsj/T4+3vWE8Ql6MTV2xnam7dHfX5g25/K4rjbkFIjyHLMiKXqjYF9DGNhl8PUmp27tQMG3OczVcYKIdW0mAw6lJMoqYBoZw1MkpAs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=RCmzni6d; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="RCmzni6d" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9BA06C433C7; Sun, 24 Mar 2024 23:38:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323510; bh=ISOVR7lUtvRg3YD0g46BrpkVoBWzXCBG3j54mlxcGQ0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=RCmzni6dkjfuqktUkziYg37jsq8Xgq5BXAASGD3fXISXJUFvbIcfKYBvA9nhzumKV irafNipPPlHQOhOLo55jI/oZu0ALuSeMKKKAROzZ8KMHcqjfzKVy1ZORGRYgomlwnC 8hHXfff25eVYmAKxlVf1ki9qhI+PEyZFGceqlFalegzLKos014DJHVUt64cDedCLlQ YhqryynDx25ASfhw+RBGtCS/VixWypuKygiDTw7aQ8hc4dgUaXMghXVLnJy1piry9K GaKg/5cVMWkTm/5LpvKmaais7IMlzEjz+pRm/vMETQcMgzgrY+CsYBw1H2PL97ZL8a 1PgFimP5ECfIA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?J=C3=B6rg=20Wedekind?= , Bjorn Helgaas , Sasha Levin Subject: [PATCH 5.15 216/317] PCI: Mark 3ware-9650SE Root Port Extended Tags as broken Date: Sun, 24 Mar 2024 19:33:16 -0400 Message-ID: <20240324233458.1352854-217-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable From: J=C3=B6rg Wedekind [ Upstream commit baf67aefbe7d7deafa59ca49612d163f8889934c ] Per PCIe r6.1, sec 2.2.6.2 and 7.5.3.4, a Requester may not use 8-bit Tags unless its Extended Tag Field Enable is set, but all Receivers/Completers must handle 8-bit Tags correctly regardless of their Extended Tag Field Enable. Some devices do not handle 8-bit Tags as Completers, so add a quirk for them. If we find such a device, we disable Extended Tags for the entire hierarchy to make peer-to-peer DMA possible. The 3ware 9650SE seems to have issues with handling 8-bit tags. Mark it as broken. This fixes PCI Parity Errors like : 3w-9xxx: scsi0: ERROR: (0x06:0x000C): PCI Parity Error: clearing. 3w-9xxx: scsi0: ERROR: (0x06:0x000D): PCI Abort: clearing. 3w-9xxx: scsi0: ERROR: (0x06:0x000E): Controller Queue Error: clearing. 3w-9xxx: scsi0: ERROR: (0x06:0x0010): Microcontroller Error: clearing. Link: https://lore.kernel.org/r/20240219132811.8351-1-joerg@wedekind.de Fixes: 60db3a4d8cc9 ("PCI: Enable PCIe Extended Tags if supported") Closes: https://bugzilla.kernel.org/show_bug.cgi?id=3D202425 Signed-off-by: J=C3=B6rg Wedekind Signed-off-by: Bjorn Helgaas Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/pci/quirks.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index fcdc17bbcc8ee..1b6484c906094 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c @@ -5390,6 +5390,7 @@ static void quirk_no_ext_tags(struct pci_dev *pdev) =20 pci_walk_bus(bridge->bus, pci_configure_extended_tags, NULL); } +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_3WARE, 0x1004, quirk_no_ext_tags); DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 0x0132, quirk_no_ext_ta= gs); DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 0x0140, quirk_no_ext_ta= gs); DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 0x0141, quirk_no_ext_ta= gs); --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3B8D213C694; Sun, 24 Mar 2024 23:38:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323512; cv=none; b=fte7TAf+uWJrwbgS9GJcB4aFpie2hlva4jjIbQdlJ3RkMjcaAmi8ws1TQf2y/3R9+CQj5yzjrvnGt1WSdRQB2o60IhmlEAgeYHJCFg8jXwg9c/HufgHX9B22yQ2uGzeM+Z+ALVpTDj/fA+4Z/U59YueNHG8FV5xW/se3t2t/1u4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323512; c=relaxed/simple; bh=rNDijfEyC5ir0j9HjxxEwdGbtVG4058Sq8QzGTqaCdg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=c0Wdvl+L1nnclBOzk8okg3hli5I2A+3Rj1XwDhSdJlbaxN9iaHylsgWtmM6AMM9IQP9OPC0pmWJBAfmVX5DNF9+RrW502FBjAzkVi3ccNUVCP+8VnP9UFGSkPTUaj5lErVj4RQrXDxfnKNoG4yBcbHkMA/mPKvcS8/g+WKJzD5Q= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=G2/8bGBO; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="G2/8bGBO" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7EE38C43390; Sun, 24 Mar 2024 23:38:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323511; bh=rNDijfEyC5ir0j9HjxxEwdGbtVG4058Sq8QzGTqaCdg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=G2/8bGBOcBhadc1Rf9GhYwVjwGERrNuDAO825BrsHMsRjfhctBm7/NrWhvvxhRhvt qxx830+wQWLDh90cD42x6WAN12/opUnVF7p78jQ2Iv65Tr9n0vNyMhHWM3k2YRac6U jXqH9IQgRZ+tWuXRDlFq0tHlgptVA20uPMRYwe9aM1OXx2K0yczNUtwWF0WSxKWqLg ceJZcrO1a3Y19h+IFgAYQbvTZ/xhTSRhUOmY35SSKarCpfWpY/kDDtJE03U/dwoQwq q5hFt4OaIFupOC4K24lf8xu3+qkhYCeMcr6mB8LRd3T6l8jfvaU/FrwQjvFgTWlLuj EfV5tJFxRzy/Q== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Christophe JAILLET , Stephen Boyd , Sasha Levin Subject: [PATCH 5.15 217/317] clk: hisilicon: hi3519: Release the correct number of gates in hi3519_clk_unregister() Date: Sun, 24 Mar 2024 19:33:17 -0400 Message-ID: <20240324233458.1352854-218-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Christophe JAILLET [ Upstream commit 74e39f526d95c0c119ada1874871ee328c59fbee ] The gates are stored in 'hi3519_gate_clks', not 'hi3519_mux_clks'. This is also in line with how hisi_clk_register_gate() is called in the probe. Fixes: 224b3b262c52 ("clk: hisilicon: hi3519: add driver remove path and fi= x some issues") Signed-off-by: Christophe JAILLET Link: https://lore.kernel.org/r/c3f1877c9a0886fa35c949c8f0ef25547f284f18.17= 04912510.git.christophe.jaillet@wanadoo.fr Signed-off-by: Stephen Boyd Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/clk/hisilicon/clk-hi3519.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/clk/hisilicon/clk-hi3519.c b/drivers/clk/hisilicon/clk= -hi3519.c index ad0c7f350cf03..60d8a27a90824 100644 --- a/drivers/clk/hisilicon/clk-hi3519.c +++ b/drivers/clk/hisilicon/clk-hi3519.c @@ -130,7 +130,7 @@ static void hi3519_clk_unregister(struct platform_devic= e *pdev) of_clk_del_provider(pdev->dev.of_node); =20 hisi_clk_unregister_gate(hi3519_gate_clks, - ARRAY_SIZE(hi3519_mux_clks), + ARRAY_SIZE(hi3519_gate_clks), crg->clk_data); hisi_clk_unregister_mux(hi3519_mux_clks, ARRAY_SIZE(hi3519_mux_clks), --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 20B51177A87; Sun, 24 Mar 2024 23:38:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323513; cv=none; b=Rs3ltxMn4JaPh15UviKUV9sOfvt6UJLKDF2G18BzDd2XhgT9T3mPmk/M5ykA84Rj/S/cXpcypSlkqOssn3kod+M+TRL8AcUpCiCHdg98Q31gcVSwEO02R20Rb1q6+zN2LT3icG4fJ/YLkes9xQ/f3DfolDW8u5LwSDBHocB2LBo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323513; c=relaxed/simple; bh=9jN6vKZ98/bJPDMoRNuvk8UuWNbHvTAGirA78gAMS2I=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=C66mneY5Q8jGTQEqlCSAQ5KhaoO3fzu9EWc2SXlF1inbXV6AD5rNIueDKP7rP11lspFJC4TsloJh+cGuNvBcaNFDG69cTMblZWlvTUZ31+8CCGWS5w1QBadq6+rEq7uf2nuAW7UnRFLOAXnBmLArqtGqae34QG1AMCguxjQtESE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ldgHJ8hr; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ldgHJ8hr" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 62F2EC433F1; Sun, 24 Mar 2024 23:38:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323512; bh=9jN6vKZ98/bJPDMoRNuvk8UuWNbHvTAGirA78gAMS2I=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ldgHJ8hrUTAzqNJKGjrrUjI3XpccJmqvTIfvcAMSmtciJs+oaazHQ6cXx0N8ZJxsy GB651bnXlj4DK8g8K1if2FH+KEiR0YKubDFyBDHcBtXiNXYZ1c6NwOpI8lmOT30iYu m9CjKKOIFhq5JG28iaULv+T/kEBQ+FGIxwpPR7BHt1FyhlWtdq79DFh3CMeLFtZUIK +p1caiAbeaI3mFJorhLe2HT/JZd4on2z2slogce7AxnS+hVGPVWGhis4Q2THGk5gh6 LOIrbrfBxOpT4jOB5QjjDmEQQ9vhOtcPJ0TFs+dBUll0R+Wv2n+vLPZqJkMdCZgCh3 tC+WZNdtilqwA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Christophe JAILLET , Stephen Boyd , Sasha Levin Subject: [PATCH 5.15 218/317] clk: hisilicon: hi3559a: Fix an erroneous devm_kfree() Date: Sun, 24 Mar 2024 19:33:18 -0400 Message-ID: <20240324233458.1352854-219-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Christophe JAILLET [ Upstream commit 64c6a38136b74a2f18c42199830975edd9fbc379 ] 'p_clk' is an array allocated just before the for loop for all clk that need to be registered. It is incremented at each loop iteration. If a clk_register() call fails, 'p_clk' may point to something different from what should be freed. The best we can do, is to avoid this wrong release of memory. Fixes: 6c81966107dc ("clk: hisilicon: Add clock driver for hi3559A SoC") Signed-off-by: Christophe JAILLET Link: https://lore.kernel.org/r/773fc8425c3b8f5b0ca7c1d89f15b65831a85ca9.17= 05850155.git.christophe.jaillet@wanadoo.fr Signed-off-by: Stephen Boyd Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/clk/hisilicon/clk-hi3559a.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/clk/hisilicon/clk-hi3559a.c b/drivers/clk/hisilicon/cl= k-hi3559a.c index 9ea1a80acbe8b..0272276550ff1 100644 --- a/drivers/clk/hisilicon/clk-hi3559a.c +++ b/drivers/clk/hisilicon/clk-hi3559a.c @@ -491,7 +491,6 @@ static void hisi_clk_register_pll(struct hi3559av100_pl= l_clock *clks, =20 clk =3D clk_register(NULL, &p_clk->hw); if (IS_ERR(clk)) { - devm_kfree(dev, p_clk); dev_err(dev, "%s: failed to register clock %s\n", __func__, clks[i].name); continue; --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 08097177A8B; Sun, 24 Mar 2024 23:38:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323514; cv=none; b=DlGTxT57s2hM5kv853Gz1lQtNhUVgVOngSozH9VG2q3qDpVnoIOpoPKH0ULqC9B8grU6fdjNYVGKCfRduOyhifcNHL4PEyfd8M1DKBZzxvM2uBD8GfqFnvXz7yHpADv/xwLMxwcuk/kDnPNX5Oii8wGAMRvMz9vm2r3hh1zDJm0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323514; c=relaxed/simple; bh=+7+48+cUDSwonUDB2uW8//TEeC+7Ah5z8bAa9KDm8yU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ksAiyd0Hqx7ZU4NwdJ4JqFQNXQ1t1ilryKuAZGjXoW5+1zk0Sxow1St48YvqJgBs5+S2u8GuFHHfKuUuJnN7Gh3fa/HvOm8MzbYadiNix899MGY2cfMJw+Np2SGyR0e5V6bOkmAs8dimpRKPhO3/NYNiDl1zCOUHGYjo5uLdhQo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=MwcWexz6; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="MwcWexz6" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 44D9BC43394; Sun, 24 Mar 2024 23:38:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323512; bh=+7+48+cUDSwonUDB2uW8//TEeC+7Ah5z8bAa9KDm8yU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=MwcWexz6NhKP78gj6OBMxyZ0bz0V6sE0t7MApqcrjS+LU7TtR7to/eTzAXIKM7Bel gfD7nLAtj2l5tzTmf3zJ9SHPHDmvYUwywLPujg/L6BjPaEpP3lgpjfMb3ybvyDMlM5 1zxjfWroEWKvi7h1De7vmH1UQ5lipt1Hdx1kMZDXp+GLQAARDjQnWdQRsl+oh3PW1I 1m4ewAXvuNlpxdH7Dlol29N2Gy8PPAywMoGF0tcDIyjf38fst0/at0Gkr97wtFdzQT WFo1yzZTvBzfxUyxJw7KFYmsGMqjp6IvnJoDQvICCze/RprHuDh6yMs2Ek/c5Ramf+ 7Q9kwWCAZjiIw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Fedor Pchelkin , Thierry Reding , Sasha Levin Subject: [PATCH 5.15 219/317] drm/tegra: put drm_gem_object ref on error in tegra_fb_create Date: Sun, 24 Mar 2024 19:33:19 -0400 Message-ID: <20240324233458.1352854-220-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Fedor Pchelkin [ Upstream commit 32e5a120a5105bce01561978ee55aee8e40ac0dc ] Inside tegra_fb_create(), drm_gem_object_lookup() increments ref count of the found object. But if the following size check fails then the last found object's ref count should be put there as the unreferencing loop can't detect this situation. Found by Linux Verification Center (linuxtesting.org). Fixes: de2ba664c30f ("gpu: host1x: drm: Add memory manager and fb") Signed-off-by: Fedor Pchelkin Signed-off-by: Thierry Reding Link: https://patchwork.freedesktop.org/patch/msgid/20231215093356.12067-1-= pchelkin@ispras.ru Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/gpu/drm/tegra/fb.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/gpu/drm/tegra/fb.c b/drivers/gpu/drm/tegra/fb.c index cae8b8cbe9dd0..6e35c7951dfb2 100644 --- a/drivers/gpu/drm/tegra/fb.c +++ b/drivers/gpu/drm/tegra/fb.c @@ -165,6 +165,7 @@ struct drm_framebuffer *tegra_fb_create(struct drm_devi= ce *drm, =20 if (gem->size < size) { err =3D -EINVAL; + drm_gem_object_put(gem); goto unreference; } =20 --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DF617177A89; Sun, 24 Mar 2024 23:38:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323514; cv=none; b=CGcWjO+R1K9gwxq4Ali1dhb6C1CmS8M2Ao/3+/HEn82wx1MFM6FvsYd0FsUEr42TON931fz0EVAAdiF6eZz+qGfgPH4aO9Z4RmmPr3w1TZ4gx+t8QvLJ7BOjL6ySBJTVQ27bLKewNNKYiqw2Ts1dxF5f1yzMwASI8e3JvFEEeRs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323514; c=relaxed/simple; bh=IV4ylyCe+rLhJ/9f7eLC5kmhrVumZhOvn69bL0YEEUY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=G2AF70pywm6YaC2AGnqpeBSFyxOzuLBqktF9vCeeQMYNKx8ozd3bQI/ywiYMCTrAMDk18zJtIg4obnwenjLRRPUfyiFB2E67ut9LpSJVLgVXAD8xcFD6dhB9ubn6Rtd34nPCpPt8RpNyk31uDN78b7UP2P3NDJAUPLxwTT6k6oE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=U3saeYix; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="U3saeYix" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2D680C43390; Sun, 24 Mar 2024 23:38:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323513; bh=IV4ylyCe+rLhJ/9f7eLC5kmhrVumZhOvn69bL0YEEUY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=U3saeYixZdXcpiQoS9aL4XqBS5XXQ5PvuOBjc2OMVbLs93cTni1YfoPonKvtYiaJX qXlvo2Ws1oih4Z7m+q4vaEif2XpJR5TIHcpnP04hzzbkdTAqVa6mcMukMiNX1bMBkx j9nmmJqyey+Su4/O8QMyhEXyxcBcXK+vaL5utoicz+bQ2r1SbO2pVhvrxX/BsJW21z qD2ZgJN9zZAIzana3Le8YWaT1Tq0ouJdnoa4cSQudLPZVmk5NRWMLrbSzDZ2rNIGCS zTIbovR8RDeT+H9F7hHkP4fDvCidh5buNeNJ+MPJZ0AuOFKg9UYTOmWiCf5JdgSU2g K7rUTnGQHvcFg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Peter Griffin , Lee Jones , Sasha Levin Subject: [PATCH 5.15 220/317] mfd: syscon: Call of_node_put() only when of_parse_phandle() takes a ref Date: Sun, 24 Mar 2024 19:33:20 -0400 Message-ID: <20240324233458.1352854-221-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Peter Griffin [ Upstream commit d2b0680cf3b05490b579e71b0df6e07451977745 ] of_parse_phandle() returns a device_node with refcount incremented, which the callee needs to call of_node_put() on when done. We should only call of_node_put() when the property argument is provided though as otherwise nothing has taken a reference on the node. Fixes: 45330bb43421 ("mfd: syscon: Allow property as NULL in syscon_regmap_= lookup_by_phandle") Signed-off-by: Peter Griffin Link: https://lore.kernel.org/r/20240220115012.471689-2-peter.griffin@linar= o.org Signed-off-by: Lee Jones Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/mfd/syscon.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/mfd/syscon.c b/drivers/mfd/syscon.c index 552b1861adad4..75c732ee9ed6e 100644 --- a/drivers/mfd/syscon.c +++ b/drivers/mfd/syscon.c @@ -224,7 +224,9 @@ struct regmap *syscon_regmap_lookup_by_phandle(struct d= evice_node *np, return ERR_PTR(-ENODEV); =20 regmap =3D syscon_node_to_regmap(syscon_np); - of_node_put(syscon_np); + + if (property) + of_node_put(syscon_np); =20 return regmap; } --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C8AF7177A92; Sun, 24 Mar 2024 23:38:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323515; cv=none; b=TXj0SmdglolPlU098B/PHMEGnaImJCyCBafF7E/5QrZOb6YoAjhq7hCk1OqIOEF0j1AO8In0cUEVIo3rbX7PQJJ7hO01o88/XRjTb92mT7FHhETcN+3D2fObznwWFDRfuNVvX6edbbS/rN93fe0l3qhmG+s88N5CSGV8toy4o8A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323515; c=relaxed/simple; bh=TYK28TeZGa/OFOO34UMom8LLO0Z98SnbL7GGLyYtOWM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=SF6zRpaamUDag+D/4d43xozM36OH7R+XS7r4hTU2AhqCGQd8EK0KchYRayIIagfw0swSqJURU3Bfg5fvT/Dr7tsYt4vXxBPffggNMl7FENUlBfuO5W1hc5AFyfgELgg7rII/YBIIlQmzXujW3AbvdIstZvzslTfMquNt/nSfhQ8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=IDgmKIul; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="IDgmKIul" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0F569C433F1; Sun, 24 Mar 2024 23:38:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323514; bh=TYK28TeZGa/OFOO34UMom8LLO0Z98SnbL7GGLyYtOWM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=IDgmKIultAl6dQzE95GpaQPaz8Am2oK+j5W++wfRnieCjg0Mfsndz4iLH6Ro63pUc UwRYfoxN6vit44P1LDhiEBByK/8HMtE0i57Ru4EOmOMYws1oXw/nWN+LkeHZb5UtV/ KAGpO3ZstKAxlBPqSmnqz3dR6ssGkrwBk2QBQne8izoZRsktAxeGWxPTE0BPl2DLhR hR1+uJLE4kKo8N+zVDh9J4g/hJZtXAq+djNIHMxZN3aaImJ6YXvfNsxNx4/GoSkfWc e+76GmOQImch6+Im5asNPfdUwifh0HLr/zCVRax1Fs9JHb+xxUGC8kHudHYsJEmuGF ilqSQwhQXUgPQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Peter Griffin , Lee Jones , Sasha Levin Subject: [PATCH 5.15 221/317] mfd: altera-sysmgr: Call of_node_put() only when of_parse_phandle() takes a ref Date: Sun, 24 Mar 2024 19:33:21 -0400 Message-ID: <20240324233458.1352854-222-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Peter Griffin [ Upstream commit e28c28a34ee9fa2ea671a20e5e7064e6220d55e7 ] of_parse_phandle() returns a device_node with refcount incremented, which the callee needs to call of_node_put() on when done. We should only call of_node_put() when the property argument is provided though as otherwise nothing has taken a reference on the node. Fixes: f36e789a1f8d ("mfd: altera-sysmgr: Add SOCFPGA System Manager") Signed-off-by: Peter Griffin Link: https://lore.kernel.org/r/20240220115012.471689-4-peter.griffin@linar= o.org Signed-off-by: Lee Jones Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/mfd/altera-sysmgr.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/mfd/altera-sysmgr.c b/drivers/mfd/altera-sysmgr.c index 5d3715a28b28e..dbe1009943718 100644 --- a/drivers/mfd/altera-sysmgr.c +++ b/drivers/mfd/altera-sysmgr.c @@ -110,7 +110,9 @@ struct regmap *altr_sysmgr_regmap_lookup_by_phandle(str= uct device_node *np, =20 dev =3D driver_find_device_by_of_node(&altr_sysmgr_driver.driver, (void *)sysmgr_np); - of_node_put(sysmgr_np); + if (property) + of_node_put(sysmgr_np); + if (!dev) return ERR_PTR(-EPROBE_DEFER); =20 --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C9659177A99; Sun, 24 Mar 2024 23:38:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323516; cv=none; b=GQGQXhL3kXWvTg4uxQ8fRFB8Gezg5BLVtmU/F6WDVvzTtMLCMrhH2wxkRqrKoKqWEuSyOqRP/KIrUhu+48tRvp7j/9Yuy5GncpTgoEqCjEDBS6UveAnCVyZ4e8CIHx5XwVHgt2dAgv+jJMjtVs+ojKgvLP6O/E8ao9EohFHitmQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323516; c=relaxed/simple; bh=8NG5ryWG5HYBva078aNyd9BCSi5cg3Cn9gXeZNtAs18=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=jBuhwRmvU7tL2HGxInECJDu2DPupZDVsgtvOowMchqxNZDX0j9ynpF1lZYObDHrjUYzKR+52FW2ENQjXYLNVHkABUCOHmQhhYLwXmlT+wEPEer0JRuaoA2IUBZCR8R+LbSkiXJTWBEB9FtZ9/uWGw/Rk5bzwJNOZz4hXcs1RAe0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=YE3AVvfH; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="YE3AVvfH" Received: by smtp.kernel.org (Postfix) with ESMTPSA id EC9ADC433C7; Sun, 24 Mar 2024 23:38:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323515; bh=8NG5ryWG5HYBva078aNyd9BCSi5cg3Cn9gXeZNtAs18=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=YE3AVvfHoJTGNNZ4J/qm+HZLesYrNtPSEKQcQ0ytdTHX9ielZhTCkeTBYBgrym+th AwkzGDRU+2PibPsvA4dK/gAc6+QVAYb5qn6rm5tzntUM7w7dv6H2gAimYtn/t2nQxs pK4q/9JpAo/H+Z4hxHV7uwkueolztQVV3h4+lj40kjFwDeRJzHiQYbR3TFKUB303SP 83rHUxrxxHMOlqUZ+7GtXyprj2ENHq9MrdzKJnIft2wTYTzD4l90s7asSNnvu1B7fH UhgL9Cj5P4umZrsgQzXechEBXHo8kx/jDXpuOlTmue1o5Kot63yhuNBEbeuMAq94B7 HaKbGDPUGk2GQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Arnd Bergmann , Ard Biesheuvel , Herbert Xu , Sasha Levin Subject: [PATCH 5.15 222/317] crypto: arm/sha - fix function cast warnings Date: Sun, 24 Mar 2024 19:33:22 -0400 Message-ID: <20240324233458.1352854-223-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Arnd Bergmann [ Upstream commit 53cc9baeb9bc2a187eb9c9790d30995148852b12 ] clang-16 warns about casting between incompatible function types: arch/arm/crypto/sha256_glue.c:37:5: error: cast from 'void (*)(u32 *, const= void *, unsigned int)' (aka 'void (*)(unsigned int *, const void *, unsign= ed int)') to 'sha256_block_fn *' (aka 'void (*)(struct sha256_state *, cons= t unsigned char *, int)') converts to incompatible function type [-Werror,-= Wcast-function-type-strict] 37 | (sha256_block_fn *)sha256_block_dat= a_order); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~= ~~~~~~~ arch/arm/crypto/sha512-glue.c:34:3: error: cast from 'void (*)(u64 *, const= u8 *, int)' (aka 'void (*)(unsigned long long *, const unsigned char *, in= t)') to 'sha512_block_fn *' (aka 'void (*)(struct sha512_state *, const uns= igned char *, int)') converts to incompatible function type [-Werror,-Wcast= -function-type-strict] 34 | (sha512_block_fn *)sha512_block_data_order); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Fix the prototypes for the assembler functions to match the typedef. The code already relies on the digest being the first part of the state structure, so there is no change in behavior. Fixes: c80ae7ca3726 ("crypto: arm/sha512 - accelerated SHA-512 using ARM ge= neric ASM and NEON") Fixes: b59e2ae3690c ("crypto: arm/sha256 - move SHA-224/256 ASM/NEON implem= entation to base layer") Signed-off-by: Arnd Bergmann Reviewed-by: Ard Biesheuvel Signed-off-by: Herbert Xu Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- arch/arm/crypto/sha256_glue.c | 13 +++++-------- arch/arm/crypto/sha512-glue.c | 12 +++++------- 2 files changed, 10 insertions(+), 15 deletions(-) diff --git a/arch/arm/crypto/sha256_glue.c b/arch/arm/crypto/sha256_glue.c index 433ee4ddce6c8..f85933fdec75f 100644 --- a/arch/arm/crypto/sha256_glue.c +++ b/arch/arm/crypto/sha256_glue.c @@ -24,8 +24,8 @@ =20 #include "sha256_glue.h" =20 -asmlinkage void sha256_block_data_order(u32 *digest, const void *data, - unsigned int num_blks); +asmlinkage void sha256_block_data_order(struct sha256_state *state, + const u8 *data, int num_blks); =20 int crypto_sha256_arm_update(struct shash_desc *desc, const u8 *data, unsigned int len) @@ -33,23 +33,20 @@ int crypto_sha256_arm_update(struct shash_desc *desc, c= onst u8 *data, /* make sure casting to sha256_block_fn() is safe */ BUILD_BUG_ON(offsetof(struct sha256_state, state) !=3D 0); =20 - return sha256_base_do_update(desc, data, len, - (sha256_block_fn *)sha256_block_data_order); + return sha256_base_do_update(desc, data, len, sha256_block_data_order); } EXPORT_SYMBOL(crypto_sha256_arm_update); =20 static int crypto_sha256_arm_final(struct shash_desc *desc, u8 *out) { - sha256_base_do_finalize(desc, - (sha256_block_fn *)sha256_block_data_order); + sha256_base_do_finalize(desc, sha256_block_data_order); return sha256_base_finish(desc, out); } =20 int crypto_sha256_arm_finup(struct shash_desc *desc, const u8 *data, unsigned int len, u8 *out) { - sha256_base_do_update(desc, data, len, - (sha256_block_fn *)sha256_block_data_order); + sha256_base_do_update(desc, data, len, sha256_block_data_order); return crypto_sha256_arm_final(desc, out); } EXPORT_SYMBOL(crypto_sha256_arm_finup); diff --git a/arch/arm/crypto/sha512-glue.c b/arch/arm/crypto/sha512-glue.c index 0635a65aa488b..1be5bd498af36 100644 --- a/arch/arm/crypto/sha512-glue.c +++ b/arch/arm/crypto/sha512-glue.c @@ -25,27 +25,25 @@ MODULE_ALIAS_CRYPTO("sha512"); MODULE_ALIAS_CRYPTO("sha384-arm"); MODULE_ALIAS_CRYPTO("sha512-arm"); =20 -asmlinkage void sha512_block_data_order(u64 *state, u8 const *src, int blo= cks); +asmlinkage void sha512_block_data_order(struct sha512_state *state, + u8 const *src, int blocks); =20 int sha512_arm_update(struct shash_desc *desc, const u8 *data, unsigned int len) { - return sha512_base_do_update(desc, data, len, - (sha512_block_fn *)sha512_block_data_order); + return sha512_base_do_update(desc, data, len, sha512_block_data_order); } =20 static int sha512_arm_final(struct shash_desc *desc, u8 *out) { - sha512_base_do_finalize(desc, - (sha512_block_fn *)sha512_block_data_order); + sha512_base_do_finalize(desc, sha512_block_data_order); return sha512_base_finish(desc, out); } =20 int sha512_arm_finup(struct shash_desc *desc, const u8 *data, unsigned int len, u8 *out) { - sha512_base_do_update(desc, data, len, - (sha512_block_fn *)sha512_block_data_order); + sha512_base_do_update(desc, data, len, sha512_block_data_order); return sha512_arm_final(desc, out); } =20 --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0F8C4177A9B; Sun, 24 Mar 2024 23:38:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323517; cv=none; b=Q2z+KaggCierlAhBbGN9M34k+GvTt0p9wHAQUMzffASZcYHkFOQ6WkcBt7QGPUrXhizLyYqBSWFqFzih4WhaklB4c/o5vfvA7XbY2yB30XO5XqFStis2g0rylsK/p8sdfkh4+Cj4EPMbQsmBvDyEEY2rB/Jqypsju3xukg5Qr4Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323517; c=relaxed/simple; bh=Dmi5nBFpgY5kImSUT5dFKiVM+QenL1/FmXSXxJ9lA6c=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ddY/84ftd1RZzsxxyHHbVXwEnT1tnHfYRa647HsGBOT1IZCKrwxJJVjDVGre7tB4e4Ay+meHfITeJ932WZSBSrS8p/4FJIoSvqYgidt530X2y5IttweFxH/nhgOtC1lFDH20U9wW1je5d1UPtsjf1ujK+vZZjN7uvNgQVGg2WZQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=nVIhcwd+; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="nVIhcwd+" Received: by smtp.kernel.org (Postfix) with ESMTPSA id EA897C433F1; Sun, 24 Mar 2024 23:38:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323516; bh=Dmi5nBFpgY5kImSUT5dFKiVM+QenL1/FmXSXxJ9lA6c=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nVIhcwd+QytCgaBTpGsBm3dX/FacJBJXbpOnbhbmkNfhd9BzSNDKQLDX8FUkWmhYw 9lNIC+Ar0Yba3sFzXfA+mNEDL6pZQpl1VOz4ZRcniIvX4cw5O5+g0kisThH1Nm01XY zpvBO/9DD2sFmM8h7nKGmnMxsxp1oDUCHHH+jcYU6BJ9g5lhxAYWsCaYghtDmLm5fq E3rwN7mFMleeoA0ZQmEmr8P8AQXhfcAt66QXqUpkmUq5xSzY+I4cFmHq2S2BrhYYyi lguOwT4M4o6msmJX/vLJ6AFJMmx8mK+SjeFpV23/fu13rqfH2SDU/+cC2ndouNThCZ iJSLro2y8Sz/A== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Tomi Valkeinen , Aradhya Bhatia , Sasha Levin Subject: [PATCH 5.15 223/317] drm/tidss: Fix initial plane zpos values Date: Sun, 24 Mar 2024 19:33:23 -0400 Message-ID: <20240324233458.1352854-224-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Tomi Valkeinen [ Upstream commit 3ec948ccb2c4b99e8fbfdd950adbe92ea577b395 ] When the driver sets up the zpos property it sets the default zpos value to the HW id of the plane. That is fine as such, but as on many DSS versions the driver arranges the DRM planes in a different order than the HW planes (to keep the non-scalable planes first), this leads to odd initial zpos values. An example is J721e, where the initial zpos values for DRM planes are 1, 3, 0, 2. In theory the userspace should configure the zpos values properly when using multiple planes, and in that sense the initial zpos values shouldn't matter, but there's really no reason not to fix this and help the userspace apps which don't handle zpos perfectly. In particular, some versions of Weston seem to have issues dealing with the planes with the current default zpos values. So let's change the zpos values for the DRM planes to 0, 1, 2, 3. Another option would be to configure the planes marked as primary planes to zpos 0. On a two display system this would give us plane zpos values of 0, 0, 1, 2. The end result and behavior would be very similar in this option, and I'm not aware that this would actually help us in any way. So, to keep the code simple, I opted for the 0, 1, 2, 3 values. Fixes: 32a1795f57ee ("drm/tidss: New driver for TI Keystone platform Displa= y SubSystem") Reviewed-by: Aradhya Bhatia Signed-off-by: Tomi Valkeinen Link: https://patchwork.freedesktop.org/patch/msgid/20240213-tidss-fixes-v1= -1-d709e8dfa505@ideasonboard.com Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/gpu/drm/tidss/tidss_plane.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/tidss/tidss_plane.c b/drivers/gpu/drm/tidss/ti= dss_plane.c index 217415ec8eea1..8ccd7d31c01b3 100644 --- a/drivers/gpu/drm/tidss/tidss_plane.c +++ b/drivers/gpu/drm/tidss/tidss_plane.c @@ -210,7 +210,7 @@ struct tidss_plane *tidss_plane_create(struct tidss_dev= ice *tidss, =20 drm_plane_helper_add(&tplane->plane, &tidss_plane_helper_funcs); =20 - drm_plane_create_zpos_property(&tplane->plane, hw_plane_id, 0, + drm_plane_create_zpos_property(&tplane->plane, tidss->num_planes, 0, num_planes - 1); =20 ret =3D drm_plane_create_color_properties(&tplane->plane, --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EE42B177AA5; Sun, 24 Mar 2024 23:38:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323519; cv=none; b=jnqtAMQ7ctROsL7ezkM3vTdxyFRE5o0DGevoPdk/O8rhF0Wxl0hquE72xOCktjeUIR6HtPu3Rvhp7Es27+KsyQGGUcdP+OjH9GPScgx7wtA1Ip/1kEmApFR7z4JnzYZbjw7IOC+E3rhLsuOSxWOWntTAN2KZBANkapNv1ralHLc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323519; c=relaxed/simple; bh=Ne5JUfK0bvfx027NwHX7WBuLWU4K3WaQyRAFp3b+FPU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=hiVGBg2c3g7M7/2juchuWeIKk3Ze6BiuirvT+w+ThCe5xGJW2e9C7PDh2C0YZ9Ogsx8b29LgWfZlBkqfr2l04GPk719Cm/N1rlSNcM/T6fU5T0+BUo5QUEmUA/+aqdAlJZOsGVCrEC3ZFqoQScgt7gDyKKBbtYgerMvEwEFzX+0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=VZL+rg3f; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="VZL+rg3f" Received: by smtp.kernel.org (Postfix) with ESMTPSA id CBF18C43390; Sun, 24 Mar 2024 23:38:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323517; bh=Ne5JUfK0bvfx027NwHX7WBuLWU4K3WaQyRAFp3b+FPU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=VZL+rg3fFH0ioPiKiu5qe2bqbo1lg+3t8tL9GLzjVGf6iDqM5st6u82Ut8l1JDSao BLd01hjz9voGA+ibAma1GdKEgo++yT/QKZeBkrp1v+svb/MySKQH5SrFXf8PZH8+os IP1/nNn3feWDRhK6Co2NQiR4onWGC3eTNBkBdW+UCoceE2N3s3MBUbEop5UZfW+X3m ul9bLkeQhaaG6nmxPqO/9elUeIEKUkgXTe3ezH70fJvG/hMwxH2GjIrFZm7a+x5RfZ 3HVHg06GTKgYmqBRXEggnC374sLJB5ZfkwhcM+pcby7GsSVlwte3YARKKt1oi/LgMW GOqELSQxlcqfw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Baruch Siach , Miquel Raynal , Sasha Levin Subject: [PATCH 5.15 224/317] mtd: maps: physmap-core: fix flash size larger than 32-bit Date: Sun, 24 Mar 2024 19:33:24 -0400 Message-ID: <20240324233458.1352854-225-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Baruch Siach [ Upstream commit 3884f03edd34887514a0865a80769cd5362d5c3b ] mtd-ram can potentially be larger than 4GB. get_bitmask_order() uses fls() that is not guaranteed to work with values larger than 32-bit. Specifically on aarch64 fls() returns 0 when all 32 LSB bits are clear. Use fls64() instead. Fixes: ba32ce95cbd987 ("mtd: maps: Merge gpio-addr-flash.c into physmap-cor= e.c") Signed-off-by: Baruch Siach Signed-off-by: Miquel Raynal Link: https://lore.kernel.org/linux-mtd/9fbf3664ce00f8b07867f1011834015f21d= 162a5.1707388458.git.baruch@tkos.co.il Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/mtd/maps/physmap-core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/mtd/maps/physmap-core.c b/drivers/mtd/maps/physmap-cor= e.c index 9ab795f03c546..e5552093585e2 100644 --- a/drivers/mtd/maps/physmap-core.c +++ b/drivers/mtd/maps/physmap-core.c @@ -528,7 +528,7 @@ static int physmap_flash_probe(struct platform_device *= dev) if (!info->maps[i].phys) info->maps[i].phys =3D res->start; =20 - info->win_order =3D get_bitmask_order(resource_size(res)) - 1; + info->win_order =3D fls64(resource_size(res)) - 1; info->maps[i].size =3D BIT(info->win_order + (info->gpios ? info->gpios->ndescs : 0)); --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 766B221C170; Sun, 24 Mar 2024 23:38:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323519; cv=none; b=opRf3CsWRaF0XMdFhpxJ9FrvPf2FspRA+G89DrQDDd/CdqPlS58PkmqFhus/QpPnO/W0myDRzNTgMP7+dwNucKR667UA35+OH2Q7XTr+5skP+qJ/GlPxn7VubNEI0M9gFm9aWhbrJV9koSzvp86Fvc4IJJVSbxtOFPILmwMFv2A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323519; c=relaxed/simple; bh=a404h3DZ8kzeJTl67XyP9R7Nn6wjyD0ElQOcRCs+PRQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=geOhwdaodyu/ySAXi4zvDLHqixbNaAureaAOSNWXdDJYTlJ6500pp2cy78vZfzipgg4l3V8aiS3B2N/LbTnm0w/Xd6bMPWurGk6AJqfkwJLMAGVWYRIpozYruQSbzu03mORVm8RjznRUdaJsdeDAkLE8M4pGWYaftD9FXtgzZtY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=cK3KCgvo; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="cK3KCgvo" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B7170C43399; Sun, 24 Mar 2024 23:38:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323518; bh=a404h3DZ8kzeJTl67XyP9R7Nn6wjyD0ElQOcRCs+PRQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cK3KCgvoQVuP3LnSVMc7kXfFoCBHau9FlvX2OX2Kn+CnzI+9cGma6QC+XRiz6K+1h c0avRsZnFs1QTiME3uhBjd5LBbesQv7Qwr2iMf3CeCdgYQjSOBknQ3eZgG3xtV92yE BVlSXK7tOaAj1577D4dqngtHjST2GwBG/9sTNWUPf/CpFuCodHn1zGLiFXYIteYH/I 1koQASVLTboSG79h1jRfxCVUVuvKMtAEv0bjGhb/ybKUYPUiaLtMmhfNzSmeUdQX6d nQdBY7bZ3dD9Te/DCweNCzDf8pFnupNRSLUeDL/hv9cjZnNQih98f5c4/sZZ4d2fu+ csZBwrzE++zjw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Arnd Bergmann , Miquel Raynal , Sasha Levin Subject: [PATCH 5.15 225/317] mtd: rawnand: lpc32xx_mlc: fix irq handler prototype Date: Sun, 24 Mar 2024 19:33:25 -0400 Message-ID: <20240324233458.1352854-226-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Arnd Bergmann [ Upstream commit 347b828882e6334690e7003ce5e2fe5f233dc508 ] clang-16 warns about mismatched function prototypes: drivers/mtd/nand/raw/lpc32xx_mlc.c:783:29: error: cast from 'irqreturn_t (*= )(int, struct lpc32xx_nand_host *)' (aka 'enum irqreturn (*)(int, struct lp= c32xx_nand_host *)') to 'irq_handler_t' (aka 'enum irqreturn (*)(int, void = *)') converts to incompatible function type [-Werror,-Wcast-function-type-s= trict] Change the interrupt handler to the normal way of just passing a void* pointer and converting it inside the function.. Fixes: 70f7cb78ec53 ("mtd: add LPC32xx MLC NAND driver") Signed-off-by: Arnd Bergmann Signed-off-by: Miquel Raynal Link: https://lore.kernel.org/linux-mtd/20240213100146.455811-1-arnd@kernel= .org Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/mtd/nand/raw/lpc32xx_mlc.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/mtd/nand/raw/lpc32xx_mlc.c b/drivers/mtd/nand/raw/lpc3= 2xx_mlc.c index 452ecaf7775ac..1cfe3dd0bad4d 100644 --- a/drivers/mtd/nand/raw/lpc32xx_mlc.c +++ b/drivers/mtd/nand/raw/lpc32xx_mlc.c @@ -303,8 +303,9 @@ static int lpc32xx_nand_device_ready(struct nand_chip *= nand_chip) return 0; } =20 -static irqreturn_t lpc3xxx_nand_irq(int irq, struct lpc32xx_nand_host *hos= t) +static irqreturn_t lpc3xxx_nand_irq(int irq, void *data) { + struct lpc32xx_nand_host *host =3D data; uint8_t sr; =20 /* Clear interrupt flag by reading status */ @@ -779,7 +780,7 @@ static int lpc32xx_nand_probe(struct platform_device *p= dev) goto release_dma_chan; } =20 - if (request_irq(host->irq, (irq_handler_t)&lpc3xxx_nand_irq, + if (request_irq(host->irq, &lpc3xxx_nand_irq, IRQF_TRIGGER_HIGH, DRV_NAME, host)) { dev_err(&pdev->dev, "Error requesting NAND IRQ\n"); res =3D -ENXIO; --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5AD4921AFFA; Sun, 24 Mar 2024 23:38:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323519; cv=none; b=k+9IZsVTdY1NRmcEMDZ+Tv1yh0J9YhBSFcim6n95TaivA1DuDd/N2FUCz6DYL+uUpWUvhmNs/GJu9GJ2ezeaPv3k+Dw7BCoQoOdrKyEhemoXUn91zVpTuo87eZympZqAZKteHEpYk5bKOUKrm3xVWtFolW5PiE8U6YVl6UpKCPE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323519; c=relaxed/simple; bh=s6m5EmNhs2Ghj/NYFkNGqUdDS4byPtOw1zu8uhIlB5s=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=QEJRcqEje5tYxdhoItMmTfQVwxlX5AqYYwucnyIQBOGxCxjE1r/c98im2v3So5o7ex2kGe3Tevz8vxFpeOcWWOPSpguFSx2jXnysqtEECS2Odx/pltDF5QiX5ZHIWEIcfyNYGRyeNFz+Q3wNtIZj4JR6fv8NkycrdwTppPK4oOU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=mgAsQDev; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="mgAsQDev" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 99E90C43394; Sun, 24 Mar 2024 23:38:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323519; bh=s6m5EmNhs2Ghj/NYFkNGqUdDS4byPtOw1zu8uhIlB5s=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=mgAsQDevOU7VLUajvkOMkyQfBW+zh3yYzzPlA5p/VVynhnqpI/vSmoGFl9MPJT4v1 c+SNWYYRSvHZpcB7OIlD75qdNDiHUZhotKxk2EsPZfHQygKZJAbsJwm/qNDDeY0zEb W88jG6fyYIaUvZfcPcVO4bF0Lm8/ALE8AGAP/o+MckhJEkl/au7xebpeegBqchyxkh Be6CGTHG8nfgNocgOKgVS8KpIttjZl1758tMPwjGQHZgWwGE315uHB0R+if4hgdbF1 2v6Rb110RMqFIhhyAsXisz4DTR12u4e2ip30o683jWqLmzMefrAfhXljvsTw0QOTOu Fno/VQW4sfcWw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jerome Brunet , Mark Brown , Sasha Levin Subject: [PATCH 5.15 226/317] ASoC: meson: axg-tdm-interface: fix mclk setup without mclk-fs Date: Sun, 24 Mar 2024 19:33:26 -0400 Message-ID: <20240324233458.1352854-227-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Jerome Brunet [ Upstream commit e3741a8d28a1137f8b19ae6f3d6e3be69a454a0a ] By default, when mclk-fs is not provided, the tdm-interface driver requests an MCLK that is 4x the bit clock, SCLK. However there is no justification for this: * If the codec needs MCLK for its operation, mclk-fs is expected to be set according to the codec requirements. * If the codec does not need MCLK the minimum is 2 * SCLK, because this is minimum the divider between SCLK and MCLK can do. Multiplying by 4 may cause problems because the PLL limit may be reached sooner than it should, so use 2x instead. Fixes: d60e4f1e4be5 ("ASoC: meson: add tdm interface driver") Signed-off-by: Jerome Brunet Link: https://msgid.link/r/20240223175116.2005407-2-jbrunet@baylibre.com Signed-off-by: Mark Brown Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- sound/soc/meson/axg-tdm-interface.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sound/soc/meson/axg-tdm-interface.c b/sound/soc/meson/axg-tdm-= interface.c index e076ced300257..ac43a7ab7bcf6 100644 --- a/sound/soc/meson/axg-tdm-interface.c +++ b/sound/soc/meson/axg-tdm-interface.c @@ -266,8 +266,8 @@ static int axg_tdm_iface_set_sclk(struct snd_soc_dai *d= ai, srate =3D iface->slots * iface->slot_width * params_rate(params); =20 if (!iface->mclk_rate) { - /* If no specific mclk is requested, default to bit clock * 4 */ - clk_set_rate(iface->mclk, 4 * srate); + /* If no specific mclk is requested, default to bit clock * 2 */ + clk_set_rate(iface->mclk, 2 * srate); } else { /* Check if we can actually get the bit clock from mclk */ if (iface->mclk_rate % srate) { --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4B6BC27BBB3; Sun, 24 Mar 2024 23:38:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323521; cv=none; b=MzshmxOYDcDvdvg2qTxGHyMXPEy9G581piEM5TW8DtbjljAVZYwCztc6w6tpZzexUtidq69xgGjV/iKcvngOQN8ivPONT2zEIGl1WseVwGZNQPmD0r01d5fRJ8j7nhPUJG9UkwlBq3Ai2oiXq2KKJQQCF1SBMBwZwcGrd32wLcE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323521; c=relaxed/simple; bh=myIllbPmWSYMqa2z/yZAREFiWRKzaKp/8Lpn3zjJYXM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=dx8Kqpq5qIK8e4Rwcm5d71XT9NIbJy6sOtHsKDjFKMPnDq2PJ1rGf6cN7FiWTH/D3+1crimXuHpDJLzEzJVpb41FmUdhryCbRUjDcuaW9wt/T9OWn1yxOhQmCsZzsthURNLSEGpAqPUysCChwzvwTK6mBdoafIvjK16ARulaKd8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Q+h3rSNz; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Q+h3rSNz" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7C89CC43390; Sun, 24 Mar 2024 23:38:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323520; bh=myIllbPmWSYMqa2z/yZAREFiWRKzaKp/8Lpn3zjJYXM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Q+h3rSNz6XA6pm4rW4SrEIDmWr3zHMofjeT+VCG9pfMHkp67KhhBGjI7iYgmfEGU2 V427XtxofUave6I6qAAFVm/rYkVQXj07nfUluh+1/Bokl9KsLmWvHvUsOg9wT3EQFk w2HdwNUoA9DaFXMOscPj9gYsyVMbsdZVQoh4aMorp94WDPOAIda46UHHV25pPxMwBH R5rxALyA3Y/cr40N6bR+9yX3fzbSuUlF/SP6BYBw1pk6l0NrCpQ3ELEXlKQqgB++lC QZ1EDyPikvkx5JH8ggMWeIALBNJgkT2MsjYUyQ9g20b7/pgSOTn8pMRaBF4sijoqrE 7ubXaivm9MKLA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jerome Brunet , Mark Brown , Sasha Levin Subject: [PATCH 5.15 227/317] ASoC: meson: axg-tdm-interface: add frame rate constraint Date: Sun, 24 Mar 2024 19:33:27 -0400 Message-ID: <20240324233458.1352854-228-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Jerome Brunet [ Upstream commit 59c6a3a43b221cc2a211181b1298e43b2c2df782 ] According to Amlogic datasheets for the SoCs supported by this driver, the maximum bit clock rate is 100MHz. The tdm interface allows the rates listed by the DAI driver, regardless of the number slots or their width. However, these will impact the bit clock rate. Hitting the 100MHz limit is very unlikely for most use cases but it is possible. For example with 32 slots / 32 bits wide, the maximum rate is no longer 384kHz but ~96kHz. Add the constraint accordingly if the component is not already active. If it is active, the rate is already constrained by the first stream rate. Fixes: d60e4f1e4be5 ("ASoC: meson: add tdm interface driver") Signed-off-by: Jerome Brunet Link: https://msgid.link/r/20240223175116.2005407-3-jbrunet@baylibre.com Signed-off-by: Mark Brown Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- sound/soc/meson/axg-tdm-interface.c | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/sound/soc/meson/axg-tdm-interface.c b/sound/soc/meson/axg-tdm-= interface.c index ac43a7ab7bcf6..60d132ab1ab78 100644 --- a/sound/soc/meson/axg-tdm-interface.c +++ b/sound/soc/meson/axg-tdm-interface.c @@ -12,6 +12,9 @@ =20 #include "axg-tdm.h" =20 +/* Maximum bit clock frequency according the datasheets */ +#define MAX_SCLK 100000000 /* Hz */ + enum { TDM_IFACE_PAD, TDM_IFACE_LOOPBACK, @@ -155,19 +158,27 @@ static int axg_tdm_iface_startup(struct snd_pcm_subst= ream *substream, return -EINVAL; } =20 - /* Apply component wide rate symmetry */ if (snd_soc_component_active(dai->component)) { + /* Apply component wide rate symmetry */ ret =3D snd_pcm_hw_constraint_single(substream->runtime, SNDRV_PCM_HW_PARAM_RATE, iface->rate); - if (ret < 0) { - dev_err(dai->dev, - "can't set iface rate constraint\n"); - return ret; - } + + } else { + /* Limit rate according to the slot number and width */ + unsigned int max_rate =3D + MAX_SCLK / (iface->slots * iface->slot_width); + ret =3D snd_pcm_hw_constraint_minmax(substream->runtime, + SNDRV_PCM_HW_PARAM_RATE, + 0, max_rate); } =20 - return 0; + if (ret < 0) + dev_err(dai->dev, "can't set iface rate constraint\n"); + else + ret =3D 0; + + return ret; } =20 static int axg_tdm_iface_set_stream(struct snd_pcm_substream *substream, --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8642B27BBC6; Sun, 24 Mar 2024 23:38:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323523; cv=none; b=XMrnjGzGt2I89WX0qtKnvJ+Mj7HLBjebbf2HLqaH259yygmkJ+vXBDJZ/iz49y7TbQqnYCaC31ZUQD4ta0gQq3UbVAFWeTZcxVj0/kjoqm9ucmTjgLMQ7LGpdP3MId6gTFf7I+tb4OZ90g8D0ZYq2RjUw4QmUN6yA+J6xb7O6T0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323523; c=relaxed/simple; bh=WyKhuThbrHQZpL/P0WvBojbfkzb5nPMDLRDieLgx1i0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qFiUeGlQh8tCzCN0DyW69ghOQkYMOldQgbLm5s9/S9ffBVk/PWnBHRRDz4ZHW/9O+Lc7n8o0Up9t36ZQWslr3+UrR/rEk3Ee01Liuy9h0nzbyFFEc3ntvpljn7XRKD2I4No3cpuv6K/czmp2AOE/AuUEJGqH7dDSsN1Cs7EOg4E= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=NQrjZT5V; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="NQrjZT5V" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5DA83C433C7; Sun, 24 Mar 2024 23:38:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323521; bh=WyKhuThbrHQZpL/P0WvBojbfkzb5nPMDLRDieLgx1i0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=NQrjZT5VgYLNStFIe0clzgj5Zqu6jTnADOPN35y5dQ5ZaUxK8u2SbLeZQwaP/Hti+ kCVR5hLZsrZJcNnRczHyNw/nwZhwTpVnl0grGRQKt0m8YlcSYnggNsifNDg7aBSnK+ IRaYNVHmHJJ7Y4I1zv6WkHRoRgeNERPOg7v1h5DUCrdNFzM72pv2G6/Wq6SCkjnHnl SStiUkUdC+f8sHSI/rG/oh7gsgcKm5onvfXWAsMSUhljouKPKFtjOmA8w2c/l0ycL4 rrfRJ2+XBwXfQa2gk+zqzned1QB0/ni8wCdKCywgwvcvBPRJ8soKru54LM2ISbVkxv Cep/ePtBzQlfQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Basavaraj Natikar , Akshata MukundShetty , Jiri Kosina , Sasha Levin Subject: [PATCH 5.15 228/317] HID: amd_sfh: Update HPD sensor structure elements Date: Sun, 24 Mar 2024 19:33:28 -0400 Message-ID: <20240324233458.1352854-229-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Basavaraj Natikar [ Upstream commit bbf0dec30696638b8bdc28cb2f5bf23f8d760b52 ] HPD sensor data is not populating properly because of wrong order of HPD sensor structure elements. So update the order of structure elements to match the HPD sensor data received from the firmware. Fixes: 24a31ea94922 ("HID: amd_sfh: Add initial support for HPD sensor") Co-developed-by: Akshata MukundShetty Signed-off-by: Akshata MukundShetty Signed-off-by: Basavaraj Natikar Signed-off-by: Jiri Kosina Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/hid/amd-sfh-hid/amd_sfh_pcie.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/hid/amd-sfh-hid/amd_sfh_pcie.h b/drivers/hid/amd-sfh-h= id/amd_sfh_pcie.h index 2d3203d3daeb3..90f39bfe8050e 100644 --- a/drivers/hid/amd-sfh-hid/amd_sfh_pcie.h +++ b/drivers/hid/amd-sfh-hid/amd_sfh_pcie.h @@ -119,10 +119,10 @@ enum mem_use_type { struct hpd_status { union { struct { - u32 human_presence_report : 4; - u32 human_presence_actual : 4; - u32 probablity : 8; u32 object_distance : 16; + u32 probablity : 8; + u32 human_presence_actual : 4; + u32 human_presence_report : 4; } shpd; u32 val; }; --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9A3AE27BBC7; Sun, 24 Mar 2024 23:38:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323523; cv=none; b=ZOhnbFUwxNdARr6SoQJeBRYcFJeabbzaoLFV/yM/A0e6hBYxX6fH0cE/glGnFx66x0zyEuUOgr91MOVGqUslHUDz6/2bCKeQ/hokFGDJzX0B6btTqOIYpPApsP0mmdVk+kgzt1teUK8qDqtX37E8Wht/TMHckQuqutFVRBHmH1A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323523; c=relaxed/simple; bh=idfjZKhQHj3/3yUOplbiREuNytkT88D2q/TdJlu9oJs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=W9lqLJT33FO07/XlZvzQYN94Tjb65Jx8psgwShwYwPsCsNH2Q9edn+a+i27CmNsj5/JTXWsB/TVz/GjOewX7tunKu3z9bCqvRUg7D/5F31JWTa7YxK5jIu0BqSNYgfhw85FBM2Sq9IuT/PsU2/M+AXpQEYIpkY3nsBJrLPrDmGg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=PBLGgZHC; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="PBLGgZHC" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 59438C43394; Sun, 24 Mar 2024 23:38:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323522; bh=idfjZKhQHj3/3yUOplbiREuNytkT88D2q/TdJlu9oJs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=PBLGgZHCOcS7hwMFZNxUvxpCIbbu/EMIc99AZqIZXLrQ90yzB8qVp6TB1gOKkk1bD Zv2w2uX4Pz3yrFptjhF20Fkoam/6X2q4AQinjsGPKUTDIXKDzfnIFJlWAlTqMVGfir 2lLDmjc8QISm8LpWhDB+FAchJ+lkMLOgDcVlHzQewZHbB99IG8yKn44uNHjgjQ9gjF R7QZ257inkWPYvbbgSuyI4m8dVs3oIrX0u4bmZ4hmh62iw2SiGskT29ox+iQhAbLZ1 cqg3oxJINWzianaVs0UF2FDRyN8ENPiq0fLJpCcUJ9iqukCBUucnGXtO3x7DOeiTGy Zpdehfh3O7qcw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Srinivasan Shanmugam , Jammy Zhou , =?UTF-8?q?Christian=20K=C3=B6nig?= , Alex Deucher , Sasha Levin Subject: [PATCH 5.15 229/317] drm/amdgpu: Fix missing break in ATOM_ARG_IMM Case of atom_get_src_int() Date: Sun, 24 Mar 2024 19:33:29 -0400 Message-ID: <20240324233458.1352854-230-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable From: Srinivasan Shanmugam [ Upstream commit 7cf1ad2fe10634238b38442a851d89514cb14ea2 ] Missing break statement in the ATOM_ARG_IMM case of a switch statement, adds the missing break statement, ensuring that the program's control flow is as intended. Fixes the below: drivers/gpu/drm/amd/amdgpu/atom.c:323 atom_get_src_int() warn: ignoring unr= eachable code. Fixes: d38ceaf99ed0 ("drm/amdgpu: add core driver (v4)") Cc: Jammy Zhou Cc: Christian K=C3=B6nig Cc: Alex Deucher Signed-off-by: Srinivasan Shanmugam Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/gpu/drm/amd/amdgpu/atom.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/amd/amdgpu/atom.c b/drivers/gpu/drm/amd/amdgpu= /atom.c index 6fa2229b72292..c279718d22fba 100644 --- a/drivers/gpu/drm/amd/amdgpu/atom.c +++ b/drivers/gpu/drm/amd/amdgpu/atom.c @@ -311,7 +311,7 @@ static uint32_t atom_get_src_int(atom_exec_context *ctx= , uint8_t attr, DEBUG("IMM 0x%02X\n", val); return val; } - return 0; + break; case ATOM_ARG_PLL: idx =3D U8(*ptr); (*ptr)++; --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A021927BBD1; Sun, 24 Mar 2024 23:38:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323524; cv=none; b=hUSTyP3Nf62c9AL+XDeWyWDF2u69JJ8Npu2b8fm0iDjCtEXnB5dL4tzEFD0XCQ9p4kOk0C89mvHMBMn51GUQ4Ap5e2iSS1Xmh5s8kkubVseygDtAQtFtac26Eo3bXeFP140lzglrZFyUAf/l57XxK1InbUvgjoahxM9Qrv1qUMI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323524; c=relaxed/simple; bh=zIzrS9FnuADVM5W+mS2X8Ece0Bn7nG81SCezXMUw+EM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=BPl+lrh7e5FKRW3GijbiZEbw4tu0MYF7+SzNrZMKHWu/wcclp1K2G68zzcjRULXFGUrexi4d3jyKmT2eQHliWq5ko18JpbOkgABv60JRZVc+O0Q8Yxy3cIX7KwIfohkjvP3R31pDWOZDkLeEkrr2NxOAbfHfuC+bM9AryWnlTtk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=AhCtBoBZ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="AhCtBoBZ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6C0EAC433F1; Sun, 24 Mar 2024 23:38:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323523; bh=zIzrS9FnuADVM5W+mS2X8Ece0Bn7nG81SCezXMUw+EM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=AhCtBoBZn12zpybvI1StIZK92wML9auuW4Qnl5VhZo4xu33SB80wErC2TdMNDtn8a qJfWeFr2Yiy4Uuwj8BaBwfphyERCoEK88DOolOUJXLkFOqU39mEZ0ze/AlhukaJIgR SASgsbpDwm+PkTDfIoj+/Tpo7lC8CroL6TdoEf586e0Sc2tbhT204DqOMysSzG7uK0 NOJXtZh3T1NLHfTbSt9JuPjIabCX5ccJR9ONl4+0s23C+yLD68qwpBVFhAXo3gy+xc 88PUgLgrglpcjrm9FVFc6O5gngOxGKBXQWwGRMvYUsMgF01F22/Qa0pjGr4LuFCwjW GD8TFsDmbh5pA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Edward Adam Davis , syzbot+ce750e124675d4599449@syzkaller.appspotmail.com, Hans Verkuil , Sasha Levin Subject: [PATCH 5.15 230/317] media: pvrusb2: fix uaf in pvr2_context_set_notify Date: Sun, 24 Mar 2024 19:33:30 -0400 Message-ID: <20240324233458.1352854-231-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Edward Adam Davis [ Upstream commit 0a0b79ea55de8514e1750884e5fec77f9fdd01ee ] [Syzbot reported] BUG: KASAN: slab-use-after-free in pvr2_context_set_notify+0x2c4/0x310 driv= ers/media/usb/pvrusb2/pvrusb2-context.c:35 Read of size 4 at addr ffff888113aeb0d8 by task kworker/1:1/26 CPU: 1 PID: 26 Comm: kworker/1:1 Not tainted 6.8.0-rc1-syzkaller-00046-gf1a= 27f081c1f #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Goo= gle 01/25/2024 Workqueue: usb_hub_wq hub_event Call Trace: __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0xd9/0x1b0 lib/dump_stack.c:106 print_address_description mm/kasan/report.c:377 [inline] print_report+0xc4/0x620 mm/kasan/report.c:488 kasan_report+0xda/0x110 mm/kasan/report.c:601 pvr2_context_set_notify+0x2c4/0x310 drivers/media/usb/pvrusb2/pvrusb2-cont= ext.c:35 pvr2_context_notify drivers/media/usb/pvrusb2/pvrusb2-context.c:95 [inline] pvr2_context_disconnect+0x94/0xb0 drivers/media/usb/pvrusb2/pvrusb2-contex= t.c:272 Freed by task 906: kasan_save_stack+0x33/0x50 mm/kasan/common.c:47 kasan_save_track+0x14/0x30 mm/kasan/common.c:68 kasan_save_free_info+0x3f/0x60 mm/kasan/generic.c:640 poison_slab_object mm/kasan/common.c:241 [inline] __kasan_slab_free+0x106/0x1b0 mm/kasan/common.c:257 kasan_slab_free include/linux/kasan.h:184 [inline] slab_free_hook mm/slub.c:2121 [inline] slab_free mm/slub.c:4299 [inline] kfree+0x105/0x340 mm/slub.c:4409 pvr2_context_check drivers/media/usb/pvrusb2/pvrusb2-context.c:137 [inline] pvr2_context_thread_func+0x69d/0x960 drivers/media/usb/pvrusb2/pvrusb2-cont= ext.c:158 [Analyze] Task A set disconnect_flag =3D !0, which resulted in Task B's condition bei= ng met and releasing mp, leading to this issue. [Fix] Place the disconnect_flag assignment operation after all code in pvr2_conte= xt_disconnect() to avoid this issue. Reported-and-tested-by: syzbot+ce750e124675d4599449@syzkaller.appspotmail.c= om Fixes: e5be15c63804 ("V4L/DVB (7711): pvrusb2: Fix race on module unload") Signed-off-by: Edward Adam Davis Signed-off-by: Hans Verkuil Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/media/usb/pvrusb2/pvrusb2-context.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/media/usb/pvrusb2/pvrusb2-context.c b/drivers/media/us= b/pvrusb2/pvrusb2-context.c index 58f2f3ff10ee2..73c95ba2328a4 100644 --- a/drivers/media/usb/pvrusb2/pvrusb2-context.c +++ b/drivers/media/usb/pvrusb2/pvrusb2-context.c @@ -267,9 +267,9 @@ static void pvr2_context_exit(struct pvr2_context *mp) void pvr2_context_disconnect(struct pvr2_context *mp) { pvr2_hdw_disconnect(mp->hdw); - mp->disconnect_flag =3D !0; if (!pvr2_context_shutok()) pvr2_context_notify(mp); + mp->disconnect_flag =3D !0; } =20 =20 --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 383AD27BBCA; Sun, 24 Mar 2024 23:38:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323524; cv=none; b=dhUsRCdWDiSKouVHMZf9rxn319GhIUNwUwcpZAMjzZshtksF0ZMLKdaFhIpdycaGEy+kGLUdX9A2dJghpb4wrI2RUgbl/dsDi8ODRcUrQwS3t9nFuURy17RO11fjKdDXVQrsWZFfQtDxVozcr2ZIwdextsQfbianq5t6dgQ7w8k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323524; c=relaxed/simple; bh=EpkfoWx72jhMfIWXfpdojzGNUtDam6OnAiKzo5ntHS0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=hSTGPGnz8gmNRRQ+EkuZhoFPrAe+L3SOcMPruwZp/ul6MRBdLGUnBD8iw17gWZtTJ7CxAcVtBt3uSC8aRK+KcscvmkDs5D7j7Xxm4olL4VAGsuQF3DL5gE6C1JnhzB0EsM+vIguJWyh4pqWNMK2c1S04K8BeV8yme+QZEOXF4lc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Hm+NwM3A; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Hm+NwM3A" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 66B29C43390; Sun, 24 Mar 2024 23:38:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323524; bh=EpkfoWx72jhMfIWXfpdojzGNUtDam6OnAiKzo5ntHS0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Hm+NwM3ASR3JVD4fqTAhOpGANT21PzsliRtRxt6YRf9qKQ2PB/rKUJBIKFm3yx7rk udlxUK9uehYtkKsUCqqik9FBrNTRRpyldrnUC+wmJ0UosCInLncOJsSCiYRa8Jw6eV VW/dwriE7NjNn+2Au/Uun0xmTnWqMzx5IDFBmSE1ugHFJwLIbWDUhgan245wOev2Fx Glas4MCqw6cfTgF48BN5boQ2lFktX4Q2RjFQfautPkw9k3IJf9E24lDuIzXkHvKQa1 uoKaY8jN6frbRJhQfaTSbFn8nJqnN82QHprmn1BHrgTe5mXGGnXRtNDq1+2JvtcgNt +Gxa1qM3f1ObA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Arnd Bergmann , Justin Stitt , Hans Verkuil , Sasha Levin Subject: [PATCH 5.15 231/317] media: dvb-frontends: avoid stack overflow warnings with clang Date: Sun, 24 Mar 2024 19:33:31 -0400 Message-ID: <20240324233458.1352854-232-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Arnd Bergmann [ Upstream commit 7a4cf27d1f0538f779bf31b8c99eda394e277119 ] A previous patch worked around a KASAN issue in stv0367, now a similar problem showed up with clang: drivers/media/dvb-frontends/stv0367.c:1222:12: error: stack frame size (362= 4) exceeds limit (2048) in 'stv0367ter_set_frontend' [-Werror,-Wframe-large= r-than] 1214 | static int stv0367ter_set_frontend(struct dvb_frontend *fe) Rework the stv0367_writereg() function to be simpler and mark both register access functions as noinline_for_stack so the temporary i2c_msg structures do not get duplicated on the stack when KASAN_STACK is enabled. Fixes: 3cd890dbe2a4 ("media: dvb-frontends: fix i2c access helpers for KASA= N") Signed-off-by: Arnd Bergmann Reviewed-by: Justin Stitt Signed-off-by: Hans Verkuil Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/media/dvb-frontends/stv0367.c | 34 +++++++-------------------- 1 file changed, 8 insertions(+), 26 deletions(-) diff --git a/drivers/media/dvb-frontends/stv0367.c b/drivers/media/dvb-fron= tends/stv0367.c index 0bfca1174e9e7..8cbae8235b174 100644 --- a/drivers/media/dvb-frontends/stv0367.c +++ b/drivers/media/dvb-frontends/stv0367.c @@ -118,50 +118,32 @@ static const s32 stv0367cab_RF_LookUp2[RF_LOOKUP_TABL= E2_SIZE][RF_LOOKUP_TABLE2_S } }; =20 -static -int stv0367_writeregs(struct stv0367_state *state, u16 reg, u8 *data, int = len) +static noinline_for_stack +int stv0367_writereg(struct stv0367_state *state, u16 reg, u8 data) { - u8 buf[MAX_XFER_SIZE]; + u8 buf[3] =3D { MSB(reg), LSB(reg), data }; struct i2c_msg msg =3D { .addr =3D state->config->demod_address, .flags =3D 0, .buf =3D buf, - .len =3D len + 2 + .len =3D 3, }; int ret; =20 - if (2 + len > sizeof(buf)) { - printk(KERN_WARNING - "%s: i2c wr reg=3D%04x: len=3D%d is too big!\n", - KBUILD_MODNAME, reg, len); - return -EINVAL; - } - - - buf[0] =3D MSB(reg); - buf[1] =3D LSB(reg); - memcpy(buf + 2, data, len); - if (i2cdebug) printk(KERN_DEBUG "%s: [%02x] %02x: %02x\n", __func__, - state->config->demod_address, reg, buf[2]); + state->config->demod_address, reg, data); =20 ret =3D i2c_transfer(state->i2c, &msg, 1); if (ret !=3D 1) printk(KERN_ERR "%s: i2c write error! ([%02x] %02x: %02x)\n", - __func__, state->config->demod_address, reg, buf[2]); + __func__, state->config->demod_address, reg, data); =20 return (ret !=3D 1) ? -EREMOTEIO : 0; } =20 -static int stv0367_writereg(struct stv0367_state *state, u16 reg, u8 data) -{ - u8 tmp =3D data; /* see gcc.gnu.org/bugzilla/show_bug.cgi?id=3D81715 */ - - return stv0367_writeregs(state, reg, &tmp, 1); -} - -static u8 stv0367_readreg(struct stv0367_state *state, u16 reg) +static noinline_for_stack +u8 stv0367_readreg(struct stv0367_state *state, u16 reg) { u8 b0[] =3D { 0, 0 }; u8 b1[] =3D { 0 }; --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1E7D827BBDB; Sun, 24 Mar 2024 23:38:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323526; cv=none; b=oIpevjogb2Qw+peaIUDEZ5vsoBVL1jsmd5Z0IcPLlq4V659SddthjKXOUYC5PdW9r+uHs2IEiOQ8oWJ7ZWQ0Xzx4b5wXqqdT6vE1MYvHh3B4vjw9fT6XD7YJtTlDADlsGa43DjUJhrsUNJft/N0ov2QnPMEua8aJQtn/CrgomKY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323526; c=relaxed/simple; bh=X1cmmr4RfhomyDJsZCk6Jfrkx98hI1Q3e6kuxotVY7k=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=jPHf3qFluI4WuNuk6N4IWA0xBKhVeppjXeRvf7/mMG0ovXw3lOGAWG2kjicAeKSOhTIzWbkSdaVlxdLvgrLxobMToUL0Yvy3uuqHQ6HDPh6uIu/q/yAO8UNi9B3SJqNWDPcF5eNxfbV5CTc4OPPy96QX5BeTcPKyXJtiTIy2qZw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=NbF10tF1; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="NbF10tF1" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5CEEBC433C7; Sun, 24 Mar 2024 23:38:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323525; bh=X1cmmr4RfhomyDJsZCk6Jfrkx98hI1Q3e6kuxotVY7k=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=NbF10tF13pYxSMgdw+p7VsCl8GW1pgyzn0/rdY3WuyvcvB/BfGur9m2ndqmMjvzCM UVkjpNxl+Yh/BqLxKNprDXDSaPmxzh7JnSBZZXut9a9isJGUGMr/VZua/v9m/OiUfH ZuMcwi9cu9JXglDCPRqhbJLKxCxA7fLZfAXBee/UtryxjlhtUegAMZlZg++qs4i8h5 /F+BwrVot0MTbTtupfGMF7n+cAwp+s4iLvIFQum/pYUn5cQmNO6C3XWCbuTIVyqstW LrlmYwWA9/4xkNzed6AtS/14lJYYk69YrTEfWXt9IDG40hqdFr8+UiJgsxOiQIMkPW tBAdyfc+BAfew== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Zhipeng Lu , Hans Verkuil , Sasha Levin Subject: [PATCH 5.15 232/317] media: go7007: fix a memleak in go7007_load_encoder Date: Sun, 24 Mar 2024 19:33:32 -0400 Message-ID: <20240324233458.1352854-233-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Zhipeng Lu [ Upstream commit b9b683844b01d171a72b9c0419a2d760d946ee12 ] In go7007_load_encoder, bounce(i.e. go->boot_fw), is allocated without a deallocation thereafter. After the following call chain: saa7134_go7007_init |-> go7007_boot_encoder |-> go7007_load_encoder |-> kfree(go) go is freed and thus bounce is leaked. Fixes: 95ef39403f89 ("[media] go7007: remember boot firmware") Signed-off-by: Zhipeng Lu Signed-off-by: Hans Verkuil Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/media/usb/go7007/go7007-driver.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/media/usb/go7007/go7007-driver.c b/drivers/media/usb/g= o7007/go7007-driver.c index 6650eab913d81..3c66542ce284a 100644 --- a/drivers/media/usb/go7007/go7007-driver.c +++ b/drivers/media/usb/go7007/go7007-driver.c @@ -80,7 +80,7 @@ static int go7007_load_encoder(struct go7007 *go) const struct firmware *fw_entry; char fw_name[] =3D "go7007/go7007fw.bin"; void *bounce; - int fw_len, rv =3D 0; + int fw_len; u16 intr_val, intr_data; =20 if (go->boot_fw =3D=3D NULL) { @@ -109,9 +109,11 @@ static int go7007_load_encoder(struct go7007 *go) go7007_read_interrupt(go, &intr_val, &intr_data) < 0 || (intr_val & ~0x1) !=3D 0x5a5a) { v4l2_err(go, "error transferring firmware\n"); - rv =3D -1; + kfree(go->boot_fw); + go->boot_fw =3D NULL; + return -1; } - return rv; + return 0; } =20 MODULE_FIRMWARE("go7007/go7007fw.bin"); --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 022C327BBDF; Sun, 24 Mar 2024 23:38:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323527; cv=none; b=YM4W1DGvq/V0o0jWif7lAvB9AyWyuvoTu+DrpohprHgwQwowDbY7MTgIXv2kyWdle+2Cg2ySIhsbgbdrmjb+vogilnLHFr2PdhdAsaZGXO/ExIBrLBulKdoa7S09xZgcbm7wGZ1SxwbzxHtETBQavdlxyMZyZucaV5q+sXTRThU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323527; c=relaxed/simple; bh=ieKy/hv6bciQ6MqgyuqOGf6/YtMkhtBG+HDbPucQycQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=RSdyt7XHmDRubuSxIb42VvxHK3J3Ul8+jKyPPE6EIdjRnQcxvDrosrlsnNAWDQoR2UaQ+6UBTtIx8GODxW/8Rg9apTjXlwFpC8YLqiCDV51Oag5Fi98W3xVDord6x1EPDEOE0k1qpINzddEftzto42ZGjJcNm30FskuC7vGhmoU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=al2Yv0Vq; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="al2Yv0Vq" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3FDE7C43390; Sun, 24 Mar 2024 23:38:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323525; bh=ieKy/hv6bciQ6MqgyuqOGf6/YtMkhtBG+HDbPucQycQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=al2Yv0Vq9/KeQ2rR7azYtDKoj1WNiB2p+QLnFkpw28gjTXSR44MrVpF8NQCtmtuNP H+E9DIOqVao+rjxG0wYbJsnQuK62vSrtR7RVWu2jPJGhMVHI9rIgWCdTvwCxGIgXy4 F/TDYedLw++7sbPhp2VLAMBKPmB3J8Tt9Yi/nwkGfi884rlqD/boC+zoi1colP1q1w 9ojnOIy3tgyiDVxtO+e+x5FjVgtbP/ARZnoGPhlCz7+QRePE04M3P9egwURYB5VnIs 1n9k7NXFeVhWFMoY+D/rhblaThDVczih8q4WjlbnspzOiepVSy/TdNAns4e8iTi40j 1mfbOdMa3khDA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Zhipeng Lu , Hans Verkuil , Sasha Levin Subject: [PATCH 5.15 233/317] media: ttpci: fix two memleaks in budget_av_attach Date: Sun, 24 Mar 2024 19:33:33 -0400 Message-ID: <20240324233458.1352854-234-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Zhipeng Lu [ Upstream commit d0b07f712bf61e1a3cf23c87c663791c42e50837 ] When saa7146_register_device and saa7146_vv_init fails, budget_av_attach should free the resources it allocates, like the error-handling of ttpci_budget_init does. Besides, there are two fixme comment refers to such deallocations. Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2") Signed-off-by: Zhipeng Lu Signed-off-by: Hans Verkuil Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/media/pci/ttpci/budget-av.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/media/pci/ttpci/budget-av.c b/drivers/media/pci/ttpci/= budget-av.c index 3cb83005cf09b..519f85e0a397d 100644 --- a/drivers/media/pci/ttpci/budget-av.c +++ b/drivers/media/pci/ttpci/budget-av.c @@ -1462,7 +1462,8 @@ static int budget_av_attach(struct saa7146_dev *dev, = struct saa7146_pci_extensio budget_av->has_saa7113 =3D 1; err =3D saa7146_vv_init(dev, &vv_data); if (err !=3D 0) { - /* fixme: proper cleanup here */ + ttpci_budget_deinit(&budget_av->budget); + kfree(budget_av); ERR("cannot init vv subsystem\n"); return err; } @@ -1471,9 +1472,10 @@ static int budget_av_attach(struct saa7146_dev *dev,= struct saa7146_pci_extensio vv_data.vid_ops.vidioc_s_input =3D vidioc_s_input; =20 if ((err =3D saa7146_register_device(&budget_av->vd, dev, "knc1", VFL_TY= PE_VIDEO))) { - /* fixme: proper cleanup here */ - ERR("cannot register capture v4l2 device\n"); saa7146_vv_release(dev); + ttpci_budget_deinit(&budget_av->budget); + kfree(budget_av); + ERR("cannot register capture v4l2 device\n"); return err; } =20 --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F036C177AB1; Sun, 24 Mar 2024 23:38:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323528; cv=none; b=l+/7257/3hkZUO1OEsncLFu3W36j843e3hQ4rGxyzRFpo6ri8+ckGdL9i9ptnmMH6MIwJMzH1CzKS/ILFN8YOEy3NSNGENouHaE++eKUQ1KB+rJufYZcKXHCGAn5ibycowTZ4AvM1e/YMNx/C82heUj4nJRTgYyGvZwhHMM7iFI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323528; c=relaxed/simple; bh=WCiukRHj7sAuP3hE7d5o0u3GaeKd5aqEKoNYID1yjNc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qsKTLGAV76QunEwyulvKQpQ0p7AsVylMGSxrEdIuIXucDbsA0Mr4NiaWRYgClThGyo6VncA6PIEnaE4iRBpLbVRVj6sY5wr9RZFzz/NMhEa9opTNS2dH9u8TismxcmU+9tP8VMdWx8FxfO4KiM3twkvs39Fryg5j6BlBmmkgepI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=WrBRfX3i; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="WrBRfX3i" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 267AAC43399; Sun, 24 Mar 2024 23:38:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323526; bh=WCiukRHj7sAuP3hE7d5o0u3GaeKd5aqEKoNYID1yjNc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=WrBRfX3iCGiMBfUQdNiqBskUsAhQW1CBrFH040ns065BKbrNOElRD7/AJlTGdUUYA as/h56sWoRtotegAK09ObLu6FjafK9fUFQLQ1EahceQILgo+juW6CmOcFytPBq9Xdm iTtg7dPoey20ArF/ggHvclt5DZTp0RH17xIQ2mUz1tSBa3ak0HfBC+RtIpQx4APFll RrWa36lse8T6Kmt3qqr2434c7z64ehQmB5kptTDgontStdWy9F4tHZekWoWD7N041D zM1arFbvdNfy+jmH2GDUtVzNY9pvFIbmQqiq+yij5ELW/GrOoWbztbgJycE/r6zKxG zg+M3dLPnL03Q== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Arnd Bergmann , Ricardo Ribalda , Hans Verkuil , Sasha Levin Subject: [PATCH 5.15 234/317] media: mediatek: vcodec: avoid -Wcast-function-type-strict warning Date: Sun, 24 Mar 2024 19:33:34 -0400 Message-ID: <20240324233458.1352854-235-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Arnd Bergmann [ Upstream commit bfb1b99802ef16045402deb855c197591dc78886 ] The ipi handler here tries hard to maintain const-ness of its argument, but by doing that causes a warning about function type casts: drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_fw_vpu.c:38:32: er= ror: cast from 'mtk_vcodec_ipi_handler' (aka 'void (*)(void *, unsigned int= , void *)') to 'ipi_handler_t' (aka 'void (*)(const void *, unsigned int, v= oid *)') converts to incompatible function type [-Werror,-Wcast-function-ty= pe-strict] 38 | ipi_handler_t handler_const =3D (ipi_handler_t)handler; | ^~~~~~~~~~~~~~~~~~~~~~ Remove the hack and just use a non-const argument. Fixes: bf1d556ad4e0 ("media: mtk-vcodec: abstract firmware interface") Signed-off-by: Arnd Bergmann Reviewed-by: Ricardo Ribalda Signed-off-by: Hans Verkuil Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/media/platform/mtk-mdp/mtk_mdp_vpu.c | 2 +- drivers/media/platform/mtk-vcodec/mtk_vcodec_fw_vpu.c | 10 +--------- drivers/media/platform/mtk-vpu/mtk_vpu.c | 2 +- drivers/media/platform/mtk-vpu/mtk_vpu.h | 2 +- 4 files changed, 4 insertions(+), 12 deletions(-) diff --git a/drivers/media/platform/mtk-mdp/mtk_mdp_vpu.c b/drivers/media/p= latform/mtk-mdp/mtk_mdp_vpu.c index b065ccd069140..378a1cba0144f 100644 --- a/drivers/media/platform/mtk-mdp/mtk_mdp_vpu.c +++ b/drivers/media/platform/mtk-mdp/mtk_mdp_vpu.c @@ -26,7 +26,7 @@ static void mtk_mdp_vpu_handle_init_ack(const struct mdp_= ipi_comm_ack *msg) vpu->inst_addr =3D msg->vpu_inst_addr; } =20 -static void mtk_mdp_vpu_ipi_handler(const void *data, unsigned int len, +static void mtk_mdp_vpu_ipi_handler(void *data, unsigned int len, void *priv) { const struct mdp_ipi_comm_ack *msg =3D data; diff --git a/drivers/media/platform/mtk-vcodec/mtk_vcodec_fw_vpu.c b/driver= s/media/platform/mtk-vcodec/mtk_vcodec_fw_vpu.c index cfc7ebed8fb7a..1ec29f1b163a1 100644 --- a/drivers/media/platform/mtk-vcodec/mtk_vcodec_fw_vpu.c +++ b/drivers/media/platform/mtk-vcodec/mtk_vcodec_fw_vpu.c @@ -29,15 +29,7 @@ static int mtk_vcodec_vpu_set_ipi_register(struct mtk_vc= odec_fw *fw, int id, mtk_vcodec_ipi_handler handler, const char *name, void *priv) { - /* - * The handler we receive takes a void * as its first argument. We - * cannot change this because it needs to be passed down to the rproc - * subsystem when SCP is used. VPU takes a const argument, which is - * more constrained, so the conversion below is safe. - */ - ipi_handler_t handler_const =3D (ipi_handler_t)handler; - - return vpu_ipi_register(fw->pdev, id, handler_const, name, priv); + return vpu_ipi_register(fw->pdev, id, handler, name, priv); } =20 static int mtk_vcodec_vpu_ipi_send(struct mtk_vcodec_fw *fw, int id, void = *buf, diff --git a/drivers/media/platform/mtk-vpu/mtk_vpu.c b/drivers/media/platf= orm/mtk-vpu/mtk_vpu.c index af59cc52fdd73..e282bbae8f668 100644 --- a/drivers/media/platform/mtk-vpu/mtk_vpu.c +++ b/drivers/media/platform/mtk-vpu/mtk_vpu.c @@ -635,7 +635,7 @@ int vpu_load_firmware(struct platform_device *pdev) } EXPORT_SYMBOL_GPL(vpu_load_firmware); =20 -static void vpu_init_ipi_handler(const void *data, unsigned int len, void = *priv) +static void vpu_init_ipi_handler(void *data, unsigned int len, void *priv) { struct mtk_vpu *vpu =3D priv; const struct vpu_run *run =3D data; diff --git a/drivers/media/platform/mtk-vpu/mtk_vpu.h b/drivers/media/platf= orm/mtk-vpu/mtk_vpu.h index a56053ff135af..da05f3e740810 100644 --- a/drivers/media/platform/mtk-vpu/mtk_vpu.h +++ b/drivers/media/platform/mtk-vpu/mtk_vpu.h @@ -17,7 +17,7 @@ * VPU interfaces with other blocks by share memory and interrupt. */ =20 -typedef void (*ipi_handler_t) (const void *data, +typedef void (*ipi_handler_t) (void *data, unsigned int len, void *priv); =20 --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4A35721C184; Sun, 24 Mar 2024 23:38:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323529; cv=none; b=A8Mfd8kJUvpBdMAYArwkmJZ3gGNkF00414f+JOGYmDX+nP0CG35e6r9GH7t6no+QW0P/FlljOrsogk9cSII0kncJNINJUiN7Mp2/xl9glcfGcSCfz4FqMeN4OcPKpV1BxEDjpevEnLJiEh51pvJ5zQUH2bsNAnrHKc1KaXNgjXU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323529; c=relaxed/simple; bh=v7Lbn2S7HlHnMABuuL2PAxf1ijlu0rIBhEKI+Yo/usU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=s0PVEBogkJROJHb24NZu77VEYeo70ySheJNPogNVjQ+GfXrKbAQJYxtOxMeM7rhepjoNiEtH6KK4AYzlZL/TTd6ROrzMBiHejTpZT3BI5msW7CJ2+mBAM/cr/a7Npff/gdFYzLXVIaZyu6mPVzeZCgn4Cmei8OIExeQIGy6pGlY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=UfY7xpGA; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="UfY7xpGA" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 21A81C433C7; Sun, 24 Mar 2024 23:38:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323527; bh=v7Lbn2S7HlHnMABuuL2PAxf1ijlu0rIBhEKI+Yo/usU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=UfY7xpGAWg/NsjMFj35tFdJv3NvNShmHjbToDpFk2+q40ZXQtaW5puhDlS8wgnA7c ld5ve22RyPQfpnf7LpUxDKzRhbEenAQokvHm4AEytFH2w++xVc0ydEsA6tyzRTq2nJ sBXvbhJ6ejIYWTDuarfW4cszhx46qbsEfqjBEGzWzTJGRCSaYoOQhGPasSXL1qySXC M205xExUUk7r3jLAC5835LQQxJmM9+rXDUuC10udVuyQN7J4ICBzIEjsVRAEyXsInO q49qMFFXc1sSqaOzwVgeSGMXIQ3D8FRPwSdOMYYyS7WSvaUKZVrfJ/SceDqThWDKKH W4tAAY3LeC+PQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Hsin-Yi Wang , CK Hu , Chun-Kuang Hu , Sasha Levin Subject: [PATCH 5.15 235/317] drm/mediatek: Fix a null pointer crash in mtk_drm_crtc_finish_page_flip Date: Sun, 24 Mar 2024 19:33:35 -0400 Message-ID: <20240324233458.1352854-236-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Hsin-Yi Wang [ Upstream commit c958e86e9cc1b48cac004a6e245154dfba8e163b ] It's possible that mtk_crtc->event is NULL in mtk_drm_crtc_finish_page_flip(). pending_needs_vblank value is set by mtk_crtc->event, but in mtk_drm_crtc_atomic_flush(), it's is not guarded by the same lock in mtk_drm_finish_page_flip(), thus a race condition happens. Consider the following case: CPU1 CPU2 step 1: mtk_drm_crtc_atomic_begin() mtk_crtc->event is not null, step 1: mtk_drm_crtc_atomic_flush: mtk_drm_crtc_update_config( !!mtk_crtc->event) step 2: mtk_crtc_ddp_irq -> mtk_drm_finish_page_flip: lock mtk_crtc->event set to null, pending_needs_vblank set to false unlock pending_needs_vblank set to true, step 2: mtk_crtc_ddp_irq -> mtk_drm_finish_page_flip called again, pending_needs_vblank is still true //null pointer Instead of guarding the entire mtk_drm_crtc_atomic_flush(), it's more efficient to just check if mtk_crtc->event is null before use. Fixes: 119f5173628a ("drm/mediatek: Add DRM Driver for Mediatek SoC MT8173.= ") Signed-off-by: Hsin-Yi Wang Reviewed-by: CK Hu Link: https://patchwork.kernel.org/project/dri-devel/patch/20240223212404.3= 709690-1-hsinyi@chromium.org/ Signed-off-by: Chun-Kuang Hu Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c b/drivers/gpu/drm/medi= atek/mtk_drm_crtc.c index d6781e54b3356..1a038fa004668 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c @@ -92,11 +92,13 @@ static void mtk_drm_crtc_finish_page_flip(struct mtk_dr= m_crtc *mtk_crtc) struct drm_crtc *crtc =3D &mtk_crtc->base; unsigned long flags; =20 - spin_lock_irqsave(&crtc->dev->event_lock, flags); - drm_crtc_send_vblank_event(crtc, mtk_crtc->event); - drm_crtc_vblank_put(crtc); - mtk_crtc->event =3D NULL; - spin_unlock_irqrestore(&crtc->dev->event_lock, flags); + if (mtk_crtc->event) { + spin_lock_irqsave(&crtc->dev->event_lock, flags); + drm_crtc_send_vblank_event(crtc, mtk_crtc->event); + drm_crtc_vblank_put(crtc); + mtk_crtc->event =3D NULL; + spin_unlock_irqrestore(&crtc->dev->event_lock, flags); + } } =20 static void mtk_drm_finish_page_flip(struct mtk_drm_crtc *mtk_crtc) --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F037C177ABB; Sun, 24 Mar 2024 23:38:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323530; cv=none; b=mnLgZTajPWh/qvkhUm7eE3adRuiCf6kdqnAEyuc+5amS0iHRmM4xRxoI5Qbt+PI5B4yKyZp7+c0OMhQ/Ia6E6IroY+X/VOLwGwD2JFiwOhuqYqELiCaJ/yIjrgJhT1ay6ca8NvhmEi14GN5Azxn/C2jMUR0DUHNbY6ivjKYC6gE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323530; c=relaxed/simple; bh=tfhiyz79ICdQeKvhnCLH9GxQyaU1564g7hI9bfQA7x4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=o71Qft4jtc0fzv75nM3LpWEYPFhi65ug5PFokgfUqIwy9H1bTl8H2GXV0clGOnHoaEEguP4st/0LVMpLWcc8AdsUT5RccZpfSjgocKEW3jJMP3MzD5NeAsihyJCL9xuL428XE78IpVJ1J3FmJcIdyk5/P9lU+uooZQTf9fT2yoc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=KZzORWM6; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="KZzORWM6" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 21F54C433F1; Sun, 24 Mar 2024 23:38:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323528; bh=tfhiyz79ICdQeKvhnCLH9GxQyaU1564g7hI9bfQA7x4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=KZzORWM6K87Kx5N/47GffiB/vXiXt9U9/HdXvjp30cxfx5U8NBL+T+ycz+mrVeWp/ dLVbrhcTLp/R0mkgVcHQKF0Vre34a1C5v949gHEzShgi3nedLU/oDWORWzXJjyAHqd 5gi8bvwxKs00cwSO08zc1+uj8ezQv3R+fBj3DtpMrqm3Vk5NpRD6z59HVDyR4GVzCo b+1Zb37QJUl9NIeRZsMXjbhDmMy0LATPMz7wI38vxbdPFxCxQaataPU0mSQP0OtS2w 0LVcYZp1OBWwoEzyl69kMhQjrAqMMvjPiTtIPDchxsxausXdKhjoDuVRziDbFU0DiW g/U9riL7D73Cw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Kajol Jain , Akanksha J N , Michael Ellerman , Sasha Levin Subject: [PATCH 5.15 236/317] powerpc/hv-gpci: Fix the H_GET_PERF_COUNTER_INFO hcall return value checks Date: Sun, 24 Mar 2024 19:33:36 -0400 Message-ID: <20240324233458.1352854-237-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Kajol Jain [ Upstream commit ad86d7ee43b22aa2ed60fb982ae94b285c1be671 ] Running event hv_gpci/dispatch_timebase_by_processor_processor_time_in_time= base_cycles,phys_processor_idx=3D0/ in one of the system throws below error: ---Logs--- # perf list | grep hv_gpci/dispatch_timebase_by_processor_processor_time_i= n_timebase_cycles hv_gpci/dispatch_timebase_by_processor_processor_time_in_timebase_cycles,= phys_processor_idx=3D?/[Kernel PMU event] # perf stat -v -e hv_gpci/dispatch_timebase_by_processor_processor_time_in= _timebase_cycles,phys_processor_idx=3D0/ sleep 2 Using CPUID 00800200 Control descriptor is not initialized Warning: hv_gpci/dispatch_timebase_by_processor_processor_time_in_timebase_cycles,ph= ys_processor_idx=3D0/ event is not supported by the kernel. failed to read counter hv_gpci/dispatch_timebase_by_processor_processor_tim= e_in_timebase_cycles,phys_processor_idx=3D0/ Performance counter stats for 'system wide': hv_gpci/dispatch_timebase_by_processor_processor_ti= me_in_timebase_cycles,phys_processor_idx=3D0/ 2.000700771 seconds time elapsed The above error is because of the hcall failure as required permission "Enable Performance Information Collection" is not set. Based on current code, single_gpci_request function did not check the error type incase hcall fails and by default returns EINVAL. But we can have other reasons for hcall failures like H_AUTHORITY/H_PARAMETER with detail_rc as GEN_BUF_TOO_SMALL, for which we need to act accordingly. Fix this issue by adding new checks in the single_gpci_request and h_gpci_event_init functions. Result after fix patch changes: # perf stat -e hv_gpci/dispatch_timebase_by_processor_processor_time_in_ti= mebase_cycles,phys_processor_idx=3D0/ sleep 2 Error: No permission to enable hv_gpci/dispatch_timebase_by_processor_processor_ti= me_in_timebase_cycles,phys_processor_idx=3D0/ event. Fixes: 220a0c609ad1 ("powerpc/perf: Add support for the hv gpci (get perfor= mance counter info) interface") Reported-by: Akanksha J N Signed-off-by: Kajol Jain Signed-off-by: Michael Ellerman Link: https://msgid.link/20240229122847.101162-1-kjain@linux.ibm.com Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- arch/powerpc/perf/hv-gpci.c | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/arch/powerpc/perf/hv-gpci.c b/arch/powerpc/perf/hv-gpci.c index 28b770bbc10b4..2a054de80e50b 100644 --- a/arch/powerpc/perf/hv-gpci.c +++ b/arch/powerpc/perf/hv-gpci.c @@ -164,6 +164,20 @@ static unsigned long single_gpci_request(u32 req, u32 = starting_index, =20 ret =3D plpar_hcall_norets(H_GET_PERF_COUNTER_INFO, virt_to_phys(arg), HGPCI_REQ_BUFFER_SIZE); + + /* + * ret value as 'H_PARAMETER' with detail_rc as 'GEN_BUF_TOO_SMALL', + * specifies that the current buffer size cannot accommodate + * all the information and a partial buffer returned. + * Since in this function we are only accessing data for a given starting= index, + * we don't need to accommodate whole data and can get required count by + * accessing first entry data. + * Hence hcall fails only incase the ret value is other than H_SUCCESS or + * H_PARAMETER with detail_rc value as GEN_BUF_TOO_SMALL(0x1B). + */ + if (ret =3D=3D H_PARAMETER && be32_to_cpu(arg->params.detail_rc) =3D=3D 0= x1B) + ret =3D 0; + if (ret) { pr_devel("hcall failed: 0x%lx\n", ret); goto out; @@ -228,6 +242,7 @@ static int h_gpci_event_init(struct perf_event *event) { u64 count; u8 length; + unsigned long ret; =20 /* Not our event */ if (event->attr.type !=3D event->pmu->type) @@ -258,13 +273,23 @@ static int h_gpci_event_init(struct perf_event *event) } =20 /* check if the request works... */ - if (single_gpci_request(event_get_request(event), + ret =3D single_gpci_request(event_get_request(event), event_get_starting_index(event), event_get_secondary_index(event), event_get_counter_info_version(event), event_get_offset(event), length, - &count)) { + &count); + + /* + * ret value as H_AUTHORITY implies that partition is not permitted to re= trieve + * performance information, and required to set + * "Enable Performance Information Collection" option. + */ + if (ret =3D=3D H_AUTHORITY) + return -EPERM; + + if (ret) { pr_devel("gpci hcall failed\n"); return -EINVAL; } --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D5C0E5B1FB; Sun, 24 Mar 2024 23:38:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323529; cv=none; b=MTGbcq8+8T0USdrmVvZs/42gp6vNCAKOvs/rys3lwFrX+k5hlywhXDJtvEbbGQ7AOaQb0xyFSQbVkB+dEnLTaHci3txkMZei39BmBR8UcOhMWhKdtkUcpC2iDhVniI2M+KCqR7enu/TMWNKDDL9zZSMWOT5UqBpXE3hGtdDAyuY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323529; c=relaxed/simple; bh=bGqiKPptXOHEfqmYyIQqeo0MoA8k4E0MPRvyPCmNQ6U=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=a1K1misgZz25dsSX9ZNRdEyq07symnBE48yUj53lgFdKjit1ZGWBoYwe7+8JtABSfno4ahGOt/O51LgenXevNQI/ZTxqSqqZwso2bMiIhrq90ukykoI3vQV+OsFbnDv8FUbB3K9pW2WL1dcK2d2WznQZt+mP0uWA3Sxc6qg88m0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=VMCcMsWN; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="VMCcMsWN" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2594FC43390; Sun, 24 Mar 2024 23:38:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323529; bh=bGqiKPptXOHEfqmYyIQqeo0MoA8k4E0MPRvyPCmNQ6U=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=VMCcMsWNidWtTkK8fCbEl5HfFAu/LRIo1DgZ0mANV7t0ZbdQUaABXWp0ztacnwqfP WRcJXH7iIoNTIMuhbjEkcAPxAhTy1Y/hP89BSPV+ZxzT653VXwvPAjMvTX2Khu8G6N AjSqf4wfpvaPz/gOfFUsr0FlHLKen9N0GAlix1E1YJAycRA7prMOeSqb44Pz97ysn7 K6AVBWKMuKxljIAOd7xdQ0zlP3igbA2qRYhGoAGFG8xNMll597BZ6LpPg/alLTigBw hCs93yWKKwQlAKB23OVmlhmQ0SLR/jkUHQlcE/1Wc8EGI4Bq+PQlhXcgD2XRqVjOVr GAX4kpR24CQfw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Paloma Arellano , Dmitry Baryshkov , Sasha Levin Subject: [PATCH 5.15 237/317] drm/msm/dpu: add division of drm_display_mode's hskew parameter Date: Sun, 24 Mar 2024 19:33:37 -0400 Message-ID: <20240324233458.1352854-238-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Paloma Arellano [ Upstream commit 551ee0f210991d25f336bc27262353bfe99d3eed ] Setting up the timing engine when the physical encoder has a split role neglects dividing the drm_display_mode's hskew parameter. Let's fix this since this must also be done in preparation for implementing YUV420 over DP. Fixes: 25fdd5933e4c ("drm/msm: Add SDM845 DPU support") Signed-off-by: Paloma Arellano Reviewed-by: Dmitry Baryshkov Patchwork: https://patchwork.freedesktop.org/patch/579605/ Link: https://lore.kernel.org/r/20240222194025.25329-3-quic_parellan@quicin= c.com Signed-off-by: Dmitry Baryshkov Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c b/drivers= /gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c index 185379b185725..7c58e9ba71b77 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c @@ -267,12 +267,14 @@ static void dpu_encoder_phys_vid_setup_timing_engine( mode.htotal >>=3D 1; mode.hsync_start >>=3D 1; mode.hsync_end >>=3D 1; + mode.hskew >>=3D 1; =20 DPU_DEBUG_VIDENC(phys_enc, - "split_role %d, halve horizontal %d %d %d %d\n", + "split_role %d, halve horizontal %d %d %d %d %d\n", phys_enc->split_role, mode.hdisplay, mode.htotal, - mode.hsync_start, mode.hsync_end); + mode.hsync_start, mode.hsync_end, + mode.hskew); } =20 drm_mode_to_intf_timing_params(phys_enc, &mode, &timing_params); --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D1330178211; Sun, 24 Mar 2024 23:38:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323531; cv=none; b=TabGGEkWFlSSJ8w/xeYwm0YIueQxy3LrF3nNDR+CVD6WjG2aPWfJZMcKYW98tlq2UsC3Y9riSPsHrCICtwMWmuPD2tQu4Mk/Su4vbnWXhImKIs3t/VDi7/8QrDJo1XlrIfFytnvD25lcr/JIowjLNQcBtZ/LD9OWVPL37UPtOtc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323531; c=relaxed/simple; bh=ekz+yDMcr1veQyBZhE80r6z8Gn2VEWhWBGbG/gtC1ng=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=N4Ti6A8sPXlUnvmPl90hSuzc/3q508IUr/OKQf8LTtv2b4mKbgdMxRE8crTniHMOP7Fy30xMpYCuUykEGDyr43abGhato9+jbwM2BMYM2LjN1M7jDmpWge4p+VFCxf2Y45IEkFclFxsRz0XlHIWryK70I1ZO8h/xM8Q0xOd3Y1M= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=qoGN31up; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="qoGN31up" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 07367C433C7; Sun, 24 Mar 2024 23:38:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323530; bh=ekz+yDMcr1veQyBZhE80r6z8Gn2VEWhWBGbG/gtC1ng=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qoGN31upPX+owZkZ9tK9OeH3RfiyMhoFa4Wwo5goBEVpxDEXkAdMfTmUv4cdU0lnu uMrGN3MEMEsfE0HfNdjDeGfQ15acAIiLJb0uFQ71opwhjLSYBf0q8r1wecZt07Vloo 9CKd1ytmdQHg7wrpbSKu9pOksx2spEFLCV92hcVpO0cB3RvSFoZGvu5j2QHtsdrl7K VaObvwT84+T+irAKx6mqZgqeZYP8TpiSaRFPpvqRNATJFMtF5kLP7aWnmkZdkJPzPF cMPhoEUdSXEV+FoZVjE9Xq8YjAaGFkfXHtJkq1ifgZVjwiRJMlnQnpjYWNtR9OWbOc /R6qRQVYKAZqg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Saravana Kannan , Aaron Tomlin , Luis Chamberlain , Sasha Levin Subject: [PATCH 5.15 238/317] module: Add support for default value for module async_probe Date: Sun, 24 Mar 2024 19:33:38 -0400 Message-ID: <20240324233458.1352854-239-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Saravana Kannan [ Upstream commit ae39e9ed964f8e450d0de410b5a757e19581dfc5 ] Add a module.async_probe kernel command line option that allows enabling async probing for all modules. When this command line option is used, there might still be some modules for which we want to explicitly force synchronous probing, so extend .async_probe to take an optional bool input so that async probing can be disabled for a specific module. Signed-off-by: Saravana Kannan Reviewed-by: Aaron Tomlin Signed-off-by: Luis Chamberlain Stable-dep-of: 8f8cd6c0a43e ("modules: wait do_free_init correctly") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- Documentation/admin-guide/kernel-parameters.txt | 17 +++++++++++++++-- kernel/module.c | 11 ++++++++++- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentatio= n/admin-guide/kernel-parameters.txt index 34b093e7f8910..c4c7273419bda 100644 --- a/Documentation/admin-guide/kernel-parameters.txt +++ b/Documentation/admin-guide/kernel-parameters.txt @@ -1084,8 +1084,12 @@ nopku [X86] Disable Memory Protection Keys CPU feature found in some Intel CPUs. =20 - .async_probe [KNL] - Enable asynchronous probe on this module. + .async_probe[=3D] [KNL] + If no value is specified or if the value + specified is not a valid , enable asynchronous + probe on this module. Otherwise, enable/disable + asynchronous probe on this module as indicated by the + value. See also: module.async_probe =20 early_ioremap_debug [KNL] Enable debug messages in early_ioremap support. This @@ -3137,6 +3141,15 @@ For details see: Documentation/admin-guide/hw-vuln/processor_mmio_stale_data.rst =20 + module.async_probe=3D + [KNL] When set to true, modules will use async probing + by default. To enable/disable async probing for a + specific module, use the module specific control that + is documented under .async_probe. When both + module.async_probe and .async_probe are + specified, .async_probe takes precedence for + the specific module. + module.sig_enforce [KNL] When CONFIG_MODULE_SIG is set, this means that modules without (valid) signatures will fail to load. diff --git a/kernel/module.c b/kernel/module.c index ba9f2bb57889c..d8d677f01adb5 100644 --- a/kernel/module.c +++ b/kernel/module.c @@ -3713,6 +3713,12 @@ static void do_free_init(struct work_struct *w) } } =20 +#undef MODULE_PARAM_PREFIX +#define MODULE_PARAM_PREFIX "module." +/* Default value for module->async_probe_requested */ +static bool async_probe; +module_param(async_probe, bool, 0644); + /* * This is where the real work happens. * @@ -3943,7 +3949,8 @@ static int unknown_module_param_cb(char *param, char = *val, const char *modname, int ret; =20 if (strcmp(param, "async_probe") =3D=3D 0) { - mod->async_probe_requested =3D true; + if (strtobool(val, &mod->async_probe_requested)) + mod->async_probe_requested =3D true; return 0; } =20 @@ -4110,6 +4117,8 @@ static int load_module(struct load_info *info, const = char __user *uargs, if (err) goto bug_cleanup; =20 + mod->async_probe_requested =3D async_probe; + /* Module is ready to execute: parsing args may do that. */ after_dashes =3D parse_args(mod->name, mod->args, mod->kp, mod->num_kp, -32768, 32767, mod, --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0613D17821B; Sun, 24 Mar 2024 23:38:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323533; cv=none; b=uYhwcYRWNMvZbbIzdEVe/jyVENE2m5nGxn4srlz6UU8weEb7RuhajZqBJoviRaH+mSLDnxL3nPDs9E1MjPsSA7gwASxIU4LJpK6qc23BGOFxIGsQ+d6HmX6sO6se8SABizvMfa5+Rdz+G/2g0aUvTp0cVeJiN6d1CGBQcIp6oV4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323533; c=relaxed/simple; bh=V0UUyMHE5TQCG/GBCG5dV1hF/oCbsYo2IWVzo3KDYjY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=JACT54SWigSFUEAOIVh8n0UFTc1Wa65thW8XRnFPpxAb5IpZQVUdeVH2mwz+UT2/7u1UFjvsm8dpkIc6GiC/UO1kWd5xqcJ9NcOkjJAZxWWH4tfnP4kXCNqXSzHNrFDlXTQ5qSQymJGbwXTeEe53t6VJq3oxHM3oQKa/BhKX6L8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=RWx3QVK4; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="RWx3QVK4" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 01133C43394; Sun, 24 Mar 2024 23:38:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323531; bh=V0UUyMHE5TQCG/GBCG5dV1hF/oCbsYo2IWVzo3KDYjY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=RWx3QVK4wuc87GslXlMlrOu2rJQvm/7u7nhmvGFUbFXkoMZwrm5jvggmj+RNzRXTs 43Psl5cQ0UkjenajDzsr7tk/XMLRQEV8QEq8jM6fBFeALt8Mup4ipI1muN5epyVHci gHe21xznqME0Xpc5xfMFXLg6OBNa0mMhzMcagk49Mor+sePqsvFxtp6zPSrABTA1UA B3UCA+60uUYVd6ntoqB77Akve44BX4LiQuBgdCrAPBUO3UeBan9iVeL6cyPlwptHVE HBcSvKmLwFZZPJ0ti1cMv+fZrVvQzcPE/53YejTD0UEOBJgrc+ZbpK9qYD5tIMU9Er zEa7KtP8ExL8w== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Changbin Du , Eric Chanudet , Luis Chamberlain , Xiaoyi Su , Andrew Morton , Sasha Levin Subject: [PATCH 5.15 239/317] modules: wait do_free_init correctly Date: Sun, 24 Mar 2024 19:33:39 -0400 Message-ID: <20240324233458.1352854-240-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Changbin Du [ Upstream commit 8f8cd6c0a43ed637e620bbe45a8d0e0c2f4d5130 ] The synchronization here is to ensure the ordering of freeing of a module init so that it happens before W+X checking. It is worth noting it is not that the freeing was not happening, it is just that our sanity checkers raced against the permission checkers which assume init memory is already gone. Commit 1a7b7d922081 ("modules: Use vmalloc special flag") moved calling do_free_init() into a global workqueue instead of relying on it being called through call_rcu(..., do_free_init), which used to allowed us call do_free_init() asynchronously after the end of a subsequent grace period. The move to a global workqueue broke the gaurantees for code which needed to be sure the do_free_init() would complete with rcu_barrier(). To fix this callers which used to rely on rcu_barrier() must now instead use flush_work(&init_free_wq). Without this fix, we still could encounter false positive reports in W+X checking since the rcu_barrier() here can not ensure the ordering now. Even worse, the rcu_barrier() can introduce significant delay. Eric Chanudet reported that the rcu_barrier introduces ~0.1s delay on a PREEMPT_RT kernel. [ 0.291444] Freeing unused kernel memory: 5568K [ 0.402442] Run /sbin/init as init process With this fix, the above delay can be eliminated. Link: https://lkml.kernel.org/r/20240227023546.2490667-1-changbin.du@huawei= .com Fixes: 1a7b7d922081 ("modules: Use vmalloc special flag") Signed-off-by: Changbin Du Tested-by: Eric Chanudet Acked-by: Luis Chamberlain Cc: Xiaoyi Su Signed-off-by: Andrew Morton Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- include/linux/moduleloader.h | 8 ++++++++ init/main.c | 5 +++-- kernel/module.c | 9 +++++++-- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/include/linux/moduleloader.h b/include/linux/moduleloader.h index 1322652a9d0d9..7dc186ec52a29 100644 --- a/include/linux/moduleloader.h +++ b/include/linux/moduleloader.h @@ -95,6 +95,14 @@ int module_finalize(const Elf_Ehdr *hdr, const Elf_Shdr *sechdrs, struct module *mod); =20 +#ifdef CONFIG_MODULES +void flush_module_init_free_work(void); +#else +static inline void flush_module_init_free_work(void) +{ +} +#endif + /* Any cleanup needed when module leaves. */ void module_arch_cleanup(struct module *mod); =20 diff --git a/init/main.c b/init/main.c index 5c81d7fb2fe9c..f27e8510b1554 100644 --- a/init/main.c +++ b/init/main.c @@ -89,6 +89,7 @@ #include #include #include +#include #include #include #include @@ -1464,11 +1465,11 @@ static void mark_readonly(void) if (rodata_enabled) { /* * load_module() results in W+X mappings, which are cleaned - * up with call_rcu(). Let's make sure that queued work is + * up with init_free_wq. Let's make sure that queued work is * flushed so that we don't hit false positives looking for * insecure pages which are W+X. */ - rcu_barrier(); + flush_module_init_free_work(); mark_rodata_ro(); rodata_test(); } else diff --git a/kernel/module.c b/kernel/module.c index d8d677f01adb5..4d49c32af570c 100644 --- a/kernel/module.c +++ b/kernel/module.c @@ -3713,6 +3713,11 @@ static void do_free_init(struct work_struct *w) } } =20 +void flush_module_init_free_work(void) +{ + flush_work(&init_free_wq); +} + #undef MODULE_PARAM_PREFIX #define MODULE_PARAM_PREFIX "module." /* Default value for module->async_probe_requested */ @@ -3803,8 +3808,8 @@ static noinline int do_init_module(struct module *mod) * Note that module_alloc() on most architectures creates W+X page * mappings which won't be cleaned up until do_free_init() runs. Any * code such as mark_rodata_ro() which depends on those mappings to - * be cleaned up needs to sync with the queued work - ie - * rcu_barrier() + * be cleaned up needs to sync with the queued work by invoking + * flush_module_init_free_work(). */ if (llist_add(&freeinit->node, &init_free_list)) schedule_work(&init_free_wq); --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C28F6178225; Sun, 24 Mar 2024 23:38:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323533; cv=none; b=cXCIyzl23TPU9RJSdKbttReS97xx2RiPBIODPGjns7ZjtiH5DXdWivy6Nxm9sXUTFBLD2X5pg7NOm82i0YtMVUx7EThY8Z5+C4kSf9WzEJesQOdytAyHUxqVDvui43rMcNvQB7VT1MgwDkPht85hxN+17li/EDksX7okzIdQop8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323533; c=relaxed/simple; bh=pMdHfEJPF4luFhRiGcb1AzhESd99fBwnet8Jpx1Fw9U=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=S8kUAg2a9yoC8cXMcYRV2hWOOWTeHX0hTDAfJ9qznJyX11vEt380FhHaQBXx/srg5Lva1W7rYple29Zu6UnXWP5er6EzzdUfmIITVlEs0hlEitSe4Jss/Z7pt/XFIprJ4D8kTMtOzS7xu+k2fArpbTch2QImCzQi+BA3k+fl3vs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=OesXNjn1; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="OesXNjn1" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 265B4C43390; Sun, 24 Mar 2024 23:38:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323532; bh=pMdHfEJPF4luFhRiGcb1AzhESd99fBwnet8Jpx1Fw9U=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=OesXNjn19nHAyVxWZZNi9juK5Q+5/k+8w7P8d+xOH8upjR7kzENqeOupyLv2ObL3N 9ZJfYoCz+iCbG7lqyHmSPABEAfM344SiPiSMiCY/3dJHm0DQJYjBo4RHX4fPa5VHYU z54wSos05d41iu3H38hQnAGW5L03MmWPPTiUTI15QL88wy+KJ8ejbNsniMifdREwt3 RM0c+siVSHA1P9ea4/y5TsMYCfstLfXMutDgrQ1TGpkeQtb8MjLykLDyCW5DOZoI/x NT3x4rAcLaJwKsQA61iC9RK51eWNdIpgHdriNj+xmxhFA4p1Jl7BOyOCkBYyyzcO/W YYXoC/1qvrxVA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Michael Ellerman , Sasha Levin Subject: [PATCH 5.15 240/317] powerpc/embedded6xx: Fix no previous prototype for avr_uart_send() etc. Date: Sun, 24 Mar 2024 19:33:40 -0400 Message-ID: <20240324233458.1352854-241-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Michael Ellerman [ Upstream commit 20933531be0577cdd782216858c26150dbc7936f ] Move the prototypes into mpc10x.h which is included by all the relevant C files, fixes: arch/powerpc/platforms/embedded6xx/ls_uart.c:59:6: error: no previous pro= totype for 'avr_uart_configure' arch/powerpc/platforms/embedded6xx/ls_uart.c:82:6: error: no previous pro= totype for 'avr_uart_send' Signed-off-by: Michael Ellerman Link: https://msgid.link/20240305123410.3306253-1-mpe@ellerman.id.au Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- arch/powerpc/platforms/embedded6xx/linkstation.c | 3 --- arch/powerpc/platforms/embedded6xx/mpc10x.h | 3 +++ 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/powerpc/platforms/embedded6xx/linkstation.c b/arch/powerp= c/platforms/embedded6xx/linkstation.c index eb8342e7f84e9..ac3bd4a3216ce 100644 --- a/arch/powerpc/platforms/embedded6xx/linkstation.c +++ b/arch/powerpc/platforms/embedded6xx/linkstation.c @@ -100,9 +100,6 @@ static void __init linkstation_init_IRQ(void) mpic_init(mpic); } =20 -extern void avr_uart_configure(void); -extern void avr_uart_send(const char); - static void __noreturn linkstation_restart(char *cmd) { local_irq_disable(); diff --git a/arch/powerpc/platforms/embedded6xx/mpc10x.h b/arch/powerpc/pla= tforms/embedded6xx/mpc10x.h index 5ad12023e5628..ebc258fa4858d 100644 --- a/arch/powerpc/platforms/embedded6xx/mpc10x.h +++ b/arch/powerpc/platforms/embedded6xx/mpc10x.h @@ -156,4 +156,7 @@ int mpc10x_disable_store_gathering(struct pci_controlle= r *hose); /* For MPC107 boards that use the built-in openpic */ void mpc10x_set_openpic(void); =20 +void avr_uart_configure(void); +void avr_uart_send(const char c); + #endif /* __PPC_KERNEL_MPC10X_H */ --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B7E53178223; Sun, 24 Mar 2024 23:38:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323533; cv=none; b=sSOl7cQgS1S3Uv5kbzW05Co0viK85UVlPHjnfZlF3YtXMEYrMz4MAaoS4I9bLqApMoWOuCxt74aZJCwgPmCzoClIQetUJdzl5CbrxXFDrccKzmilYND29yskCLeNYHl+2C2aAwalouOvn5jKv1yczSjq5EfICwn5WddrrmWBH0A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323533; c=relaxed/simple; bh=WcWIkH5q7zZPWwW1JMd5ars6aARZtyMpPCQlr0PEIBc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=fPtvVrSZVj74dk8MhhTxtdZ8XswzortPLTk+6I5Mud2RM1x+oLm3kwo2qdjrIAbF7L5zJpt2oKmEQrr9uGYp3GK1xeAAiWJ5hft3C9bFAWtRDCI/BhV5SSexZzQhe3DmyrrwDzYUVUtdEOM0lw15EOPw4QQhuFm4z6LaDCWFL4s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=a+iNkSKB; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="a+iNkSKB" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E51F0C43399; Sun, 24 Mar 2024 23:38:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323533; bh=WcWIkH5q7zZPWwW1JMd5ars6aARZtyMpPCQlr0PEIBc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=a+iNkSKBWBH222XtPivUk1kSfw/bX8m+I5ZFfNBKHvdUW2r6RwaJld337QAdr7zd2 Jj31UBqcPTU8t4sURS6zfyUto7+Q70N8Mf+IbYJAFuzWUN8/n96DDlxFeBMnpvSNta pGrivHIcHqlAbczDj1Ro4F7aUQ9b89oqeKMJRSg2SaSHgaEh766L2IIwOUt1F2SCuJ xdadEbeuaW4zQbq1zywCNFhq7WhFGbFTxaob6y+2mjS8ID6r5Y7UPuTH00K9gA8pv+ H1bBfIswEKNDFj7R2yFqeZYz9oJYiuLqem2pHVyhXZrWyS6f0LaInYh/twwWT27eyc 7l9Xc6soDknSA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: George Stark , Andy Shevchenko , Lee Jones , Sasha Levin Subject: [PATCH 5.15 241/317] leds: aw2013: Unlock mutex before destroying it Date: Sun, 24 Mar 2024 19:33:41 -0400 Message-ID: <20240324233458.1352854-242-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: George Stark [ Upstream commit 6969d0a2ba1adc9ba6a49b9805f24080896c255c ] In the probe() callback in case of error mutex is destroyed being locked which is not allowed so unlock the mutex before destroying. Fixes: 59ea3c9faf32 ("leds: add aw2013 driver") Signed-off-by: George Stark Reviewed-by: Andy Shevchenko Link: https://lore.kernel.org/r/20231214173614.2820929-2-gnstark@salutedevi= ces.com Signed-off-by: Lee Jones Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/leds/leds-aw2013.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/leds/leds-aw2013.c b/drivers/leds/leds-aw2013.c index 80d937454aeef..f7d9795ce5e1f 100644 --- a/drivers/leds/leds-aw2013.c +++ b/drivers/leds/leds-aw2013.c @@ -397,6 +397,7 @@ static int aw2013_probe(struct i2c_client *client) regulator_disable(chip->vcc_regulator); =20 error: + mutex_unlock(&chip->mutex); mutex_destroy(&chip->mutex); return ret; } --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CF8CC178238; Sun, 24 Mar 2024 23:38:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323535; cv=none; b=eT/wyxCI0tgcTSttjE+nQBakELCa5hA5AXIk9S6wqvcn91N1TnDIQ98QwqHBZUWgZEnaFV5R1UYaQwuAqB0nTRZZS130tBOHAnt/iJGy9cnWQbd9oAmAobhOjqRitjRSs/+MuF77Zvf3rJ2ZZQ8JvtagmHqK9n8vVOvqJ7RnvG4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323535; c=relaxed/simple; bh=209fK/14O+ZT6vCzV5Vxv49X9YAFEn5iUZM+C4/5aUM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=A3W5zNSgIQrgbTkTQbWyoky2tMblWfwOGfR2dYkyo3LeKtRoG1ETvhoH9m9oPkqcbkpI9viag2O1rHX2p4ihgZcTJON6exOgMBN40rh8DRXP0+b3Se3IB1Tpwm7mr668T4PQddgcvO68bdooxcu+ecW+OWop5clcBSjH/XoUUvw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=jU0UmZED; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="jU0UmZED" Received: by smtp.kernel.org (Postfix) with ESMTPSA id DB561C433C7; Sun, 24 Mar 2024 23:38:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323534; bh=209fK/14O+ZT6vCzV5Vxv49X9YAFEn5iUZM+C4/5aUM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jU0UmZEDqOKkykRCEFJkrvP253hXAjlk9gh0W+evx9ifdKxAOzVgDTM6LECCgnAa7 dsAp3E/6Y7XlLWSLrqG6YqkcOFVP8nwX9+XA2oC05qjpn/O7ntaeRO3cFOKptD4djl rVl4Xce9pAaIdRrP2LM1v+CZbpJYYj7HAxkUbpWKAtftqM1PFpSPPzmxVSH1AZs0j/ ihj/tbJvMJrA8me4wcWyrNM3e9h38mz0zlYtBpTMn6JWjCh4ORYFH+ppUA4P0jXVnR f63POvPCpf3J0NIJ/gnRgpF9yb5q+YVPxnOw9Idroc6nDOvj/oh9QI1w0YcwmdMUhL OkL/udHgdgV9g== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Ondrej Jirman , Lee Jones , Sasha Levin Subject: [PATCH 5.15 242/317] leds: sgm3140: Add missing timer cleanup and flash gpio control Date: Sun, 24 Mar 2024 19:33:42 -0400 Message-ID: <20240324233458.1352854-243-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Ondrej Jirman [ Upstream commit 205c29887a333ee4b37596e6533373e38cb23947 ] Enabling strobe and then setting brightness to 0 causes the driver to enter invalid state after strobe end timer fires. We should cancel strobe mode resources when changing brightness (aka torch mode). Fixes: cef8ec8cbd21 ("leds: add sgm3140 driver") Signed-off-by: Ondrej Jirman Link: https://lore.kernel.org/r/20240217191133.1757553-1-megi@xff.cz Signed-off-by: Lee Jones Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/leds/flash/leds-sgm3140.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/leds/flash/leds-sgm3140.c b/drivers/leds/flash/leds-sg= m3140.c index f4f831570f11c..e72017b11098b 100644 --- a/drivers/leds/flash/leds-sgm3140.c +++ b/drivers/leds/flash/leds-sgm3140.c @@ -114,8 +114,11 @@ static int sgm3140_brightness_set(struct led_classdev = *led_cdev, "failed to enable regulator: %d\n", ret); return ret; } + gpiod_set_value_cansleep(priv->flash_gpio, 0); gpiod_set_value_cansleep(priv->enable_gpio, 1); } else { + del_timer_sync(&priv->powerdown_timer); + gpiod_set_value_cansleep(priv->flash_gpio, 0); gpiod_set_value_cansleep(priv->enable_gpio, 0); ret =3D regulator_disable(priv->vin_regulator); if (ret) { --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 925FF178234; Sun, 24 Mar 2024 23:38:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323535; cv=none; b=QtPhtSACAC15Y2px5QBvdXrqJr4yKdApTNdyYiWfAQTMaqWvFtVGIA0Zo3hS8ogfo0o9U/hOBBrpdPdgYcW/iLgzfmFsqPn1/M57aINbBs54HYUFogph/LitN0tir91vEClLbB1st2IiiL4v4WaiotaAeOlJEFRnGZIBnVBPLyU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323535; c=relaxed/simple; bh=Y/T1UTQFZUMjgdl++nQhzNbXjoRoJFygBapXnieBu70=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=g3KVX5WkwY84z/ylVbqUiXIWHCMMjdesv9CN0GMbHfuOQbYHpdt28MXDQhbn+JexafPtEQidvxnbt27ja8lUtFXH0rRaTlsQfAwVntIaw181tiwa6kek0Dvs7vL8rXPJCBf4/7CfZj3rUM9T5IwgF8exXV0K3f55OXYdNx6Suwo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=XVou3ziR; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="XVou3ziR" Received: by smtp.kernel.org (Postfix) with ESMTPSA id BD202C433F1; Sun, 24 Mar 2024 23:38:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323535; bh=Y/T1UTQFZUMjgdl++nQhzNbXjoRoJFygBapXnieBu70=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=XVou3ziRwzeFeu8L4kKAAMju8HvhKOC2u3pG20PmNAJuWvMciWbNfk+27cd3CyOTJ R/1Tov6RpRoOBiegBCFl7S+QaFEAMW7SR0Gu+cn8Em+Z6WbQIsAUehzNp5jXVAGBEv MQSVMbsuzpXS0ml5w0mosGCDV+1Ye+hPBEe6karLqV7ujioxjQCb1ct9M6gsgXRVCo 59E6CYuA0iZvN9qG1zVHeNlbbKYgAFXZdwGJtIv/jWSRQQ1H6Gd+C4MRF2jSOYLSUK nDxsPbbe5RDPSCsQ2lw1fumYRgotVePjAu7zatJSI1X5MxPTyV+9Wu/t62dIe7rkdI nmY+9EIeW73oA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Luca Weiss , Daniel Thompson , Lee Jones , Sasha Levin Subject: [PATCH 5.15 243/317] backlight: lm3630a: Initialize backlight_properties on init Date: Sun, 24 Mar 2024 19:33:43 -0400 Message-ID: <20240324233458.1352854-244-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Luca Weiss [ Upstream commit ad9aeb0e3aa90ebdad5fabf9c21783740eb95907 ] The backlight_properties struct should be initialized to zero before using, otherwise there will be some random values in the struct. Fixes: 0c2a665a648e ("backlight: add Backlight driver for lm3630 chip") Signed-off-by: Luca Weiss Reviewed-by: Daniel Thompson Link: https://lore.kernel.org/r/20240220-lm3630a-fixups-v1-1-9ca62f7e4a33@z= 3ntu.xyz Signed-off-by: Lee Jones Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/video/backlight/lm3630a_bl.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/video/backlight/lm3630a_bl.c b/drivers/video/backlight= /lm3630a_bl.c index e8b185bb6f5ee..371c633f1e629 100644 --- a/drivers/video/backlight/lm3630a_bl.c +++ b/drivers/video/backlight/lm3630a_bl.c @@ -339,6 +339,7 @@ static int lm3630a_backlight_register(struct lm3630a_ch= ip *pchip) struct backlight_properties props; const char *label; =20 + memset(&props, 0, sizeof(struct backlight_properties)); props.type =3D BACKLIGHT_RAW; if (pdata->leda_ctrl !=3D LM3630A_LEDA_DISABLE) { props.brightness =3D pdata->leda_init_brt; --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0EA2613C688; Sun, 24 Mar 2024 23:38:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323537; cv=none; b=nyu4VSYOP+qEc9eCKWzjQ+0P1iHhC8lzPFpIVNXdBGpR94g62j6r2m6cDyis/vJBxfirNpHhfEBvrgQw/Kex2cX9ZE+GDdSj1R8Vooth4lmhneopj8R7LAACjUCR3fBWKkupuQ3TQCDejm6YQEIYEKe3tCGJCk0LIl7P1glqsAg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323537; c=relaxed/simple; bh=MZaxlRiRNTP+T2kEqjJfDJ1DJAEd3eavWsspgxsGal8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=RNch7voDMwGX5CLPrHXJ1oLwbvFf4OGeP/Ewz32aH9SXzQMghRDz0AqdcZ/Lo03StdQSuIkKJ0HDbRfT4eUyC5GZrPE/5Ljkk390pgkamukAvSLe3toYtR9JGD6Wy4wE8rphWMboDOWx6Nnr0l+T0vSx+WEUmVX7yiNcDz7c4uo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=AdLu434p; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="AdLu434p" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B4992C43390; Sun, 24 Mar 2024 23:38:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323536; bh=MZaxlRiRNTP+T2kEqjJfDJ1DJAEd3eavWsspgxsGal8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=AdLu434p8jtOIKuXR05e4h05mZ72jAQTyN7dY8epAitKhpQ9bhn0G59MqkwPyncL+ vrZEOc09KPYgKsE6izpukxltWafMCH45ggkSA+pp+CeXOUct+KKt6ozHB86CkbU1oo +gw2WaoLUsX2GjV9n4jev5N9B9APZyC4J7a9A2EceUX8PWqiROku0K6n1dsiYvrpAB puikmFHPtMVW0XenUXIuJ77hqTtbMS9VX34XacO1Cgk1z8vNMY4xO6FO8+E8863j4n gC+xeqHZ+lBkwwRNkjDrAK1k5qYz3pdiTQSei8vGMKihAIG4/lDw6DAS6ulKsX3FWB x06YPlM8brZSQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Luca Weiss , Daniel Thompson , Lee Jones , Sasha Levin Subject: [PATCH 5.15 244/317] backlight: lm3630a: Don't set bl->props.brightness in get_brightness Date: Sun, 24 Mar 2024 19:33:44 -0400 Message-ID: <20240324233458.1352854-245-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Luca Weiss [ Upstream commit 4bf7ddd2d2f0f8826f25f74c7eba4e2c323a1446 ] There's no need to set bl->props.brightness, the get_brightness function is just supposed to return the current brightness and not touch the struct. With that done we can also remove the 'goto out' and just return the value. Fixes: 0c2a665a648e ("backlight: add Backlight driver for lm3630 chip") Signed-off-by: Luca Weiss Reviewed-by: Daniel Thompson Link: https://lore.kernel.org/r/20240220-lm3630a-fixups-v1-2-9ca62f7e4a33@z= 3ntu.xyz Signed-off-by: Lee Jones Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/video/backlight/lm3630a_bl.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/drivers/video/backlight/lm3630a_bl.c b/drivers/video/backlight= /lm3630a_bl.c index 371c633f1e629..a15102bf21365 100644 --- a/drivers/video/backlight/lm3630a_bl.c +++ b/drivers/video/backlight/lm3630a_bl.c @@ -231,7 +231,7 @@ static int lm3630a_bank_a_get_brightness(struct backlig= ht_device *bl) if (rval < 0) goto out_i2c_err; brightness |=3D rval; - goto out; + return brightness; } =20 /* disable sleep */ @@ -242,11 +242,8 @@ static int lm3630a_bank_a_get_brightness(struct backli= ght_device *bl) rval =3D lm3630a_read(pchip, REG_BRT_A); if (rval < 0) goto out_i2c_err; - brightness =3D rval; + return rval; =20 -out: - bl->props.brightness =3D brightness; - return bl->props.brightness; out_i2c_err: dev_err(pchip->dev, "i2c failed to access register\n"); return 0; @@ -306,7 +303,7 @@ static int lm3630a_bank_b_get_brightness(struct backlig= ht_device *bl) if (rval < 0) goto out_i2c_err; brightness |=3D rval; - goto out; + return brightness; } =20 /* disable sleep */ @@ -317,11 +314,8 @@ static int lm3630a_bank_b_get_brightness(struct backli= ght_device *bl) rval =3D lm3630a_read(pchip, REG_BRT_B); if (rval < 0) goto out_i2c_err; - brightness =3D rval; + return rval; =20 -out: - bl->props.brightness =3D brightness; - return bl->props.brightness; out_i2c_err: dev_err(pchip->dev, "i2c failed to access register\n"); return 0; --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A216B1782E7; Sun, 24 Mar 2024 23:38:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323538; cv=none; b=oJFFcLRud0Yq2iKjVjsJLBj90FOy7S7AiO4ZrLkfYztqvJl/uDJaEhcSMUNLn7bTRHW+mhzOPs4Jnm7cmL1QrDjKRvBnnCX63uco7ss7D8Vx8r+rGpd8JPotBLGXtyx3yocyP3OmIYE69NxkJZDtqzVK+uyYQxWJ5myIEaZENSI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323538; c=relaxed/simple; bh=3seKHVoN8/gBs3/qRcJQnELvobzcetvAIc5iZRBAZi0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=LOdKzPVMWe/RRZqE56IDJVIZL+ZdqT4jUK4sh3HlLtnvW9v1luF2QxVbVVFOrHzknZ5tCFBaCLCRwieQoOy1okaHVx4wbmD+Liy+DXKVBaqoDS7ypqYaxeYFTo92ILNBAW4uN/g+RkjbHrcYZ5IKp60fzBspQYG4YRVIqVbC9S0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=g2yVTPeA; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="g2yVTPeA" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E1347C433C7; Sun, 24 Mar 2024 23:38:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323537; bh=3seKHVoN8/gBs3/qRcJQnELvobzcetvAIc5iZRBAZi0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=g2yVTPeAhq3GvLum+wYMUk0LhXzPuZSwfjW7U7FHOGwfOEuCuBHlvi9BRFVKi6gKK 7Ys7QD8zes6m/VZhqXllqDosFO+jy1aiepC7cVSOM53xqjvVaeYdUWcY5eP21xXkO+ MiRH284KoxiCPux1pFeZ9NgKXBrzX/arIkOXlBgM98wYXep/DZA77ryL2RlIa1fje3 Z69BbsSSvbnvk5/KzfZYzUFsaCymdNcwZ8f7JSFcINMK8K5/GE9FwhPw447/PQathQ Q0pGdxymxvlnwXnozUZTD+oZWUb+R5kvfloUt3Q4UuA6iHRyZitcLUxXHdHImRqi0W PGtbb1nEQjHFQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Daniel Thompson , Lee Jones , Sasha Levin Subject: [PATCH 5.15 245/317] backlight: da9052: Fully initialize backlight_properties during probe Date: Sun, 24 Mar 2024 19:33:45 -0400 Message-ID: <20240324233458.1352854-246-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Daniel Thompson [ Upstream commit 0285e9efaee8276305db5c52a59baf84e9731556 ] props is stack allocated and the fields that are not explcitly set by the probe function need to be zeroed or we'll get undefined behaviour (especially so power/blank states)! Fixes: 6ede3d832aaa ("backlight: add driver for DA9052/53 PMIC v1") Signed-off-by: Daniel Thompson Link: https://lore.kernel.org/r/20240220153532.76613-2-daniel.thompson@lina= ro.org Signed-off-by: Lee Jones Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/video/backlight/da9052_bl.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/video/backlight/da9052_bl.c b/drivers/video/backlight/= da9052_bl.c index 882359dd288c0..aa00379392a0f 100644 --- a/drivers/video/backlight/da9052_bl.c +++ b/drivers/video/backlight/da9052_bl.c @@ -117,6 +117,7 @@ static int da9052_backlight_probe(struct platform_devic= e *pdev) wleds->led_reg =3D platform_get_device_id(pdev)->driver_data; wleds->state =3D DA9052_WLEDS_OFF; =20 + memset(&props, 0, sizeof(struct backlight_properties)); props.type =3D BACKLIGHT_RAW; props.max_brightness =3D DA9052_MAX_BRIGHTNESS; =20 --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D558E1782E8; Sun, 24 Mar 2024 23:38:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323538; cv=none; b=WRMwmdM9s/KBDW2cFuwsOvsdHc+CjgayCJXA7+2k140aETuhRX0Ugwl1rWdwyKcsgIebVl2aHz0GQsymIK5pUaXxveYtir6HIsV+9kI2DE1oOVHPeW56xe1S4sK3YT8xw23RYR8JusZMcseTwfD4myZTGViPpluRdw/WBdT8Tvs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323538; c=relaxed/simple; bh=sEYKigNfaix1DXTkbduGtVqUs9Nej6EnPx1x34vReh0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=UtBrJKYZ+XNLM3V7ma0QCFu5cg8eEIqJvIA/nMldH8yU4MuiSwy18H+MP1BSjYsfjMef22FQIQCC1/H/ukCxkyGup0UqfNFJpQmLdkE5UN8NNLuD9ghKbVyYt5+tyQPgY5CJG2PhfMRjWCmeJRiYwiwTIx4K0/hcyWPz5hkv+YM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Bih9XjZF; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Bih9XjZF" Received: by smtp.kernel.org (Postfix) with ESMTPSA id C503DC43390; Sun, 24 Mar 2024 23:38:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323538; bh=sEYKigNfaix1DXTkbduGtVqUs9Nej6EnPx1x34vReh0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Bih9XjZFCs9adpcsTqPs/DzcLofUUgb51vm3RrrS7SMvlWgmFUpH7nzX6WG9rCl6G rGwurAzoawQxbjOrwnA572OM9PLduaQff9GVN3zXFyv9aGN4SkxTX7B1PjU6wzu8s5 3gQiz/tAU8k+2D0piJ9WY/8sVcf/oI6NiI3z9vtl05EIaZOaI2m52SH8qVW9106bFd SYHw7xqIBQ1Mv0TYslV75uepp/cy2+yYSztqjr+juoP1q4vg7qRcuSnwVATLoSw9fi UC5dYWtNRFtxJsFBjlImsz9i7Vnouv9d+0IsR7feBenP9XrB+m7R4H2D9RoPd9jn1H k0UJiajbq3oWw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Daniel Thompson , Lee Jones , Sasha Levin Subject: [PATCH 5.15 246/317] backlight: lm3639: Fully initialize backlight_properties during probe Date: Sun, 24 Mar 2024 19:33:46 -0400 Message-ID: <20240324233458.1352854-247-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Daniel Thompson [ Upstream commit abb5a5d951fbea3feb5c4ba179b89bb96a1d3462 ] props is stack allocated and the fields that are not explcitly set by the probe function need to be zeroed or we'll get undefined behaviour (especially so power/blank states)! Fixes: 0f59858d5119 ("backlight: add new lm3639 backlight driver") Signed-off-by: Daniel Thompson Link: https://lore.kernel.org/r/20240220153532.76613-3-daniel.thompson@lina= ro.org Signed-off-by: Lee Jones Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/video/backlight/lm3639_bl.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/video/backlight/lm3639_bl.c b/drivers/video/backlight/= lm3639_bl.c index 48c04155a5f9d..bb617f4673e94 100644 --- a/drivers/video/backlight/lm3639_bl.c +++ b/drivers/video/backlight/lm3639_bl.c @@ -339,6 +339,7 @@ static int lm3639_probe(struct i2c_client *client, } =20 /* backlight */ + memset(&props, 0, sizeof(struct backlight_properties)); props.type =3D BACKLIGHT_RAW; props.brightness =3D pdata->init_brt_led; props.max_brightness =3D pdata->max_brt_led; --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 69BCF5B208; Sun, 24 Mar 2024 23:38:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323539; cv=none; b=S0iMRjX2GqeHZfSkPhfKxdbhmyTa6u1l536sUJbINGIPwvblnU/R3LTqVssHHMWrIDK6NLdbqrUKHCPUFEqtiA+Nozj2Xp3zcIHHhmqz/CeQvvCDUe9bZVi3nA5cobAJ1sDbgQczDOZ2o4q7yFc7v3jpYjNk5it0zzpXVJuvrdc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323539; c=relaxed/simple; bh=LYhPIjMpKEPwiaOA5bQCN6S1WNeGsEIjM6B9l315d1c=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZvhPXSZJgnDvbfS2gV5ZTFkA8Jh2g6JJOu81x3EfO1ixvt1MISW05bNYKjROvvMdnrdwGV1vPOib37jLoGFlcMG7/QMF9F8jTPBrp0+wrUiu9xKK/SDoID/Scfp2tEg2ifMZL2fMhUQaYsPZcjvT9pD6VaqHB2iBrfBXB46ZxXA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=aTuLqWqs; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="aTuLqWqs" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A99A1C433A6; Sun, 24 Mar 2024 23:38:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323539; bh=LYhPIjMpKEPwiaOA5bQCN6S1WNeGsEIjM6B9l315d1c=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=aTuLqWqsz78aJAqZU08P4MsWSuhA3R9YzPnRL58FMXF2CsM5T0Z0leaHn3GEZeSm6 OrfQL7SKbGE8wLkLnxxWnapw7BO/Hsvs8I+s0mDh9egxPlo0eOeWJYT7NNM1Tml8b1 ZeZijETdi5IvIRraxbpHi+IMMUjG6a1Fb2CZpGwjlufMJLJeH80c1PDknGuVDg4YYj clum5qy/iSMSZkecs0ZLYvuq5LvbUuDJwFx7eeoUmH3JrA6u0qUE4T51AOr/3WUb1p hSNQYuSwsI6eyB3/sPu2WdKJFSgKPO0QMoIaZwto3lOY7WwsmIPs6pe/GSh0/YQrwQ 1F3bCtn7U2mWw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Daniel Thompson , Lee Jones , Sasha Levin Subject: [PATCH 5.15 247/317] backlight: lp8788: Fully initialize backlight_properties during probe Date: Sun, 24 Mar 2024 19:33:47 -0400 Message-ID: <20240324233458.1352854-248-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Daniel Thompson [ Upstream commit 392346827fbe8a7fd573dfb145170d7949f639a6 ] props is stack allocated and the fields that are not explcitly set by the probe function need to be zeroed or we'll get undefined behaviour (especially so power/blank states)! Fixes: c5a51053cf3b ("backlight: add new lp8788 backlight driver") Signed-off-by: Daniel Thompson Link: https://lore.kernel.org/r/20240220153532.76613-4-daniel.thompson@lina= ro.org Signed-off-by: Lee Jones Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/video/backlight/lp8788_bl.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/video/backlight/lp8788_bl.c b/drivers/video/backlight/= lp8788_bl.c index ba42f3fe0c739..d9b95dbd40d30 100644 --- a/drivers/video/backlight/lp8788_bl.c +++ b/drivers/video/backlight/lp8788_bl.c @@ -191,6 +191,7 @@ static int lp8788_backlight_register(struct lp8788_bl *= bl) int init_brt; char *name; =20 + memset(&props, 0, sizeof(struct backlight_properties)); props.type =3D BACKLIGHT_PLATFORM; props.max_brightness =3D MAX_BRIGHTNESS; =20 --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6684927CBC8; Sun, 24 Mar 2024 23:39:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323541; cv=none; b=N81kg+OQt3v4l3h7cWJo6MMeYFkzRvOykoiE4y7vsFPUskYneX/j5/ly9GU16tcuJ/2VcYXL1mRZrlTdq5sdhyrZcekikzRJQf7cAP5iIR8eo6lSgIvfx3IZids0ULFf/J+E3VQAci/wtjLwWxGJPjWZB+LOG8i+C32EIRHKai8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323541; c=relaxed/simple; bh=jmfwr9b4WGqYyhKL2RJ0GcThkXvWGfJ4utHVDz5KbWM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZHxImeMJqLhyUOEIdjENbh6qDpo3lQaoWVIaXi1M2JNpJjkrqZjfzErpwqIy93jdzazbCCNrKlFjBSb78sNlaSEO3uTUcVLzoQRTxtdu1zssI5n6CtjNznc9VLAj3DSe3BszARN9NvV7AsL6bxJTsLsxnndd8BOBbHfJEq+00H8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=L84/x00T; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="L84/x00T" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8E3B6C43399; Sun, 24 Mar 2024 23:38:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323540; bh=jmfwr9b4WGqYyhKL2RJ0GcThkXvWGfJ4utHVDz5KbWM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=L84/x00TNdn09qHM/WIi4a0hMe3QkKwnvjF0Ix/9Szw+2f5IXFg/F6m3NEKOYLDFO OBqwtRj3aWtw4Fmj9ZBxk7YhxM0udicU0aFn3FtQqQ5GXnjHqMVDre957jYT63Eb7t 0L2ZuUgnz2g61Bk/NTauzzhr5gCNIp7tjOsQrosm8izpMosYmDkI9ZOxh/dADLMg0m LXcNQBDaIrnKf2jVDn9TfGuWx6XZ3kTjh/fX6HiG5m3xjQuao0IC3s1Ox9QAdXIS3Z 2lRkMpl6jW4X1wH961yoIlxIJS8d/OZ7gxRW13YObmuXfSaNh2VjrcbqLugFZnplE9 rjUHszIDm0m0w== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Thomas Zimmermann , Jani Nikula , Michael Ellerman , Sasha Levin Subject: [PATCH 5.15 248/317] arch/powerpc: Remove from backlight code Date: Sun, 24 Mar 2024 19:33:48 -0400 Message-ID: <20240324233458.1352854-249-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Thomas Zimmermann [ Upstream commit 838f865802b9f26135ea7df4e30f89ac2f50c23e ] Replace with a forward declaration in to resolve an unnecessary dependency. Remove pmac_backlight_curve_lookup() and struct fb_info from source and header files. The function and the framebuffer struct are unused. No functional changes. v3: * Add Fixes tag (Christophe) * fix typos in commit message (Jani) Signed-off-by: Thomas Zimmermann Fixes: d565dd3b0824 ("[PATCH] powerpc: More via-pmu backlight fixes") Reviewed-by: Jani Nikula Acked-by: Michael Ellerman # (powerpc) Link: https://patchwork.freedesktop.org/patch/msgid/20240306122935.10626-4-= tzimmermann@suse.de Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- arch/powerpc/include/asm/backlight.h | 5 ++-- arch/powerpc/platforms/powermac/backlight.c | 26 --------------------- 2 files changed, 2 insertions(+), 29 deletions(-) diff --git a/arch/powerpc/include/asm/backlight.h b/arch/powerpc/include/as= m/backlight.h index 1b5eab62ed047..061a910d74929 100644 --- a/arch/powerpc/include/asm/backlight.h +++ b/arch/powerpc/include/asm/backlight.h @@ -10,15 +10,14 @@ #define __ASM_POWERPC_BACKLIGHT_H #ifdef __KERNEL__ =20 -#include #include =20 +struct backlight_device; + /* For locking instructions, see the implementation file */ extern struct backlight_device *pmac_backlight; extern struct mutex pmac_backlight_mutex; =20 -extern int pmac_backlight_curve_lookup(struct fb_info *info, int value); - extern int pmac_has_backlight_type(const char *type); =20 extern void pmac_backlight_key(int direction); diff --git a/arch/powerpc/platforms/powermac/backlight.c b/arch/powerpc/pla= tforms/powermac/backlight.c index 32224cb489d75..eab339d2059d5 100644 --- a/arch/powerpc/platforms/powermac/backlight.c +++ b/arch/powerpc/platforms/powermac/backlight.c @@ -9,7 +9,6 @@ */ =20 #include -#include #include #include #include @@ -73,31 +72,6 @@ int pmac_has_backlight_type(const char *type) return 0; } =20 -int pmac_backlight_curve_lookup(struct fb_info *info, int value) -{ - int level =3D (FB_BACKLIGHT_LEVELS - 1); - - if (info && info->bl_dev) { - int i, max =3D 0; - - /* Look for biggest value */ - for (i =3D 0; i < FB_BACKLIGHT_LEVELS; i++) - max =3D max((int)info->bl_curve[i], max); - - /* Look for nearest value */ - for (i =3D 0; i < FB_BACKLIGHT_LEVELS; i++) { - int diff =3D abs(info->bl_curve[i] - value); - if (diff < max) { - max =3D diff; - level =3D i; - } - } - - } - - return level; -} - static void pmac_backlight_key_worker(struct work_struct *work) { if (atomic_read(&kernel_backlight_disabled)) --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7A72027CBD3; Sun, 24 Mar 2024 23:39:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323542; cv=none; b=mCd5OWwvExYqQfu2JOWq1vU6PIwk/EUuw/yywwhIsEgnb5s4cHE7ufPvTOC6AY/bx62w/K9dlmutGoM4q9L9sPz+/nfh6fA/VI3ep+NuCQJi0asjdopCzLvDSR8xR1octZ5JuhSNdhEUw20P9FFNnVK0mSzj7ugOdYzd25YKfjE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323542; c=relaxed/simple; bh=qUsKLSR4/2S+QJrOFojeB/hmcUgRxhpYTpV7hOoNmWw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=VwzqBjwNxxKkLPV2e504Uky6uxLUfEX2+Jilrgj59wrTQ9j2g3AM/QX0m0Qi3pKYMu2c2AWhsMYPol/QTHovvnUmcGFeS3xyHz+LBAryQBF8e/5R6pdGT7qXG5HGjLI+hOriZ86U6nca3GVB5M00h8C0XvkwSS7AABHyjua0UDI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=BdutJ/vn; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="BdutJ/vn" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8A495C43394; Sun, 24 Mar 2024 23:39:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323541; bh=qUsKLSR4/2S+QJrOFojeB/hmcUgRxhpYTpV7hOoNmWw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=BdutJ/vn+fQe71rlxK/Tm1Vs+YO+j6fQhA/EwJr1EqQgghAuaFSg2gJ2bZg7UmLu8 7Dkh+4s5nsaTJuhCkb1Q+awuwYeIdJVPUgTfYpIzthdJ7CZEJjeetE/28c6pM0MidK 5G6TklGka71dA79iYyC2k+/5UMucJKGKTqIRN2/uzxsD6AKVv7FmQEjIJrYtqPmD6k Nz7Ho6YUoRKZ+ZK1z4gMibQUb6p42sxLl1A+HaKf7vGkNnvZIgoyU9shg7tr9uh5QH fgmWx8wwjHStOOTcmHka4gSjyY23/piGY7JwjASCmi8/qLc80S8MST2tvAILFrS67L uORFFs9aNE2DQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Sam Ravnborg , "David S. Miller" , Andreas Larsson , Randy Dunlap , Sasha Levin Subject: [PATCH 5.15 249/317] sparc32: Fix section mismatch in leon_pci_grpci Date: Sun, 24 Mar 2024 19:33:49 -0400 Message-ID: <20240324233458.1352854-250-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Sam Ravnborg [ Upstream commit 24338a6ae13cb743ced77da1b3a12c83f08a0c96 ] Passing a datastructre marked _initconst to platform_driver_register() is wrong. Drop the __initconst notation. This fixes the following warnings: WARNING: modpost: vmlinux: section mismatch in reference: grpci1_of_driver+= 0x30 (section: .data) -> grpci1_of_match (section: .init.rodata) WARNING: modpost: vmlinux: section mismatch in reference: grpci2_of_driver+= 0x30 (section: .data) -> grpci2_of_match (section: .init.rodata) Signed-off-by: Sam Ravnborg Cc: "David S. Miller" Cc: Andreas Larsson Fixes: 4154bb821f0b ("sparc: leon: grpci1: constify of_device_id") Fixes: 03949b1cb9f1 ("sparc: leon: grpci2: constify of_device_id") Tested-by: Randy Dunlap # build-tested Reviewed-by: Andreas Larsson Tested-by: Andreas Larsson Signed-off-by: Andreas Larsson Link: https://lore.kernel.org/r/20240224-sam-fix-sparc32-all-builds-v2-7-1f= 186603c5c4@ravnborg.org Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- arch/sparc/kernel/leon_pci_grpci1.c | 2 +- arch/sparc/kernel/leon_pci_grpci2.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/sparc/kernel/leon_pci_grpci1.c b/arch/sparc/kernel/leon_p= ci_grpci1.c index e6935d0ac1ec9..c32590bdd3120 100644 --- a/arch/sparc/kernel/leon_pci_grpci1.c +++ b/arch/sparc/kernel/leon_pci_grpci1.c @@ -696,7 +696,7 @@ static int grpci1_of_probe(struct platform_device *ofde= v) return err; } =20 -static const struct of_device_id grpci1_of_match[] __initconst =3D { +static const struct of_device_id grpci1_of_match[] =3D { { .name =3D "GAISLER_PCIFBRG", }, diff --git a/arch/sparc/kernel/leon_pci_grpci2.c b/arch/sparc/kernel/leon_p= ci_grpci2.c index ca22f93d90454..dd06abc61657f 100644 --- a/arch/sparc/kernel/leon_pci_grpci2.c +++ b/arch/sparc/kernel/leon_pci_grpci2.c @@ -887,7 +887,7 @@ static int grpci2_of_probe(struct platform_device *ofde= v) return err; } =20 -static const struct of_device_id grpci2_of_match[] __initconst =3D { +static const struct of_device_id grpci2_of_match[] =3D { { .name =3D "GAISLER_GRPCI2", }, --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 685DD27CBD1; Sun, 24 Mar 2024 23:39:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323542; cv=none; b=WB53wbZLuv+13nvoHeXOMoEV9xbRWD5e+w12TivDuH2OGNg3o1kB+FZLyf1pvFkmYd9dzMuJwCcYj+taMmf69b1gLoD0iM9TfCiMl/vN+hgjgs7EvTvlbMSACA6CET0RlBTbDndi73QecS2ul8jRqRvuJBpmqkpgZTSmtzVMUME= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323542; c=relaxed/simple; bh=7xi1OLy1P+SCpV9kh4AUDwMbrQgRJVjW6bDREvVkqis=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=W4rUbxHzOlvlR6HUEKjuPzHGblFMpU72y0horH+9Y77FX6mq36+3aS3y3lcJPtKz3G12yXDOGTChFvU6hoQKxj6X1ViU2LOB3AIQVsvE9/7RzOl1IKNafXdfleKg/9ZX5gbqYxc6L/7eA8AMDA+Ci/rE3E7W/W8970FpGE7ZhzQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=CcyifafJ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="CcyifafJ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A1C49C43390; Sun, 24 Mar 2024 23:39:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323542; bh=7xi1OLy1P+SCpV9kh4AUDwMbrQgRJVjW6bDREvVkqis=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=CcyifafJe95qYOHsSw9ZL+sHElESGhs0tIB6EawdocLGQjn8XtHX2Man955Lue1sI pOdmKsJl5GKg8Fj16jzBJu8O0pacYGr2rwpjrErp2ssq/eFEGU3P9xp3RPvlshN2o+ M5GPwz6jMTA4MdHNdb/P5rnzNo/tKMB70Re0dfQMYae1bQGMRG1uFGYTcoOysXeRIO /QwRjRn94fkOaXRipEK8UzReiCrrHwYWHzMdFGeuFMMN+Qx7HqjjdhCCTwYntwMqL3 23/RpWJ52q/+aiDnwVotkFJSTQDcZnPt8J6o6sps6BEDnSa/0vzAQBsZAKutiGOw2P I2Y59HzqZJcQA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Bryan O'Donoghue , Stephen Boyd , Sasha Levin Subject: [PATCH 5.15 250/317] clk: Fix clk_core_get NULL dereference Date: Sun, 24 Mar 2024 19:33:50 -0400 Message-ID: <20240324233458.1352854-251-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Bryan O'Donoghue [ Upstream commit e97fe4901e0f59a0bfd524578fe3768f8ca42428 ] It is possible for clk_core_get to dereference a NULL in the following sequence: clk_core_get() of_clk_get_hw_from_clkspec() __of_clk_get_hw_from_provider() __clk_get_hw() __clk_get_hw() can return NULL which is dereferenced by clk_core_get() at hw->core. Prior to commit dde4eff47c82 ("clk: Look for parents with clkdev based clk_lookups") the check IS_ERR_OR_NULL() was performed which would have caught the NULL. Reading the description of this function it talks about returning NULL but that cannot be so at the moment. Update the function to check for hw before dereferencing it and return NULL if hw is NULL. Fixes: dde4eff47c82 ("clk: Look for parents with clkdev based clk_lookups") Signed-off-by: Bryan O'Donoghue Link: https://lore.kernel.org/r/20240302-linux-next-24-03-01-simple-clock-f= ixes-v1-1-25f348a5982b@linaro.org Signed-off-by: Stephen Boyd Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/clk/clk.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c index bf9057a8fbf06..84397af4fb336 100644 --- a/drivers/clk/clk.c +++ b/drivers/clk/clk.c @@ -425,6 +425,9 @@ static struct clk_core *clk_core_get(struct clk_core *c= ore, u8 p_index) if (IS_ERR(hw)) return ERR_CAST(hw); =20 + if (!hw) + return NULL; + return hw->core; } =20 --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 60E6927CBD9; Sun, 24 Mar 2024 23:39:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323544; cv=none; b=LdSfpob5lHd8x0ihUxMBbuDxzhjMQbGfpj+M6/m58HsZHFegYzBPXrINOfgp0cUgKvggA5PAndikuuNRwB1t/yrNyVzUgBAvEboTVb3zf94NQVJ/G0amohsa/w+59Zr8jsvtEZt4Bm4NltZd5VVbfKP7p95nFnoR6gYDhzI0GH4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323544; c=relaxed/simple; bh=uv+y9qKoXVm0GVCcYcJXwCwMLvSbWX+N9jYqynB1a0c=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Gk8Q+9tWXN9pSAyUtIvDW5CcG1iuqqDRimIUn7crbWVZKlKHHmMeDh8auck6F6KfxisJnX5diPolDkgQ+du3a+sDMS7N8nZ51ey2SqnCn20UuNmBTVTIv+zWUx7YaeEyc9QyWo9Z/jncPXpDd383h4MgzxgAray/6lM5AP57SVc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=pOwE3UBj; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="pOwE3UBj" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 827B9C43399; Sun, 24 Mar 2024 23:39:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323543; bh=uv+y9qKoXVm0GVCcYcJXwCwMLvSbWX+N9jYqynB1a0c=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=pOwE3UBjYcx3AVCvdprxXDIYs2RIY1zD/d4p58F1zqx5sFqzvDfGhu0UQBjtN1ZuQ DNBeDsor4Tj3YxHlmlWX3dqBS0cMitKmErlnbsEpoq7QkDlJRM2Oj81o4v0XKZ9iKT P6qAh8Qgxa3pw0SMGnpM8VOU38W8OmhSg3uARtXxmHN5Gmd7EqAdzW1Sg+reZoQ/QI mHY0fEUQCRJFbHIaZUHiz3ly90GX6TYqNuslo1lkUAtMU4WGjeRHKnWN3Vv1YdA+7L R7iPyVMuDfgjyUZGwIF0mK7TOUnUx+3QQ2vq+YUSG7USoQvqAejkPxlPmnuVIEdaSA EpNHa4trumNRA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Duoming Zhou , Michal Simek , Stephen Boyd , Sasha Levin Subject: [PATCH 5.15 251/317] clk: zynq: Prevent null pointer dereference caused by kmalloc failure Date: Sun, 24 Mar 2024 19:33:51 -0400 Message-ID: <20240324233458.1352854-252-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Duoming Zhou [ Upstream commit 7938e9ce39d6779d2f85d822cc930f73420e54a6 ] The kmalloc() in zynq_clk_setup() will return null if the physical memory has run out. As a result, if we use snprintf() to write data to the null address, the null pointer dereference bug will happen. This patch uses a stack variable to replace the kmalloc(). Fixes: 0ee52b157b8e ("clk: zynq: Add clock controller driver") Suggested-by: Michal Simek Suggested-by: Stephen Boyd Signed-off-by: Duoming Zhou Link: https://lore.kernel.org/r/20240301084437.16084-1-duoming@zju.edu.cn Acked-by: Michal Simek Signed-off-by: Stephen Boyd Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/clk/zynq/clkc.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/drivers/clk/zynq/clkc.c b/drivers/clk/zynq/clkc.c index 204b83d911b90..c615664505a55 100644 --- a/drivers/clk/zynq/clkc.c +++ b/drivers/clk/zynq/clkc.c @@ -42,6 +42,7 @@ static void __iomem *zynq_clkc_base; #define SLCR_SWDT_CLK_SEL (zynq_clkc_base + 0x204) =20 #define NUM_MIO_PINS 54 +#define CLK_NAME_LEN 16 =20 #define DBG_CLK_CTRL_CLKACT_TRC BIT(0) #define DBG_CLK_CTRL_CPU_1XCLKACT BIT(1) @@ -215,7 +216,7 @@ static void __init zynq_clk_setup(struct device_node *n= p) int i; u32 tmp; int ret; - char *clk_name; + char clk_name[CLK_NAME_LEN]; unsigned int fclk_enable =3D 0; const char *clk_output_name[clk_max]; const char *cpu_parents[4]; @@ -425,12 +426,10 @@ static void __init zynq_clk_setup(struct device_node = *np) "gem1_emio_mux", CLK_SET_RATE_PARENT, SLCR_GEM1_CLK_CTRL, 0, 0, &gem1clk_lock); =20 - tmp =3D strlen("mio_clk_00x"); - clk_name =3D kmalloc(tmp, GFP_KERNEL); for (i =3D 0; i < NUM_MIO_PINS; i++) { int idx; =20 - snprintf(clk_name, tmp, "mio_clk_%2.2d", i); + snprintf(clk_name, CLK_NAME_LEN, "mio_clk_%2.2d", i); idx =3D of_property_match_string(np, "clock-names", clk_name); if (idx >=3D 0) can_mio_mux_parents[i] =3D of_clk_get_parent_name(np, @@ -438,7 +437,6 @@ static void __init zynq_clk_setup(struct device_node *n= p) else can_mio_mux_parents[i] =3D dummy_nm; } - kfree(clk_name); clk_register_mux(NULL, "can_mux", periph_parents, 4, CLK_SET_RATE_NO_REPARENT, SLCR_CAN_CLK_CTRL, 4, 2, 0, &canclk_lock); --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 88FC427CBDB; Sun, 24 Mar 2024 23:39:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323544; cv=none; b=ls+ib/7aHMNKSRiBiAZDDy5HJ2EllWwrDEqb1qAOHCaoQQnN+btbFywkBWuCjPDNiTJTpptITbD9E+6Hb4rIdUAqoFlZFQUGlouQ3rycZsrISU547tbH2ntyr929ctuu1t6yB1CqeQQmnORHcSIrMUesbnFuRbsfXHjYXmzsThA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323544; c=relaxed/simple; bh=g+iXto7AHXZNgAVEpyZIVVX511SjCH0GxfL/4Zm4pKE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=dBCE+5cRaZXxY++Ipg1Xk90kkHQBcwQIRqB0FxiFAyfOGEUxnAIth/+j0zfZKIlKJRCgClAtYBKFV+vx/bpXtC6qho5HJ/FZbomhkHvWomsqV+qg2sKmKSVqQHL8AAc0PAHfehOShLKWplk/hDVwkF5CqZwgEf70nemg9G8f0xk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=X4/1G+fq; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="X4/1G+fq" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 800CEC433C7; Sun, 24 Mar 2024 23:39:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323544; bh=g+iXto7AHXZNgAVEpyZIVVX511SjCH0GxfL/4Zm4pKE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=X4/1G+fqqGTgIWRjqH02h34gdaWKL91YCAwOp5teLuOezbyh3B1rsiG8I6VtISmv8 mj7/6pqpQiLlNoNKX8o36Lcx11XJxv/I5UPgTrMrtMKd+9Cyq+ywccolD1D7uuA0Fc 5u/D8fwQiavS5lYYEhF7cDUpnDnH1X7vawYLKeUBW9Q5XndQrSYHO5MZsHHQCegJW+ 86mdAqy7TUkJTrKKtQB9DbzUDQoyJaJpwodBFL5S7uHnTapqR6JfQAYDqi2MXsKMEC TMdSvjRbvadXjJ7Lxp8pY46we/WSFuu+K53NwsV7YD5FctsgiIUDiSkoEOtHGtCeL+ oRTMJ7yM/xcNA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Athaariq Ardhiansyah , Takashi Iwai , Sasha Levin Subject: [PATCH 5.15 252/317] ALSA: hda/realtek: fix ALC285 issues on HP Envy x360 laptops Date: Sun, 24 Mar 2024 19:33:52 -0400 Message-ID: <20240324233458.1352854-253-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Athaariq Ardhiansyah [ Upstream commit c062166995c9e57d5cd508b332898f79da319802 ] Realtek codec on HP Envy laptop series are heavily modified by vendor. Therefore, need intervention to make it work properly. The patch fixes: - B&O soundbar speakers (between lid and keyboard) activation - Enable LED on mute button - Add missing process coefficient which affects the output amplifier - Volume control synchronization between B&O soundbar and side speakers - Unmute headset output on several HP Envy models - Auto-enable headset mic when plugged This patch was tested on HP Envy x360 13-AR0107AU with Realtek ALC285 The only unsolved problem is output amplifier of all built-in speakers is too weak, which causes volume of built-in speakers cannot be loud as vendor's proprietary driver due to missing _DSD parameter in the firmware. The solution is currently on research. Expected to has another patch in the future. Potential fix to related issues, need test before close those issues: - https://bugzilla.kernel.org/show_bug.cgi?id=3D189331 - https://bugzilla.kernel.org/show_bug.cgi?id=3D216632 - https://bugzilla.kernel.org/show_bug.cgi?id=3D216311 - https://bugzilla.kernel.org/show_bug.cgi?id=3D213507 Signed-off-by: Athaariq Ardhiansyah Message-ID: <20240310140249.3695-1-foss@athaariq.my.id> Signed-off-by: Takashi Iwai Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- sound/pci/hda/patch_realtek.c | 63 +++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 3a86f0fd78278..200d0b953d3b2 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -6670,6 +6670,60 @@ static void alc285_fixup_hp_spectre_x360(struct hda_= codec *codec, } } =20 +static void alc285_fixup_hp_envy_x360(struct hda_codec *codec, + const struct hda_fixup *fix, + int action) +{ + static const struct coef_fw coefs[] =3D { + WRITE_COEF(0x08, 0x6a0c), WRITE_COEF(0x0d, 0xa023), + WRITE_COEF(0x10, 0x0320), WRITE_COEF(0x1a, 0x8c03), + WRITE_COEF(0x25, 0x1800), WRITE_COEF(0x26, 0x003a), + WRITE_COEF(0x28, 0x1dfe), WRITE_COEF(0x29, 0xb014), + WRITE_COEF(0x2b, 0x1dfe), WRITE_COEF(0x37, 0xfe15), + WRITE_COEF(0x38, 0x7909), WRITE_COEF(0x45, 0xd489), + WRITE_COEF(0x46, 0x00f4), WRITE_COEF(0x4a, 0x21e0), + WRITE_COEF(0x66, 0x03f0), WRITE_COEF(0x67, 0x1000), + WRITE_COEF(0x6e, 0x1005), { } + }; + + static const struct hda_pintbl pincfgs[] =3D { + { 0x12, 0xb7a60130 }, /* Internal microphone*/ + { 0x14, 0x90170150 }, /* B&O soundbar speakers */ + { 0x17, 0x90170153 }, /* Side speakers */ + { 0x19, 0x03a11040 }, /* Headset microphone */ + { } + }; + + switch (action) { + case HDA_FIXUP_ACT_PRE_PROBE: + snd_hda_apply_pincfgs(codec, pincfgs); + + /* Fixes volume control problem for side speakers */ + alc295_fixup_disable_dac3(codec, fix, action); + + /* Fixes no sound from headset speaker */ + snd_hda_codec_amp_stereo(codec, 0x21, HDA_OUTPUT, 0, -1, 0); + + /* Auto-enable headset mic when plugged */ + snd_hda_jack_set_gating_jack(codec, 0x19, 0x21); + + /* Headset mic volume enhancement */ + snd_hda_codec_set_pin_target(codec, 0x19, PIN_VREF50); + break; + case HDA_FIXUP_ACT_INIT: + alc_process_coef_fw(codec, coefs); + break; + case HDA_FIXUP_ACT_BUILD: + rename_ctl(codec, "Bass Speaker Playback Volume", + "B&O-Tuned Playback Volume"); + rename_ctl(codec, "Front Playback Switch", + "B&O Soundbar Playback Switch"); + rename_ctl(codec, "Bass Speaker Playback Switch", + "Side Speaker Playback Switch"); + break; + } +} + /* for hda_fixup_thinkpad_acpi() */ #include "thinkpad_helper.c" =20 @@ -6877,6 +6931,7 @@ enum { ALC280_FIXUP_HP_9480M, ALC245_FIXUP_HP_X360_AMP, ALC285_FIXUP_HP_SPECTRE_X360_EB1, + ALC285_FIXUP_HP_ENVY_X360, ALC288_FIXUP_DELL_HEADSET_MODE, ALC288_FIXUP_DELL1_MIC_NO_PRESENCE, ALC288_FIXUP_DELL_XPS_13, @@ -8679,6 +8734,12 @@ static const struct hda_fixup alc269_fixups[] =3D { .type =3D HDA_FIXUP_FUNC, .v.func =3D alc285_fixup_hp_spectre_x360_eb1 }, + [ALC285_FIXUP_HP_ENVY_X360] =3D { + .type =3D HDA_FIXUP_FUNC, + .v.func =3D alc285_fixup_hp_envy_x360, + .chained =3D true, + .chain_id =3D ALC285_FIXUP_HP_GPIO_AMP_INIT, + }, [ALC287_FIXUP_IDEAPAD_BASS_SPK_AMP] =3D { .type =3D HDA_FIXUP_FUNC, .v.func =3D alc285_fixup_ideapad_s740_coef, @@ -9066,6 +9127,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = =3D { SND_PCI_QUIRK(0x103c, 0x84e7, "HP Pavilion 15", ALC269_FIXUP_HP_MUTE_LED_= MIC3), SND_PCI_QUIRK(0x103c, 0x8519, "HP Spectre x360 15-df0xxx", ALC285_FIXUP_H= P_SPECTRE_X360), SND_PCI_QUIRK(0x103c, 0x8537, "HP ProBook 440 G6", ALC236_FIXUP_HP_MUTE_L= ED_MICMUTE_VREF), + SND_PCI_QUIRK(0x103c, 0x85de, "HP Envy x360 13-ar0xxx", ALC285_FIXUP_HP_E= NVY_X360), SND_PCI_QUIRK(0x103c, 0x860f, "HP ZBook 15 G6", ALC285_FIXUP_HP_GPIO_AMP_= INIT), SND_PCI_QUIRK(0x103c, 0x861f, "HP Elite Dragonfly G1", ALC285_FIXUP_HP_GP= IO_AMP_INIT), SND_PCI_QUIRK(0x103c, 0x869d, "HP", ALC236_FIXUP_HP_MUTE_LED), @@ -9600,6 +9662,7 @@ static const struct hda_model_fixup alc269_fixup_mode= ls[] =3D { {.id =3D ALC295_FIXUP_HP_OMEN, .name =3D "alc295-hp-omen"}, {.id =3D ALC285_FIXUP_HP_SPECTRE_X360, .name =3D "alc285-hp-spectre-x360"= }, {.id =3D ALC285_FIXUP_HP_SPECTRE_X360_EB1, .name =3D "alc285-hp-spectre-x= 360-eb1"}, + {.id =3D ALC285_FIXUP_HP_ENVY_X360, .name =3D "alc285-hp-envy-x360"}, {.id =3D ALC287_FIXUP_IDEAPAD_BASS_SPK_AMP, .name =3D "alc287-ideapad-bas= s-spk-amp"}, {.id =3D ALC623_FIXUP_LENOVO_THINKSTATION_P340, .name =3D "alc623-lenovo-= thinkstation-p340"}, {.id =3D ALC255_FIXUP_ACER_HEADPHONE_AND_MIC, .name =3D "alc255-acer-head= phone-and-mic"}, --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2EE5627CBE0; Sun, 24 Mar 2024 23:39:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323545; cv=none; b=PpPj1p1XKDr2pWZbclWgWQP6z0WzMN9vhfQXAiCa9S6S5LJUxZGVVpUKQnPJP0zoXCg5qZvBse5CmAv9Cs0mfjocMxbnli+WNd0Edxd4DtshGgShXHkW9pN7PzIwdscvz3Rvf8ozPQsjHXapf/E20dc8m9/BBVifjpRrqA/15f0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323545; c=relaxed/simple; bh=c+A4NeIGq37Vm8i5Cry9H8iEiSFWR9RE6zV+f7W98mQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=E809K2jUlD0F2BMXxvN9u7R8thtL8fMVZasGmgUBDY6D/Dz+64RS2CCXo/2X1hR0Gwg445rh2N1mRqmCYb/gKUDlUp6U/xkoye53OajAIka/q5k50uUi5t6QAGC676MMq3ydZRsfcDBhA1SYyM603RKra3q+V71wZ+PkRHbS/ws= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Hja+rks7; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Hja+rks7" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 69021C433B1; Sun, 24 Mar 2024 23:39:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323545; bh=c+A4NeIGq37Vm8i5Cry9H8iEiSFWR9RE6zV+f7W98mQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Hja+rks7OuvlX2MWU88qLsvgqwTGxFHp8Jc0jrLM5M9FYuqkNjGMuCvya6P7OuDdZ jRzn2JJN/bacilDkPe8pjtZgwZXh9a1EabAZyZSl4YlT4txyMs/C4nFXfZCCmCW1Sn 8xrPXTc7q1wOmnuCd2NCcOVE6oCuIyy5cvlY156VuBGex85HRMx/LL03gY2NJcdxb7 TQpghIZ9mE/A2s7l9WUaQzWC2i9kCFBWXtKQT7ci/9yfKd1GHtcyRKSAz8nFLnqS/7 7XRMKT2Yo1rZGiPrDC9zWhOb1udBLh+ibJSwsgObqxwHGKDkg22usxtKM8H4yxS25h 1oI+M/gSQiEVw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Johan Carlsson , Takashi Iwai , Sasha Levin Subject: [PATCH 5.15 253/317] ALSA: usb-audio: Stop parsing channels bits when all channels are found. Date: Sun, 24 Mar 2024 19:33:53 -0400 Message-ID: <20240324233458.1352854-254-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Johan Carlsson [ Upstream commit a39d51ff1f52cd0b6fe7d379ac93bd8b4237d1b7 ] If a usb audio device sets more bits than the amount of channels it could write outside of the map array. Signed-off-by: Johan Carlsson Fixes: 04324ccc75f9 ("ALSA: usb-audio: add channel map support") Message-ID: <20240313081509.9801-1-johan.carlsson@teenage.engineering> Signed-off-by: Takashi Iwai Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- sound/usb/stream.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/sound/usb/stream.c b/sound/usb/stream.c index 3d4add94e367d..d5409f3879455 100644 --- a/sound/usb/stream.c +++ b/sound/usb/stream.c @@ -300,9 +300,12 @@ static struct snd_pcm_chmap_elem *convert_chmap(int ch= annels, unsigned int bits, c =3D 0; =20 if (bits) { - for (; bits && *maps; maps++, bits >>=3D 1) + for (; bits && *maps; maps++, bits >>=3D 1) { if (bits & 1) chmap->map[c++] =3D *maps; + if (c =3D=3D chmap->channels) + break; + } } else { /* If we're missing wChannelConfig, then guess something to make sure the channel map is not skipped entirely */ --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 212FF27CBF3; Sun, 24 Mar 2024 23:39:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323547; cv=none; b=dsWYAGN0pmXNe/iLhsUhbUSvm6LKbwnkVda5GE1TJKHPhYrj2KIkucUelOSNIaE/DKvAXDtLd2ZqEj21PLl+cWnCLVWYiyvu2ZfM6j6yytcSH77GvzMxEzOutwqnyRGgTItyEGXrTChOT7Y3gkGtDtgB4B9/vTISUTytftt4+FE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323547; c=relaxed/simple; bh=fjM6vof3XjpYnzJ3HZjB4SSWGQ7zcn+LI18Tle961iA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=M2JZn1+zDCuwzXHpODdCZttzxEDr9PeaVBaX1Y8xVtghBnAv1oFfuU7oh13xFMmf7JPfoUAw70XbSxBSXrDyD76e1GaKRQV7JRnEAr0AXHO9XoTOA1mEOIgroKZ8hIUH9kLDslHgoLbB1lFRoYGvnl+dkC0ECOM/IdtnxTH2t6g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=BFzJQPgI; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="BFzJQPgI" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4A17FC43390; Sun, 24 Mar 2024 23:39:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323546; bh=fjM6vof3XjpYnzJ3HZjB4SSWGQ7zcn+LI18Tle961iA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=BFzJQPgIEZ1vuq40rdgxNZ3xGzRUPjYTaQpBcxSnBpZXqb9Q5VN96Y7qNR0jgPoRF g96eOCvMANBsAWlW/h9MpMrkAyOffm0Q3Fa15hRGKLzoMY+btNXP+5kyA3NHtniOOS p7VFbaGXRlBwbfY4VSc6Fu3hfJdAqvSgs/khPSxN/OWWzWaYVF96LNk88UM8ePWlXG XYNy7/+0GWsl3yXRHGaVxXufyRjIH7sOAzaZkWfWeohOGH0t/z2txtzFg+3ls+jNcm PEnu6a3vurpw3JZC13rcBFqHBjsuVryia0+T5WDhl91oJ8hj/Y/2X5Yero0wbc2reS Ooglz27b4YCjQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: William Kucharski , Bart Van Assche , Leon Romanovsky , Sasha Levin Subject: [PATCH 5.15 254/317] RDMA/srpt: Do not register event handler until srpt device is fully setup Date: Sun, 24 Mar 2024 19:33:54 -0400 Message-ID: <20240324233458.1352854-255-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: William Kucharski [ Upstream commit c21a8870c98611e8f892511825c9607f1e2cd456 ] Upon rare occasions, KASAN reports a use-after-free Write in srpt_refresh_port(). This seems to be because an event handler is registered before the srpt device is fully setup and a race condition upon error may leave a partially setup event handler in place. Instead, only register the event handler after srpt device initialization is complete. Fixes: a42d985bd5b2 ("ib_srpt: Initial SRP Target merge for v3.3-rc1") Signed-off-by: William Kucharski Link: https://lore.kernel.org/r/20240202091549.991784-2-william.kucharski@o= racle.com Reviewed-by: Bart Van Assche Signed-off-by: Leon Romanovsky Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/infiniband/ulp/srpt/ib_srpt.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/infiniband/ulp/srpt/ib_srpt.c b/drivers/infiniband/ulp= /srpt/ib_srpt.c index 60f9c612eb3c3..1b44ce0ac991c 100644 --- a/drivers/infiniband/ulp/srpt/ib_srpt.c +++ b/drivers/infiniband/ulp/srpt/ib_srpt.c @@ -3209,7 +3209,6 @@ static int srpt_add_one(struct ib_device *device) =20 INIT_IB_EVENT_HANDLER(&sdev->event_handler, sdev->device, srpt_event_handler); - ib_register_event_handler(&sdev->event_handler); =20 for (i =3D 1; i <=3D sdev->device->phys_port_cnt; i++) { sport =3D &sdev->port[i - 1]; @@ -3232,6 +3231,7 @@ static int srpt_add_one(struct ib_device *device) } } =20 + ib_register_event_handler(&sdev->event_handler); spin_lock(&srpt_dev_lock); list_add_tail(&sdev->list, &srpt_dev_list); spin_unlock(&srpt_dev_lock); @@ -3242,7 +3242,6 @@ static int srpt_add_one(struct ib_device *device) =20 err_port: srpt_unregister_mad_agent(sdev, i); - ib_unregister_event_handler(&sdev->event_handler); err_cm: if (sdev->cm_id) ib_destroy_cm_id(sdev->cm_id); --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0E9F727CBFA; Sun, 24 Mar 2024 23:39:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323548; cv=none; b=W/0MtnPdzT3e3H/whKjQJQC8J0M4EnE3gHXwEfmWqMifHUqOEpPabTAum8PMWs/oNLZfcCILFO24pvfWhE2aK2M9/Auhl+gL0F0s5rhUWyyw+H3GIapE1z8m4fMG3/oX1wTHGKom0LSpucP+TWwZQQc1sJ5JTGE5ncC3tbY5OEM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323548; c=relaxed/simple; bh=+AcsBaoLxVGI1t3c7qV6EmV93CHa8arYmEj6shoLuck=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=A2QELzeIvhMDuImEL0v/TG9I26HHVb0YaT3tkmIl1hBuDXlMhiOEhiNWbqchGMnRUHTKUADObx2GjajYUriz/tPXmJsCOn4D6Q2FZKKFt9NqHgE9yk7B9+Aa/CLol/zyVu2JaUptNoKL6L5YkT3iIxizc5SFE+pH05VCo3BC/VQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=JFje+3Ny; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="JFje+3Ny" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 42D5AC43394; Sun, 24 Mar 2024 23:39:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323546; bh=+AcsBaoLxVGI1t3c7qV6EmV93CHa8arYmEj6shoLuck=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=JFje+3NypJnbx09IJChJ0kgKjfo8w/s1ifEGz4/0HR7bqkpO4XhKrtPXM7dmAaHUJ Ji/AOCmq9JQI0F9ppbbmQr1Al/xfWt02YThYNKMFZ/UAjNOuUI3nrpOIVoT2Efeazs q0Ot1F+W/hTVi4v3reKz6V4MdGOI2y1jeIYl3ZUOs9XATB4KKlSX0XAet8Oksd8SdF L2XzbEx1icJ4X3Psn4vbksHkshzN03XT8Kh9l8bGVXFoSN2WNf4WCfnoCKJ18NpXbF /iWgTJ3L6gYHxrPYawS/VpIXjRXRZPLl8HqYOIT3vOU8SwBAyS+6i6cLSD1gRGUZuw Fy6D0DqEXEPWA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Chao Yu , Jaegeuk Kim , Sasha Levin Subject: [PATCH 5.15 255/317] f2fs: multidevice: support direct IO Date: Sun, 24 Mar 2024 19:33:55 -0400 Message-ID: <20240324233458.1352854-256-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Chao Yu [ Upstream commit 71f2c8206202584c644eef5ca7efe91fc8305c1f ] Commit 3c62be17d4f5 ("f2fs: support multiple devices") missed to support direct IO for multiple device feature, this patch adds to support the missing part of multidevice feature. In addition, for multiple device image, we should be aware of any issued direct write IO rather than just buffered write IO, so that fsync and syncfs can issue a preflush command to the device where direct write IO goes, to persist user data for posix compliant. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim Stable-dep-of: fd244524c2cf ("f2fs: compress: fix to cover normal cluster w= rite with cp_rwsem") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- fs/f2fs/data.c | 57 +++++++++++++++++++++++++++++++++++-- fs/f2fs/f2fs.h | 25 ++++++++++++++-- fs/f2fs/segment.c | 35 ++++++++++++++--------- fs/f2fs/super.c | 7 +++++ include/trace/events/f2fs.h | 21 ++++++++++---- 5 files changed, 120 insertions(+), 25 deletions(-) diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c index 5766a9f0773b1..e005f97fd273e 100644 --- a/fs/f2fs/data.c +++ b/fs/f2fs/data.c @@ -1468,10 +1468,15 @@ int f2fs_map_blocks(struct inode *inode, struct f2f= s_map_blocks *map, struct extent_info ei =3D {0, }; block_t blkaddr; unsigned int start_pgofs; + int bidx =3D 0; =20 if (!maxblocks) return 0; =20 + map->m_bdev =3D inode->i_sb->s_bdev; + map->m_multidev_dio =3D + f2fs_allow_multi_device_dio(F2FS_I_SB(inode), flag); + map->m_len =3D 0; map->m_flags =3D 0; =20 @@ -1494,6 +1499,21 @@ int f2fs_map_blocks(struct inode *inode, struct f2fs= _map_blocks *map, if (flag =3D=3D F2FS_GET_BLOCK_DIO) f2fs_wait_on_block_writeback_range(inode, map->m_pblk, map->m_len); + + if (map->m_multidev_dio) { + block_t blk_addr =3D map->m_pblk; + + bidx =3D f2fs_target_device_index(sbi, map->m_pblk); + + map->m_bdev =3D FDEV(bidx).bdev; + map->m_pblk -=3D FDEV(bidx).start_blk; + map->m_len =3D min(map->m_len, + FDEV(bidx).end_blk + 1 - map->m_pblk); + + if (map->m_may_create) + f2fs_update_device_state(sbi, inode->i_ino, + blk_addr, map->m_len); + } goto out; } =20 @@ -1612,6 +1632,9 @@ int f2fs_map_blocks(struct inode *inode, struct f2fs_= map_blocks *map, if (flag =3D=3D F2FS_GET_BLOCK_PRE_AIO) goto skip; =20 + if (map->m_multidev_dio) + bidx =3D f2fs_target_device_index(sbi, blkaddr); + if (map->m_len =3D=3D 0) { /* preallocated unwritten block should be mapped for fiemap. */ if (blkaddr =3D=3D NEW_ADDR) @@ -1620,10 +1643,15 @@ int f2fs_map_blocks(struct inode *inode, struct f2f= s_map_blocks *map, =20 map->m_pblk =3D blkaddr; map->m_len =3D 1; + + if (map->m_multidev_dio) + map->m_bdev =3D FDEV(bidx).bdev; } else if ((map->m_pblk !=3D NEW_ADDR && blkaddr =3D=3D (map->m_pblk + ofs)) || (map->m_pblk =3D=3D NEW_ADDR && blkaddr =3D=3D NEW_ADDR) || flag =3D=3D F2FS_GET_BLOCK_PRE_DIO) { + if (map->m_multidev_dio && map->m_bdev !=3D FDEV(bidx).bdev) + goto sync_out; ofs++; map->m_len++; } else { @@ -1676,11 +1704,31 @@ int f2fs_map_blocks(struct inode *inode, struct f2f= s_map_blocks *map, =20 sync_out: =20 - /* for hardware encryption, but to avoid potential issue in future */ - if (flag =3D=3D F2FS_GET_BLOCK_DIO && map->m_flags & F2FS_MAP_MAPPED) + if (flag =3D=3D F2FS_GET_BLOCK_DIO && map->m_flags & F2FS_MAP_MAPPED) { + /* + * for hardware encryption, but to avoid potential issue + * in future + */ f2fs_wait_on_block_writeback_range(inode, map->m_pblk, map->m_len); =20 + if (map->m_multidev_dio) { + block_t blk_addr =3D map->m_pblk; + + bidx =3D f2fs_target_device_index(sbi, map->m_pblk); + + map->m_bdev =3D FDEV(bidx).bdev; + map->m_pblk -=3D FDEV(bidx).start_blk; + + if (map->m_may_create) + f2fs_update_device_state(sbi, inode->i_ino, + blk_addr, map->m_len); + + f2fs_bug_on(sbi, blk_addr + map->m_len > + FDEV(bidx).end_blk + 1); + } + } + if (flag =3D=3D F2FS_GET_BLOCK_PRECACHE) { if (map->m_flags & F2FS_MAP_MAPPED) { unsigned int ofs =3D start_pgofs - map->m_lblk; @@ -1699,7 +1747,7 @@ int f2fs_map_blocks(struct inode *inode, struct f2fs_= map_blocks *map, f2fs_balance_fs(sbi, dn.node_changed); } out: - trace_f2fs_map_blocks(inode, map, err); + trace_f2fs_map_blocks(inode, map, create, flag, err); return err; } =20 @@ -1758,6 +1806,9 @@ static int __get_data_block(struct inode *inode, sect= or_t iblock, map_bh(bh, inode->i_sb, map.m_pblk); bh->b_state =3D (bh->b_state & ~F2FS_MAP_FLAGS) | map.m_flags; bh->b_size =3D blks_to_bytes(inode, map.m_len); + + if (map.m_multidev_dio) + bh->b_bdev =3D map.m_bdev; } return err; } diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h index 4cabc37c20b90..e326e7efea391 100644 --- a/fs/f2fs/f2fs.h +++ b/fs/f2fs/f2fs.h @@ -622,6 +622,7 @@ struct extent_tree { F2FS_MAP_UNWRITTEN) =20 struct f2fs_map_blocks { + struct block_device *m_bdev; /* for multi-device dio */ block_t m_pblk; block_t m_lblk; unsigned int m_len; @@ -630,6 +631,7 @@ struct f2fs_map_blocks { pgoff_t *m_next_extent; /* point to next possible extent */ int m_seg_type; bool m_may_create; /* indicate it is from write path */ + bool m_multidev_dio; /* indicate it allows multi-device dio */ }; =20 /* for flag in get_data_block */ @@ -1736,12 +1738,15 @@ struct f2fs_sb_info { =20 /* For shrinker support */ struct list_head s_list; + struct mutex umount_mutex; + unsigned int shrinker_run_no; + + /* For multi devices */ int s_ndevs; /* number of devices */ struct f2fs_dev_info *devs; /* for device list */ unsigned int dirty_device; /* for checkpoint data flush */ spinlock_t dev_lock; /* protect dirty_device */ - struct mutex umount_mutex; - unsigned int shrinker_run_no; + bool aligned_blksize; /* all devices has the same logical blksize */ =20 /* For write statistics */ u64 sectors_written_start; @@ -3517,6 +3522,8 @@ void f2fs_allocate_data_block(struct f2fs_sb_info *sb= i, struct page *page, block_t old_blkaddr, block_t *new_blkaddr, struct f2fs_summary *sum, int type, struct f2fs_io_info *fio); +void f2fs_update_device_state(struct f2fs_sb_info *sbi, nid_t ino, + block_t blkaddr, unsigned int blkcnt); void f2fs_wait_on_page_writeback(struct page *page, enum page_type type, bool ordered, bool locked); void f2fs_wait_on_block_writeback(struct inode *inode, block_t blkaddr); @@ -4335,6 +4342,16 @@ static inline int block_unaligned_IO(struct inode *i= node, return align & blocksize_mask; } =20 +static inline bool f2fs_allow_multi_device_dio(struct f2fs_sb_info *sbi, + int flag) +{ + if (!f2fs_is_multi_device(sbi)) + return false; + if (flag !=3D F2FS_GET_BLOCK_DIO) + return false; + return sbi->aligned_blksize; +} + static inline bool f2fs_force_buffered_io(struct inode *inode, struct kiocb *iocb, struct iov_iter *iter) { @@ -4343,7 +4360,9 @@ static inline bool f2fs_force_buffered_io(struct inod= e *inode, =20 if (f2fs_post_read_required(inode)) return true; - if (f2fs_is_multi_device(sbi)) + + /* disallow direct IO if any of devices has unaligned blksize */ + if (f2fs_is_multi_device(sbi) && !sbi->aligned_blksize) return true; /* * for blkzoned device, fallback direct IO to buffered IO, so diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c index 79ad696cddec0..25d53617a50e6 100644 --- a/fs/f2fs/segment.c +++ b/fs/f2fs/segment.c @@ -3490,24 +3490,30 @@ void f2fs_allocate_data_block(struct f2fs_sb_info *= sbi, struct page *page, up_read(&SM_I(sbi)->curseg_lock); } =20 -static void update_device_state(struct f2fs_io_info *fio) +void f2fs_update_device_state(struct f2fs_sb_info *sbi, nid_t ino, + block_t blkaddr, unsigned int blkcnt) { - struct f2fs_sb_info *sbi =3D fio->sbi; - unsigned int devidx; - if (!f2fs_is_multi_device(sbi)) return; =20 - devidx =3D f2fs_target_device_index(sbi, fio->new_blkaddr); + while (1) { + unsigned int devidx =3D f2fs_target_device_index(sbi, blkaddr); + unsigned int blks =3D FDEV(devidx).end_blk - blkaddr + 1; =20 - /* update device state for fsync */ - f2fs_set_dirty_device(sbi, fio->ino, devidx, FLUSH_INO); + /* update device state for fsync */ + f2fs_set_dirty_device(sbi, ino, devidx, FLUSH_INO); =20 - /* update device state for checkpoint */ - if (!f2fs_test_bit(devidx, (char *)&sbi->dirty_device)) { - spin_lock(&sbi->dev_lock); - f2fs_set_bit(devidx, (char *)&sbi->dirty_device); - spin_unlock(&sbi->dev_lock); + /* update device state for checkpoint */ + if (!f2fs_test_bit(devidx, (char *)&sbi->dirty_device)) { + spin_lock(&sbi->dev_lock); + f2fs_set_bit(devidx, (char *)&sbi->dirty_device); + spin_unlock(&sbi->dev_lock); + } + + if (blkcnt <=3D blks) + break; + blkcnt -=3D blks; + blkaddr +=3D blks; } } =20 @@ -3534,7 +3540,7 @@ static void do_write_page(struct f2fs_summary *sum, s= truct f2fs_io_info *fio) goto reallocate; } =20 - update_device_state(fio); + f2fs_update_device_state(fio->sbi, fio->ino, fio->new_blkaddr, 1); =20 if (keep_order) up_read(&fio->sbi->io_order_lock); @@ -3623,7 +3629,8 @@ int f2fs_inplace_write_data(struct f2fs_io_info *fio) else err =3D f2fs_submit_page_bio(fio); if (!err) { - update_device_state(fio); + f2fs_update_device_state(fio->sbi, fio->ino, + fio->new_blkaddr, 1); f2fs_update_iostat(fio->sbi, fio->io_type, F2FS_BLKSIZE); } =20 diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c index d4a76c2deb806..5160bf4f4a3ec 100644 --- a/fs/f2fs/super.c +++ b/fs/f2fs/super.c @@ -3831,6 +3831,7 @@ static int f2fs_scan_devices(struct f2fs_sb_info *sbi) { struct f2fs_super_block *raw_super =3D F2FS_RAW_SUPER(sbi); unsigned int max_devices =3D MAX_DEVICES; + unsigned int logical_blksize; int i; =20 /* Initialize single device information */ @@ -3851,6 +3852,9 @@ static int f2fs_scan_devices(struct f2fs_sb_info *sbi) if (!sbi->devs) return -ENOMEM; =20 + logical_blksize =3D bdev_logical_block_size(sbi->sb->s_bdev); + sbi->aligned_blksize =3D true; + for (i =3D 0; i < max_devices; i++) { =20 if (i > 0 && !RDEV(i).path[0]) @@ -3887,6 +3891,9 @@ static int f2fs_scan_devices(struct f2fs_sb_info *sbi) /* to release errored devices */ sbi->s_ndevs =3D i + 1; =20 + if (logical_blksize !=3D bdev_logical_block_size(FDEV(i).bdev)) + sbi->aligned_blksize =3D false; + #ifdef CONFIG_BLK_DEV_ZONED if (bdev_zoned_model(FDEV(i).bdev) =3D=3D BLK_ZONED_HM && !f2fs_sb_has_blkzoned(sbi)) { diff --git a/include/trace/events/f2fs.h b/include/trace/events/f2fs.h index 6033eaddcb749..8670adaa23f91 100644 --- a/include/trace/events/f2fs.h +++ b/include/trace/events/f2fs.h @@ -570,9 +570,10 @@ TRACE_EVENT(f2fs_file_write_iter, ); =20 TRACE_EVENT(f2fs_map_blocks, - TP_PROTO(struct inode *inode, struct f2fs_map_blocks *map, int ret), + TP_PROTO(struct inode *inode, struct f2fs_map_blocks *map, + int create, int flag, int ret), =20 - TP_ARGS(inode, map, ret), + TP_ARGS(inode, map, create, flag, ret), =20 TP_STRUCT__entry( __field(dev_t, dev) @@ -583,11 +584,14 @@ TRACE_EVENT(f2fs_map_blocks, __field(unsigned int, m_flags) __field(int, m_seg_type) __field(bool, m_may_create) + __field(bool, m_multidev_dio) + __field(int, create) + __field(int, flag) __field(int, ret) ), =20 TP_fast_assign( - __entry->dev =3D inode->i_sb->s_dev; + __entry->dev =3D map->m_bdev->bd_dev; __entry->ino =3D inode->i_ino; __entry->m_lblk =3D map->m_lblk; __entry->m_pblk =3D map->m_pblk; @@ -595,12 +599,16 @@ TRACE_EVENT(f2fs_map_blocks, __entry->m_flags =3D map->m_flags; __entry->m_seg_type =3D map->m_seg_type; __entry->m_may_create =3D map->m_may_create; + __entry->m_multidev_dio =3D map->m_multidev_dio; + __entry->create =3D create; + __entry->flag =3D flag; __entry->ret =3D ret; ), =20 TP_printk("dev =3D (%d,%d), ino =3D %lu, file offset =3D %llu, " - "start blkaddr =3D 0x%llx, len =3D 0x%llx, flags =3D %u," - "seg_type =3D %d, may_create =3D %d, err =3D %d", + "start blkaddr =3D 0x%llx, len =3D 0x%llx, flags =3D %u, " + "seg_type =3D %d, may_create =3D %d, multidevice =3D %d, " + "create =3D %d, flag =3D %d, err =3D %d", show_dev_ino(__entry), (unsigned long long)__entry->m_lblk, (unsigned long long)__entry->m_pblk, @@ -608,6 +616,9 @@ TRACE_EVENT(f2fs_map_blocks, __entry->m_flags, __entry->m_seg_type, __entry->m_may_create, + __entry->m_multidev_dio, + __entry->create, + __entry->flag, __entry->ret) ); =20 --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0F22F1782FC; Sun, 24 Mar 2024 23:39:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323549; cv=none; b=VWZoz2oEHGUk6Yjz7UE6DxISwv75BMMcRO6A96NO+QhcBAaXPg9/m766+mUnW8LC/I1z5IipZR6SoiX746184HKVzbqUOLeuG7f74MIyzYojVh49GE17EZRKIjKWBWwh0GKCx91FTVGOqmRX8i9kFoAfFznoZRDAjXYZHJRBth0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323549; c=relaxed/simple; bh=8/0jLhDjPtorYrmIR3Yy6n8JS/uhDpyE+yyZiYhj6VQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=nX6gTaWFNRjIWTBOP/IMlgqW3F4novTwhR49kgfelgHL62l3afcavOU/5vPu7Bqw2139gp/aYrN4w9t3EC1McTDNNlWsn7rDz4hKcZqJBHY51LIIZaG+CUkNZt7/9UFRE06A7ew2dbmTfTbL2+w3KtQbDNAqbGz48AhWWwDwZLU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=hOc3OLQe; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="hOc3OLQe" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2E4C1C433A6; Sun, 24 Mar 2024 23:39:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323547; bh=8/0jLhDjPtorYrmIR3Yy6n8JS/uhDpyE+yyZiYhj6VQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=hOc3OLQeoVcJocon90MIZKPsgGvZ7iO6EsktDwe0WAaStGoP8/CRtbMKKZINigzi1 fEmyHkg2GDTT+DnC7mkZWU34urRlN6Dg2M2iGGPSMERKTBqf6rL/FlmckwhsGKtM74 eKTRznswtNcvFhfKQjPrllKT1pATmIj0BoFkTW6O06WA9Lj8VmDA7usCBNvZ5BisGw LJde8LWdq3oMvSqMPFif3ewl3N07si1uhfSVBR8c0U+uT4IzUF+manUKaOZvZq/q8d 1z8bYPe7t+7hJNj111q1BwFJkLcqUqFivtq/GZcyV+hoA7/hCcM5ZmUjcGC5rjNkKo tXGFR2SDzwqtw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Hyeong-Jun Kim , Chao Yu , Jaegeuk Kim , Sasha Levin Subject: [PATCH 5.15 256/317] f2fs: invalidate META_MAPPING before IPU/DIO write Date: Sun, 24 Mar 2024 19:33:56 -0400 Message-ID: <20240324233458.1352854-257-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Hyeong-Jun Kim [ Upstream commit e3b49ea36802053f312013fd4ccb6e59920a9f76 ] Encrypted pages during GC are read and cached in META_MAPPING. However, due to cached pages in META_MAPPING, there is an issue where newly written pages are lost by IPU or DIO writes. Thread A - f2fs_gc() Thread B /* phase 3 */ down_write(i_gc_rwsem) ra_data_block() ---- (a) up_write(i_gc_rwsem) f2fs_direct_IO() : - down_read(i_gc_rwsem) - __blockdev_direct_io() - get_data_block_dio_write() - f2fs_dio_submit_bio() ---- (b) - up_read(i_gc_rwsem) /* phase 4 */ down_write(i_gc_rwsem) move_data_block() ---- (c) up_write(i_gc_rwsem) (a) In phase 3 of f2fs_gc(), up-to-date page is read from storage and cached in META_MAPPING. (b) In thread B, writing new data by IPU or DIO write on same blkaddr as read in (a). cached page in META_MAPPING become out-dated. (c) In phase 4 of f2fs_gc(), out-dated page in META_MAPPING is copied to new blkaddr. In conclusion, the newly written data in (b) is lost. To address this issue, invalidating pages in META_MAPPING before IPU or DIO write. Fixes: 6aa58d8ad20a ("f2fs: readahead encrypted block during GC") Signed-off-by: Hyeong-Jun Kim Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim Stable-dep-of: fd244524c2cf ("f2fs: compress: fix to cover normal cluster w= rite with cp_rwsem") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- fs/f2fs/data.c | 2 ++ fs/f2fs/segment.c | 3 +++ 2 files changed, 5 insertions(+) diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c index e005f97fd273e..25dafd1261d71 100644 --- a/fs/f2fs/data.c +++ b/fs/f2fs/data.c @@ -1711,6 +1711,8 @@ int f2fs_map_blocks(struct inode *inode, struct f2fs_= map_blocks *map, */ f2fs_wait_on_block_writeback_range(inode, map->m_pblk, map->m_len); + invalidate_mapping_pages(META_MAPPING(sbi), + map->m_pblk, map->m_pblk); =20 if (map->m_multidev_dio) { block_t blk_addr =3D map->m_pblk; diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c index 25d53617a50e6..5eca50e50e16b 100644 --- a/fs/f2fs/segment.c +++ b/fs/f2fs/segment.c @@ -3622,6 +3622,9 @@ int f2fs_inplace_write_data(struct f2fs_io_info *fio) goto drop_bio; } =20 + invalidate_mapping_pages(META_MAPPING(sbi), + fio->new_blkaddr, fio->new_blkaddr); + stat_inc_inplace_blocks(fio->sbi); =20 if (fio->bio && !(SM_I(sbi)->ipu_policy & (1 << F2FS_IPU_NOCACHE))) --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6D79121C96D; Sun, 24 Mar 2024 23:39:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323551; cv=none; b=BQjseZfTHg0Ea1obiOsdv/UOaq1CND8JlMD3Np/OjXPLfSKv8zj9sarzyFrXePadmOE4aIUd+eHGocMEpuH9A9Xaf+CyVZ1RPbbc6raLGfP7OG5IstgUyBj9d8JF5ucdG8wZz85IYS5BZ9x8CEaT8xhtvv/cBNCMrlPeG+lr/z4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323551; c=relaxed/simple; bh=Cx4KeOsxACoPJa7tvaqkAJSRCvtw+xZI4off/mQPwMw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=uAMyG840QGsM6Wt/Gw7S8LBwL+zEFooISrFyygpBxXhaPX6kjRKgcKINHTSHjUmDQRmoeZSqlwltUZD7i8nUiiSdMb0BuyqCDfqtNo8ECmvhGZWuPrBnpNzwVjUwQTRkYsve5Y57CFQfxuxpyOKEfdzKz4uT1/VWkWMe3fWR71o= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=IEz/onxW; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="IEz/onxW" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2F7F6C43394; Sun, 24 Mar 2024 23:39:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323550; bh=Cx4KeOsxACoPJa7tvaqkAJSRCvtw+xZI4off/mQPwMw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=IEz/onxWr1EvSXIWJ44v+Ux3L4npa68W4RVSj2nkpmbizSps23j971ygjy5b06X0K DFCX+gnDic5YJ8btuHFhwyk03hprpNk0LQos60P3ZT/V74KdgDooYtLePvK/3bDD6z oSPUCw/YalHpjMYevwHO+fRU/i/qMSOUbmwH2R1eT/cHIwCr5AUhe2Mzwxl8DJHp+V rNESWCTOLrZUS58bscttw2iSBtVt/3ZvOma0SWSMjN4p2kBIVIroPHakKbZka+0320 c0T8EBNaIFKqVNEef2EHg7GU6nP24mMfcyTFqjF8oicrxnbJQIs4zM+dAjvhw685LP eSHj0iA6QA6GA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: NeilBrown , Anna Schumaker , Chao Yu , "Darrick J . Wong" , Ilya Dryomov , Jaegeuk Kim , Jan Kara , Jeff Layton , Jens Axboe , Lars Ellenberg , Miklos Szeredi , Paolo Valente , Philipp Reisner , Ryusuke Konishi , Trond Myklebust , Wu Fengguang , Andrew Morton , Linus Torvalds , Sasha Levin Subject: [PATCH 5.15 257/317] f2fs: replace congestion_wait() calls with io_schedule_timeout() Date: Sun, 24 Mar 2024 19:33:57 -0400 Message-ID: <20240324233458.1352854-258-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: NeilBrown [ Upstream commit a64239d0ef345208d8c15d7841a028a43a34c068 ] As congestion is no longer tracked, congestion_wait() is effectively equivalent to io_schedule_timeout(). So introduce f2fs_io_schedule_timeout() which sets TASK_UNINTERRUPTIBLE and call that instead. Link: https://lkml.kernel.org/r/164549983744.9187.6425865370954230902.stgit= @noble.brown Signed-off-by: NeilBrown Cc: Anna Schumaker Cc: Chao Yu Cc: Darrick J. Wong Cc: Ilya Dryomov Cc: Jaegeuk Kim Cc: Jan Kara Cc: Jeff Layton Cc: Jens Axboe Cc: Lars Ellenberg Cc: Miklos Szeredi Cc: Paolo Valente Cc: Philipp Reisner Cc: Ryusuke Konishi Cc: Trond Myklebust Cc: Wu Fengguang Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Stable-dep-of: fd244524c2cf ("f2fs: compress: fix to cover normal cluster w= rite with cp_rwsem") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- fs/f2fs/compress.c | 4 +--- fs/f2fs/data.c | 3 +-- fs/f2fs/f2fs.h | 6 ++++++ fs/f2fs/segment.c | 8 +++----- fs/f2fs/super.c | 6 ++---- 5 files changed, 13 insertions(+), 14 deletions(-) diff --git a/fs/f2fs/compress.c b/fs/f2fs/compress.c index 7b4479d5b5315..c640e4c63909a 100644 --- a/fs/f2fs/compress.c +++ b/fs/f2fs/compress.c @@ -1504,9 +1504,7 @@ static int f2fs_write_raw_pages(struct compress_ctx *= cc, if (IS_NOQUOTA(cc->inode)) return 0; ret =3D 0; - cond_resched(); - congestion_wait(BLK_RW_ASYNC, - DEFAULT_IO_TIMEOUT); + f2fs_io_schedule_timeout(DEFAULT_IO_TIMEOUT); goto retry_write; } return ret; diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c index 25dafd1261d71..19b595488a27b 100644 --- a/fs/f2fs/data.c +++ b/fs/f2fs/data.c @@ -3158,8 +3158,7 @@ static int f2fs_write_cache_pages(struct address_spac= e *mapping, } else if (ret =3D=3D -EAGAIN) { ret =3D 0; if (wbc->sync_mode =3D=3D WB_SYNC_ALL) { - cond_resched(); - congestion_wait(BLK_RW_ASYNC, + f2fs_io_schedule_timeout( DEFAULT_IO_TIMEOUT); goto retry_write; } diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h index e326e7efea391..dfaee211f6133 100644 --- a/fs/f2fs/f2fs.h +++ b/fs/f2fs/f2fs.h @@ -4413,6 +4413,12 @@ static inline bool f2fs_block_unit_discard(struct f2= fs_sb_info *sbi) return F2FS_OPTION(sbi).discard_unit =3D=3D DISCARD_UNIT_BLOCK; } =20 +static inline void f2fs_io_schedule_timeout(long timeout) +{ + set_current_state(TASK_UNINTERRUPTIBLE); + io_schedule_timeout(timeout); +} + #define EFSBADCRC EBADMSG /* Bad CRC detected */ #define EFSCORRUPTED EUCLEAN /* Filesystem is corrupted */ =20 diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c index 5eca50e50e16b..cbdd8d0ec8960 100644 --- a/fs/f2fs/segment.c +++ b/fs/f2fs/segment.c @@ -313,8 +313,7 @@ void f2fs_drop_inmem_pages_all(struct f2fs_sb_info *sbi= , bool gc_failure) skip: iput(inode); } - congestion_wait(BLK_RW_ASYNC, DEFAULT_IO_TIMEOUT); - cond_resched(); + f2fs_io_schedule_timeout(DEFAULT_IO_TIMEOUT); if (gc_failure) { if (++looped >=3D count) return; @@ -789,8 +788,7 @@ int f2fs_flush_device_cache(struct f2fs_sb_info *sbi) do { ret =3D __submit_flush_wait(sbi, FDEV(i).bdev); if (ret) - congestion_wait(BLK_RW_ASYNC, - DEFAULT_IO_TIMEOUT); + f2fs_io_schedule_timeout(DEFAULT_IO_TIMEOUT); } while (ret && --count); =20 if (ret) { @@ -3106,7 +3104,7 @@ static unsigned int __issue_discard_cmd_range(struct = f2fs_sb_info *sbi, blk_finish_plug(&plug); mutex_unlock(&dcc->cmd_lock); trimmed +=3D __wait_all_discard_cmd(sbi, NULL); - congestion_wait(BLK_RW_ASYNC, DEFAULT_IO_TIMEOUT); + f2fs_io_schedule_timeout(DEFAULT_IO_TIMEOUT); goto next; } skip: diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c index 5160bf4f4a3ec..df1e5496352c2 100644 --- a/fs/f2fs/super.c +++ b/fs/f2fs/super.c @@ -2168,8 +2168,7 @@ static void f2fs_enable_checkpoint(struct f2fs_sb_inf= o *sbi) /* we should flush all the data to keep data consistency */ do { sync_inodes_sb(sbi->sb); - cond_resched(); - congestion_wait(BLK_RW_ASYNC, DEFAULT_IO_TIMEOUT); + f2fs_io_schedule_timeout(DEFAULT_IO_TIMEOUT); } while (get_pages(sbi, F2FS_DIRTY_DATA) && retry--); =20 if (unlikely(retry < 0)) @@ -2540,8 +2539,7 @@ static ssize_t f2fs_quota_write(struct super_block *s= b, int type, &page, &fsdata); if (unlikely(err)) { if (err =3D=3D -ENOMEM) { - congestion_wait(BLK_RW_ASYNC, - DEFAULT_IO_TIMEOUT); + f2fs_io_schedule_timeout(DEFAULT_IO_TIMEOUT); goto retry; } set_sbi_flag(F2FS_SB(sb), SBI_QUOTA_NEED_REPAIR); --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7C69521D126; Sun, 24 Mar 2024 23:39:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323551; cv=none; b=J1aeFHcday8otyCwXFahcrpjv2YOnAXZsGY9BIvg8dy/oBwFyPZd5cHvu6Bhu2jBYQ+MdcfOTLkviJEw2bkNUvWeh5CUTkwYwFTLD8qflY5aMb5HVBSaRzQtO7ZWXoj6tz7U5OQ3ngROtAIvOgaS3wplrRi2OcL0wHOJ2LkRo08= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323551; c=relaxed/simple; bh=uiqPJg8auQcg76ESCu0NC3QK9mTOBml9r1ZYFqMNJT0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=NoJM2rzhW6OSsTp1puYF65EpRiWU/bYIA8qrxazxep51HLH0MCZ0jUQ2k2VubUqFJ2r0HJAdOqKslfVoEKByOJrXBsduBeRopzJbWBaoo10xcBhgn1KxXg9LvsrUgs9Zmc7SIySCpv4Wy9ggu8jNLaYVAGmwstn8ACmN/i9kkhs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=BuCANUz/; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="BuCANUz/" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8FDB4C433B2; Sun, 24 Mar 2024 23:39:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323551; bh=uiqPJg8auQcg76ESCu0NC3QK9mTOBml9r1ZYFqMNJT0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=BuCANUz//9wR8CCT/bDgbMLPWaK8tOq76c78/XITjTFDWvjVaen+8UjYepLnC9N2n E6pObbtCMlRdMlNMdZp5mDHMpzzArk9wjxH/5XaA1WxSlSsqnUTHP14z3Roec2bLiG S0L+V+X4Ge8o7YR3jX3KZK5wAVHYMlkEdeJiyTO90m0KNjKLm+z5WFkWUc+WcEAXei tu/YKyqssHPMW/expulDh2zJw2UXu7vAhoyl0oNzFHBXNaNNH4wQ75ELueBXSIm5yp ft3nQ4d4dthzSlRojbs1Gp1aJ3TUE+8E+3uZVFLhRwvJm2mMaYVBweh2gzEzMUkzrE vg7JRfCRiNzlA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Chao Yu , Hyeong-Jun Kim , Chao Yu , Jaegeuk Kim , Sasha Levin Subject: [PATCH 5.15 258/317] f2fs: fix to invalidate META_MAPPING before DIO write Date: Sun, 24 Mar 2024 19:33:58 -0400 Message-ID: <20240324233458.1352854-259-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Chao Yu [ Upstream commit 67ca06872eb02944b4c6f92cffa9242e92c63109 ] Quoted from commit e3b49ea36802 ("f2fs: invalidate META_MAPPING before IPU/DIO write") " Encrypted pages during GC are read and cached in META_MAPPING. However, due to cached pages in META_MAPPING, there is an issue where newly written pages are lost by IPU or DIO writes. Thread A - f2fs_gc() Thread B /* phase 3 */ down_write(i_gc_rwsem) ra_data_block() ---- (a) up_write(i_gc_rwsem) f2fs_direct_IO() : - down_read(i_gc_rwsem) - __blockdev_direct_io() - get_data_block_dio_write() - f2fs_dio_submit_bio() ---- (b) - up_read(i_gc_rwsem) /* phase 4 */ down_write(i_gc_rwsem) move_data_block() ---- (c) up_write(i_gc_rwsem) (a) In phase 3 of f2fs_gc(), up-to-date page is read from storage and cached in META_MAPPING. (b) In thread B, writing new data by IPU or DIO write on same blkaddr as read in (a). cached page in META_MAPPING become out-dated. (c) In phase 4 of f2fs_gc(), out-dated page in META_MAPPING is copied to new blkaddr. In conclusion, the newly written data in (b) is lost. To address this issue, invalidating pages in META_MAPPING before IPU or DIO write. " In previous commit, we missed to cover extent cache hit case, and passed wrong value for parameter @end of invalidate_mapping_pages(), fix both issues. Fixes: 6aa58d8ad20a ("f2fs: readahead encrypted block during GC") Fixes: e3b49ea36802 ("f2fs: invalidate META_MAPPING before IPU/DIO write") Cc: Hyeong-Jun Kim Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim Stable-dep-of: fd244524c2cf ("f2fs: compress: fix to cover normal cluster w= rite with cp_rwsem") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- fs/f2fs/data.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c index 19b595488a27b..222af7d5f91b7 100644 --- a/fs/f2fs/data.c +++ b/fs/f2fs/data.c @@ -1496,9 +1496,12 @@ int f2fs_map_blocks(struct inode *inode, struct f2fs= _map_blocks *map, *map->m_next_extent =3D pgofs + map->m_len; =20 /* for hardware encryption, but to avoid potential issue in future */ - if (flag =3D=3D F2FS_GET_BLOCK_DIO) + if (flag =3D=3D F2FS_GET_BLOCK_DIO) { f2fs_wait_on_block_writeback_range(inode, map->m_pblk, map->m_len); + invalidate_mapping_pages(META_MAPPING(sbi), + map->m_pblk, map->m_pblk + map->m_len - 1); + } =20 if (map->m_multidev_dio) { block_t blk_addr =3D map->m_pblk; @@ -1712,7 +1715,7 @@ int f2fs_map_blocks(struct inode *inode, struct f2fs_= map_blocks *map, f2fs_wait_on_block_writeback_range(inode, map->m_pblk, map->m_len); invalidate_mapping_pages(META_MAPPING(sbi), - map->m_pblk, map->m_pblk); + map->m_pblk, map->m_pblk + map->m_len - 1); =20 if (map->m_multidev_dio) { block_t blk_addr =3D map->m_pblk; --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 83786178883; Sun, 24 Mar 2024 23:39:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323552; cv=none; b=i/gE2FKimHOoivv+FwgWY4lTDJzj/F6UAPCBKqTL76Ky9qVmiW/4sbnqkdga7Tfb37gMvYhyMw8Bvo7LeYNdpouzkqDMAm1nA6gogYf9YRZIv/kWQXiZ5WwTYi3Pv2nmZiHAI3huICLMTr/Rw93rr8HM+3lyuiTT7Lo54VqMdfc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323552; c=relaxed/simple; bh=UBPDZAOjr12Ddguq/hvTmroDK+Um32lqBNnBh/Wk5lc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Xd9smGGlK7tnLzn9aLK27u2p/IsiPspILJ2h+z1sk3lBc69klQJ7Sox9c4gtCzGioqm95WiAaiEdRM/lGT7TXWdh5xiaY5RVoNXdiYVq2wIcMq/4Iee0JxOYLudkbxAv1+8mUjS0xzYcjuNUrb48+Rbai6XDQHJaChG3z1fF0EA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=do1fOi+4; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="do1fOi+4" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A0A59C43394; Sun, 24 Mar 2024 23:39:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323552; bh=UBPDZAOjr12Ddguq/hvTmroDK+Um32lqBNnBh/Wk5lc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=do1fOi+4r78LLnuc+kPBswb0WPd7CsKFzTvON0Pj0dO02m0SGqaKCpW1y372+HBzO K9iR8mMF643jfMqDfAg2CyUMM6n+ON+FA7/XwHOp1qEGZI0EmoJGMGHxMPhC9mxJ1o 9IeUFC6ViMnBY4jn1FKCo6jCiyj04ZikBiJvy5jfmskCrU0W4XiV3L6u75BAtQOdTD nFthSXnso7WcmNPQAFNbHYqI01wEluCU2cazKhzS2hO/XT/3aFPIIp1Pl6y13gfi4x Ok5iyr6tQxILQXCS0Chs9kVfbdZVRXKOYg1N7BwaaR1HbgkVpXftuQ218nVUDp7869 XINefFaJhld9A== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Chao Yu , Chao Yu , Jaegeuk Kim , Sasha Levin Subject: [PATCH 5.15 259/317] f2fs: invalidate meta pages only for post_read required inode Date: Sun, 24 Mar 2024 19:33:59 -0400 Message-ID: <20240324233458.1352854-260-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Chao Yu [ Upstream commit 0d5b9d8156396bbe1c982708b38ab9e188c45ec9 ] After commit e3b49ea36802 ("f2fs: invalidate META_MAPPING before IPU/DIO write"), invalidate_mapping_pages() will be called to avoid race condition in between IPU/DIO and readahead for GC. However, readahead flow is only used for post_read required inode, so this patch adds check condition to avoids unnecessary page cache invalidating for non-post_read inode. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim Stable-dep-of: fd244524c2cf ("f2fs: compress: fix to cover normal cluster w= rite with cp_rwsem") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- fs/f2fs/data.c | 8 ++------ fs/f2fs/f2fs.h | 1 + fs/f2fs/segment.c | 9 ++++++++- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c index 222af7d5f91b7..4f122a806cf88 100644 --- a/fs/f2fs/data.c +++ b/fs/f2fs/data.c @@ -1496,12 +1496,9 @@ int f2fs_map_blocks(struct inode *inode, struct f2fs= _map_blocks *map, *map->m_next_extent =3D pgofs + map->m_len; =20 /* for hardware encryption, but to avoid potential issue in future */ - if (flag =3D=3D F2FS_GET_BLOCK_DIO) { + if (flag =3D=3D F2FS_GET_BLOCK_DIO) f2fs_wait_on_block_writeback_range(inode, map->m_pblk, map->m_len); - invalidate_mapping_pages(META_MAPPING(sbi), - map->m_pblk, map->m_pblk + map->m_len - 1); - } =20 if (map->m_multidev_dio) { block_t blk_addr =3D map->m_pblk; @@ -1714,8 +1711,6 @@ int f2fs_map_blocks(struct inode *inode, struct f2fs_= map_blocks *map, */ f2fs_wait_on_block_writeback_range(inode, map->m_pblk, map->m_len); - invalidate_mapping_pages(META_MAPPING(sbi), - map->m_pblk, map->m_pblk + map->m_len - 1); =20 if (map->m_multidev_dio) { block_t blk_addr =3D map->m_pblk; @@ -2808,6 +2803,7 @@ int f2fs_write_single_data_page(struct page *page, in= t *submitted, .submitted =3D false, .compr_blocks =3D compr_blocks, .need_lock =3D LOCK_RETRY, + .post_read =3D f2fs_post_read_required(inode), .io_type =3D io_type, .io_wbc =3D wbc, .bio =3D bio, diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h index dfaee211f6133..d961a2779b6e7 100644 --- a/fs/f2fs/f2fs.h +++ b/fs/f2fs/f2fs.h @@ -1177,6 +1177,7 @@ struct f2fs_io_info { bool retry; /* need to reallocate block address */ int compr_blocks; /* # of compressed block addresses */ bool encrypted; /* indicate file is encrypted */ + bool post_read; /* require post read */ enum iostat_type io_type; /* io type */ struct writeback_control *io_wbc; /* writeback control */ struct bio **bio; /* bio for ipu */ diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c index cbdd8d0ec8960..43fabd17bb4e7 100644 --- a/fs/f2fs/segment.c +++ b/fs/f2fs/segment.c @@ -3620,7 +3620,8 @@ int f2fs_inplace_write_data(struct f2fs_io_info *fio) goto drop_bio; } =20 - invalidate_mapping_pages(META_MAPPING(sbi), + if (fio->post_read) + invalidate_mapping_pages(META_MAPPING(sbi), fio->new_blkaddr, fio->new_blkaddr); =20 stat_inc_inplace_blocks(fio->sbi); @@ -3803,10 +3804,16 @@ void f2fs_wait_on_block_writeback(struct inode *ino= de, block_t blkaddr) void f2fs_wait_on_block_writeback_range(struct inode *inode, block_t blkad= dr, block_t len) { + struct f2fs_sb_info *sbi =3D F2FS_I_SB(inode); block_t i; =20 + if (!f2fs_post_read_required(inode)) + return; + for (i =3D 0; i < len; i++) f2fs_wait_on_block_writeback(inode, blkaddr + i); + + invalidate_mapping_pages(META_MAPPING(sbi), blkaddr, blkaddr + len - 1); } =20 static int read_compacted_summaries(struct f2fs_sb_info *sbi) --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7A0E8178888; Sun, 24 Mar 2024 23:39:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323553; cv=none; b=K6uolRqNMCk6KA9EkWeGWo0r7fXveTA4xoI53OLKNkqOFinAFuK41x79CPcu8DUHL3nkqCTyy3DwhR3E1VNDCot6OnduoOqS7lQwsukRi1T4gNrRHnGIBtNMkLKG9iVOJNfoK45EEb471l17pE/jAoHEHyUS3HtJgR8Z87JRBcw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323553; c=relaxed/simple; bh=8w2kF1SkzGF9y1dSy7L5T0c3UtS0iN3smj2aM/I8lxY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=KPU02K557QKXRQT00QJBFQ8FdpmdcxKpFnNlVvZ2IqMYoci7GO0G8qeFqHhDMHZ/Vdz5MaH3JOs7+bSkxdvuewXK4oU3UucXe+3JV+941tf7o1wEllI07tIayIScOqIlErsXDfD2s+RrlLn7EdbQr8ZCZiYOvgE55G2ZSU3+Mio= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=M3bFKGke; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="M3bFKGke" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9B183C433A6; Sun, 24 Mar 2024 23:39:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323553; bh=8w2kF1SkzGF9y1dSy7L5T0c3UtS0iN3smj2aM/I8lxY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=M3bFKGkeC0ijmfvUQR8dS1XfbizbnzxSedJsW3VT7rXxAoTe/O4ODVjtT/PnUganB OuU7WAtm527N6s/EpvSSl5evkUZn73i08NAVue4sW5V/GQF6J9CS8TY2v3SOoGNhzX gaxJ/p3hei3XGUXHFJJp9/lqWAm8HNxdtLLR+SAoxzXf8vI1S7mN3XOWCKRpY5LgQ1 0/FM3fW9ORUly7DcLuRHp36DRUQu+upmSGloxYGsMq3y74caHZ0t5DudNWS+Y9zjHP 6kmgHDACm0SJ+OPiklcNs0B0FxCcml4wADP9hgikO3xXpkuI69VCZsUUfXFXRy2hE6 zPt7EY5dOVLzA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Chao Yu , Nathan Chancellor , Jaegeuk Kim , Sasha Levin Subject: [PATCH 5.15 260/317] f2fs: reduce stack memory cost by using bitfield in struct f2fs_io_info Date: Sun, 24 Mar 2024 19:34:00 -0400 Message-ID: <20240324233458.1352854-261-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Chao Yu [ Upstream commit 2eae077e6e46f9046d383631145750e043820dce ] This patch tries to use bitfield in struct f2fs_io_info to improve memory usage. struct f2fs_io_info { ... unsigned int need_lock:8; /* indicate we need to lock cp_rwsem */ unsigned int version:8; /* version of the node */ unsigned int submitted:1; /* indicate IO submission */ unsigned int in_list:1; /* indicate fio is in io_list */ unsigned int is_por:1; /* indicate IO is from recovery or not */ unsigned int retry:1; /* need to reallocate block address */ unsigned int encrypted:1; /* indicate file is encrypted */ unsigned int post_read:1; /* require post read */ ... }; After this patch, size of struct f2fs_io_info reduces from 136 to 120. [Nathan: fix a compile warning (single-bit-bitfield-constant-conversion)] Signed-off-by: Nathan Chancellor Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim Stable-dep-of: fd244524c2cf ("f2fs: compress: fix to cover normal cluster w= rite with cp_rwsem") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- fs/f2fs/checkpoint.c | 6 +++--- fs/f2fs/compress.c | 5 +++-- fs/f2fs/data.c | 10 +++++----- fs/f2fs/f2fs.h | 18 +++++++++--------- fs/f2fs/gc.c | 8 ++++---- fs/f2fs/node.c | 2 +- fs/f2fs/segment.c | 6 +++--- 7 files changed, 28 insertions(+), 27 deletions(-) diff --git a/fs/f2fs/checkpoint.c b/fs/f2fs/checkpoint.c index d6ae6de35af20..7d3e7418d8fd5 100644 --- a/fs/f2fs/checkpoint.c +++ b/fs/f2fs/checkpoint.c @@ -66,7 +66,7 @@ static struct page *__get_meta_page(struct f2fs_sb_info *= sbi, pgoff_t index, .old_blkaddr =3D index, .new_blkaddr =3D index, .encrypted_page =3D NULL, - .is_por =3D !is_meta, + .is_por =3D !is_meta ? 1 : 0, }; int err; =20 @@ -229,8 +229,8 @@ int f2fs_ra_meta_pages(struct f2fs_sb_info *sbi, block_= t start, int nrpages, .op =3D REQ_OP_READ, .op_flags =3D sync ? (REQ_META | REQ_PRIO) : REQ_RAHEAD, .encrypted_page =3D NULL, - .in_list =3D false, - .is_por =3D (type =3D=3D META_POR), + .in_list =3D 0, + .is_por =3D (type =3D=3D META_POR) ? 1 : 0, }; struct blk_plug plug; int err; diff --git a/fs/f2fs/compress.c b/fs/f2fs/compress.c index c640e4c63909a..f8de64cb8fbcc 100644 --- a/fs/f2fs/compress.c +++ b/fs/f2fs/compress.c @@ -1233,10 +1233,11 @@ static int f2fs_write_compressed_pages(struct compr= ess_ctx *cc, .page =3D NULL, .encrypted_page =3D NULL, .compressed_page =3D NULL, - .submitted =3D false, + .submitted =3D 0, .io_type =3D io_type, .io_wbc =3D wbc, - .encrypted =3D fscrypt_inode_uses_fs_layer_crypto(cc->inode), + .encrypted =3D fscrypt_inode_uses_fs_layer_crypto(cc->inode) ? + 1 : 0, }; struct dnode_of_data dn; struct node_info ni; diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c index 4f122a806cf88..cb63352589390 100644 --- a/fs/f2fs/data.c +++ b/fs/f2fs/data.c @@ -933,7 +933,7 @@ void f2fs_submit_page_write(struct f2fs_io_info *fio) bio_page =3D fio->page; =20 /* set submitted =3D true as a return value */ - fio->submitted =3D true; + fio->submitted =3D 1; =20 inc_page_count(sbi, WB_DATA_TYPE(bio_page)); =20 @@ -949,7 +949,7 @@ void f2fs_submit_page_write(struct f2fs_io_info *fio) (fio->type =3D=3D DATA || fio->type =3D=3D NODE) && fio->new_blkaddr & F2FS_IO_SIZE_MASK(sbi)) { dec_page_count(sbi, WB_DATA_TYPE(bio_page)); - fio->retry =3D true; + fio->retry =3D 1; goto skip; } io->bio =3D __bio_alloc(fio, BIO_MAX_VECS); @@ -2800,10 +2800,10 @@ int f2fs_write_single_data_page(struct page *page, = int *submitted, .old_blkaddr =3D NULL_ADDR, .page =3D page, .encrypted_page =3D NULL, - .submitted =3D false, + .submitted =3D 0, .compr_blocks =3D compr_blocks, .need_lock =3D LOCK_RETRY, - .post_read =3D f2fs_post_read_required(inode), + .post_read =3D f2fs_post_read_required(inode) ? 1 : 0, .io_type =3D io_type, .io_wbc =3D wbc, .bio =3D bio, @@ -2931,7 +2931,7 @@ int f2fs_write_single_data_page(struct page *page, in= t *submitted, } =20 if (submitted) - *submitted =3D fio.submitted ? 1 : 0; + *submitted =3D fio.submitted; =20 return 0; =20 diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h index d961a2779b6e7..0eafefc242b11 100644 --- a/fs/f2fs/f2fs.h +++ b/fs/f2fs/f2fs.h @@ -1170,19 +1170,19 @@ struct f2fs_io_info { struct page *encrypted_page; /* encrypted page */ struct page *compressed_page; /* compressed page */ struct list_head list; /* serialize IOs */ - bool submitted; /* indicate IO submission */ - int need_lock; /* indicate we need to lock cp_rwsem */ - bool in_list; /* indicate fio is in io_list */ - bool is_por; /* indicate IO is from recovery or not */ - bool retry; /* need to reallocate block address */ - int compr_blocks; /* # of compressed block addresses */ - bool encrypted; /* indicate file is encrypted */ - bool post_read; /* require post read */ + unsigned int compr_blocks; /* # of compressed block addresses */ + unsigned int need_lock:8; /* indicate we need to lock cp_rwsem */ + unsigned int version:8; /* version of the node */ + unsigned int submitted:1; /* indicate IO submission */ + unsigned int in_list:1; /* indicate fio is in io_list */ + unsigned int is_por:1; /* indicate IO is from recovery or not */ + unsigned int retry:1; /* need to reallocate block address */ + unsigned int encrypted:1; /* indicate file is encrypted */ + unsigned int post_read:1; /* require post read */ enum iostat_type io_type; /* io type */ struct writeback_control *io_wbc; /* writeback control */ struct bio **bio; /* bio for ipu */ sector_t *last_block; /* last block number in bio */ - unsigned char version; /* version of the node */ }; =20 struct bio_entry { diff --git a/fs/f2fs/gc.c b/fs/f2fs/gc.c index 2c13f308c74e3..9a57754e6e0c1 100644 --- a/fs/f2fs/gc.c +++ b/fs/f2fs/gc.c @@ -1080,8 +1080,8 @@ static int ra_data_block(struct inode *inode, pgoff_t= index) .op =3D REQ_OP_READ, .op_flags =3D 0, .encrypted_page =3D NULL, - .in_list =3D false, - .retry =3D false, + .in_list =3D 0, + .retry =3D 0, }; int err; =20 @@ -1167,8 +1167,8 @@ static int move_data_block(struct inode *inode, block= _t bidx, .op =3D REQ_OP_READ, .op_flags =3D 0, .encrypted_page =3D NULL, - .in_list =3D false, - .retry =3D false, + .in_list =3D 0, + .retry =3D 0, }; struct dnode_of_data dn; struct f2fs_summary sum; diff --git a/fs/f2fs/node.c b/fs/f2fs/node.c index 195658263f0a4..dc85dd55314cc 100644 --- a/fs/f2fs/node.c +++ b/fs/f2fs/node.c @@ -1583,7 +1583,7 @@ static int __write_node_page(struct page *page, bool = atomic, bool *submitted, .op_flags =3D wbc_to_write_flags(wbc), .page =3D page, .encrypted_page =3D NULL, - .submitted =3D false, + .submitted =3D 0, .io_type =3D io_type, .io_wbc =3D wbc, }; diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c index 43fabd17bb4e7..b454496ca67a1 100644 --- a/fs/f2fs/segment.c +++ b/fs/f2fs/segment.c @@ -3473,10 +3473,10 @@ void f2fs_allocate_data_block(struct f2fs_sb_info *= sbi, struct page *page, struct f2fs_bio_info *io; =20 if (F2FS_IO_ALIGNED(sbi)) - fio->retry =3D false; + fio->retry =3D 0; =20 INIT_LIST_HEAD(&fio->list); - fio->in_list =3D true; + fio->in_list =3D 1; io =3D sbi->write_io[fio->type] + fio->temp; spin_lock(&io->io_lock); list_add_tail(&fio->list, &io->io_list); @@ -3557,7 +3557,7 @@ void f2fs_do_write_meta_page(struct f2fs_sb_info *sbi= , struct page *page, .new_blkaddr =3D page->index, .page =3D page, .encrypted_page =3D NULL, - .in_list =3D false, + .in_list =3D 0, }; =20 if (unlikely(page->index >=3D MAIN_BLKADDR(sbi))) --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 75F53178890; Sun, 24 Mar 2024 23:39:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323554; cv=none; b=aoA8BnQ5PADWV9G5TfAxarhubdG9MMURRITcGFpZqXwu0ZUPm2nTcXTIwmmbFyWki9sWuhBX3FFG5Kzt9mCAWRjrmmO/Askizb2GN/8mZ/T719NmPxpl5NnkVpt2iEIcKgEC/b3eo7P2zQc+/uDzpH2/v4ujagB45sSWRKa1tIQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323554; c=relaxed/simple; bh=ZUeJcfidzG8zRoHAeUDwNst0AIDDyixSOB647G2MPZc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=gcSCeZGeErcUNqDOrAUe9PDAQlnop64q4MjIq77bNbB9ExyUXrWQhb1Nfk3zUZbbmzqAyabLyhU6BNgWTYWgxSsTp+IJWRAJQAPcUMFR1YQhxRQHVYIkCYw+70DpJBaxKsuT4EUAR5x8K59/zgL9hb5IoPTzuYK3xTaQMkOPF8I= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=sm6L9Oki; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="sm6L9Oki" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9EEC6C43390; Sun, 24 Mar 2024 23:39:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323554; bh=ZUeJcfidzG8zRoHAeUDwNst0AIDDyixSOB647G2MPZc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=sm6L9OkioJ0jK/9RIIBKrFKfU3OY0BppfDk7r3DNAoDYaMQEjWkAtSCAMtkRZuds9 ERACsqEaXP47+bNEaKaBCPJ0+TsGWAnLSTbES9skqjKeXOFVqJUs5HxtUsQQs9m8iu Rk00/zmDHi69IO9UPvj4xJnVEtVLX+33PwmNm4O6Fvvlef7cjIztmD+F6LXJLjodIC 8V9tnb1zFYxO5qyPx4fXad3uCvZ6Zsqo8c9YZYr0wc6wymY1IpCjRXcg0yyEUwFukJ caAu5juRQ6uqTTg8kKv34Z/1iWtvqZ6ssXuLj+6VKyt2wzErER4Gh5fu9Zfp+lBjF0 kVY8VrCrLn3Qg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Chao Yu , Daeho Jeong , Jaegeuk Kim , Sasha Levin Subject: [PATCH 5.15 261/317] f2fs: compress: fix to cover normal cluster write with cp_rwsem Date: Sun, 24 Mar 2024 19:34:01 -0400 Message-ID: <20240324233458.1352854-262-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Chao Yu [ Upstream commit fd244524c2cf07b5f4c3fe8abd6a99225c76544b ] When we overwrite compressed cluster w/ normal cluster, we should not unlock cp_rwsem during f2fs_write_raw_pages(), otherwise data will be corrupted if partial blocks were persisted before CP & SPOR, due to cluster metadata wasn't updated atomically. Fixes: 4c8ff7095bef ("f2fs: support data compression") Reviewed-by: Daeho Jeong Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- fs/f2fs/compress.c | 27 ++++++++++++++++++--------- fs/f2fs/data.c | 3 ++- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/fs/f2fs/compress.c b/fs/f2fs/compress.c index f8de64cb8fbcc..88799c6ebd7de 100644 --- a/fs/f2fs/compress.c +++ b/fs/f2fs/compress.c @@ -1445,12 +1445,14 @@ void f2fs_compress_write_end_io(struct bio *bio, st= ruct page *page) } =20 static int f2fs_write_raw_pages(struct compress_ctx *cc, - int *submitted, + int *submitted_p, struct writeback_control *wbc, enum iostat_type io_type) { struct address_space *mapping =3D cc->inode->i_mapping; - int _submitted, compr_blocks, ret, i; + struct f2fs_sb_info *sbi =3D F2FS_M_SB(mapping); + int submitted, compr_blocks, i; + int ret =3D 0; =20 compr_blocks =3D f2fs_compressed_blocks(cc); =20 @@ -1465,6 +1467,10 @@ static int f2fs_write_raw_pages(struct compress_ctx = *cc, if (compr_blocks < 0) return compr_blocks; =20 + /* overwrite compressed cluster w/ normal cluster */ + if (compr_blocks > 0) + f2fs_lock_op(sbi); + for (i =3D 0; i < cc->cluster_size; i++) { if (!cc->rpages[i]) continue; @@ -1489,7 +1495,7 @@ static int f2fs_write_raw_pages(struct compress_ctx *= cc, if (!clear_page_dirty_for_io(cc->rpages[i])) goto continue_unlock; =20 - ret =3D f2fs_write_single_data_page(cc->rpages[i], &_submitted, + ret =3D f2fs_write_single_data_page(cc->rpages[i], &submitted, NULL, NULL, wbc, io_type, compr_blocks, false); if (ret) { @@ -1497,26 +1503,29 @@ static int f2fs_write_raw_pages(struct compress_ctx= *cc, unlock_page(cc->rpages[i]); ret =3D 0; } else if (ret =3D=3D -EAGAIN) { + ret =3D 0; /* * for quota file, just redirty left pages to * avoid deadlock caused by cluster update race * from foreground operation. */ if (IS_NOQUOTA(cc->inode)) - return 0; - ret =3D 0; + goto out; f2fs_io_schedule_timeout(DEFAULT_IO_TIMEOUT); goto retry_write; } - return ret; + goto out; } =20 - *submitted +=3D _submitted; + *submitted_p +=3D submitted; } =20 - f2fs_balance_fs(F2FS_M_SB(mapping), true); +out: + if (compr_blocks > 0) + f2fs_unlock_op(sbi); =20 - return 0; + f2fs_balance_fs(sbi, true); + return ret; } =20 int f2fs_write_multi_pages(struct compress_ctx *cc, diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c index cb63352589390..ecf7f1b5a3658 100644 --- a/fs/f2fs/data.c +++ b/fs/f2fs/data.c @@ -2802,7 +2802,7 @@ int f2fs_write_single_data_page(struct page *page, in= t *submitted, .encrypted_page =3D NULL, .submitted =3D 0, .compr_blocks =3D compr_blocks, - .need_lock =3D LOCK_RETRY, + .need_lock =3D compr_blocks ? LOCK_DONE : LOCK_RETRY, .post_read =3D f2fs_post_read_required(inode) ? 1 : 0, .io_type =3D io_type, .io_wbc =3D wbc, @@ -2887,6 +2887,7 @@ int f2fs_write_single_data_page(struct page *page, in= t *submitted, if (err =3D=3D -EAGAIN) { err =3D f2fs_do_write_data_page(&fio); if (err =3D=3D -EAGAIN) { + f2fs_bug_on(sbi, compr_blocks); fio.need_lock =3D LOCK_REQ; err =3D f2fs_do_write_data_page(&fio); } --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A7764178892; Sun, 24 Mar 2024 23:39:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323556; cv=none; b=XGp3YVEAncCfxXMxU2g5Oz4SJVrHDwsRTIoWKobdgLGwailtEuhllusGep9KJd7GQ9RdKSuq3/FF7Uo6Yty4DbDxAK17iAZC81VpgXKQ6p8TVr9mwV1GLeMughGNgfT86orMAvnEZFljCT3rsi8kpYPamoVa2CpR/wpyj9L9VEs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323556; c=relaxed/simple; bh=lZFfoPXFBxOkB7PgjL8OTievXiEPGECdOK6yZNTcPk8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ae4Xrip3AWIo/Fnj4Ohj6/wr5vyyTe9LhbYbZFlbbQL4v3b4MzDYnGfzdB08Pygu1o9wPeKG7gvODTzo86ScBcJiVDrtCgBUSydYoXiTNsLxxa6aeJA7KBYHCgs7O9VfOkipiKZvQ2PQc34soAW0f1gIddfdkDvmxs9NHwBV8j8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=EOyQCUI0; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="EOyQCUI0" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 99ABAC433A6; Sun, 24 Mar 2024 23:39:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323555; bh=lZFfoPXFBxOkB7PgjL8OTievXiEPGECdOK6yZNTcPk8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=EOyQCUI0XkoQ/B5dsTf2+zPHBaelNs9hw1O2pkMgsr7vItMqt4r5u7HpCbkrCsUMH JZp57RSobtpyi/PFppyaZDJccs4lifHCYtdvzuIwsMT0SjGDaWVUaz7RYPghQulqfD tf6d6BAUFT/IiYtOCb8Z+ew9Woc4n1sxIgQY0h0dJVD0xq4jIK/VJCOHWYvQ8WvPFw s52Zxh/1E547VCfU1B+F2eed0im48SblIXmVHRqpm9Rmxk0dfcx0r2Dq3y19zzCJR3 J7xK/InNXN3sKhZgQweEh8XVnmrO01vESYPvuNnjHxOeHsxMXNZMCtBLv7tQNLzzsd CLyYcxHlYiaNg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Sheng Yong , Chao Yu , Jaegeuk Kim , Sasha Levin Subject: [PATCH 5.15 262/317] f2fs: compress: fix to check unreleased compressed cluster Date: Sun, 24 Mar 2024 19:34:02 -0400 Message-ID: <20240324233458.1352854-263-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Sheng Yong [ Upstream commit eb8fbaa53374e0a2d4381190abfe708481517bbb ] Compressed cluster may not be released due to we can fail in release_compress_blocks(), fix to handle reserved compressed cluster correctly in reserve_compress_blocks(). Fixes: 4c8ff7095bef ("f2fs: support data compression") Signed-off-by: Sheng Yong Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- fs/f2fs/file.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c index 489854d841e75..bab83ce4fe091 100644 --- a/fs/f2fs/file.c +++ b/fs/f2fs/file.c @@ -3566,7 +3566,13 @@ static int reserve_compress_blocks(struct dnode_of_d= ata *dn, pgoff_t count) goto next; } =20 - if (__is_valid_data_blkaddr(blkaddr)) { + /* + * compressed cluster was not released due to it + * fails in release_compress_blocks(), so NEW_ADDR + * is a possible case. + */ + if (blkaddr =3D=3D NEW_ADDR || + __is_valid_data_blkaddr(blkaddr)) { compr_blocks++; continue; } @@ -3576,6 +3582,11 @@ static int reserve_compress_blocks(struct dnode_of_d= ata *dn, pgoff_t count) } =20 reserved =3D cluster_size - compr_blocks; + + /* for the case all blocks in cluster were reserved */ + if (reserved =3D=3D 1) + goto next; + ret =3D inc_valid_block_count(sbi, dn->inode, &reserved); if (ret) return ret; --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5C03C17889F; Sun, 24 Mar 2024 23:39:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323557; cv=none; b=SdyNSg+g4y1E9NjcB/Fc0q/9qd02b7jxPV9cVvG/MxVPKtCffbYFpA3Ry8VyfsDSwvPauc2WySWK026VNM7v4Zq6T2cZ7KApcRXfDU+J/n8h/FXQ/Iqw+YH6yMaC1Pq8OWDMXdC5tyuVij1fqckylPoAVK4D9J/sXnuwzRChRW8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323557; c=relaxed/simple; bh=AS+JGYpUDsPlHwpiNSjJhMQhjdqKCPCQtDNBzfmKuyQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=IUGOCj4QSICZXBl+fIP0YHhcPH3sir9SLl6lqpgnp5nfBo5MGCAmDNnw8gV4psUoloAVkiXxUXfoE+/ZPcLNo/FAXeE8MxkAvswYvjjqRGvUPkSzM2vvdUTenDEgGGyJZ8drxTsuaiPhi3eqHCA4GExQKmag4inQo3zw8R4QJPA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=vDRZnGyF; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="vDRZnGyF" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 982FFC433F1; Sun, 24 Mar 2024 23:39:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323556; bh=AS+JGYpUDsPlHwpiNSjJhMQhjdqKCPCQtDNBzfmKuyQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=vDRZnGyFqOhJgsHO6k4eU4OLHtm07t4UZAtXFoKoi0ajTI/dOwRoOafmGucCS+2tm pKUSbBw5Z+JDiVMUZUQaDkg+b0vdCjYzGyJyzitxCSnzVG1SzOU1WqWukBhHLHqAXH UMtFJ0GXpLnLQLVrkwEI/1Mc0+BkgpS+ca/6NzUeS1r+OBOd6RX8DhMlSpos7O+sxD PRSWA5nKgEn7apNGCxaAKrMiH5zbg/oaFbMeZQQ1ahmPvRu6E8Yhi8IykkotRVPPXP 8d2K/ew4+0JUqbf63Sq4bU6r+Bm45m1kPTfM51F9yUXt/5TVPAIUjiE4Sbb2UnSqMY CRIWTZoG9ZBTw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Arnd Bergmann , "Martin K . Petersen" , Sasha Levin Subject: [PATCH 5.15 263/317] scsi: csiostor: Avoid function pointer casts Date: Sun, 24 Mar 2024 19:34:03 -0400 Message-ID: <20240324233458.1352854-264-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Arnd Bergmann [ Upstream commit 9f3dbcb5632d6876226031d552ef6163bb3ad215 ] csiostor uses function pointer casts to keep the csio_ln_ev state machine hidden, but this causes warnings about control flow integrity (KCFI) violations in clang-16 and higher: drivers/scsi/csiostor/csio_lnode.c:1098:33: error: cast from 'void (*)(stru= ct csio_lnode *, enum csio_ln_ev)' to 'csio_sm_state_t' (aka 'void (*)(void= *, unsigned int)') converts to incompatible function type [-Werror,-Wcast-= function-type-strict] 1098 | return (csio_get_state(ln) =3D=3D ((csio_sm_state_t)csio_ln= s_ready)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~= ~~~ drivers/scsi/csiostor/csio_lnode.c:1369:29: error: cast from 'void (*)(stru= ct csio_lnode *, enum csio_ln_ev)' to 'csio_sm_state_t' (aka 'void (*)(void= *, unsigned int)') converts to incompatible function type [-Werror,-Wcast-= function-type-strict] 1369 | if (csio_get_state(ln) =3D=3D ((csio_sm_state_t)csio_lns_un= init)) { | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/scsi/csiostor/csio_lnode.c:1373:29: error: cast from 'void (*)(stru= ct csio_lnode *, enum csio_ln_ev)' to 'csio_sm_state_t' (aka 'void (*)(void= *, unsigned int)') converts to incompatible function type [-Werror,-Wcast-= function-type-strict] 1373 | if (csio_get_state(ln) =3D=3D ((csio_sm_state_t)csio_lns_re= ady)) { | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/scsi/csiostor/csio_lnode.c:1377:29: error: cast from 'void (*)(stru= ct csio_lnode *, enum csio_ln_ev)' to 'csio_sm_state_t' (aka 'void (*)(void= *, unsigned int)') converts to incompatible function type [-Werror,-Wcast-= function-type-strict] 1377 | if (csio_get_state(ln) =3D=3D ((csio_sm_state_t)csio_lns_of= fline)) { | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Move the enum into a shared header so the correct types can be used without the need for casts. Fixes: a3667aaed569 ("[SCSI] csiostor: Chelsio FCoE offload driver") Signed-off-by: Arnd Bergmann Link: https://lore.kernel.org/r/20240213100518.457623-1-arnd@kernel.org Signed-off-by: Martin K. Petersen Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/scsi/csiostor/csio_defs.h | 18 ++++++++++++++++-- drivers/scsi/csiostor/csio_lnode.c | 8 ++++---- drivers/scsi/csiostor/csio_lnode.h | 13 ------------- 3 files changed, 20 insertions(+), 19 deletions(-) diff --git a/drivers/scsi/csiostor/csio_defs.h b/drivers/scsi/csiostor/csio= _defs.h index c38017b4af982..e50e93e7fe5a1 100644 --- a/drivers/scsi/csiostor/csio_defs.h +++ b/drivers/scsi/csiostor/csio_defs.h @@ -73,7 +73,21 @@ csio_list_deleted(struct list_head *list) #define csio_list_prev(elem) (((struct list_head *)(elem))->prev) =20 /* State machine */ -typedef void (*csio_sm_state_t)(void *, uint32_t); +struct csio_lnode; + +/* State machine evets */ +enum csio_ln_ev { + CSIO_LNE_NONE =3D (uint32_t)0, + CSIO_LNE_LINKUP, + CSIO_LNE_FAB_INIT_DONE, + CSIO_LNE_LINK_DOWN, + CSIO_LNE_DOWN_LINK, + CSIO_LNE_LOGO, + CSIO_LNE_CLOSE, + CSIO_LNE_MAX_EVENT, +}; + +typedef void (*csio_sm_state_t)(struct csio_lnode *ln, enum csio_ln_ev evt= ); =20 struct csio_sm { struct list_head sm_list; @@ -83,7 +97,7 @@ struct csio_sm { static inline void csio_set_state(void *smp, void *state) { - ((struct csio_sm *)smp)->sm_state =3D (csio_sm_state_t)state; + ((struct csio_sm *)smp)->sm_state =3D state; } =20 static inline void diff --git a/drivers/scsi/csiostor/csio_lnode.c b/drivers/scsi/csiostor/csi= o_lnode.c index d5ac938970232..5b3ffefae476d 100644 --- a/drivers/scsi/csiostor/csio_lnode.c +++ b/drivers/scsi/csiostor/csio_lnode.c @@ -1095,7 +1095,7 @@ csio_handle_link_down(struct csio_hw *hw, uint8_t por= tid, uint32_t fcfi, int csio_is_lnode_ready(struct csio_lnode *ln) { - return (csio_get_state(ln) =3D=3D ((csio_sm_state_t)csio_lns_ready)); + return (csio_get_state(ln) =3D=3D csio_lns_ready); } =20 /*************************************************************************= ****/ @@ -1366,15 +1366,15 @@ csio_free_fcfinfo(struct kref *kref) void csio_lnode_state_to_str(struct csio_lnode *ln, int8_t *str) { - if (csio_get_state(ln) =3D=3D ((csio_sm_state_t)csio_lns_uninit)) { + if (csio_get_state(ln) =3D=3D csio_lns_uninit) { strcpy(str, "UNINIT"); return; } - if (csio_get_state(ln) =3D=3D ((csio_sm_state_t)csio_lns_ready)) { + if (csio_get_state(ln) =3D=3D csio_lns_ready) { strcpy(str, "READY"); return; } - if (csio_get_state(ln) =3D=3D ((csio_sm_state_t)csio_lns_offline)) { + if (csio_get_state(ln) =3D=3D csio_lns_offline) { strcpy(str, "OFFLINE"); return; } diff --git a/drivers/scsi/csiostor/csio_lnode.h b/drivers/scsi/csiostor/csi= o_lnode.h index 372a67d122d38..607698a0f0631 100644 --- a/drivers/scsi/csiostor/csio_lnode.h +++ b/drivers/scsi/csiostor/csio_lnode.h @@ -53,19 +53,6 @@ extern int csio_fcoe_rnodes; extern int csio_fdmi_enable; =20 -/* State machine evets */ -enum csio_ln_ev { - CSIO_LNE_NONE =3D (uint32_t)0, - CSIO_LNE_LINKUP, - CSIO_LNE_FAB_INIT_DONE, - CSIO_LNE_LINK_DOWN, - CSIO_LNE_DOWN_LINK, - CSIO_LNE_LOGO, - CSIO_LNE_CLOSE, - CSIO_LNE_MAX_EVENT, -}; - - struct csio_fcf_info { struct list_head list; uint8_t priority; --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 527E71788A3; Sun, 24 Mar 2024 23:39:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323558; cv=none; b=GxNaBND5NFzaaOsFKa1aijjIRn9HqOAJuIZ75Zeqorhn9kxXXwcNzSCVXZLho06vx7ZHXrxPpC+RnZjeQIH0KqX3SPhgrO5XsIGAZmY/idp/qQ81R0nAcveEHeGN3FUOUGvIEO84bhONIDEjaDEo5jAsL7nrPxTn8r1MnvYmEEw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323558; c=relaxed/simple; bh=FW4rGZt3DNRlT3vaTYKQZ+V+cMEHg6iz456kybMECmI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=A4OcrBmM0Zhz3KG6sMqj4Gy83rxuwBrZ3y8CB6DjuyXdW6boaOM1QJW7gVRlG7nGIBSj6ONBXdpB9gtkkJCCHMn8EtI9eGFpqw/20fmbMEpMIHBO3fRwTyxOUYEPVOl3H5edwsAt9cJzBQcwqajTfq773SpJeavTJJy7UmXsAlg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=r2sc5nuc; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="r2sc5nuc" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7E8DEC43390; Sun, 24 Mar 2024 23:39:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323557; bh=FW4rGZt3DNRlT3vaTYKQZ+V+cMEHg6iz456kybMECmI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=r2sc5nucWrgMMGGAgKjQx2byiCUP6wZYc1FnO9L+LYRPENU6QNKH414AFn1t/Irdf BlIFpcabZTdVeD5m2kk7oEkyr8YTbrkCVQpR2SDSfOI1wc8tdbgxlWiraJ32bWA+oj mae8MxEP1AwP+POkhwZbUt1SRw1R7xSuP8xlpgO6Zy3phnYCMcs/tO0x2a3LwpafZu z6IPh9Mw9SWs9EwPtQ/KgI9UyCRsNIl7GezzEghIYTh27UhmZ9H7xwqD5M/dE+HZQY uLSvf0l8p3QLCaAkJ5NB72CKvK/I4qfn3glditrR5EmiSgFkziRyB+xG1wsH8+SXoF mKZXsLJW8ITsg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Shifeng Li , Jason Gunthorpe , Jason Gunthorpe , Sasha Levin Subject: [PATCH 5.15 264/317] RDMA/device: Fix a race between mad_client and cm_client init Date: Sun, 24 Mar 2024 19:34:04 -0400 Message-ID: <20240324233458.1352854-265-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Shifeng Li [ Upstream commit 7a8bccd8b29c321ac181369b42b04fecf05f98e2 ] The mad_client will be initialized in enable_device_and_get(), while the devices_rwsem will be downgraded to a read semaphore. There is a window that leads to the failed initialization for cm_client, since it can not get matched mad port from ib_mad_port_list, and the matched mad port will be added to the list after that. mad_client | cm_client Reported-by: Linux Kernel Functional Testing Suggested-by: Jason Gunthorpe ------------------|-------------------------------------------------------- ib_register_device| enable_device_and_get down_write(&devices_rwsem) xa_set_mark(&devices, DEVICE_REGISTERED) downgrade_write(&devices_rwsem) | |ib_cm_init |ib_register_client(&cm_client) |down_read(&devices_rwsem) |xa_for_each_marked (&devices, DEVICE_REGISTERED) |add_client_context |cm_add_one |ib_register_mad_agent |ib_get_mad_port |__ib_get_mad_port |list_for_each_entry(entry, &ib_mad_port_list, port_list) |return NULL |up_read(&devices_rwsem) | add_client_context| ib_mad_init_device| ib_mad_port_open | list_add_tail(&port_priv->port_list, &ib_mad_port_list) up_read(&devices_rwsem) | Fix it by using down_write(&devices_rwsem) in ib_register_client(). Fixes: d0899892edd0 ("RDMA/device: Provide APIs from the core code to help = unregistration") Link: https://lore.kernel.org/r/20240203035313.98991-1-lishifeng@sangfor.co= m.cn Suggested-by: Jason Gunthorpe Signed-off-by: Shifeng Li Signed-off-by: Jason Gunthorpe Signed-off-by: Sasha Levin --- drivers/infiniband/core/device.c | 37 +++++++++++++++++++------------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/drivers/infiniband/core/device.c b/drivers/infiniband/core/dev= ice.c index 2c2ac63b39c42..725f2719132fb 100644 --- a/drivers/infiniband/core/device.c +++ b/drivers/infiniband/core/device.c @@ -1729,7 +1729,7 @@ static int assign_client_id(struct ib_client *client) { int ret; =20 - down_write(&clients_rwsem); + lockdep_assert_held(&clients_rwsem); /* * The add/remove callbacks must be called in FIFO/LIFO order. To * achieve this we assign client_ids so they are sorted in @@ -1738,14 +1738,11 @@ static int assign_client_id(struct ib_client *clien= t) client->client_id =3D highest_client_id; ret =3D xa_insert(&clients, client->client_id, client, GFP_KERNEL); if (ret) - goto out; + return ret; =20 highest_client_id++; xa_set_mark(&clients, client->client_id, CLIENT_REGISTERED); - -out: - up_write(&clients_rwsem); - return ret; + return 0; } =20 static void remove_client_id(struct ib_client *client) @@ -1775,25 +1772,35 @@ int ib_register_client(struct ib_client *client) { struct ib_device *device; unsigned long index; + bool need_unreg =3D false; int ret; =20 refcount_set(&client->uses, 1); init_completion(&client->uses_zero); + + /* + * The devices_rwsem is held in write mode to ensure that a racing + * ib_register_device() sees a consisent view of clients and devices. + */ + down_write(&devices_rwsem); + down_write(&clients_rwsem); ret =3D assign_client_id(client); if (ret) - return ret; + goto out; =20 - down_read(&devices_rwsem); + need_unreg =3D true; xa_for_each_marked (&devices, index, device, DEVICE_REGISTERED) { ret =3D add_client_context(device, client); - if (ret) { - up_read(&devices_rwsem); - ib_unregister_client(client); - return ret; - } + if (ret) + goto out; } - up_read(&devices_rwsem); - return 0; + ret =3D 0; +out: + up_write(&clients_rwsem); + up_write(&devices_rwsem); + if (need_unreg && ret) + ib_unregister_client(client); + return ret; } EXPORT_SYMBOL(ib_register_client); =20 --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4F1321788AB; Sun, 24 Mar 2024 23:39:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323559; cv=none; b=PhKt97dOVfig1OLvzlZEvm1pz+BbTnGJKEMqzjz+uz3itZlc6eQ7u7Ie3FoLLXQlIeHXQ3RqiK65ZVWhioTVt9qnCOQKfnBQVLU3VJ3U+jlpAW8nF1sQwU4Gn0e/wypFGgs39SwJ09chGjM89W9RWs0oeH/nSuJzH1qHwoj92s0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323559; c=relaxed/simple; bh=n/DivqH/I9rjaV+4WoG2fZKBc8VxgNOqomA49mhUcIY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Qf+DAMKrzbAIFlQx6nDYD+uVebljDz3IHIEK7TWrBvxolxCBvH7BZ3T9W1kO6gny041ZGvurGrR6wmORTkxBt1g25n6/xBAcDTTEHdqRrgjMAY7Knsyf3VXpxnqw+XI0AIzaF0CG2rHbYmtv/wlJ+KsfzSTQVjEuFQ3H+hLhOTI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=hABzEwcd; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="hABzEwcd" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 74EB7C433A6; Sun, 24 Mar 2024 23:39:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323558; bh=n/DivqH/I9rjaV+4WoG2fZKBc8VxgNOqomA49mhUcIY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=hABzEwcdZRDKoFCT7+2btDOnZMg4I9B++qAUjad/M1W5bhW1skCC+pID4r4l7CU3p q9RAoMULOeK4Tzs0C8JcgAxzHB67FAp6dpce+jhoyeMl9nOAe5my3sRduBrtG5MtkF wAfSnekSpVEsHxkO0f2IG1ubUPdl5VR+EegEXW9A6VdAjRgWBF1xOFy2x0kDVn4ZLc fOHFagdrYsxMf1upwzJSGar6NG5aLDVczsMJxjgxbtdOQFQhoqk1ES6cSzyKqdPpd2 Y5ZOlP7CkU3L+9P2UDv2jDnjt86Ez+jzOrbvUtXEUJBc/pdHm2nB33PJ02rstb8lJf iAiX/vBS355IQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Alexey Kodanev , Jack Wang , Leon Romanovsky , Sasha Levin Subject: [PATCH 5.15 265/317] RDMA/rtrs-clt: Check strnlen return len in sysfs mpath_policy_store() Date: Sun, 24 Mar 2024 19:34:05 -0400 Message-ID: <20240324233458.1352854-266-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Alexey Kodanev [ Upstream commit 7a7b7f575a25aa68ee934ee8107294487efcb3fe ] strnlen() may return 0 (e.g. for "\0\n" string), it's better to check the result of strnlen() before using 'len - 1' expression for the 'buf' array index. Detected using the static analysis tool - Svace. Fixes: dc3b66a0ce70 ("RDMA/rtrs-clt: Add a minimum latency multipath policy= ") Signed-off-by: Alexey Kodanev Link: https://lore.kernel.org/r/20240221113204.147478-1-aleksei.kodanev@bel= l-sw.com Acked-by: Jack Wang Signed-off-by: Leon Romanovsky Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/infiniband/ulp/rtrs/rtrs-clt-sysfs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/infiniband/ulp/rtrs/rtrs-clt-sysfs.c b/drivers/infinib= and/ulp/rtrs/rtrs-clt-sysfs.c index dbf9a778c3bd7..583c38eb04326 100644 --- a/drivers/infiniband/ulp/rtrs/rtrs-clt-sysfs.c +++ b/drivers/infiniband/ulp/rtrs/rtrs-clt-sysfs.c @@ -131,7 +131,7 @@ static ssize_t mpath_policy_store(struct device *dev, =20 /* distinguish "mi" and "min-latency" with length */ len =3D strnlen(buf, NAME_MAX); - if (buf[len - 1] =3D=3D '\n') + if (len && buf[len - 1] =3D=3D '\n') len--; =20 if (!strncasecmp(buf, "round-robin", 11) || --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4BAB51788A6; Sun, 24 Mar 2024 23:39:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323560; cv=none; b=c8/0+IBS87wQK2NiRTMo+d35IeByJWJDdzzmAq/CCQ3Oszoyf8pAszq43/2cDk9wS9mIc7pqUp4jTBT+U6vHLdDCXfwsrD1Djd6lByagpvSN2L26nODmIJZ5/OJ1Tj2n9wNh713NtBNXaC/MDTemWae6tSrLBiAbveG+Wm9YcA8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323560; c=relaxed/simple; bh=u09IWd1qZVsAZyxzHseF9kFtpoNg9X/fMsPqkG48VTg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PjPqCUiHs13K+nlG/FPuzhOI0RXoALnsAS8qjw4jp4PoB8BSeNrE5UP9xzrRCA+ptzJc7F9A88BJkmeZNmk6r6bjmlQQyRNy2HkyqBJkpYcqPznZLjWAngr0lZczhWzKqT4d5xI5MDgztrBq0lq6dEFDna3nEsWuXHFoNdT06F4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=o/sE8YFh; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="o/sE8YFh" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 71FC5C433F1; Sun, 24 Mar 2024 23:39:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323559; bh=u09IWd1qZVsAZyxzHseF9kFtpoNg9X/fMsPqkG48VTg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=o/sE8YFh69OnSs35bf4q9bsFgxGVXbTM25nCkcJ4pfQU73EQQA3KtRnHhF5Wthm5v LD/67DMIMMxfzSxH0cXDzqOwaHrYFloup37oWbWr2O8Wyb2X6pZj34iL5BGttjlxvA bCrOTMOv9+ln0/YIbLKu0Yo388RUQAAzpej9l5/SFEAGtC/UDSVTulv0sDeldlLC0S 3fLJyi49Goh4Mdnly9lhd7StVtyYA2e2irolM4xSqm4/fZghy5U0ufJMmJP7CJjZzm 5D/UN3PF9s2KunxID+RPU/6JbUQ699yCgNUaUUDXhtWc6keNINWp5yS1kN3M8FjYTN DyNNgB9vYW0Hw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Arnd Bergmann , Kees Cook , "Martin K . Petersen" , Sasha Levin Subject: [PATCH 5.15 266/317] scsi: bfa: Fix function pointer type mismatch for hcb_qe->cbfn Date: Sun, 24 Mar 2024 19:34:06 -0400 Message-ID: <20240324233458.1352854-267-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Arnd Bergmann [ Upstream commit b69600231f751304db914c63b937f7098ed2895c ] Some callback functions used here take a boolean argument, others take a status argument. This breaks KCFI type checking, so clang now warns about the function pointer cast: drivers/scsi/bfa/bfad_bsg.c:2138:29: error: cast from 'void (*)(void *, enu= m bfa_status)' to 'bfa_cb_cbfn_t' (aka 'void (*)(void *, enum bfa_boolean)'= ) converts to incompatible function type [-Werror,-Wcast-function-type-stri= ct] Assuming the code is actually correct here and the callers always match the argument types of the callee, rework this to replace the explicit cast with a union of the two pointer types. This does not change the behavior of the code, so if something is actually broken here, a larger rework may be necessary. Fixes: 37ea0558b87a ("[SCSI] bfa: Added support to collect and reset fcport= stats") Fixes: 3ec4f2c8bff2 ("[SCSI] bfa: Added support to configure QOS and collec= t stats.") Reviewed-by: Kees Cook Signed-off-by: Arnd Bergmann Link: https://lore.kernel.org/r/20240222124433.2046570-1-arnd@kernel.org Signed-off-by: Martin K. Petersen Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/scsi/bfa/bfa.h | 9 ++++++++- drivers/scsi/bfa/bfa_core.c | 4 +--- drivers/scsi/bfa/bfa_ioc.h | 8 ++++++-- drivers/scsi/bfa/bfad_bsg.c | 11 ++++------- 4 files changed, 19 insertions(+), 13 deletions(-) diff --git a/drivers/scsi/bfa/bfa.h b/drivers/scsi/bfa/bfa.h index 7bd2ba1ad4d11..f30fe324e6ecc 100644 --- a/drivers/scsi/bfa/bfa.h +++ b/drivers/scsi/bfa/bfa.h @@ -20,7 +20,6 @@ struct bfa_s; =20 typedef void (*bfa_isr_func_t) (struct bfa_s *bfa, struct bfi_msg_s *m); -typedef void (*bfa_cb_cbfn_status_t) (void *cbarg, bfa_status_t status); =20 /* * Interrupt message handlers @@ -437,4 +436,12 @@ struct bfa_cb_pending_q_s { (__qe)->data =3D (__data); \ } while (0) =20 +#define bfa_pending_q_init_status(__qe, __cbfn, __cbarg, __data) do { \ + bfa_q_qe_init(&((__qe)->hcb_qe.qe)); \ + (__qe)->hcb_qe.cbfn_status =3D (__cbfn); \ + (__qe)->hcb_qe.cbarg =3D (__cbarg); \ + (__qe)->hcb_qe.pre_rmv =3D BFA_TRUE; \ + (__qe)->data =3D (__data); \ +} while (0) + #endif /* __BFA_H__ */ diff --git a/drivers/scsi/bfa/bfa_core.c b/drivers/scsi/bfa/bfa_core.c index 6846ca8f7313c..3438d0b8ba062 100644 --- a/drivers/scsi/bfa/bfa_core.c +++ b/drivers/scsi/bfa/bfa_core.c @@ -1907,15 +1907,13 @@ bfa_comp_process(struct bfa_s *bfa, struct list_hea= d *comp_q) struct list_head *qe; struct list_head *qen; struct bfa_cb_qe_s *hcb_qe; - bfa_cb_cbfn_status_t cbfn; =20 list_for_each_safe(qe, qen, comp_q) { hcb_qe =3D (struct bfa_cb_qe_s *) qe; if (hcb_qe->pre_rmv) { /* qe is invalid after return, dequeue before cbfn() */ list_del(qe); - cbfn =3D (bfa_cb_cbfn_status_t)(hcb_qe->cbfn); - cbfn(hcb_qe->cbarg, hcb_qe->fw_status); + hcb_qe->cbfn_status(hcb_qe->cbarg, hcb_qe->fw_status); } else hcb_qe->cbfn(hcb_qe->cbarg, BFA_TRUE); } diff --git a/drivers/scsi/bfa/bfa_ioc.h b/drivers/scsi/bfa/bfa_ioc.h index 933a1c3890ff5..5e568d6d7b261 100644 --- a/drivers/scsi/bfa/bfa_ioc.h +++ b/drivers/scsi/bfa/bfa_ioc.h @@ -361,14 +361,18 @@ struct bfa_reqq_wait_s { void *cbarg; }; =20 -typedef void (*bfa_cb_cbfn_t) (void *cbarg, bfa_boolean_t complete); +typedef void (*bfa_cb_cbfn_t) (void *cbarg, bfa_boolean_t complete); +typedef void (*bfa_cb_cbfn_status_t) (void *cbarg, bfa_status_t status); =20 /* * Generic BFA callback element. */ struct bfa_cb_qe_s { struct list_head qe; - bfa_cb_cbfn_t cbfn; + union { + bfa_cb_cbfn_status_t cbfn_status; + bfa_cb_cbfn_t cbfn; + }; bfa_boolean_t once; bfa_boolean_t pre_rmv; /* set for stack based qe(s) */ bfa_status_t fw_status; /* to access fw status in comp proc */ diff --git a/drivers/scsi/bfa/bfad_bsg.c b/drivers/scsi/bfa/bfad_bsg.c index be8dfbe13e904..524e4e6979c9f 100644 --- a/drivers/scsi/bfa/bfad_bsg.c +++ b/drivers/scsi/bfa/bfad_bsg.c @@ -2135,8 +2135,7 @@ bfad_iocmd_fcport_get_stats(struct bfad_s *bfad, void= *cmd) struct bfa_cb_pending_q_s cb_qe; =20 init_completion(&fcomp.comp); - bfa_pending_q_init(&cb_qe, (bfa_cb_cbfn_t)bfad_hcb_comp, - &fcomp, &iocmd->stats); + bfa_pending_q_init_status(&cb_qe, bfad_hcb_comp, &fcomp, &iocmd->stats); spin_lock_irqsave(&bfad->bfad_lock, flags); iocmd->status =3D bfa_fcport_get_stats(&bfad->bfa, &cb_qe); spin_unlock_irqrestore(&bfad->bfad_lock, flags); @@ -2159,7 +2158,7 @@ bfad_iocmd_fcport_reset_stats(struct bfad_s *bfad, vo= id *cmd) struct bfa_cb_pending_q_s cb_qe; =20 init_completion(&fcomp.comp); - bfa_pending_q_init(&cb_qe, (bfa_cb_cbfn_t)bfad_hcb_comp, &fcomp, NULL); + bfa_pending_q_init_status(&cb_qe, bfad_hcb_comp, &fcomp, NULL); =20 spin_lock_irqsave(&bfad->bfad_lock, flags); iocmd->status =3D bfa_fcport_clear_stats(&bfad->bfa, &cb_qe); @@ -2443,8 +2442,7 @@ bfad_iocmd_qos_get_stats(struct bfad_s *bfad, void *c= md) struct bfa_fcport_s *fcport =3D BFA_FCPORT_MOD(&bfad->bfa); =20 init_completion(&fcomp.comp); - bfa_pending_q_init(&cb_qe, (bfa_cb_cbfn_t)bfad_hcb_comp, - &fcomp, &iocmd->stats); + bfa_pending_q_init_status(&cb_qe, bfad_hcb_comp, &fcomp, &iocmd->stats); =20 spin_lock_irqsave(&bfad->bfad_lock, flags); WARN_ON(!bfa_ioc_get_fcmode(&bfad->bfa.ioc)); @@ -2474,8 +2472,7 @@ bfad_iocmd_qos_reset_stats(struct bfad_s *bfad, void = *cmd) struct bfa_fcport_s *fcport =3D BFA_FCPORT_MOD(&bfad->bfa); =20 init_completion(&fcomp.comp); - bfa_pending_q_init(&cb_qe, (bfa_cb_cbfn_t)bfad_hcb_comp, - &fcomp, NULL); + bfa_pending_q_init_status(&cb_qe, bfad_hcb_comp, &fcomp, NULL); =20 spin_lock_irqsave(&bfad->bfad_lock, flags); WARN_ON(!bfa_ioc_get_fcmode(&bfad->bfa.ioc)); --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4C6361788B7; Sun, 24 Mar 2024 23:39:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323561; cv=none; b=cK9zmeJnXtMvyC7n4WH2/V8WN84ACkx/xgpZxtLC5dl3gMKzCiG8EXJvxK0/PRw1Hj+MzIQQ8rckLwQV92nuejxWnvxixbQ4dA5CVHCyeRUxL0hyUmAmTMI41QskW4KCva2/XGfYs2GGd6lJqy/JIwrv7CwExAUY0x6dhw41Dtc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323561; c=relaxed/simple; bh=dhKFxGipNUYb7+OZCcYXRa1jL6XDpWTD56tS1MNSVQM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=TlogpsQj31QNSiLyE3HX5xMz3Dikz3/OeipARRtnM38TvYWK/PRV8HeyuE4fEuWfAFxnWCMwQKCtAn4c2ZCvjA6HOXhTJJu8d9JQrSBLqeKiAqtc9bv1x5+qwoAVt8/KQCumSixCFZCT3p+RTRDhvIon0YabTw+E+DR5Bj+5bic= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=aHIzo2F/; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="aHIzo2F/" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 73DBDC433C7; Sun, 24 Mar 2024 23:39:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323560; bh=dhKFxGipNUYb7+OZCcYXRa1jL6XDpWTD56tS1MNSVQM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=aHIzo2F/X7eAo2ppinkUYgb7SIApXFV/CvRPkLV99CNFuXYkgCI+eIws8K49+5oiJ +vCX231/B9nSCigNdBDPQ20+OWt9+nNpW3mKnxzY7M/ni/ZFDo8WSW2xqi0a/XpCku eIDdszMk34bD5OtWZGQUqLSnrcQXodR3oVUzKLNDoMHjnMgxladTkiqil41Q/nt/uo 6r1/9Hn9Y6EZiXnljZ1ZjGw1urb/eGu3CKyGMAz/eY16hhGa8ceHpxRgTZ6moexfps txjc+ugYLjrPgY3keQ750FEtK1NOGn3HaxUN++Qm4tyAoxwWn+9cNkoU0akk/v1gUS n7zfipyQDOQrw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Christophe JAILLET , Benjamin Coddington , Trond Myklebust , Sasha Levin Subject: [PATCH 5.15 267/317] net: sunrpc: Fix an off by one in rpc_sockaddr2uaddr() Date: Sun, 24 Mar 2024 19:34:07 -0400 Message-ID: <20240324233458.1352854-268-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Christophe JAILLET [ Upstream commit d6f4de70f73a106986ee315d7d512539f2f3303a ] The intent is to check if the strings' are truncated or not. So, >=3D should be used instead of >, because strlcat() and snprintf() return the length of the output, excluding the trailing NULL. Fixes: a02d69261134 ("SUNRPC: Provide functions for managing universal addr= esses") Signed-off-by: Christophe JAILLET Reviewed-by: Benjamin Coddington Signed-off-by: Trond Myklebust Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- net/sunrpc/addr.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/net/sunrpc/addr.c b/net/sunrpc/addr.c index d435bffc61999..97ff11973c493 100644 --- a/net/sunrpc/addr.c +++ b/net/sunrpc/addr.c @@ -284,10 +284,10 @@ char *rpc_sockaddr2uaddr(const struct sockaddr *sap, = gfp_t gfp_flags) } =20 if (snprintf(portbuf, sizeof(portbuf), - ".%u.%u", port >> 8, port & 0xff) > (int)sizeof(portbuf)) + ".%u.%u", port >> 8, port & 0xff) >=3D (int)sizeof(portbuf)) return NULL; =20 - if (strlcat(addrbuf, portbuf, sizeof(addrbuf)) > sizeof(addrbuf)) + if (strlcat(addrbuf, portbuf, sizeof(addrbuf)) >=3D sizeof(addrbuf)) return NULL; =20 return kstrdup(addrbuf, gfp_flags); --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5D6A91788B9; Sun, 24 Mar 2024 23:39:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323561; cv=none; b=MoplVxO1KUav0bsBbsca52ga6kJU71SYAKiezeqgnGmKjRz3U2IQVYL9LWMbERAS3dGm8z3pO9pWKcBNyndVaC8dJhZBHh/kIb1VCDkrNMPX2Nvbfs6NC4mt/GtLSvEw4SbDjFPuKpK150Bz3iogNj9AEmRBHadNF6OYGpzXYPU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323561; c=relaxed/simple; bh=ESxnT3azxj7fY9dw/YjvEExGfkTGb4fuQlPcFWOehpA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=sd7Ua9+XgAP9X5DP7zPH96hUOLCvoQu61f818uPXoBr4cRtjI3Ko+zSgMw9qKSC8i/M8C4sQdpEA4mzW6Bkul5kevsm4OodugxgshZh4g63myc5yrsXdyUJ2K+gn1cJOd6FgGVAiemFFAWO9CV0MchrFJ1nXd86qNtoM1+Cv81c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=rtoexa6/; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="rtoexa6/" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6E9AEC43394; Sun, 24 Mar 2024 23:39:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323561; bh=ESxnT3azxj7fY9dw/YjvEExGfkTGb4fuQlPcFWOehpA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=rtoexa6/8rRKcf4SFZ7zxSpMPj1q3T2JwCJQvZ2YnOfipV6+Yuomv79qX/EGMfwfk JWqRrJ7XCR66uimYAW4n3+kGqn94MJj+Izu4x8AXOJw9InVT22tOjJROt0heYohQvp run7yKm4Tkx11dQCsZH90Lgu0/ZmsF+EuTAvQkCdWEDUJmujsqX6+twz0bOc3BGdPS ztpxLKyNetb/c0RnNGBKPDoyTy6O/QQJ2YO8AYmjdyuPzQwfBNWWJ+FMjoQWKJYeGr T6VO8JQGrFY5JUsqEPHzCmxNQyvLZBnR7xJViN21RHw6EccAif15sAWcaTGZgPk76M pJ+mv9gQ2Ik0w== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jorge Mora , Jorge Mora , Benjamin Coddington , Trond Myklebust , Sasha Levin Subject: [PATCH 5.15 268/317] NFSv4.2: fix nfs4_listxattr kernel BUG at mm/usercopy.c:102 Date: Sun, 24 Mar 2024 19:34:08 -0400 Message-ID: <20240324233458.1352854-269-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Jorge Mora [ Upstream commit 251a658bbfceafb4d58c76b77682c8bf7bcfad65 ] A call to listxattr() with a buffer size =3D 0 returns the actual size of the buffer needed for a subsequent call. When size > 0, nfs4_listxattr() does not return an error because either generic_listxattr() or nfs4_listxattr_nfs4_label() consumes exactly all the bytes then size is 0 when calling nfs4_listxattr_nfs4_user() which then triggers the following kernel BUG: [ 99.403778] kernel BUG at mm/usercopy.c:102! [ 99.404063] Internal error: Oops - BUG: 00000000f2000800 [#1] SMP [ 99.408463] CPU: 0 PID: 3310 Comm: python3 Not tainted 6.6.0-61.fc40.a= arch64 #1 [ 99.415827] Call trace: [ 99.415985] usercopy_abort+0x70/0xa0 [ 99.416227] __check_heap_object+0x134/0x158 [ 99.416505] check_heap_object+0x150/0x188 [ 99.416696] __check_object_size.part.0+0x78/0x168 [ 99.416886] __check_object_size+0x28/0x40 [ 99.417078] listxattr+0x8c/0x120 [ 99.417252] path_listxattr+0x78/0xe0 [ 99.417476] __arm64_sys_listxattr+0x28/0x40 [ 99.417723] invoke_syscall+0x78/0x100 [ 99.417929] el0_svc_common.constprop.0+0x48/0xf0 [ 99.418186] do_el0_svc+0x24/0x38 [ 99.418376] el0_svc+0x3c/0x110 [ 99.418554] el0t_64_sync_handler+0x120/0x130 [ 99.418788] el0t_64_sync+0x194/0x198 [ 99.418994] Code: aa0003e3 d000a3e0 91310000 97f49bdb (d4210000) Issue is reproduced when generic_listxattr() returns 'system.nfs4_acl', thus calling lisxattr() with size =3D 16 will trigger the bug. Add check on nfs4_listxattr() to return ERANGE error when it is called with size > 0 and the return value is greater than size. Fixes: 012a211abd5d ("NFSv4.2: hook in the user extended attribute handlers= ") Signed-off-by: Jorge Mora Reviewed-by: Benjamin Coddington Signed-off-by: Trond Myklebust Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- fs/nfs/nfs4proc.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index a865b384f0fc0..925ad7dbe6a0d 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c @@ -10517,29 +10517,33 @@ const struct nfs4_minor_version_ops *nfs_v4_minor= _ops[] =3D { static ssize_t nfs4_listxattr(struct dentry *dentry, char *list, size_t si= ze) { ssize_t error, error2, error3; + size_t left =3D size; =20 - error =3D generic_listxattr(dentry, list, size); + error =3D generic_listxattr(dentry, list, left); if (error < 0) return error; if (list) { list +=3D error; - size -=3D error; + left -=3D error; } =20 - error2 =3D nfs4_listxattr_nfs4_label(d_inode(dentry), list, size); + error2 =3D nfs4_listxattr_nfs4_label(d_inode(dentry), list, left); if (error2 < 0) return error2; =20 if (list) { list +=3D error2; - size -=3D error2; + left -=3D error2; } =20 - error3 =3D nfs4_listxattr_nfs4_user(d_inode(dentry), list, size); + error3 =3D nfs4_listxattr_nfs4_user(d_inode(dentry), list, left); if (error3 < 0) return error3; =20 - return error + error2 + error3; + error +=3D error2 + error3; + if (size && error > size) + return -ERANGE; + return error; } =20 static void nfs4_enable_swap(struct inode *inode) --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6F8FC5B209; Sun, 24 Mar 2024 23:39:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323563; cv=none; b=mudgdZqnPnHSrf8QpQ6iDyuYJzkSsIGsfzZU7XID325/fatdbPZo/MFVNK0T8LYd6pzba/FUaof0FJ4J5onIVQHUfaCC98FJeWCXcMiW3RLzOJ/6EEq+71Ko9wXzbaWEZBqmPEUNF7Pq4TdwkbG9FmVDWh2x6CI8mOm3KMa0ysc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323563; c=relaxed/simple; bh=LYazFtegKbUQmWF4+002xX2Q9D4Jt0jQN6fweMdHyiQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=g60ce+g9CAqiIc9Z03QvdIg4Oc4IBazI9H/01Q5FxvcQiUcU1I5C3NOSRUI9Aog+ZLmmSFwt5NduGKS+uF8Z0NMv8VcNfedfR/ixCxIug5zaWixgocvgG6E+byT8sJpXcd0LOAzfoYMv7RJVLoLHKDkSqJCu9B/By1EBEjRafNM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=WNANmy3T; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="WNANmy3T" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8219EC43390; Sun, 24 Mar 2024 23:39:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323562; bh=LYazFtegKbUQmWF4+002xX2Q9D4Jt0jQN6fweMdHyiQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=WNANmy3TUkpRh4XtGUDffHoiZC+7PHLK9AUvT4gUXkYmUUsyLlGzbVJj7P5Yk96M7 UymxQ0n2TtM6oKGR8eUaiW3mpuY3T0jmSFrVpeu+g/EopBbZo+LWvtIypC9CwASILb czWF1jnJND8RW8QFz/tuNrHAU7nkF0vWtgd4kNWTv5nFT7frfJx8wQWhRfAGfZccCA 2Z5xMVWF/UCQVSq0gykn2cllnNxw5tDFD1oEH5pN2YITSTunocmd9Q4LCNY7uuuEuT yfdTeEgDJyniDPjgEOZHKaU9BYQjbp2NepwY1rRpjqVBJC0lNOJYPbeeY7apG6cthi xQb7pzHqHBXUA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jorge Mora , Jorge Mora , Benjamin Coddington , Trond Myklebust , Sasha Levin Subject: [PATCH 5.15 269/317] NFSv4.2: fix listxattr maximum XDR buffer size Date: Sun, 24 Mar 2024 19:34:09 -0400 Message-ID: <20240324233458.1352854-270-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Jorge Mora [ Upstream commit bcac8bff90a6ee1629f90669cdb9d28fb86049b0 ] Switch order of operations to avoid creating a short XDR buffer: e.g., buflen =3D 12, old xdrlen =3D 12, new xdrlen =3D 20. Having a short XDR buffer leads to lxa_maxcount be a few bytes less than what is needed to retrieve the whole list when using a buflen as returned by a call with size =3D 0: buflen =3D listxattr(path, NULL, 0); buf =3D malloc(buflen); buflen =3D listxattr(path, buf, buflen); For a file with one attribute (name =3D '123456'), the first call with size =3D 0 will return buflen =3D 12 ('user.123456\x00'). The second call with size =3D 12, sends LISTXATTRS with lxa_maxcount =3D 12 + 8 (cookie) + 4 (array count) =3D 24. The XDR buffer needs 8 (cookie) + 4 (array count) + 4 (name count) + 6 (name len) + 2 (padding) + 4 (eof) =3D 28 which is 4 bytes shorter than the lxa_maxcount provided in the call. Fixes: 04a5da690e8f ("NFSv4.2: define limits and sizes for user xattr handl= ing") Signed-off-by: Jorge Mora Reviewed-by: Benjamin Coddington Signed-off-by: Trond Myklebust Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- fs/nfs/nfs42.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/fs/nfs/nfs42.h b/fs/nfs/nfs42.h index 0fe5aacbcfdf1..e7192d0eea3de 100644 --- a/fs/nfs/nfs42.h +++ b/fs/nfs/nfs42.h @@ -54,11 +54,14 @@ int nfs42_proc_removexattr(struct inode *inode, const c= har *name); * They would be 7 bytes long in the eventual buffer ("user.x\0"), and * 8 bytes long XDR-encoded. * - * Include the trailing eof word as well. + * Include the trailing eof word as well and make the result a multiple + * of 4 bytes. */ static inline u32 nfs42_listxattr_xdrsize(u32 buflen) { - return ((buflen / (XATTR_USER_PREFIX_LEN + 2)) * 8) + 4; + u32 size =3D 8 * buflen / (XATTR_USER_PREFIX_LEN + 2) + 4; + + return (size + 3) & ~3; } #endif /* CONFIG_NFS_V4_2 */ #endif /* __LINUX_FS_NFS_NFS4_2_H */ --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 664341788AE; Sun, 24 Mar 2024 23:39:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323563; cv=none; b=QADJh5HBHgXtJaVQEZK5N2RR13x0k8ZMJIxAeo/bLrLnRvDqxHIw2mOmow2dVN5Fv5NKSn7DUuMu/CQKC+VGm5rVWKD3ywaAh2sYSjV5GwRZ6pe3it3K1O1zR+yAwy2wKvKlqQ6fRrGlejLLKGTtJxDah1/izQcp6LXJUL2WTgg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323563; c=relaxed/simple; bh=NYj3SGxIiNIhzVR6Texho7izXCcQlT5P7lrIMwwNkMo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=BG30o2JhUM8hQX7pkgMum15T66MQjokDpLV1L2ncZHXA1g3yUEJkLy3Crtel0rFIePkw8ik2j+W6ywp9ZtXpkHpcuiVH0Z4L2mt5ub+4QDeQmtSXatq2IZRcLaBMBsLQJCbb6TvDACDWRM6QcnG8M+wN5qZ27+rG+I/BUU1cZwA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=t3CHCu3u; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="t3CHCu3u" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 918EAC43394; Sun, 24 Mar 2024 23:39:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323563; bh=NYj3SGxIiNIhzVR6Texho7izXCcQlT5P7lrIMwwNkMo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=t3CHCu3uB9/cRlPyjjJwjQJD4xP3CwujlnmWlHF/MxoQnWmEQhXEvXjLfQjxjx+am Rve8n2I8twUUxB77uyxEK/OOHWMvgFO3EoCwrwUxnePe+jI3fjgtD1eUDjyqapJQIB 79shPW1+ocKzff6PJLxQuIs4kYqbtxMr2lubMDaKcf16lOAtpT7pY0muUukuKCjyuk PkoFeqTIa/6/rrJ7M3hYyl3pXtmUPRwxFt109MmTqFkra9Bf/0Jb7DDzKhUS0K7Rve RniPDiOAPRF6OY3Kd5MUOfBvYedkfWo5XDXQPOow0JHpobgsZXChFxj+Cf2ZNSnea+ UDWnw5V7V+DwA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Ben Wolsieffer , Guenter Roeck , Wim Van Sebroeck , Sasha Levin Subject: [PATCH 5.15 270/317] watchdog: stm32_iwdg: initialize default timeout Date: Sun, 24 Mar 2024 19:34:10 -0400 Message-ID: <20240324233458.1352854-271-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Ben Wolsieffer [ Upstream commit dbd7c0088b7f44aa0b9276ed3449df075a7b5b54 ] The driver never sets a default timeout value, therefore it is initialized to zero. When CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED is enabled, the watchdog is started during probe. The kernel is supposed to automatically ping the watchdog from this point until userspace takes over, but this does not happen if the configured timeout is zero. A zero timeout causes watchdog_need_worker() to return false, so the heartbeat worker does not run and the system therefore resets soon after the driver is probed. This patch fixes this by setting an arbitrary non-zero default timeout. The default could be read from the hardware instead, but I didn't see any reason to add this complexity. This has been tested on an STM32F746. Fixes: 85fdc63fe256 ("drivers: watchdog: stm32_iwdg: set WDOG_HW_RUNNING at= probe") Signed-off-by: Ben Wolsieffer Reviewed-by: Guenter Roeck Link: https://lore.kernel.org/r/20240228182723.12855-1-ben.wolsieffer@hefri= ng.com Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/watchdog/stm32_iwdg.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/watchdog/stm32_iwdg.c b/drivers/watchdog/stm32_iwdg.c index a3436c296c97b..8a7b1279a3130 100644 --- a/drivers/watchdog/stm32_iwdg.c +++ b/drivers/watchdog/stm32_iwdg.c @@ -21,6 +21,8 @@ #include #include =20 +#define DEFAULT_TIMEOUT 10 + /* IWDG registers */ #define IWDG_KR 0x00 /* Key register */ #define IWDG_PR 0x04 /* Prescaler Register */ @@ -251,6 +253,7 @@ static int stm32_iwdg_probe(struct platform_device *pde= v) wdd->parent =3D dev; wdd->info =3D &stm32_iwdg_info; wdd->ops =3D &stm32_iwdg_ops; + wdd->timeout =3D DEFAULT_TIMEOUT; wdd->min_timeout =3D DIV_ROUND_UP((RLR_MIN + 1) * PR_MIN, wdt->rate); wdd->max_hw_heartbeat_ms =3D ((RLR_MAX + 1) * wdt->data->max_prescaler * 1000) / wdt->rate; --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 68F2C13C693; Sun, 24 Mar 2024 23:39:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323564; cv=none; b=PmwhuCyptQsv73cvvcXdqTemzjt/wup2mI5NJbfDrSlErj4Z6KzJcRS3jzRIeBdCqr8HaCzbM3fBevPbMRHZuIdelGNFOdws22G296fie/yvGLJ6T95g9HOwutXEdNVXkKRRz4Ss630LzCzCGV/NPhtDXPfO/YHaxOStGnMVL8c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323564; c=relaxed/simple; bh=Roie6MsJdNvp73cKniu3QDUBbywUVPcSI2K9N8bQLTQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=tHkQO+kxrO0Y3SsQyoB7/xO+aumpYT6zm9zS9eiRtQkGU0RqL1elGc3mZ+b+VdnYnVtp1Ch0jmLnpDkT0LKGsY2NNrJmAqKgl9BlC1ziBIwBTvSr8QvXShQYkIdCX7OxiUXtJUv6aKlSP4URve31/Ewj0dDIOSWKHpninhmCMA0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=sOLc41Is; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="sOLc41Is" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8AD5EC433F1; Sun, 24 Mar 2024 23:39:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323564; bh=Roie6MsJdNvp73cKniu3QDUBbywUVPcSI2K9N8bQLTQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=sOLc41IsPszOiRRjheGm/ii9McJAXwiwsg8QPVDUXMBd4Oijd0j6+XU3JSQgvgAcb Wb/PJHZwJaWnaBAS4FrWlP84iQ2udj4w8LD1CglfZn1xCq1PhMvkoepVZxXxL7oiob Z/EykgStK2BV6IuZcAsE/ZupWKenu1nWAVw14b+qYMJy5LpfEARSrWqvTk7x0DgWnj Bzjl05/PGFGLC+evhcCRthyZx6V0P+tvG0/qNufLyllvwkbAX5/zVN0vRZasTen1lW AGR7iNT+Td/qhaxEqthbIKoYEmSG4pp4ZgqzE3Lt4INAMfuLJGXRqna1CZ7fpZe1/J GOvMsYVywwgTA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Christophe JAILLET , Benjamin Coddington , Trond Myklebust , Sasha Levin Subject: [PATCH 5.15 271/317] NFS: Fix an off by one in root_nfs_cat() Date: Sun, 24 Mar 2024 19:34:11 -0400 Message-ID: <20240324233458.1352854-272-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Christophe JAILLET [ Upstream commit 698ad1a538da0b6bf969cfee630b4e3a026afb87 ] The intent is to check if 'dest' is truncated or not. So, >=3D should be used instead of >, because strlcat() returns the length of 'dest' and 'src' excluding the trailing NULL. Fixes: 56463e50d1fc ("NFS: Use super.c for NFSROOT mount option parsing") Signed-off-by: Christophe JAILLET Reviewed-by: Benjamin Coddington Signed-off-by: Trond Myklebust Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- fs/nfs/nfsroot.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fs/nfs/nfsroot.c b/fs/nfs/nfsroot.c index fa148308822cc..c2cf4ff628811 100644 --- a/fs/nfs/nfsroot.c +++ b/fs/nfs/nfsroot.c @@ -175,10 +175,10 @@ static int __init root_nfs_cat(char *dest, const char= *src, size_t len =3D strlen(dest); =20 if (len && dest[len - 1] !=3D ',') - if (strlcat(dest, ",", destlen) > destlen) + if (strlcat(dest, ",", destlen) >=3D destlen) return -1; =20 - if (strlcat(dest, src, destlen) > destlen) + if (strlcat(dest, src, destlen) >=3D destlen) return -1; return 0; } --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7CC4C178316; Sun, 24 Mar 2024 23:39:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323565; cv=none; b=F7ay+wpfJFJbgQbkN/xnpezw2+EuVQP5MUyOF+lw346enqzOH7NgWeQhzc96fBSVyES2P8F2jyfh5ndUAz0/XdaUN9+30g7NaWN2TEbrqbPrsmtppWjsm+u7b+lNAylETLF4nL/b+gQheG7KK5EI/RuJ2wzCNrEspTWRkA/te2Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323565; c=relaxed/simple; bh=I2BjWtvx6AFPfxpOlCiBSytmvjLTvgt8uh8aR+FqAmc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=nb4Bu2RjkqyoItzJI+hUEmK1nFcYHSiGlOMKi/jcmiNaxtllW0pAVudoMCCYN+H0y4Z4VCvUH8kijmt5FHmlTh0nF3dLMFOgty5t89cnUcxwpRp5Yig0lNBmkgLb/M6e3HtV0wBfcK7EmBRpZzPMHw0EJzaslnZQPASctRj6mHU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=TXb7H9eX; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="TXb7H9eX" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 83154C43394; Sun, 24 Mar 2024 23:39:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323565; bh=I2BjWtvx6AFPfxpOlCiBSytmvjLTvgt8uh8aR+FqAmc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=TXb7H9eXr7+W5JBWo9H2dWPXpDZALKBa/EPcAP8RhRlGZvOIeNuS7Xzxiap6EsNYW YDZ8clOckItp+zq8eImm6JgDarzNVzGqIUaNZg6g4JlWBe3d9lmeqnWl/r0lgWb6/w McjMCoY34o1YPjfBizmxj59DfwmxfaG+Recz+Pf03xUynz2pvKdqQJnAKMHhvHG3+O 28UvG613fI0oRQMQCiF9PG31Gaqv8oW8OGFMmAUlPwUXaYYqEA9yHloIWysWb9aEyD E52wtsgIxPAAY8hqQhpWOPBCTztduF3slksQdcFhPydVfi925uoxtxrrIXMzRAHteY u3KmPqwjEoh+A== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Xiuhong Wang , Zhiguo Niu , Chao Yu , Jaegeuk Kim , Sasha Levin Subject: [PATCH 5.15 272/317] f2fs: compress: fix reserve_cblocks counting error when out of space Date: Sun, 24 Mar 2024 19:34:12 -0400 Message-ID: <20240324233458.1352854-273-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Xiuhong Wang [ Upstream commit 2f6d721e14b69d6e1251f69fa238b48e8374e25f ] When a file only needs one direct_node, performing the following operations will cause the file to be unrepairable: unisoc # ./f2fs_io compress test.apk unisoc #df -h | grep dm-48 /dev/block/dm-48 112G 112G 1.2M 100% /data unisoc # ./f2fs_io release_cblocks test.apk 924 unisoc # df -h | grep dm-48 /dev/block/dm-48 112G 112G 4.8M 100% /data unisoc # dd if=3D/dev/random of=3Dfile4 bs=3D1M count=3D3 3145728 bytes (3.0 M) copied, 0.025 s, 120 M/s unisoc # df -h | grep dm-48 /dev/block/dm-48 112G 112G 1.8M 100% /data unisoc # ./f2fs_io reserve_cblocks test.apk F2FS_IOC_RESERVE_COMPRESS_BLOCKS failed: No space left on device adb reboot unisoc # df -h | grep dm-48 /dev/block/dm-48 112G 112G 11M 100% /data unisoc # ./f2fs_io reserve_cblocks test.apk 0 This is because the file has only one direct_node. After returning to -ENOSPC, reserved_blocks +=3D ret will not be executed. As a result, the reserved_blocks at this time is still 0, which is not the real number of reserved blocks. Therefore, fsck cannot be set to repair the file. After this patch, the fsck flag will be set to fix this problem. unisoc # df -h | grep dm-48 /dev/block/dm-48 112G 112G 1.8M 100% /data unisoc # ./f2fs_io reserve_cblocks test.apk F2FS_IOC_RESERVE_COMPRESS_BLOCKS failed: No space left on device adb reboot then fsck will be executed unisoc # df -h | grep dm-48 /dev/block/dm-48 112G 112G 11M 100% /data unisoc # ./f2fs_io reserve_cblocks test.apk 924 Fixes: c75488fb4d82 ("f2fs: introduce F2FS_IOC_RESERVE_COMPRESS_BLOCKS") Signed-off-by: Xiuhong Wang Signed-off-by: Zhiguo Niu Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- fs/f2fs/file.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c index bab83ce4fe091..378ab6bd1b8d8 100644 --- a/fs/f2fs/file.c +++ b/fs/f2fs/file.c @@ -3532,10 +3532,10 @@ static int f2fs_release_compress_blocks(struct file= *filp, unsigned long arg) return ret; } =20 -static int reserve_compress_blocks(struct dnode_of_data *dn, pgoff_t count) +static int reserve_compress_blocks(struct dnode_of_data *dn, pgoff_t count, + unsigned int *reserved_blocks) { struct f2fs_sb_info *sbi =3D F2FS_I_SB(dn->inode); - unsigned int reserved_blocks =3D 0; int cluster_size =3D F2FS_I(dn->inode)->i_cluster_size; block_t blkaddr; int i; @@ -3596,12 +3596,12 @@ static int reserve_compress_blocks(struct dnode_of_= data *dn, pgoff_t count) =20 f2fs_i_compr_blocks_update(dn->inode, compr_blocks, true); =20 - reserved_blocks +=3D reserved; + *reserved_blocks +=3D reserved; next: count -=3D cluster_size; } =20 - return reserved_blocks; + return 0; } =20 static int f2fs_reserve_compress_blocks(struct file *filp, unsigned long a= rg) @@ -3662,7 +3662,7 @@ static int f2fs_reserve_compress_blocks(struct file *= filp, unsigned long arg) count =3D min(end_offset - dn.ofs_in_node, last_idx - page_idx); count =3D round_up(count, F2FS_I(inode)->i_cluster_size); =20 - ret =3D reserve_compress_blocks(&dn, count); + ret =3D reserve_compress_blocks(&dn, count, &reserved_blocks); =20 f2fs_put_dnode(&dn); =20 @@ -3670,13 +3670,12 @@ static int f2fs_reserve_compress_blocks(struct file= *filp, unsigned long arg) break; =20 page_idx +=3D count; - reserved_blocks +=3D ret; } =20 filemap_invalidate_unlock(inode->i_mapping); up_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]); =20 - if (ret >=3D 0) { + if (!ret) { clear_inode_flag(inode, FI_COMPRESS_RELEASED); inode->i_ctime =3D current_time(inode); f2fs_mark_inode_dirty_sync(inode, true); @@ -3686,7 +3685,7 @@ static int f2fs_reserve_compress_blocks(struct file *= filp, unsigned long arg) out: mnt_drop_write_file(filp); =20 - if (ret >=3D 0) { + if (!ret) { ret =3D put_user(reserved_blocks, (u64 __user *)arg); } else if (reserved_blocks && atomic_read(&F2FS_I(inode)->i_compr_blocks)) { --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CA20517831E; Sun, 24 Mar 2024 23:39:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323567; cv=none; b=bt21z1Ak0Gk8m2lt8TzT64/ofh0kLj3XkF3IOvxlGGYBVyi6G7yK15V86W2RRc+ZIZp6iW5yXFbIiJlK0aNIAV0V4R8VfPumjuAtKylRkfTA3HPw/+X/Cx8Nx12ze2svZlcSbKh4Jg5O0S6WVrAEgVjtwQ02U175lHe9Ug6Z4H0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323567; c=relaxed/simple; bh=lYH8x8NXl+D9jSgcCFP/jUoI1eKm4X/OKybsLqIHfWM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=KDYCvxAzKVs8bEdRj4a5/EqjGESdvFg70K4QMgiad7dlxN0wgyHyixadZcXu7hvOn/WJapFEL8gfhjTiucP3IMigmjdc2b9bH2pLzaygLBo5Bm2tTTCVb0bgOcr5Y+HRTHvc6T2OZj1uLip2Cyx26GdPfmaWPw39WRrBFo/dVPM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=i09gg5Qr; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="i09gg5Qr" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A48F5C433A6; Sun, 24 Mar 2024 23:39:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323566; bh=lYH8x8NXl+D9jSgcCFP/jUoI1eKm4X/OKybsLqIHfWM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=i09gg5QrfjbIe6h109YUp0NnPoW/5qvrY6ePxDebJCPVh+PX9q9ViNJVixt3GLZS4 GPSh0VvIULab4ciRwHgLhJ7qa/snv+tUPnWO/jVOydbpjARtbZPAHxokP/CvwrGa6P ovlX7WMahSPMqKdeDsDeKpJVmRTSc2+pA1/lDbW1A1HhplnlpqISz7DhbJGwq3bcB/ 9XWypTOzK1dKbAl/hT+Jlzx8Zx+o1Wab+NVz1oJvEZoQ8RktKCaagCDN0cu+9a/LbC /QSNvAxsqPhwfuD7rZbOeIqqwb30v3Fq03j1dMUCOZL5ehDx8hpNMdXMAnl5TK0QyJ q/o1q7lLUtYFg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: David Howells , Markus Suvanto , Jeffrey E Altman , Marc Dionne , linux-afs@lists.infradead.org, Christian Brauner , Sasha Levin Subject: [PATCH 5.15 273/317] afs: Revert "afs: Hide silly-rename files from userspace" Date: Sun, 24 Mar 2024 19:34:13 -0400 Message-ID: <20240324233458.1352854-274-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: David Howells [ Upstream commit 0aec3847d044273733285dcff90afda89ad461d2 ] This reverts commit 57e9d49c54528c49b8bffe6d99d782ea051ea534. This undoes the hiding of .__afsXXXX silly-rename files. The problem with hiding them is that rm can't then manually delete them. This also reverts commit 5f7a07646655fb4108da527565dcdc80124b14c4 ("afs: Fix endless loop in directory parsing") as that's a bugfix for the above. Fixes: 57e9d49c5452 ("afs: Hide silly-rename files from userspace") Reported-by: Markus Suvanto Link: https://lists.infradead.org/pipermail/linux-afs/2024-February/008102.= html Signed-off-by: David Howells Link: https://lore.kernel.org/r/3085695.1710328121@warthog.procyon.org.uk Reviewed-by: Jeffrey E Altman cc: Marc Dionne cc: linux-afs@lists.infradead.org Signed-off-by: Christian Brauner Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- fs/afs/dir.c | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/fs/afs/dir.c b/fs/afs/dir.c index c4e22e9f7a666..cec18f9f8bd7a 100644 --- a/fs/afs/dir.c +++ b/fs/afs/dir.c @@ -492,16 +492,6 @@ static int afs_dir_iterate_block(struct afs_vnode *dvn= ode, continue; } =20 - /* Don't expose silly rename entries to userspace. */ - if (nlen > 6 && - dire->u.name[0] =3D=3D '.' && - ctx->actor !=3D afs_lookup_filldir && - ctx->actor !=3D afs_lookup_one_filldir && - memcmp(dire->u.name, ".__afs", 6) =3D=3D 0) { - ctx->pos =3D blkoff + next * sizeof(union afs_xdr_dirent); - continue; - } - /* found the next entry */ if (!dir_emit(ctx, dire->u.name, nlen, ntohl(dire->u.vnode), --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8ECEA178CC3; Sun, 24 Mar 2024 23:39:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323568; cv=none; b=pLfJT7Xea9HLhZdB6Mf2Qi+Jltis257SgAKu6iRrg6BWo+RNzoLduKWibDYAyNE58LEFPj/HSHjQI74JZsF8JDW2ZFFpyC9j+4TawcCNgAHuGQoefW9d5id0iKB/QNigmDd/EQ34w0GyPh8PFw4H4NeJDIqbdjL4rXuSvO8E7YM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323568; c=relaxed/simple; bh=eijCuQ1jqO3YPjRi/TEwrn5Nr7gd0LKFppwpqIhn5rQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=hYSCA68Ks0jfjK4KJicITVzaSjYqhVhADmw+T7Kd1c/UdxvgT1xjRJq0mnkg/UFs/xcARSPnqNR4c/HbewBRiJJSpCwKZ0I+gbLZeN0V+hz3/In5NO5L9UYVLDtY299Q6idJ+4QtmSXopiksHHjIMTnlkEPX6P4tBHVgFAX+8KY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=AbLjfzFx; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="AbLjfzFx" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E499DC433F1; Sun, 24 Mar 2024 23:39:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323567; bh=eijCuQ1jqO3YPjRi/TEwrn5Nr7gd0LKFppwpqIhn5rQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=AbLjfzFxePxOwGOG0T5hpd7ikTN3mi80o5loD8+d9CgtqCzwLZ5QCSHoO/ndsKo42 hv3ZyUGv8llyKx9AQQRTV23yb0E5b5lY2dwSW2U7gC5ueRgJE7ipTVdkoBvNJ/M1HD XzjO0CCSR65L69Gsb0O6WheWUIRd57Oz0znffkvOczpSWn6//nSCVpWT7pG4xIihGC ok/BJg00jYVYvpdYORQh8sk5iBuicRYqw4j3msqw4rRuqoeslRp8pUer7O7+6h0mGG enoMjoVbU5ctBbDz/mXZyKv3qrxEcPdO0VmEQbgV43zy5g9ciDpq4r7LPaXGQL9TE6 5AdFdWPn8JmTg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Ian Abbott , Greg Kroah-Hartman Subject: [PATCH 5.15 274/317] comedi: comedi_test: Prevent timers rescheduling during deletion Date: Sun, 24 Mar 2024 19:34:14 -0400 Message-ID: <20240324233458.1352854-275-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Ian Abbott commit f53641a6e849034a44bf80f50245a75d7a376025 upstream. The comedi_test devices have a couple of timers (ai_timer and ao_timer) that can be started to simulate hardware interrupts. Their expiry functions normally reschedule the timer. The driver code calls either del_timer_sync() or del_timer() to delete the timers from the queue, but does not currently prevent the timers from rescheduling themselves so synchronized deletion may be ineffective. Add a couple of boolean members (one for each timer: ai_timer_enable and ao_timer_enable) to the device private data structure to indicate whether the timers are allowed to reschedule themselves. Set the member to true when adding the timer to the queue, and to false when deleting the timer from the queue in the waveform_ai_cancel() and waveform_ao_cancel() functions. The del_timer_sync() function is also called from the waveform_detach() function, but the timer enable members will already be set to false when that function is called, so no change is needed there. Fixes: 403fe7f34e33 ("staging: comedi: comedi_test: fix timer race conditio= ns") Cc: stable@vger.kernel.org # 4.4+ Signed-off-by: Ian Abbott Link: https://lore.kernel.org/r/20240214100747.16203-1-abbotti@mev.co.uk Signed-off-by: Greg Kroah-Hartman Reported-by: Linux Kernel Functional Testing --- drivers/comedi/drivers/comedi_test.c | 30 ++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/drivers/comedi/drivers/comedi_test.c b/drivers/comedi/drivers/= comedi_test.c index cbc225eb19918..bea9a3adf08c8 100644 --- a/drivers/comedi/drivers/comedi_test.c +++ b/drivers/comedi/drivers/comedi_test.c @@ -87,6 +87,8 @@ struct waveform_private { struct comedi_device *dev; /* parent comedi device */ u64 ao_last_scan_time; /* time of previous AO scan in usec */ unsigned int ao_scan_period; /* AO scan period in usec */ + bool ai_timer_enable:1; /* should AI timer be running? */ + bool ao_timer_enable:1; /* should AO timer be running? */ unsigned short ao_loopbacks[N_CHANS]; }; =20 @@ -236,8 +238,12 @@ static void waveform_ai_timer(struct timer_list *t) time_increment =3D devpriv->ai_convert_time - now; else time_increment =3D 1; - mod_timer(&devpriv->ai_timer, - jiffies + usecs_to_jiffies(time_increment)); + spin_lock(&dev->spinlock); + if (devpriv->ai_timer_enable) { + mod_timer(&devpriv->ai_timer, + jiffies + usecs_to_jiffies(time_increment)); + } + spin_unlock(&dev->spinlock); } =20 overrun: @@ -393,9 +399,12 @@ static int waveform_ai_cmd(struct comedi_device *dev, * Seem to need an extra jiffy here, otherwise timer expires slightly * early! */ + spin_lock_bh(&dev->spinlock); + devpriv->ai_timer_enable =3D true; devpriv->ai_timer.expires =3D jiffies + usecs_to_jiffies(devpriv->ai_convert_period) + 1; add_timer(&devpriv->ai_timer); + spin_unlock_bh(&dev->spinlock); return 0; } =20 @@ -404,6 +413,9 @@ static int waveform_ai_cancel(struct comedi_device *dev, { struct waveform_private *devpriv =3D dev->private; =20 + spin_lock_bh(&dev->spinlock); + devpriv->ai_timer_enable =3D false; + spin_unlock_bh(&dev->spinlock); if (in_softirq()) { /* Assume we were called from the timer routine itself. */ del_timer(&devpriv->ai_timer); @@ -495,8 +507,12 @@ static void waveform_ao_timer(struct timer_list *t) unsigned int time_inc =3D devpriv->ao_last_scan_time + devpriv->ao_scan_period - now; =20 - mod_timer(&devpriv->ao_timer, - jiffies + usecs_to_jiffies(time_inc)); + spin_lock(&dev->spinlock); + if (devpriv->ao_timer_enable) { + mod_timer(&devpriv->ao_timer, + jiffies + usecs_to_jiffies(time_inc)); + } + spin_unlock(&dev->spinlock); } =20 underrun: @@ -517,9 +533,12 @@ static int waveform_ao_inttrig_start(struct comedi_dev= ice *dev, async->inttrig =3D NULL; =20 devpriv->ao_last_scan_time =3D ktime_to_us(ktime_get()); + spin_lock_bh(&dev->spinlock); + devpriv->ao_timer_enable =3D true; devpriv->ao_timer.expires =3D jiffies + usecs_to_jiffies(devpriv->ao_scan_period); add_timer(&devpriv->ao_timer); + spin_unlock_bh(&dev->spinlock); =20 return 1; } @@ -604,6 +623,9 @@ static int waveform_ao_cancel(struct comedi_device *dev, struct waveform_private *devpriv =3D dev->private; =20 s->async->inttrig =3D NULL; + spin_lock_bh(&dev->spinlock); + devpriv->ao_timer_enable =3D false; + spin_unlock_bh(&dev->spinlock); if (in_softirq()) { /* Assume we were called from the timer routine itself. */ del_timer(&devpriv->ao_timer); --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8BE1327DDE8; Sun, 24 Mar 2024 23:39:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323569; cv=none; b=ezDHbgRRJV1nPtGDyjDRGu9CfpHvsvBEAwYy22mw8NrMxBy5zXsT/5GAuTh9YFQ+Je2IXXtUlNg0H+aqc391Bvum5ULQWSh2+A90wvDj/bX+CQfWAX9RrX6TlPDXBTsLxJhGHiiNi5kGUJL1wgrMtXrmq+2IlSkVdv2l584VOow= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323569; c=relaxed/simple; bh=tMMlTpa/czaupUylr0uuF5+uGMG/CO/yyVada6/zEWQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=pXYvOZDWZKm0dUWFc05T2XjwyoIggbIOE1RcgMcGeTp32UORyg8WX1WgnNZICOHYplZUydCh5+aSlDxgLlA142WzNLRCOcbqfwC2B3OPiQTMiwmz4z4x6C9s4+ZW1seRh0fx2BOVz8xNZtA1rOYnpS/5yTtlpR/vLVZpXI9Fre0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=d5sxSb0+; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="d5sxSb0+" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B45EAC433C7; Sun, 24 Mar 2024 23:39:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323568; bh=tMMlTpa/czaupUylr0uuF5+uGMG/CO/yyVada6/zEWQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=d5sxSb0+HMMpRLBfKDLpgvT1kkDM5jAG8PEbd1KSllQYcUv3hYZZJSfRnYs3jkTcq WySwTCSQh9Flf5dDhXYwfm/C9pojUQB0hh1aHRAl76i8QYRyyggzvFhB/vbyrWX7Qd l5jNiU6cssA9pUFsoAvkfErjhhG8UYusUPak32ETP05rTgqA4a42ox+LlDsInaV9I0 ixWyVmAh4bugZBBcEduF93s6XzBtuxBo9bYmcpPFHW5AADnxIWGHnZ9D4y5EOFE4wD 2Oac+57cheFKOB2Ua5cb5qG9yBKVCHqBrClR53YFuoMDmtTFUC1ABJ1zeIiuA3aNsv y/lOlL8FfYaYQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Arnd Bergmann , Arnaud Pouliquen , Randy Dunlap , Sasha Levin Subject: [PATCH 5.15 275/317] remoteproc: stm32: use correct format strings on 64-bit Date: Sun, 24 Mar 2024 19:34:15 -0400 Message-ID: <20240324233458.1352854-276-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Arnd Bergmann [ Upstream commit 03bd158e1535e68bcd2b1e095b0ebcad7c84bd20 ] With CONFIG_ARCH_STM32 making it into arch/arm64, a couple of format strings no longer work, since they rely on size_t being compatible with %x, or they print an 'int' using %z: drivers/remoteproc/stm32_rproc.c: In function 'stm32_rproc_mem_alloc': drivers/remoteproc/stm32_rproc.c:122:22: error: format '%x' expects argumen= t of type 'unsigned int', but argument 5 has type 'size_t' {aka 'long unsig= ned int'} [-Werror=3Dformat=3D] drivers/remoteproc/stm32_rproc.c:122:40: note: format string is defined here 122 | dev_dbg(dev, "map memory: %pa+%x\n", &mem->dma, mem->len); | ~^ | | | unsigned int | %lx drivers/remoteproc/stm32_rproc.c:125:30: error: format '%x' expects argumen= t of type 'unsigned int', but argument 4 has type 'size_t' {aka 'long unsig= ned int'} [-Werror=3Dformat=3D] drivers/remoteproc/stm32_rproc.c:125:65: note: format string is defined here 125 | dev_err(dev, "Unable to map memory region: %pa+%x\n= ", | ~^ | | | uns= igned int | %lx drivers/remoteproc/stm32_rproc.c: In function 'stm32_rproc_get_loaded_rsc_t= able': drivers/remoteproc/stm32_rproc.c:646:30: error: format '%zx' expects argume= nt of type 'size_t', but argument 4 has type 'int' [-Werror=3Dformat=3D] drivers/remoteproc/stm32_rproc.c:646:66: note: format string is defined here 646 | dev_err(dev, "Unable to map memory region: %pa+%zx\= n", | ~~^ | | | lo= ng unsigned int | %x Fix up all three instances to work across architectures, and enable compile testing for this driver to ensure it builds everywhere. Reviewed-by: Arnaud Pouliquen Acked-by: Randy Dunlap Tested-by: Randy Dunlap Signed-off-by: Arnd Bergmann Stable-dep-of: 32381bbccba4 ("remoteproc: stm32: Fix incorrect type in assi= gnment for va") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/remoteproc/Kconfig | 2 +- drivers/remoteproc/stm32_rproc.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/remoteproc/Kconfig b/drivers/remoteproc/Kconfig index 9a6eedc3994a5..d89460429257e 100644 --- a/drivers/remoteproc/Kconfig +++ b/drivers/remoteproc/Kconfig @@ -276,7 +276,7 @@ config ST_SLIM_REMOTEPROC =20 config STM32_RPROC tristate "STM32 remoteproc support" - depends on ARCH_STM32 + depends on ARCH_STM32 || COMPILE_TEST depends on REMOTEPROC select MAILBOX help diff --git a/drivers/remoteproc/stm32_rproc.c b/drivers/remoteproc/stm32_rp= roc.c index aba3df1d1bf52..43715594bd801 100644 --- a/drivers/remoteproc/stm32_rproc.c +++ b/drivers/remoteproc/stm32_rproc.c @@ -118,10 +118,10 @@ static int stm32_rproc_mem_alloc(struct rproc *rproc, struct device *dev =3D rproc->dev.parent; void *va; =20 - dev_dbg(dev, "map memory: %pa+%x\n", &mem->dma, mem->len); + dev_dbg(dev, "map memory: %pad+%zx\n", &mem->dma, mem->len); va =3D ioremap_wc(mem->dma, mem->len); if (IS_ERR_OR_NULL(va)) { - dev_err(dev, "Unable to map memory region: %pa+%x\n", + dev_err(dev, "Unable to map memory region: %pad+0x%zx\n", &mem->dma, mem->len); return -ENOMEM; } @@ -627,7 +627,7 @@ stm32_rproc_get_loaded_rsc_table(struct rproc *rproc, s= ize_t *table_sz) =20 ddata->rsc_va =3D devm_ioremap_wc(dev, rsc_pa, RSC_TBL_SIZE); if (IS_ERR_OR_NULL(ddata->rsc_va)) { - dev_err(dev, "Unable to map memory region: %pa+%zx\n", + dev_err(dev, "Unable to map memory region: %pa+%x\n", &rsc_pa, RSC_TBL_SIZE); ddata->rsc_va =3D NULL; return ERR_PTR(-ENOMEM); --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 87F5527DDF1; Sun, 24 Mar 2024 23:39:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323570; cv=none; b=E4G4YAWzU3GMl79z8JrNEbwJLabo9R3nzrGjbVn1S8JrS19LfrgWGCFe7QwFw8PpThDXIwtc7fXQUdfa0z+oNaC6xVuwOt35xXPNOEMRTEXnHHm8RafxmipRb+BPL5IB24ol8vC6G4tGopaXSq98ZFuZq4sL41Ui27q9fQF3xnE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323570; c=relaxed/simple; bh=V0KHfi5Eu26IG7zqr9NK5aqOgMsMTtmS1HPLHYXn0Ug=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=quWrqVdQLhkXC5q1wUngqdSw/Aa4mayms1yuTsGE8HhJPTFgIiTWLeYGmv9EF/rNvUSgoFv08V4LSXH+6gRIdzyY9qBohhqo3z9iKxGuUw0t/yy98tI2UOkw7laLE9NTLVrzST1qxdhyfECHpovDFXStEupB5iQh0aZzb0uRZqc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=X/cb5YnT; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="X/cb5YnT" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B1871C43390; Sun, 24 Mar 2024 23:39:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323569; bh=V0KHfi5Eu26IG7zqr9NK5aqOgMsMTtmS1HPLHYXn0Ug=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=X/cb5YnT91XJfLpGIbZmMZP+I/xF2DL+R38bKrxfL2JjbogSb2zueSZLONwk/e2OS /iYREZEI+RwgjWa1euJTN6nEspCsMnh/O8AzvHWMdbaLZMpTTUwEmSMvFUdMF45V1s eDIqiq/KQ5MiadAfbe0JE+/Axr6gsOVD8WyNxIW4K7Cf24CPG+KW/pzCQ7cPFNgoZy Ewl9UwhJ1Jb73SHfkXyZCQORpMKUitJkZZ9K1KEqofMHdNdChDHnAXy17IzlrxLSwK K+SRxEA1hnUglofxl+EBn0DcOsJwz5HI5PxnD0/UElLifP7ONsH59d1qFU8qUQt9Eb DHmpqBTYwtb6w== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Arnaud Pouliquen , kernel test robot , Mathieu Poirier , Sasha Levin Subject: [PATCH 5.15 276/317] remoteproc: stm32: Fix incorrect type in assignment for va Date: Sun, 24 Mar 2024 19:34:16 -0400 Message-ID: <20240324233458.1352854-277-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Arnaud Pouliquen [ Upstream commit 32381bbccba4c21145c571701f8f7fb1d9b3a92e ] The sparse tool complains about the attribute conversion between a _iomem void * and a void *: stm32_rproc.c:122:12: sparse: sparse: incorrect type in assignment (differe= nt address spaces) @@ expected void *va @@ got void [noderef] __iom= em * @@ stm32_rproc.c:122:12: sparse: expected void *va stm32_rproc.c:122:12: sparse: got void [noderef] __iomem * Add '__force' to explicitly specify that the cast is intentional. This conversion is necessary to cast to virtual addresses pointer,used, by the remoteproc core. Reported-by: kernel test robot Closes: https://lore.kernel.org/oe-kbuild-all/202312150052.HCiNKlqB-lkp@int= el.com/ Fixes: 13140de09cc2 ("remoteproc: stm32: add an ST stm32_rproc driver") Signed-off-by: Arnaud Pouliquen Link: https://lore.kernel.org/r/20240117135312.3381936-2-arnaud.pouliquen@f= oss.st.com Signed-off-by: Mathieu Poirier Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/remoteproc/stm32_rproc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/remoteproc/stm32_rproc.c b/drivers/remoteproc/stm32_rp= roc.c index 43715594bd801..e48dce98936ad 100644 --- a/drivers/remoteproc/stm32_rproc.c +++ b/drivers/remoteproc/stm32_rproc.c @@ -119,7 +119,7 @@ static int stm32_rproc_mem_alloc(struct rproc *rproc, void *va; =20 dev_dbg(dev, "map memory: %pad+%zx\n", &mem->dma, mem->len); - va =3D ioremap_wc(mem->dma, mem->len); + va =3D (__force void *)ioremap_wc(mem->dma, mem->len); if (IS_ERR_OR_NULL(va)) { dev_err(dev, "Unable to map memory region: %pad+0x%zx\n", &mem->dma, mem->len); @@ -136,7 +136,7 @@ static int stm32_rproc_mem_release(struct rproc *rproc, struct rproc_mem_entry *mem) { dev_dbg(rproc->dev.parent, "unmap memory: %pa\n", &mem->dma); - iounmap(mem->va); + iounmap((__force __iomem void *)mem->va); =20 return 0; } --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6D97E27DDFA; Sun, 24 Mar 2024 23:39:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323571; cv=none; b=uJus7QkyzB7TxkhZm3m+BI2mI/IDL9gnj9R/y06afZg/kDkbdYlqWiYG4YUq8Flz224ki586bdKRa9kSKImPc0v/ESPzW/piJvz7B6XneuwFLo5OtWpwooUddwFvTcqafQcK0OeV0ylzhxmcqNcECNyAst373vP70THx/XoIDEw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323571; c=relaxed/simple; bh=GUrn/8keUU0zm210yU0iU05Z5ixZFkbqpYgv4ZfIFLc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=iEHDpX9BGViGVMqSqpNyR7TT2CNV3uV67xW9WrvHXSArY9oQ4g71ItGJqV4w6AI68GuX2FbN0a4LymrmPBT9tB24x2ncz6G+Z1iXjiYUHohXC8zlybUcR8yd1f0RQ1fdDR7e+67Oxtl/4ufYdyZnYaK5PCZvbv3gmcIOcGuGNI4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=DOJ9Zesq; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="DOJ9Zesq" Received: by smtp.kernel.org (Postfix) with ESMTPSA id ACB8DC43330; Sun, 24 Mar 2024 23:39:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323570; bh=GUrn/8keUU0zm210yU0iU05Z5ixZFkbqpYgv4ZfIFLc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=DOJ9ZesqnyKPPBr7PYPAQW70mq5Jswl/QyNGlqCanQlem8LXFJwx9PL40zNrbEWVZ 6qebsh5JWdLIA+ZNs3F3Y6riQh0yrycIjzuhGcudXQWjuskvQe1funq+FpHrnwQ6I4 Su8ZkNeOSe6Xk/I0cH5UyXG1iGvsl8pVkECn/0SOCUOXEYNIF7ycxs0+kgP1RZE1F2 wNkI2qzPHkvQR9sSSStDzQXcN2bUFdWVElB8EW0I4WuANeTGKZXJfWoecSin77z9V2 YFDfKj3m6EtXq4isnxEnZkIvwmRGvUCHOFPxQmh09InEtRIybw7Oc65YsH7YtPtrlT GPPPFPcCl3O7A== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Arnaud Pouliquen , Mathieu Poirier , Sasha Levin Subject: [PATCH 5.15 277/317] remoteproc: stm32: Fix incorrect type assignment returned by stm32_rproc_get_loaded_rsc_tablef Date: Sun, 24 Mar 2024 19:34:17 -0400 Message-ID: <20240324233458.1352854-278-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Arnaud Pouliquen [ Upstream commit c77b35ce66af25bdd6fde60b62e35b9b316ea5c2 ] The sparse tool complains about the remove of the _iomem attribute. stm32_rproc.c:660:17: warning: cast removes address space '__iomem' of expr= ession Add '__force' to explicitly specify that the cast is intentional. This conversion is necessary to cast to addresses pointer, which are then managed by the remoteproc core as a pointer to a resource_table structure. Fixes: 8a471396d21c ("remoteproc: stm32: Move resource table setup to rproc= _ops") Signed-off-by: Arnaud Pouliquen Link: https://lore.kernel.org/r/20240117135312.3381936-3-arnaud.pouliquen@f= oss.st.com Signed-off-by: Mathieu Poirier Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/remoteproc/stm32_rproc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/remoteproc/stm32_rproc.c b/drivers/remoteproc/stm32_rp= roc.c index e48dce98936ad..4db63e07e1cff 100644 --- a/drivers/remoteproc/stm32_rproc.c +++ b/drivers/remoteproc/stm32_rproc.c @@ -641,7 +641,7 @@ stm32_rproc_get_loaded_rsc_table(struct rproc *rproc, s= ize_t *table_sz) * entire area by overwriting it with the initial values stored in rproc-= >clean_table. */ *table_sz =3D RSC_TBL_SIZE; - return (struct resource_table *)ddata->rsc_va; + return (__force struct resource_table *)ddata->rsc_va; } =20 static const struct rproc_ops st_rproc_ops =3D { --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7FCC627DE03; Sun, 24 Mar 2024 23:39:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323572; cv=none; b=JMvoTOBWXSUzGUyICxV5/7X40K59gkxU3Y19Y/Pdvw8Wu/XdJqN5T3DbP5oBKCgMy30/O1s43PEY64j1jQ6Cj3bBHTMtkGhphC8bQeTL0pYy3HyNSSX5p/Za97r/9pMsOhpvs29RF+6RtNPT7wlMj2f4ZmT8su+gFw4fNHCYdbk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323572; c=relaxed/simple; bh=haI25pQhwibAlMtUHP3+8VFUK+05ciCLNtXIXuVN0M0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=GdSYkrmKYftV6AhdGw1f4HqijLrQPgpZpFzr/KgW79W/7KMdLhwAgQMDvwGKNrXjhsJjliIH2RckygSVrZPokORcD2+m+8OnVwWdVMvVPhuY4wmO8ulwbIKQpfJAqpuR3jh9enWf5u56ohFqKvGGtFMiZmH8nGPPXc4SY3P6FSo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=K3Q+RvvU; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="K3Q+RvvU" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 92C2AC43394; Sun, 24 Mar 2024 23:39:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323571; bh=haI25pQhwibAlMtUHP3+8VFUK+05ciCLNtXIXuVN0M0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=K3Q+RvvU4cEiN4bE3a9EKd+q+iOwZyc4WRuyKuNqlPr72H2l3pCw2f6FoKCqHMupt TxTK/0Ylx3BMDyNwYezA2srqWVMCYSZA41vQQzEGYrOGUCgMgdzd+Vt5UeKdzwHMwf wHx0Rue539CujF0vVplhxp83SHnIZUH7LOw6/3vK1B484ViylL5CT/QwHO/k6PN9Y/ jgb2VERJqsEPxtKXVTRz8IJ8kTCCyIHlfNetZp2uPzNOhC6FdnrC0YrFmxXJ5rd45R L3qDjQLkNlb9yxnkgI95FQYF+VeUTKG8YxddqR8TfaLIyw96Sh9jDPFe+/I61t2Qld tMD2/7yi9lbnA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: "Jiri Slaby (SUSE)" , Martin Hostettler , Helge Deller , Greg Kroah-Hartman , Sasha Levin Subject: [PATCH 5.15 278/317] tty: vt: fix 20 vs 0x20 typo in EScsiignore Date: Sun, 24 Mar 2024 19:34:18 -0400 Message-ID: <20240324233458.1352854-279-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: "Jiri Slaby (SUSE)" [ Upstream commit 0e6a92f67c8a94707f7bb27ac29e2bdf3e7c167d ] The if (c >=3D 20 && c <=3D 0x3f) test added in commit 7a99565f8732 is wrong. 20 is DC4 in ascii and it makes no sense to consider that as the bottom limit. Instead, it should be 0x20 as in the other test in the commit above. This is supposed to NOT change anything as we handle interesting 20-0x20 asciis far before this if. So for sakeness, change to 0x20 (which is SPACE). Signed-off-by: "Jiri Slaby (SUSE)" Fixes: 7a99565f8732 ("vt: ignore csi sequences with intermediate characters= .") Cc: Martin Hostettler Link: https://lore.kernel.org/all/ZaP45QY2WEsDqoxg@neutronstar.dyndns.org/ Tested-by: Helge Deller # parisc STI console Link: https://lore.kernel.org/r/20240122110401.7289-4-jirislaby@kernel.org Signed-off-by: Greg Kroah-Hartman Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/tty/vt/vt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/tty/vt/vt.c b/drivers/tty/vt/vt.c index b8f5bc19416d9..442579f087c7c 100644 --- a/drivers/tty/vt/vt.c +++ b/drivers/tty/vt/vt.c @@ -2515,7 +2515,7 @@ static void do_con_trol(struct tty_struct *tty, struc= t vc_data *vc, int c) } return; case EScsiignore: - if (c >=3D 20 && c <=3D 0x3f) + if (c >=3D 0x20 && c <=3D 0x3f) return; vc->vc_state =3D ESnormal; return; --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7B43A27DE07; Sun, 24 Mar 2024 23:39:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323573; cv=none; b=imo35hP3DcCHN/AvzWoPbgZSxLuPinmWWCyby8Dh96EqLhhFH8GTuUUONkB6BrQYA1A0I8PIf4mEgCAUGwAXPFW1nf8wRmbBxhncZwwCFm7MCWqDY6FItgDa2DOczwjZmuzfGbbkLFJZdHVySdKY6F92JdDFot4ILDhZ9BsLkms= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323573; c=relaxed/simple; bh=76JkSKRm97cAdcOCps2E8v0iYvWOcRRw5O6tKYzS5aU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Eq9MdRNUfJZWpGRi3UVwVtuEgkN+H73zT4EtMKF/w6swqtnaWxH0KY4aHc4uj8DCpzKxZ7TXoSG7gcPTpr5aqqiU6iOuWL9IxPlyf+onjGSNwEv2RneamQynfHo6dQo5pci4cLgYIm1tIy7sCicAtz/Cq2088u2V5k2krZMZiKc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=KiURJUtl; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="KiURJUtl" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A6D6BC43399; Sun, 24 Mar 2024 23:39:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323572; bh=76JkSKRm97cAdcOCps2E8v0iYvWOcRRw5O6tKYzS5aU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=KiURJUtln9/vq+Mfy2HPAJsEgzWQpKaMFOPNuL3s9iYd8zl6jbBdBlKguBPgqr7Cv kEQ/iQkPM8opHWM6zgsxzdeFxdoKG/V8pyVcFUyjnASnMk60J97an65YIQXhrspbCi sY9ZA+1reRaZXMHqzXeCDX5+Pjt30oWukbKYpi6MbezhP6HtpXZ++8mv4lTdHSAnoD +YcvVupQZm/1Cu9i/4TShH1tGSYwDIfqsy3Ho0FYgpUx9a8daOTjChiiyeAhYZstb8 gO6b9IVrKURBJPO5VCD1vXj5cnVwGHGCy9sencYEceDbg1YN38kbdv8ANcr7q9WnIb ANr8X80eQIuHA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Hugo Villeneuve , Andy Shevchenko , Greg Kroah-Hartman , Sasha Levin Subject: [PATCH 5.15 279/317] serial: max310x: fix syntax error in IRQ error message Date: Sun, 24 Mar 2024 19:34:19 -0400 Message-ID: <20240324233458.1352854-280-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Hugo Villeneuve [ Upstream commit 8ede8c6f474255b2213cccd7997b993272a8e2f9 ] Replace g with q. Helpful when grepping thru source code or logs for "request" keyword. Fixes: f65444187a66 ("serial: New serial driver MAX310X") Reviewed-by: Andy Shevchenko Signed-off-by: Hugo Villeneuve Link: https://lore.kernel.org/r/20240118152213.2644269-6-hugo@hugovil.com Signed-off-by: Greg Kroah-Hartman Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/tty/serial/max310x.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/tty/serial/max310x.c b/drivers/tty/serial/max310x.c index c122e7e90fc89..714c23f9504fc 100644 --- a/drivers/tty/serial/max310x.c +++ b/drivers/tty/serial/max310x.c @@ -1433,7 +1433,7 @@ static int max310x_probe(struct device *dev, const st= ruct max310x_devtype *devty if (!ret) return 0; =20 - dev_err(dev, "Unable to reguest IRQ %i\n", irq); + dev_err(dev, "Unable to request IRQ %i\n", irq); =20 out_uart: for (i =3D 0; i < devtype->nr; i++) { --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 74EA227DE0F; Sun, 24 Mar 2024 23:39:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323574; cv=none; b=qMFF2lEFwsDAgEtje7JjiTndhsiphW3Cknsq4GHBq/gF2LHvYiGsu+SWMd+b4EZ5XLEoCaDBZZDnHdelhvQ0sgtOjThQBGUmRSoxhqioKh07jXkuxwH3cSqfPMTAXr1uoCUF23M9JxHwIMJXMhPd7BtYOHmzMwkHNL/ECsMfIm8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323574; c=relaxed/simple; bh=gZlmWmYHeEPssd+jm6Q0rdE6stob/+WnvKW/S/OzDzE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=gPTI754ARl5FHKyNihHoG542X0B8i3kVE/Df8q7Pxua/OPHdu1Y35VgWvCg8DUSmwRHjkYONgPPrLwc+ZjgQRYXpwfqKn1H40Fb5FYFmjWi7oIaLnSpJKzNYXj/6Ecn5z2AKuVZZ/Txs+hsgirn+kajfKLcxdsK+bfsGaDcwk5A= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=fMyUXeSh; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="fMyUXeSh" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A13ACC43390; Sun, 24 Mar 2024 23:39:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323573; bh=gZlmWmYHeEPssd+jm6Q0rdE6stob/+WnvKW/S/OzDzE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=fMyUXeShIr48kE1lTlL40QU0yY5rLEP7UzPB/0SJwGlxbo5FXqjoODhaReaURIDtr GTIlhld8cAqdZd/Dwl8uqTSbjKAjFQmPw+eYfjGG5y8tbOJzsRQ2aBCQT9Q38ttNvs lzIkiLckP9ODTq8ycyIQ80zCei6F77AV6+e0RH1Zq7/MiFZOk9v+X1Hw9KzItWxpRC Ttkel4Gydmo4aRxrG5xf/XhC2BS0i/ER6kZcx3pgxmgZ3WXw977JfTzWK7ZyIuVduV 2KAAxzX1uFdzLQrOXUxMFRPsAsBiCR6JL5wV/SNqSc+2jUMDh5QrXIhs02Yq7SO0R/ u/9k/VGipTZBw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Tudor Ambarus , Sam Protsenko , Greg Kroah-Hartman , Sasha Levin Subject: [PATCH 5.15 280/317] tty: serial: samsung: fix tx_empty() to return TIOCSER_TEMT Date: Sun, 24 Mar 2024 19:34:20 -0400 Message-ID: <20240324233458.1352854-281-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Tudor Ambarus [ Upstream commit 314c2b399288f0058a8c5b6683292cbde5f1531b ] The core expects for tx_empty() either TIOCSER_TEMT when the tx is empty or 0 otherwise. s3c24xx_serial_txempty_nofifo() might return 0x4, and at least uart_get_lsr_info() tries to clear exactly TIOCSER_TEMT (BIT(1)). Fix tx_empty() to return TIOCSER_TEMT. Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2") Signed-off-by: Tudor Ambarus Reviewed-by: Sam Protsenko Link: https://lore.kernel.org/r/20240119104526.1221243-2-tudor.ambarus@lina= ro.org Signed-off-by: Greg Kroah-Hartman Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/tty/serial/samsung_tty.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/tty/serial/samsung_tty.c b/drivers/tty/serial/samsung_= tty.c index 09b2b40b63c4d..7d3630ddebb39 100644 --- a/drivers/tty/serial/samsung_tty.c +++ b/drivers/tty/serial/samsung_tty.c @@ -991,11 +991,10 @@ static unsigned int s3c24xx_serial_tx_empty(struct ua= rt_port *port) if ((ufstat & info->tx_fifomask) !=3D 0 || (ufstat & info->tx_fifofull)) return 0; - - return 1; + return TIOCSER_TEMT; } =20 - return s3c24xx_serial_txempty_nofifo(port); + return s3c24xx_serial_txempty_nofifo(port) ? TIOCSER_TEMT : 0; } =20 /* no modem control lines */ --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 56A4E27DE17; Sun, 24 Mar 2024 23:39:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323575; cv=none; b=U+F6ZW9nUPrQQv4OQajoz5Ee35/Yhgji35Lt/XzbRoh+CI4NZvf1arqkZiKzpt+3VpU8Jr92R2qIh8DFuhiR+uZ0B9shRMRSOAlCiKiSIKSTwE+EU03pzrISD0CvwW9bj0jC26UddaOCmjLDk3nkCzUPTp/4j/Rp4h6UgjECGAc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323575; c=relaxed/simple; bh=LTiDB7Xc8SEWG4fUaCdA0xEtUOyMZ07qxEs/UNO3qd0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=I3yr8epNCIfp/L5gpNqlYRNxzZkJ0GCGMZrJDVwCZjo/QFNtCY2lWyj5vuRL3R4KtKQ3ZGHj1mh2QxoRRiaJLqcsSkXYnUtg/ao4kDrXJ3x3PfpK/GyRJSiIQ2L+4bauPe14lqOOGGO3ZKtq8xyoARnHO9WXARjP+2rEqWxZ+V4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=modGWoZm; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="modGWoZm" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9AF5CC433C7; Sun, 24 Mar 2024 23:39:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323574; bh=LTiDB7Xc8SEWG4fUaCdA0xEtUOyMZ07qxEs/UNO3qd0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=modGWoZmcHIDzMeSrGkMxn0r3qEMA2y9P+g/YMc3MmJxu123unATuDAEgu8nqjrD8 3K2jkHeIUIgVhUstRwB3rtFrc87to4QjdVdm3+Vmpt+OZplGU/cCo7dgKIznL7U2qt qLu1w/98dE6G28j/VWVbC+TQ170UB4Ua2w8z/AnoQBIB0JpODgCyR2quS8O5BMbcjT qoo0MjC4cTfELlaPieoRc3SuIEqdcX0xlYEFaCRrfqkclCsgY4xvSBxBZBVnkN6Hww jh1PqPAm6N+ezTryU5Gorl5iHxvh5Qf2k8ghQmZszc7kXDhjoYaJTjGK9n6OgfMDC2 yTTz9C2UPPBAw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= , Florian Fainelli , Sasha Levin Subject: [PATCH 5.15 281/317] arm64: dts: broadcom: bcmbca: bcm4908: drop invalid switch cells Date: Sun, 24 Mar 2024 19:34:21 -0400 Message-ID: <20240324233458.1352854-282-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable From: Rafa=C5=82 Mi=C5=82ecki [ Upstream commit 27058b95fbb784406ea4c40b20caa3f04937140c ] Ethernet switch does not have addressable subnodes. This fixes: arch/arm64/boot/dts/broadcom/bcmbca/bcm4908-asus-gt-ac5300.dtb: ethernet-sw= itch@0: '#address-cells', '#size-cells' do not match any of the regexes: 'p= inctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/net/dsa/brcm,sf2.yam= l# Fixes: 527a3ac9bdf8 ("arm64: dts: broadcom: bcm4908: describe internal swit= ch") Signed-off-by: Rafa=C5=82 Mi=C5=82ecki Link: https://lore.kernel.org/r/20240111115636.12095-1-zajec5@gmail.com Signed-off-by: Florian Fainelli Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi | 3 --- 1 file changed, 3 deletions(-) diff --git a/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi b/arch/arm64/= boot/dts/broadcom/bcmbca/bcm4908.dtsi index b7db95ce0bbf2..d8e5796509fc9 100644 --- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi +++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi @@ -180,9 +180,6 @@ ethernet-switch@0 { brcm,num-gphy =3D <5>; brcm,num-rgmii-ports =3D <2>; =20 - #address-cells =3D <1>; - #size-cells =3D <0>; - ports: ports { #address-cells =3D <1>; #size-cells =3D <0>; --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 25D7D27DE00; Sun, 24 Mar 2024 23:39:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323575; cv=none; b=HjybBquQ26EzOfi9HhDrdoyGv0TZoGpB8FxkLmI1RYMunOuvFlqu6loFUYWQCILlAEc4xLuhyR7VQALr6Scjf9WKnH4Sgwf5EE0bp3qK0TisJ4y5iqf7/tEnn08zXVJfqAroMPFr58N0sKFmEFd7HX5B/LaOMLfZRIEEWIVM9lc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323575; c=relaxed/simple; bh=0WGbgIFNty86zl6mmKVRqxpL+QHsdqQA9wez7Xo7orA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=eaSWsRGbJGXDeN6exJ9+JdLFhuTNfmgu+oKJIYXq5S1f0acQcpvGHuqBZB2GU2pamFCpgJvaBs0j9J7J0lq/cHnbOOn/2nNV1WcvrbZ6yYg/TDI65J/7bo+9aPrFYfdpqOJD5LpaWV7v/xvvoLBzR50zfouF5IDhvYi+nVRaSYA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=nZy/dW1u; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="nZy/dW1u" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7C3BFC43394; Sun, 24 Mar 2024 23:39:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323575; bh=0WGbgIFNty86zl6mmKVRqxpL+QHsdqQA9wez7Xo7orA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nZy/dW1uBDsQ0XPWnC7O97M/ghTB0cB78ake1oAgypi2PR9XvtDMNIgyQUjaSFoYY uV+n+gl+ARMjyHez2EZns5cXpPGVsNwWBthkUPCD2MdyUTcVukRb3FK6dRPeqwb6wn uxti/YwVjJcj5XQAAYvY/BvUo2OGe82p7PzRnJkkpkmXKIo3/jaJCPMwfFkTXMzhSr bqANG42hHEuU20MqKE7G27JnuPrSIlEcguXANwj2uA2gz7w8wAoAaeOgBMrzAiux/i qyY1IZW+wpQ7Ks5WcTiscTx2Jx0GYu+LSMDM2QRjUSY/UC+X8TKqMFV/3sCikSWrZb IFG7lr+85C00A== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Masahiro Yamada , Sasha Levin Subject: [PATCH 5.15 282/317] kconfig: fix infinite loop when expanding a macro at the end of file Date: Sun, 24 Mar 2024 19:34:22 -0400 Message-ID: <20240324233458.1352854-283-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Masahiro Yamada [ Upstream commit af8bbce92044dc58e4cc039ab94ee5d470a621f5 ] A macro placed at the end of a file with no newline causes an infinite loop. [Test Kconfig] $(info,hello) \ No newline at end of file I realized that flex-provided input() returns 0 instead of EOF when it reaches the end of a file. Fixes: 104daea149c4 ("kconfig: reference environment variables directly and= remove 'option env=3D'") Signed-off-by: Masahiro Yamada Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- scripts/kconfig/lexer.l | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/scripts/kconfig/lexer.l b/scripts/kconfig/lexer.l index 312cbad2d34d4..2a76393d52b5b 100644 --- a/scripts/kconfig/lexer.l +++ b/scripts/kconfig/lexer.l @@ -301,8 +301,11 @@ static char *expand_token(const char *in, size_t n) new_string(); append_string(in, n); =20 - /* get the whole line because we do not know the end of token. */ - while ((c =3D input()) !=3D EOF) { + /* + * get the whole line because we do not know the end of token. + * input() returns 0 (not EOF!) when it reachs the end of file. + */ + while ((c =3D input()) !=3D 0) { if (c =3D=3D '\n') { unput(c); break; --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2A762178CD0; Sun, 24 Mar 2024 23:39:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323578; cv=none; b=s+IPbGFv606Kr78R4wn3Kiyov9q5LrtXjfMGX+JUYM5xICUlpcpmh1o5p0FP5ueAceD6HQuWUbWcwGVOROsx9PU+1CO/k+Rqlny7d9Wh9NclE/YdhOCHx6YNcPTRN+0Ri4tjHHcvj8kmaLXYtEUd9muH1V8KQXA7b9xwxxijL7A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323578; c=relaxed/simple; bh=zrLuAMLfyjxb1u5XPNja6ZNko0B7DLLEknoDe8ULA7w=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=sOLziE70npY4VY3dcde971lQtbfcuywg6q6oMgq5NWE4a2PyIFgoza+h8hiQc+w2pJ4cQN12tELvI6HPzARy0Cr0zniimWdf08iRYjD0WZY436jb1UOTcVGOWl2sy+ul9MTvDf7/UxAQMhD4mEqBHg+C5x4nIHcyReXtkqhHCB8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=YBemGZL1; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="YBemGZL1" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4BA70C433F1; Sun, 24 Mar 2024 23:39:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323577; bh=zrLuAMLfyjxb1u5XPNja6ZNko0B7DLLEknoDe8ULA7w=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=YBemGZL1GuTcOUiHYifXRxzI1FEjvHahWePmGgrtN64IxCmGxQCiVmbECtTspdIoZ yB6bb30/2zumjTU9JTgcOs/tqbQHMQDEMj69ro1cARZqCZFjj56WS3UqunIelpFfPz Aw4lETL03i/Mv2ofdSbCJyg80A+GfBbTO69rDc/R7lBTUXYXzknm7Q1Z3jK5mdj/dJ MFzec0snchK2bCOXXsEqTYcs7WOsYBL9lCKwRHBpX9SYSfGgz92P7JQNfMVAp7+bne rxGgghS2rTL0SY6GB1EUD3alUkODq7GW+TECE6d1moV3D/+9Gh0K28ApoBOVsRAxy5 p2njNoMKV4Erg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Randy Dunlap , Arnd Bergmann , Eddie Huang , Sean Wang , Matthias Brugger , linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, Alessandro Zummo , Alexandre Belloni , linux-rtc@vger.kernel.org, Marc Zyngier , Philipp Zabel , Peter Rosin , AngeloGioacchino Del Regno , Sasha Levin Subject: [PATCH 5.15 283/317] rtc: mt6397: select IRQ_DOMAIN instead of depending on it Date: Sun, 24 Mar 2024 19:34:23 -0400 Message-ID: <20240324233458.1352854-284-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Randy Dunlap [ Upstream commit 544c42f798e1651dcb04fb0395219bf0f1c2607e ] IRQ_DOMAIN is a hidden (not user visible) symbol. Users cannot set it directly thru "make *config", so drivers should select it instead of depending on it if they need it. Relying on it being set for a dependency is risky. Consistently using "select" or "depends on" can also help reduce Kconfig circular dependency issues. Therefore, change the use of "depends on" for IRQ_DOMAIN to "select" for RTC_DRV_MT6397. Fixes: 04d3ba70a3c9 ("rtc: mt6397: add IRQ domain dependency") Cc: Arnd Bergmann Cc: Eddie Huang Cc: Sean Wang Cc: Matthias Brugger Cc: linux-arm-kernel@lists.infradead.org Cc: linux-mediatek@lists.infradead.org Cc: Alessandro Zummo Cc: Alexandre Belloni Cc: linux-rtc@vger.kernel.org Cc: Marc Zyngier Cc: Philipp Zabel Cc: Peter Rosin Reviewed-by: AngeloGioacchino Del Regno Signed-off-by: Randy Dunlap Link: https://lore.kernel.org/r/20240213050258.6167-1-rdunlap@infradead.org Signed-off-by: Alexandre Belloni Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/rtc/Kconfig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/rtc/Kconfig b/drivers/rtc/Kconfig index e1bc5214494e2..ee59c82f9df18 100644 --- a/drivers/rtc/Kconfig +++ b/drivers/rtc/Kconfig @@ -1814,7 +1814,8 @@ config RTC_DRV_MT2712 =20 config RTC_DRV_MT6397 tristate "MediaTek PMIC based RTC" - depends on MFD_MT6397 || (COMPILE_TEST && IRQ_DOMAIN) + depends on MFD_MT6397 || COMPILE_TEST + select IRQ_DOMAIN help This selects the MediaTek(R) RTC driver. RTC is part of MediaTek MT6397 PMIC. You should enable MT6397 PMIC MFD before select --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0CAB2178CD8; Sun, 24 Mar 2024 23:39:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323579; cv=none; b=leAn1ee2+kqrWafuPlCKhFcA+uJ54JCamHSmEqXPEb67EK21J1l9c4uQQ23sfq2hJW60M9trs+Bi+cO5t0sLMoqF7nSjDR9acBfOi/1OS7n48jBJ9dZP+Hf0Q1LSmww3gq4BjDlt+XJ8N0tipwamrWYWzOxTkP6MhCj++zm5Hes= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323579; c=relaxed/simple; bh=ZALTqHQ8Wgb2/RsXp3dzlcuLKWdWaQRvc7gz6kO5UPw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=EjL3YQXQlmd47tMwCTS4xgjOoMoCG48tZhDuP+TVOByvuDq/RugKaUPyxusYrnsH02HpaUkP2MLoxKlymlLAxE6jyBTyCoX4jTR4t35baHsApoVzcoC9guc9YA2etgh/b4ubQTiVVVz3znEC8Ke2fjKkA78Jl8kR0QbBkpon6rA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=uucwHvuj; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="uucwHvuj" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4C68CC433C7; Sun, 24 Mar 2024 23:39:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323577; bh=ZALTqHQ8Wgb2/RsXp3dzlcuLKWdWaQRvc7gz6kO5UPw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=uucwHvujBHsWxxD9Bs7OywHG2pLmaed1RBOm8AwDAW/lReFTgeuhNR/36VztvrqeT +QhChYIyPWozjm3MvON/H/o3ZiNBRqfmxMOUYYR7BvaIIRSEs3zt8IRlwe1O9moHpP 05AmNb05sqqK/dC8Hifx/kqrn5JdrbJjMWM3Zrc+b3judtnwPiQmEEN51L0gjO+3Ad vE5gNh3LP5C3NhsU/KYE0DfFtl9b3V7jORemTHJ4RTM0FJQhjZOg/nDIAOQHlFNAqn 3lBmuo4mvIxvtlYlywLNQR9hPjCjtJV/7V3g6XyU3BWmBlv0WmJ1N7tVHSfIl2+ybK eNhyl9C9k+dxw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Andy Shevchenko , Greg Kroah-Hartman , Sasha Levin Subject: [PATCH 5.15 284/317] serial: 8250_exar: Don't remove GPIO device on suspend Date: Sun, 24 Mar 2024 19:34:24 -0400 Message-ID: <20240324233458.1352854-285-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Andy Shevchenko [ Upstream commit 73b5a5c00be39e23b194bad10e1ea8bb73eee176 ] It seems a copy&paste mistake that suspend callback removes the GPIO device. There is no counterpart of this action, means once suspended there is no more GPIO device available untile full unbind-bind cycle is performed. Remove suspicious GPIO device removal in suspend. Fixes: d0aeaa83f0b0 ("serial: exar: split out the exar code from 8250_pci") Signed-off-by: Andy Shevchenko Link: https://lore.kernel.org/r/20240219150627.2101198-2-andriy.shevchenko@= linux.intel.com Signed-off-by: Greg Kroah-Hartman Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/tty/serial/8250/8250_exar.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/drivers/tty/serial/8250/8250_exar.c b/drivers/tty/serial/8250/= 8250_exar.c index ada9666f59889..48769e059772a 100644 --- a/drivers/tty/serial/8250/8250_exar.c +++ b/drivers/tty/serial/8250/8250_exar.c @@ -715,6 +715,7 @@ static void exar_pci_remove(struct pci_dev *pcidev) for (i =3D 0; i < priv->nr; i++) serial8250_unregister_port(priv->line[i]); =20 + /* Ensure that every init quirk is properly torn down */ if (priv->board->exit) priv->board->exit(pcidev); } @@ -729,10 +730,6 @@ static int __maybe_unused exar_suspend(struct device *= dev) if (priv->line[i] >=3D 0) serial8250_suspend_port(priv->line[i]); =20 - /* Ensure that every init quirk is properly torn down */ - if (priv->board->exit) - priv->board->exit(pcidev); - return 0; } =20 --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1B187178CDC; Sun, 24 Mar 2024 23:39:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323579; cv=none; b=lzgBWUS7ncQssMK2Jl/x/lSYP2gO3umjXVITqRPgPQ8UDtKB759Quro9p2mcNpVdvgkZ/Xt0zDTzNIrB6WlysWCMT93BUy4qC+g0uaqdt2jl5iMFz/jv9VbFxZ2wsr4Vxhv8byYtuZmcL4z57OJl0XIKPXWc4+L5vMhb0DsCDpg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323579; c=relaxed/simple; bh=8ZKUgi6Zm68D4WzC4t+cU2OxTpDWbRbA9/z+ZTeTjWQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PGk1NnY0tLm9sTi0bFMoLcq9dEuwjNBmgrRGWEAORdPml+st+pSt1ETKhso+gFS0ySMhVayuEI+qTT1maYyABo3oNlKXzeRp2e5pJ2uuUyWBWvMri9FNQBigUPSHbgUkeJpffDkPLVMrHhdahNZ09GAygp/aO6Pe8KECqmjzb4s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=dkGn5Fc+; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="dkGn5Fc+" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2FE1FC43390; Sun, 24 Mar 2024 23:39:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323579; bh=8ZKUgi6Zm68D4WzC4t+cU2OxTpDWbRbA9/z+ZTeTjWQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=dkGn5Fc+/RBxXR8DBGprckP5kxVjYKQY5Pvb7cEehL3i2PM1z4OnWL4bHqT5WV/bJ Nyv3JXJgEQMRT34QLwS10+EL48ydnjxzdPcaKcSS6s4Y31/CPm0nY8b8p8w9K2CFGI nP7V76wIcjVCxC5/dC4Lzn0tV11p6J1FPyMGt6H5huth3MVFUu7WG/7ZCBUByYIrqA jnLPQAPAW6NqXNTzeOFQSjxCrWn6G56i3n5RLZ0P6cmHS/eSOZocH8wikS+j2bjXEA tWRoEHi4QYOfa2MWD4ONIAYAv+yua4oWXVp3DDxzmrwEXa1ElFavNRaLbNT8DZuIOS Iyfy3xGFSk5ZQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Dan Carpenter , Rui Miguel Silva , Alex Elder , Greg Kroah-Hartman , Sasha Levin Subject: [PATCH 5.15 285/317] staging: greybus: fix get_channel_from_mode() failure path Date: Sun, 24 Mar 2024 19:34:25 -0400 Message-ID: <20240324233458.1352854-286-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Dan Carpenter [ Upstream commit 34164202a5827f60a203ca9acaf2d9f7d432aac8 ] The get_channel_from_mode() function is supposed to return the channel which matches the mode. But it has a bug where if it doesn't find a matching channel then it returns the last channel. It should return NULL instead. Also remove an unnecessary NULL check on "channel". Fixes: 2870b52bae4c ("greybus: lights: add lights implementation") Signed-off-by: Dan Carpenter Reviewed-by: Rui Miguel Silva Reviewed-by: Alex Elder Link: https://lore.kernel.org/r/379c0cb4-39e0-4293-8a18-c7b1298e5420@moroto= .mountain Signed-off-by: Greg Kroah-Hartman Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/staging/greybus/light.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/greybus/light.c b/drivers/staging/greybus/ligh= t.c index 87d36948c6106..c6bd86a5335ab 100644 --- a/drivers/staging/greybus/light.c +++ b/drivers/staging/greybus/light.c @@ -100,15 +100,15 @@ static struct led_classdev *get_channel_cdev(struct g= b_channel *channel) static struct gb_channel *get_channel_from_mode(struct gb_light *light, u32 mode) { - struct gb_channel *channel =3D NULL; + struct gb_channel *channel; int i; =20 for (i =3D 0; i < light->channels_count; i++) { channel =3D &light->channels[i]; - if (channel && channel->mode =3D=3D mode) - break; + if (channel->mode =3D=3D mode) + return channel; } - return channel; + return NULL; } =20 static int __gb_lights_flash_intensity_set(struct gb_channel *channel, --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1882D178CD2; Sun, 24 Mar 2024 23:39:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323580; cv=none; b=roxVfdWgetL2kE1ZvymC96wbJOQwV3XEnUwVdZ6O3Tstv/rIHyUrpFE6vTg1GfEVPBs8GALqBb9ahvi7r2Jq1OprrmrCg63cuwPb1FriR/Vtjger/TYFvYIqwSpqtyLCHk8YYOfKWjSKMc8g7Qcs0feynUHWyGrqWoOM7tuHSfQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323580; c=relaxed/simple; bh=vc/T6hVYtGIVMsW+oB8SV7sRd7M5NJFHgkE11Tm4XSA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=T8h87YGkG23QX1FK9ptesnlsjSzRciqOTHeqFwoTscw00wGWaKn2EzLEOxHAafGRTwyisBarB6fqOstVaSMEoB5YNLlQefaUAyjtJoR2Al/1DSrGNj0ZH1/hPxcZEXdJ6su8mK4yN5/yFdxWbtkV9Sji048iSYE1lBdDD3xc68E= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=aHE4AfPk; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="aHE4AfPk" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3EBCFC43394; Sun, 24 Mar 2024 23:39:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323580; bh=vc/T6hVYtGIVMsW+oB8SV7sRd7M5NJFHgkE11Tm4XSA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=aHE4AfPke2tkA1itZZZh6YfIiXzMQSSvI+PkD0Wa9yo2sfmpHonh1xtRtGfmqmhjn tbwPZq2H3YxJ3O2o9koZII5couLCQELygFnYhiyoNhAKxw51Px9B6vjJP8XcU1PJMk eU3lSiAPj79dvqXRg3A1jMnrxZIoQXQvIVc2EoE0/hYeFrQwbnM7FVjowhg0o0ru+v OQ3JNTwI9oKVSDZn3A1LASDiL0Ct5a+VY8agfg3p6UIhW2Md8B3liGEbhAa8+5IJhr Buu1PuLWpzK9txeNbC/yYbyTJz9eUfSfm3KZ8gpH5foFW3dCczWv7P7drjCfaGA5w1 H2dnfoXDGDXug== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Colin Ian King , Alan Stern , Greg Kroah-Hartman , Sasha Levin Subject: [PATCH 5.15 286/317] usb: gadget: net2272: Use irqflags in the call to net2272_probe_fin Date: Sun, 24 Mar 2024 19:34:26 -0400 Message-ID: <20240324233458.1352854-287-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable From: Colin Ian King [ Upstream commit 600556809f04eb3bbccd05218215dcd7b285a9a9 ] Currently the variable irqflags is being set but is not being used, it appears it should be used in the call to net2272_probe_fin rather than IRQF_TRIGGER_LOW being used. Kudos to Uwe Kleine-K=C3=B6nig for suggesting the fix. Cleans up clang scan build warning: drivers/usb/gadget/udc/net2272.c:2610:15: warning: variable 'irqflags' set but not used [-Wunused-but-set-variable] Fixes: ceb80363b2ec ("USB: net2272: driver for PLX NET2272 USB device contr= oller") Signed-off-by: Colin Ian King Acked-by: Alan Stern Link: https://lore.kernel.org/r/20240307181734.2034407-1-colin.i.king@gmail= .com Signed-off-by: Greg Kroah-Hartman Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/usb/gadget/udc/net2272.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/usb/gadget/udc/net2272.c b/drivers/usb/gadget/udc/net2= 272.c index 7c38057dcb4ab..e5402e05e7393 100644 --- a/drivers/usb/gadget/udc/net2272.c +++ b/drivers/usb/gadget/udc/net2272.c @@ -2650,7 +2650,7 @@ net2272_plat_probe(struct platform_device *pdev) goto err_req; } =20 - ret =3D net2272_probe_fin(dev, IRQF_TRIGGER_LOW); + ret =3D net2272_probe_fin(dev, irqflags); if (ret) goto err_io; =20 --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DB373178CE4; Sun, 24 Mar 2024 23:39:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323581; cv=none; b=go9SMRN9Qgt8fjEDonSfzxvBA/fXT29kKw0qq2xfmY5Abch9/9sE/ynR833hyXHH2raGnBaUEXkwp1utwc/jg38TZddcKVH156Oes+m0STkjHhjjKJiTx+QkSMUZGj+CxWMdnJ0A4RZZOwpm5Ho50JlWldFAu9pbOq7i3ALXBd0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323581; c=relaxed/simple; bh=8sKYSQluEn4/6PGtEguJVZQDs38YzlkO6eJZQg/af0c=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=BHWVuZWxm6+we4gQaW+fv12fnlgD2rkIanH8DSidfnXX/3/bFeWfO/TVJeogRHkkQYmh1PTt5sGJhfEXfqOi0NHOaZmY3G8aIodIY+qjoDfEsCJE9nA46ClByvO9M8paLTdA9X1A1fzlNs3C7KEssokXlXU2U3MpWDmoE/g1/4A= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=UHaydREE; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="UHaydREE" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3C2FDC433F1; Sun, 24 Mar 2024 23:39:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323580; bh=8sKYSQluEn4/6PGtEguJVZQDs38YzlkO6eJZQg/af0c=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=UHaydREEwD2atOaSHpCTaHZfodCdsj0dNkV62a6m1nBHNfcRbL3/VmJ2/Ki+AYoFF CrUQCMmU9THywIl33G4KoR61mALzZ0gHw3uc/1K0IpQSn6LG55IjNU08t7S/GIxzLA 84KelNdKovLabCV2gCE92LENSgqgpE2B29tUckpE0GDQ3FEcinp3hbeVahSWBSlurX 0LDU8wuXcuJFyV+3GUHScMzT5a3G0IO/PSq7zCVaI6SE0OSt99lfNE/2EUFMsEl+tK 9O5F8mP0ETceOwjbIlbuH71fYajwYebvskeRpNoRj1J7wEl44tUIHYfHa6+T5SDW2c YkMs0sxzgOynw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jens Axboe , Sasha Levin Subject: [PATCH 5.15 287/317] io_uring: don't save/restore iowait state Date: Sun, 24 Mar 2024 19:34:27 -0400 Message-ID: <20240324233458.1352854-288-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Jens Axboe [ Upstream commit 6f0974eccbf78baead1735722c4f1ee3eb9422cd ] This kind of state is per-syscall, and since we're doing the waiting off entering the io_uring_enter(2) syscall, there's no way that iowait can already be set for this case. Simplify it by setting it if we need to, and always clearing it to 0 when done. Fixes: 7b72d661f1f2 ("io_uring: gate iowait schedule on having pending requ= ests") Signed-off-by: Jens Axboe Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- io_uring/io_uring.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/io_uring/io_uring.c b/io_uring/io_uring.c index 386b32e6fd9a8..a51429c0342e0 100644 --- a/io_uring/io_uring.c +++ b/io_uring/io_uring.c @@ -7815,7 +7815,7 @@ static inline int io_cqring_wait_schedule(struct io_r= ing_ctx *ctx, struct io_wait_queue *iowq, ktime_t *timeout) { - int io_wait, ret; + int ret; =20 /* make sure we run task_work before checking for signals */ ret =3D io_run_task_work_sig(); @@ -7830,13 +7830,12 @@ static inline int io_cqring_wait_schedule(struct io= _ring_ctx *ctx, * can take into account that the task is waiting for IO - turns out * to be important for low QD IO. */ - io_wait =3D current->in_iowait; if (current_pending_io()) current->in_iowait =3D 1; ret =3D 1; if (!schedule_hrtimeout(timeout, HRTIMER_MODE_ABS)) ret =3D -ETIME; - current->in_iowait =3D io_wait; + current->in_iowait =3D 0; return ret; } =20 --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D3420178CE2; Sun, 24 Mar 2024 23:39:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323581; cv=none; b=FaQll4Hl1NxcjUf0ernzXlpvRPpxu95UO2pgrcXO13zZ002Zv1h4CUnttgh6RVOtSJ9F3td+RGUwlYIkFMArGJR4Q6EExVRO1tw53VuAquIcs5rfwhrq72yqx8jQC3RuddXwlVOF8cq77K1UnaVZVq7ofV0BupRSToWolP+gogk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323581; c=relaxed/simple; bh=sH0p05ZdpjB4X2ES+nRdMatQOHiBDZFvuGrQy/45kEk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=qMfmhL1QqKVPl3ANKk55++EdFZo9v8v7Cn6qs39R/NF0scMJOPZl28OV/RYCE5ul6LOE4KSoWDK7KrUz2/N0kWZ/Kw8rD7B5yxjub/SEjmNoeCIWC0OmjprKXrzc2sVEOBY9fL/5fGMIIuNSlLx79n39PT4QJP6Go6uLqsq+UkE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=r81inP5M; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="r81inP5M" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0AA92C43394; Sun, 24 Mar 2024 23:39:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323581; bh=sH0p05ZdpjB4X2ES+nRdMatQOHiBDZFvuGrQy/45kEk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=r81inP5MR1Mo1VWpNX4WfZvIVFQ8A+sHLXyZo5Ol8UZJJY3Icomquq+ZZ2HiqQHtz LmZJU5MtiwC42RJcwhEJJtlaiCSHbYt7p2oYfW/jaXOubT/RIHO+PuSWhTJBx4w3TX JwvYK/DbxME6inBHya+0/vudINA4l8GmskJ0WUejw0QHyQIazmbWccRGyFxqZFky20 6cuMWSmAp7SFUoY6tgpdTKv5awIPWG6EWhajcaKLgXQXSGhBtN1d12smjeo3RcPOJw M/NL+qn13Mku15oxczF1rVKXBVAe2SPxhxgkKoCGg3OAKkfrc0SkJ7bCkRJ2rZyiM8 0Me9UIwJSsH4w== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Dave Airlie , =?UTF-8?q?Christian=20K=C3=B6nig?= , Danilo Krummrich , Sasha Levin Subject: [PATCH 5.15 288/317] nouveau: reset the bo resource bus info after an eviction Date: Sun, 24 Mar 2024 19:34:28 -0400 Message-ID: <20240324233458.1352854-289-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable From: Dave Airlie [ Upstream commit f35c9af45ea7a4b1115b193d84858b14d13517fc ] Later attempts to refault the bo won't happen and the whole GPU does to lunch. I think Christian's refactoring of this code out to the driver broke this not very well tested path. Fixes: 141b15e59175 ("drm/nouveau: move io_reserve_lru handling into the dr= iver v5") Cc: Christian K=C3=B6nig Signed-off-by: Dave Airlie Acked-by: Christian K=C3=B6nig Signed-off-by: Danilo Krummrich Link: https://patchwork.freedesktop.org/patch/msgid/20240311072037.287905-1= -airlied@gmail.com Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/gpu/drm/nouveau/nouveau_bo.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau= /nouveau_bo.c index da58230bcb1fc..2048eac841ddf 100644 --- a/drivers/gpu/drm/nouveau/nouveau_bo.c +++ b/drivers/gpu/drm/nouveau/nouveau_bo.c @@ -1186,6 +1186,8 @@ nouveau_ttm_io_mem_reserve(struct ttm_device *bdev, s= truct ttm_resource *reg) drm_vma_node_unmap(&nvbo->bo.base.vma_node, bdev->dev_mapping); nouveau_ttm_io_mem_free_locked(drm, nvbo->bo.resource); + nvbo->bo.resource->bus.offset =3D 0; + nvbo->bo.resource->bus.addr =3D NULL; goto retry; } =20 --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EA1BA1791EF; Sun, 24 Mar 2024 23:39:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323584; cv=none; b=nUp/63zVOCxHXOGqulZm3mXQHG/0XYUHzJHgzcln/bWYzPc/M0u/4roN+7YXqGsc5eJRbmBauy2I2BLvNsEGjmbXUwv1PsNnhlCr1jEm2VCMiAZpBbZtcOrWz+AU53Q3BvE6NfglNJeJAa/yJYld4FR1gF6E+jweMf3UH64V1M0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323584; c=relaxed/simple; bh=s5HspWaj7dTK+BRgN68om3BQp6DLpTeKtLMi07I0tYE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PvfLxuQ02gD2xCaVXWxuuAVeiOZUKdsIF8iL820QOB2Y6hWl/pwSO8XNcRGuUjraI7Ow6ecc3Il2AqrI9B6+MQq1pGkasPUb4bQTwmquMGw8I+hOJ34pP/6oX438DnFunmooLmLBpw4tZ35+2YqcL9Bf4EZwr6rbFB6BPQXunDw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=TFSWwc16; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="TFSWwc16" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 06F1DC433C7; Sun, 24 Mar 2024 23:39:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323582; bh=s5HspWaj7dTK+BRgN68om3BQp6DLpTeKtLMi07I0tYE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=TFSWwc16ejukO+zAAw0cFD6O9Q5DV2lFOuPDWG78clTSG35WpQ4xf//mBKBZqfX3x tV1qk23AkVtN7M5zYss3xb6bryvpVq48sfdAQ5Ce+e4jzvj17BTkXKYJCFL+taGb7B kDpq8b8GyxFNbTDIzrbRsbN/RXv6SJu9RVq0V+/MwQsCEvWNkFMUqBqHLnAD///Xlf PBCiX6wltojoLkeK45pEwG4KEtV2/x455h/tpT+LvJb7ObUcKp9CIOzXmBDUoeCWMl JrwGXYwvWYcg6NjizMvPq+9jH87+4uBjswDRqhcB/fPT3OxCUpxZjtFwgHrp6XBzWZ xsg2wlWl93WiQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Linu Cherian , Sunil Goutham , Subbaraya Sundeep , "David S . Miller" , Sasha Levin Subject: [PATCH 5.15 289/317] octeontx2-af: Use matching wake_up API variant in CGX command interface Date: Sun, 24 Mar 2024 19:34:29 -0400 Message-ID: <20240324233458.1352854-290-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Linu Cherian [ Upstream commit e642921dfeed1e15e73f78f2c3b6746f72b6deb2 ] Use wake_up API instead of wake_up_interruptible, since wait_event_timeout API is used for waiting on command completion. Fixes: 1463f382f58d ("octeontx2-af: Add support for CGX link management") Signed-off-by: Linu Cherian Signed-off-by: Sunil Goutham Signed-off-by: Subbaraya Sundeep Signed-off-by: David S. Miller Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/net/ethernet/marvell/octeontx2/af/cgx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ethernet/marvell/octeontx2/af/cgx.c b/drivers/net/= ethernet/marvell/octeontx2/af/cgx.c index 1a269a2e61fdb..3ade1a6e2f1e0 100644 --- a/drivers/net/ethernet/marvell/octeontx2/af/cgx.c +++ b/drivers/net/ethernet/marvell/octeontx2/af/cgx.c @@ -1205,7 +1205,7 @@ static irqreturn_t cgx_fwi_event_handler(int irq, voi= d *data) =20 /* Release thread waiting for completion */ lmac->cmd_pend =3D false; - wake_up_interruptible(&lmac->wq_cmd_cmplt); + wake_up(&lmac->wq_cmd_cmplt); break; case CGX_EVT_ASYNC: if (cgx_event_is_linkevent(event)) --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E54631791EE; Sun, 24 Mar 2024 23:39:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323584; cv=none; b=gEzZJhjMyeyVoXtvH4lWyqZsa84qYIn2EZt3H6ZZVRUO+7bNXQgcTWXe7TthIxnfVXFDzi4D2I94coSTMrWEoLmEmMzaS7fbE1UMtMInbMeNg0jOVdN6mO5JljbL0JNjolq5Z1b5QQpMJuEjCBRLUwM8PCfXFgtLmZG3xgPOIKk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323584; c=relaxed/simple; bh=B+XH0Q8cQ8IRj9cWuauv4e/6nwzU2iYes19X+eo81GE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=nicNxSf2MiEFsl+AZoPxj/o8uqX08LB793Y8Vs8NrcTYGfuMwR/t2YV77u8RUH+c47F9tDHzzbLKvpdMafqGo9NBdG0e9FJfWY+H14Uld4CwK5LMD/LQu82uZJ7zT+E4ekBl1GjIXXAoJkW756GGRpc4hYztlI6+alegjHNoZ1Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ONsaFkxF; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ONsaFkxF" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 189DAC43390; Sun, 24 Mar 2024 23:39:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323583; bh=B+XH0Q8cQ8IRj9cWuauv4e/6nwzU2iYes19X+eo81GE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ONsaFkxFvr3iGDJlxEgkKqwEHYiaypMbbA3YA+PVss8+We9I3aWfYDjXHzXdIRPsu eYNu78QT8RkPquG8IoHl4um+wNQhvEvgW7IR5xNFg+yfDhCV3P/fgyJHm/d41tSNXP N9kZCp5cPYK4p9Kw/rEwBnKSdoo/0xulMY3FglZ1U4GyuVTr0c17qRKglNDfo6t24/ 81/WuKT//QN+O3sVXeydT8uwQ9Hyt5uTWbUUITwShS5SQuSsJ1+3a8/6lBgiBQoCo4 tiGbhg3DWj+QTHHNpVqk61R+fO5oKdTGdYsP0B2kjxChnU+YMYJjIpfmxtmFgGWNm8 umK4dgtEY7Ctw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Mete Durlu , Heiko Carstens , Christian Borntraeger , Sasha Levin Subject: [PATCH 5.15 290/317] s390/vtime: fix average steal time calculation Date: Sun, 24 Mar 2024 19:34:30 -0400 Message-ID: <20240324233458.1352854-291-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Mete Durlu [ Upstream commit 367c50f78451d3bd7ad70bc5c89f9ba6dec46ca9 ] Current average steal timer calculation produces volatile and inflated values. The only user of this value is KVM so far and it uses that to decide whether or not to yield the vCPU which is seeing steal time. KVM compares average steal timer to a threshold and if the threshold is past then it does not allow CPU polling and yields it to host, else it keeps the CPU by polling. Since KVM's steal time threshold is very low by default (%10) it most likely is not effected much by the bloated average steal timer values because the operating region is pretty small. However there might be new users in the future who might rely on this number. Fix average steal timer calculation by changing the formula from: avg_steal_timer =3D avg_steal_timer / 2 + steal_timer; to the following: avg_steal_timer =3D (avg_steal_timer + steal_timer) / 2; This ensures that avg_steal_timer is actually a naive average of steal timer values. It now closely follows steal timer values but of course in a smoother manner. Fixes: 152e9b8676c6 ("s390/vtime: steal time exponential moving average") Signed-off-by: Mete Durlu Acked-by: Heiko Carstens Acked-by: Christian Borntraeger Signed-off-by: Heiko Carstens Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- arch/s390/kernel/vtime.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/s390/kernel/vtime.c b/arch/s390/kernel/vtime.c index f216a1b2f8257..86137029235ac 100644 --- a/arch/s390/kernel/vtime.c +++ b/arch/s390/kernel/vtime.c @@ -211,13 +211,13 @@ void vtime_flush(struct task_struct *tsk) virt_timer_expire(); =20 steal =3D S390_lowcore.steal_timer; - avg_steal =3D S390_lowcore.avg_steal_timer / 2; + avg_steal =3D S390_lowcore.avg_steal_timer; if ((s64) steal > 0) { S390_lowcore.steal_timer =3D 0; account_steal_time(cputime_to_nsecs(steal)); avg_steal +=3D steal; } - S390_lowcore.avg_steal_timer =3D avg_steal; + S390_lowcore.avg_steal_timer =3D avg_steal / 2; } =20 static u64 vtime_delta(void) --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C8E681791F9; Sun, 24 Mar 2024 23:39:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323585; cv=none; b=JuI8tn96JSwem81MUm4Aui72xTybBhUN3MRdOs6zg3P1MNPcXT4HaMXxzvlk4n3AJCRkU3mNr8kQwdir6lCJbnvS20xmXrBy6dB5AWne5AcKlxbr8f2+bvCV80rmZ1/fyOKKeEzqkTeVTadcXvVCgkPdQxwQn6WPz/Ep4tqfq1A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323585; c=relaxed/simple; bh=CBebaG+0xbdd5y6jn27EFF7OtljaxvopzEok4XjCYh4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=LfQ9rVGFRWHGcXNIKoAoPWq3y2BXzXKKWiOh7bkKZWCwWugAA5s6FJSyj5NEYdT8GULMUPzEk70r1bjLpHXbg/baPnA3lzy0LM5mXRjC45C+VpVWtbDC+UmV9ht/JByzvShg/pqB2UdHF/W2522a3USkMI/bJz0mPdisQBaznAg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=s7oqBrbJ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="s7oqBrbJ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1593FC43399; Sun, 24 Mar 2024 23:39:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323584; bh=CBebaG+0xbdd5y6jn27EFF7OtljaxvopzEok4XjCYh4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=s7oqBrbJffoZhOT0e30Tkr95EqYCoNABGe8xvubkndxKl/kKf+/VSvkR1RnoxpNzB t6YCflJzk60QZw3jvCL8klzHQwHkcBvKZZ8oGYMohHNpzYT4ht5YOG0E8Hl2gVXY5W 8k1DsHJiP0Ydjzil6MTUqMUkcjfpyauE25kIC/66Ir9Krsa6JSyjc87aHwf4FrV+qC GInav06aRD+ndp/zG8LSTfO9lkEtKlBTXgkXxgES+HmdC42Rt3cOVgDJngdFsa5XDn Cwh6XCpwk0ijC4K4cN+uqLMwRcCH6KbdKUI6cRQIkohXn6+od/ZQ8hN/GUpeUz7Jr6 wAwltp/hgaPOg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Arnd Bergmann , Dmitry Antipov , Sasha Levin Subject: [PATCH 5.15 291/317] soc: fsl: dpio: fix kcalloc() argument order Date: Sun, 24 Mar 2024 19:34:31 -0400 Message-ID: <20240324233458.1352854-292-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Arnd Bergmann [ Upstream commit 72ebb41b88f9d7c10c5e159e0507074af0a22fe2 ] A previous bugfix added a call to kcalloc(), which starting in gcc-14 causes a harmless warning about the argument order: drivers/soc/fsl/dpio/dpio-service.c: In function 'dpaa2_io_service_enqueue_= multiple_desc_fq': drivers/soc/fsl/dpio/dpio-service.c:526:29: error: 'kcalloc' sizes specifie= d with 'sizeof' in the earlier argument and not in the later argument [-Wer= ror=3Dcalloc-transposed-args] 526 | ed =3D kcalloc(sizeof(struct qbman_eq_desc), 32, GFP_KERNEL= ); | ^~~~~~ drivers/soc/fsl/dpio/dpio-service.c:526:29: note: earlier argument should s= pecify number of elements, later size of each element Since the two are only multiplied, the order does not change the behavior, so just fix it now to shut up the compiler warning. Dmity independently came up with the same fix. Fixes: 5c4a5999b245 ("soc: fsl: dpio: avoid stack usage warning") Reported-by: Dmitry Antipov Signed-off-by: Arnd Bergmann Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/soc/fsl/dpio/dpio-service.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/soc/fsl/dpio/dpio-service.c b/drivers/soc/fsl/dpio/dpi= o-service.c index 779c319a4b820..6cdd2c517ba68 100644 --- a/drivers/soc/fsl/dpio/dpio-service.c +++ b/drivers/soc/fsl/dpio/dpio-service.c @@ -485,7 +485,7 @@ int dpaa2_io_service_enqueue_multiple_desc_fq(struct dp= aa2_io *d, struct qbman_eq_desc *ed; int i, ret; =20 - ed =3D kcalloc(sizeof(struct qbman_eq_desc), 32, GFP_KERNEL); + ed =3D kcalloc(32, sizeof(struct qbman_eq_desc), GFP_KERNEL); if (!ed) return -ENOMEM; =20 --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C57BC179201; Sun, 24 Mar 2024 23:39:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323586; cv=none; b=ifAy8JDkFmc/IR0AjtZUT/LtoY2Wkq7T70UZ6LQ6cJ843ls0/adOvM9HTDesqq6itLWwT4jbp2LgGFo2NAc6AhKbrV+j+JpsEl+3HkYiUJJb5eWc3Z6rL9/CsdaDudt3Y3nllyVSSFY9tiaiT0m4gq8YUZ1gfmiMag59uyrCJjg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323586; c=relaxed/simple; bh=cNTc0foQCXZmIToOgPyjkik9S7rJXFiU9PdOqTuNIxE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=i9h+jYxlA1Ih3C/ZEM5eisRWprZyk89nV945/LYFqGGwSfJgYSSOPNHuhKLXfxtBd8yyrBlx0+04JjHodcuoR0yE6dPLtg1uBaNW/1yVStB25rjAf0iH0AHYnVcIw2zfOun20oH6aV9V+Pn7vF6YyqNNVGffstfBh2ZxMnZ4ECw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=YrNM+P6l; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="YrNM+P6l" Received: by smtp.kernel.org (Postfix) with ESMTPSA id ECD36C433C7; Sun, 24 Mar 2024 23:39:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323585; bh=cNTc0foQCXZmIToOgPyjkik9S7rJXFiU9PdOqTuNIxE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=YrNM+P6lhUDy3vGUIulL9+KTlUb/me7j74BytuQsa5Pf82cIoaaluhdu/aaRZukNU NUvclMF3Erq+45mEOOLhzo4x/ESGmuPASXYq0Sw0CeWZqyDyQD9vplRk1Wo18Kq2fn Gz6/5wJY1t6tsxQPj8KW15C6wrW9tPmn/xWRETZiOhIDEX+77PEIjPU5vf4p+5RRhf Y/V1g+vs1+VfDqjfTx/9rpYCgG6w3bFX8PlxVDMKdemeUbivtjSAA6PO38EcqpqGg5 WhYrkykWfLG6pTze28PgXCATW5K4MUZ6RH7SyUCh62iwOCRshFOjgPO8FqiZD7vo7f 0NHPagdZT3VJA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Shigeru Yoshida , syzbot+2ef3a8ce8e91b5a50098@syzkaller.appspotmail.com, Paolo Abeni , Sasha Levin Subject: [PATCH 5.15 292/317] hsr: Fix uninit-value access in hsr_get_node() Date: Sun, 24 Mar 2024 19:34:32 -0400 Message-ID: <20240324233458.1352854-293-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Shigeru Yoshida [ Upstream commit ddbec99f58571301679addbc022256970ca3eac6 ] KMSAN reported the following uninit-value access issue [1]: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D BUG: KMSAN: uninit-value in hsr_get_node+0xa2e/0xa40 net/hsr/hsr_framereg.c= :246 hsr_get_node+0xa2e/0xa40 net/hsr/hsr_framereg.c:246 fill_frame_info net/hsr/hsr_forward.c:577 [inline] hsr_forward_skb+0xe12/0x30e0 net/hsr/hsr_forward.c:615 hsr_dev_xmit+0x1a1/0x270 net/hsr/hsr_device.c:223 __netdev_start_xmit include/linux/netdevice.h:4940 [inline] netdev_start_xmit include/linux/netdevice.h:4954 [inline] xmit_one net/core/dev.c:3548 [inline] dev_hard_start_xmit+0x247/0xa10 net/core/dev.c:3564 __dev_queue_xmit+0x33b8/0x5130 net/core/dev.c:4349 dev_queue_xmit include/linux/netdevice.h:3134 [inline] packet_xmit+0x9c/0x6b0 net/packet/af_packet.c:276 packet_snd net/packet/af_packet.c:3087 [inline] packet_sendmsg+0x8b1d/0x9f30 net/packet/af_packet.c:3119 sock_sendmsg_nosec net/socket.c:730 [inline] __sock_sendmsg net/socket.c:745 [inline] __sys_sendto+0x735/0xa10 net/socket.c:2191 __do_sys_sendto net/socket.c:2203 [inline] __se_sys_sendto net/socket.c:2199 [inline] __x64_sys_sendto+0x125/0x1c0 net/socket.c:2199 do_syscall_x64 arch/x86/entry/common.c:52 [inline] do_syscall_64+0x6d/0x140 arch/x86/entry/common.c:83 entry_SYSCALL_64_after_hwframe+0x63/0x6b Uninit was created at: slab_post_alloc_hook+0x129/0xa70 mm/slab.h:768 slab_alloc_node mm/slub.c:3478 [inline] kmem_cache_alloc_node+0x5e9/0xb10 mm/slub.c:3523 kmalloc_reserve+0x13d/0x4a0 net/core/skbuff.c:560 __alloc_skb+0x318/0x740 net/core/skbuff.c:651 alloc_skb include/linux/skbuff.h:1286 [inline] alloc_skb_with_frags+0xc8/0xbd0 net/core/skbuff.c:6334 sock_alloc_send_pskb+0xa80/0xbf0 net/core/sock.c:2787 packet_alloc_skb net/packet/af_packet.c:2936 [inline] packet_snd net/packet/af_packet.c:3030 [inline] packet_sendmsg+0x70e8/0x9f30 net/packet/af_packet.c:3119 sock_sendmsg_nosec net/socket.c:730 [inline] __sock_sendmsg net/socket.c:745 [inline] __sys_sendto+0x735/0xa10 net/socket.c:2191 __do_sys_sendto net/socket.c:2203 [inline] __se_sys_sendto net/socket.c:2199 [inline] __x64_sys_sendto+0x125/0x1c0 net/socket.c:2199 do_syscall_x64 arch/x86/entry/common.c:52 [inline] do_syscall_64+0x6d/0x140 arch/x86/entry/common.c:83 entry_SYSCALL_64_after_hwframe+0x63/0x6b CPU: 1 PID: 5033 Comm: syz-executor334 Not tainted 6.7.0-syzkaller-00562-g9= f8413c4a66f #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Goo= gle 11/17/2023 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D If the packet type ID field in the Ethernet header is either ETH_P_PRP or ETH_P_HSR, but it is not followed by an HSR tag, hsr_get_skb_sequence_nr() reads an invalid value as a sequence number. This causes the above issue. This patch fixes the issue by returning NULL if the Ethernet header is not followed by an HSR tag. Fixes: f266a683a480 ("net/hsr: Better frame dispatch") Reported-and-tested-by: syzbot+2ef3a8ce8e91b5a50098@syzkaller.appspotmail.c= om Closes: https://syzkaller.appspot.com/bug?extid=3D2ef3a8ce8e91b5a50098 [1] Signed-off-by: Shigeru Yoshida Link: https://lore.kernel.org/r/20240312152719.724530-1-syoshida@redhat.com Signed-off-by: Paolo Abeni Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- net/hsr/hsr_framereg.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/net/hsr/hsr_framereg.c b/net/hsr/hsr_framereg.c index 8c9a20e99f0f4..e0aeeeda3c876 100644 --- a/net/hsr/hsr_framereg.c +++ b/net/hsr/hsr_framereg.c @@ -237,6 +237,10 @@ struct hsr_node *hsr_get_node(struct hsr_port *port, s= truct list_head *node_db, */ if (ethhdr->h_proto =3D=3D htons(ETH_P_PRP) || ethhdr->h_proto =3D=3D htons(ETH_P_HSR)) { + /* Check if skb contains hsr_ethhdr */ + if (skb->mac_len < sizeof(struct hsr_ethhdr)) + return NULL; + /* Use the existing sequence_nr from the tag as starting point * for filtering duplicate frames. */ --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A7C2B1791FF; Sun, 24 Mar 2024 23:39:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323586; cv=none; b=GyuAkWjvdBEbYDi56PoMlqCzfD2/MpQ1VV11pFyVZQV/w+3dbhb5+cqD6uWooEwQiqJTEq1XYN2VTBf67fjUS9ffN+nW1WVdUXkXYrDq3PwxLvF5SnuUD6h4Y/wFxJHfGcY5TXVU5gXTNFKy0WjP9rlNMV7fTRZJ7YxUhX9mkY0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323586; c=relaxed/simple; bh=3PvprwhOCGenibaX4x5mcox1m9f8MXwYIxwZC7iVdEM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=JlDZF77J0v7xR8luSAlFUFtwp7cmVpWzY3Ylpq4l1Cf0P3mi6bAV91vpgnrWNW4B6wlGNOFQxpF1FKgUdPonXvFX8dnzVeKSn3lEk29PO3lxQPIuAMs/CkimImMVvz65hlSNqn13vX6iJnKbjX6yvxRO6UfSzD32CwR0GCUUxug= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=McPOlGbB; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="McPOlGbB" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E8EFBC41679; Sun, 24 Mar 2024 23:39:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323586; bh=3PvprwhOCGenibaX4x5mcox1m9f8MXwYIxwZC7iVdEM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=McPOlGbBpa6f/2EkGssmRJhf+fZ2aWuNuWq9NV0m9Q+x5BLZbJ538ED6GVSlwCS9l TrcxGnBVjsPigUszrP4gXi1QpkczXrNn7W7PzALczJHjn4LQ2Y2lb77tBkAV2pkJKi cRsXlzIilvanuSMutO1QHTtVuy68h9dArpWeCz9lXBCZamI5VMplxcSq8fEaW8W5UG aU2bP1bcZfvdu50RqD/Ln4SqCyaA4AjKEOI9OoEp6esUHBWIpECeDnlLThDSr1PXuD VlkK7ZmK/tHCpo/7vM/liNFJ1O0We7HHoV9DyyK8jZ7Du6QFf37n3pX3cGMaBoD/iW jtiw0HLPc/5wg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: "Russell King (Oracle)" , Jakub Kicinski , Sasha Levin Subject: [PATCH 5.15 293/317] net: mtk_eth_soc: move MAC_MCR setting to mac_finish() Date: Sun, 24 Mar 2024 19:34:33 -0400 Message-ID: <20240324233458.1352854-294-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: "Russell King (Oracle)" [ Upstream commit 0e37ad71b2ff772009595002da2860999e98e14e ] Move the setting of the MTK_MAC_MCR register from the end of mac_config into the phylink mac_finish() method, to keep it as the very last write that is done during configuration. Signed-off-by: Russell King (Oracle) Signed-off-by: Jakub Kicinski Stable-dep-of: f1b85ef15a99 ("net: mediatek: mtk_eth_soc: clear MAC_MCR_FOR= CE_LINK only when MAC is up") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/net/ethernet/mediatek/mtk_eth_soc.c | 33 ++++++++++++++------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethe= rnet/mediatek/mtk_eth_soc.c index 139dfdb1e58bd..c9d9a082c9f83 100644 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c @@ -223,8 +223,8 @@ static void mtk_mac_config(struct phylink_config *confi= g, unsigned int mode, struct mtk_mac *mac =3D container_of(config, struct mtk_mac, phylink_config); struct mtk_eth *eth =3D mac->hw; - u32 mcr_cur, mcr_new, sid, i; int val, ge_mode, err =3D 0; + u32 sid, i; =20 /* MT76x8 has no hardware settings between for the MAC */ if (!MTK_HAS_CAPS(eth->soc->caps, MTK_SOC_MT7628) && @@ -359,6 +359,25 @@ static void mtk_mac_config(struct phylink_config *conf= ig, unsigned int mode, return; } =20 + return; + +err_phy: + dev_err(eth->dev, "%s: GMAC%d mode %s not supported!\n", __func__, + mac->id, phy_modes(state->interface)); + return; + +init_err: + dev_err(eth->dev, "%s: GMAC%d mode %s err: %d!\n", __func__, + mac->id, phy_modes(state->interface), err); +} + +static int mtk_mac_finish(struct phylink_config *config, unsigned int mode, + phy_interface_t interface) +{ + struct mtk_mac *mac =3D container_of(config, struct mtk_mac, + phylink_config); + u32 mcr_cur, mcr_new; + /* Setup gmac */ mcr_cur =3D mtk_r32(mac->hw, MTK_MAC_MCR(mac->id)); mcr_new =3D mcr_cur; @@ -370,16 +389,7 @@ static void mtk_mac_config(struct phylink_config *conf= ig, unsigned int mode, if (mcr_new !=3D mcr_cur) mtk_w32(mac->hw, mcr_new, MTK_MAC_MCR(mac->id)); =20 - return; - -err_phy: - dev_err(eth->dev, "%s: GMAC%d mode %s not supported!\n", __func__, - mac->id, phy_modes(state->interface)); - return; - -init_err: - dev_err(eth->dev, "%s: GMAC%d mode %s err: %d!\n", __func__, - mac->id, phy_modes(state->interface), err); + return 0; } =20 static void mtk_mac_pcs_get_state(struct phylink_config *config, @@ -562,6 +572,7 @@ static const struct phylink_mac_ops mtk_phylink_ops =3D= { .mac_pcs_get_state =3D mtk_mac_pcs_get_state, .mac_an_restart =3D mtk_mac_an_restart, .mac_config =3D mtk_mac_config, + .mac_finish =3D mtk_mac_finish, .mac_link_down =3D mtk_mac_link_down, .mac_link_up =3D mtk_mac_link_up, }; --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id ADCD1179209; Sun, 24 Mar 2024 23:39:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323588; cv=none; b=TFdl28205EA+zhW6YJ5UzQF4dTky0nF3j9QpWCSJr5Kt8Cush8XLQIZ55Q3Jq3AjWhxdMA9e1OiFN/Kn+IyrH4QLvt7k9L7fVNF2VPqWgx/mEMLaoMxxdSdLgzaPQzGQNmRRc+c6In+i89zAUdK00Y1IVPc0WeqjIZHOcpL35SY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323588; c=relaxed/simple; bh=mLe7etEiwquXUByGhvEO3SZkbsEnc4tMVWqbzkIk/eQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=CARb/aaP6YzaA2DEZLtmpxxg3qiOho9ERVUldprNJ5ercW7iebEFbAdiCAmLjIvajA1w3b8ZqbKIu2CFXhhtHUWgzpYijPKs3ghEAIkBGN0IadUhzjt3Yx0VcWko4r7ai4DMdZF41sf4sy3WwyuKqdWFPeMR95aVAZWMhC63heo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=RBkrxt/F; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="RBkrxt/F" Received: by smtp.kernel.org (Postfix) with ESMTPSA id CCA7CC43394; Sun, 24 Mar 2024 23:39:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323587; bh=mLe7etEiwquXUByGhvEO3SZkbsEnc4tMVWqbzkIk/eQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=RBkrxt/FKhQux0iOfn9bPuh49wUYC1ipoB/Oo7g447mU7qsI8tPolMQrLTFv1Q/ye W6ARVLDEUZBlVUpTQN7RnsFXyx7dJCxLSjiwn1rp4nM0g6/0u10NOyQ6yubf+6xfm9 LBkvFBDrnGM+5EuigesIP8yIAp+SEX6eS29uKrZud9aQtBAQ8Oh1ty8om2VGkKnPJD Cv1+fZZAcoNMHT8meFfGaNZYD0muVGonssEQmLw00pXzjGB8wPmLIW7+JdzoLLKult pMgfbdZo/q6nXEUKLp1QTLp+2+uZznaO0aj4SSCz9TZe/YQ9xADSCECIdt/0RViN8y kFsnQHd19VlGA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Daniel Golle , Mason-cw Chang , "David S . Miller" , Sasha Levin Subject: [PATCH 5.15 294/317] net: mediatek: mtk_eth_soc: clear MAC_MCR_FORCE_LINK only when MAC is up Date: Sun, 24 Mar 2024 19:34:34 -0400 Message-ID: <20240324233458.1352854-295-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Daniel Golle [ Upstream commit f1b85ef15a99f06ed48871ce933d591127d2dcc0 ] Clearing bit MAC_MCR_FORCE_LINK which forces the link down too early can result in MAC ending up in a broken/blocked state. Fix this by handling this bit in the .mac_link_up and .mac_link_down calls instead of in .mac_finish. Fixes: b8fc9f30821e ("net: ethernet: mediatek: Add basic PHYLINK support") Suggested-by: Mason-cw Chang Signed-off-by: Daniel Golle Signed-off-by: David S. Miller Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/net/ethernet/mediatek/mtk_eth_soc.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethe= rnet/mediatek/mtk_eth_soc.c index c9d9a082c9f83..711acc6059a4f 100644 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c @@ -382,8 +382,7 @@ static int mtk_mac_finish(struct phylink_config *config= , unsigned int mode, mcr_cur =3D mtk_r32(mac->hw, MTK_MAC_MCR(mac->id)); mcr_new =3D mcr_cur; mcr_new |=3D MAC_MCR_IPG_CFG | MAC_MCR_FORCE_MODE | - MAC_MCR_BACKOFF_EN | MAC_MCR_BACKPR_EN | MAC_MCR_FORCE_LINK | - MAC_MCR_RX_FIFO_CLR_DIS; + MAC_MCR_BACKOFF_EN | MAC_MCR_BACKPR_EN | MAC_MCR_RX_FIFO_CLR_DIS; =20 /* Only update control register when needed! */ if (mcr_new !=3D mcr_cur) @@ -439,7 +438,7 @@ static void mtk_mac_link_down(struct phylink_config *co= nfig, unsigned int mode, phylink_config); u32 mcr =3D mtk_r32(mac->hw, MTK_MAC_MCR(mac->id)); =20 - mcr &=3D ~(MAC_MCR_TX_EN | MAC_MCR_RX_EN); + mcr &=3D ~(MAC_MCR_TX_EN | MAC_MCR_RX_EN | MAC_MCR_FORCE_LINK); mtk_w32(mac->hw, mcr, MTK_MAC_MCR(mac->id)); } =20 @@ -477,7 +476,7 @@ static void mtk_mac_link_up(struct phylink_config *conf= ig, if (rx_pause) mcr |=3D MAC_MCR_FORCE_RX_FC; =20 - mcr |=3D MAC_MCR_TX_EN | MAC_MCR_RX_EN; + mcr |=3D MAC_MCR_TX_EN | MAC_MCR_RX_EN | MAC_MCR_FORCE_LINK; mtk_w32(mac->hw, mcr, MTK_MAC_MCR(mac->id)); } =20 --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9D727179211; Sun, 24 Mar 2024 23:39:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323589; cv=none; b=o/H1inyjIEc8D9yFeuBRpGKLdZZ2xfwh2HkGd1ageOhn6omcnKeTZEz/swFWEnY2KwDFkryxuHPpba90sqNsNeCypQUECxmb9G/Io9I/vlLfIo5xqfspPgTxFjzDqhtEdsCCcxJAVY+OoVsuMGnejVAHHxbVJ8lRWwtbHep7fvM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323589; c=relaxed/simple; bh=DP7eS2BLiLJag7ca28yuThlRVBYGxPMMTfFtKxToGc8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=YYB5dW9s5irYQ2r2sZ5gmdN1DFWsqOI79rbZMl/wau9z6Ta+2bLtEe+qs8XoXLqSYEP5lp6jSZ0P+LEQVptPO5H2+7EX7TA3/onKEKIHR8OAAEcvKu6wa/MCHdkBtO9RNM2uy1yB/1X5PO7PY7e6f5Fr2E2a0wbS41r5pBZrG0Q= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=E2DK6M58; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="E2DK6M58" Received: by smtp.kernel.org (Postfix) with ESMTPSA id C7613C433C7; Sun, 24 Mar 2024 23:39:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323588; bh=DP7eS2BLiLJag7ca28yuThlRVBYGxPMMTfFtKxToGc8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=E2DK6M589cXo7OBeITRgpNJ7iQ0wG8lSfgIHC8J15ELpf1puuenVuBkrxsPoMBq7z 91gG47c4wpI8DNKr3SykRdMQFbCVEBT1xIlW+ZEbHTOrnglxo20HxfG+U5GBkYs4S4 dj5RaxqLLQy8FTx/BeXzBB9z4emlCmd8lnM6bXkThsnWNqd4GeKB6Zovn41FXgUz3O lvhsW5m4GfC80eY2gLuvLGcami0ViRVNw67yGVTnVG4oa5k0+n+1WVij8ypwvoqO0p gwodVs+X66e+0TYSH23qAS/U6Glu+gWKimrhR9xBknkTQMB18/cKObwvcMWZqwh6Ma RvHYTB+VUc9rA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Daniel Golle , Bc-bocun Chen , "David S . Miller" , Sasha Levin Subject: [PATCH 5.15 295/317] net: ethernet: mtk_eth_soc: fix PPE hanging issue Date: Sun, 24 Mar 2024 19:34:35 -0400 Message-ID: <20240324233458.1352854-296-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Daniel Golle [ Upstream commit ea80e3ed09ab2c2b75724faf5484721753e92c31 ] A patch to resolve an issue was found in MediaTek's GPL-licensed SDK: In the mtk_ppe_stop() function, the PPE scan mode is not disabled before disabling the PPE. This can potentially lead to a hang during the process of disabling the PPE. Without this patch, the PPE may experience a hang during the reboot test. Link: https://git01.mediatek.com/plugins/gitiles/openwrt/feeds/mtk-openwrt-= feeds/+/b40da332dfe763932a82f9f62a4709457a15dd6c Fixes: ba37b7caf1ed ("net: ethernet: mtk_eth_soc: add support for initializ= ing the PPE") Suggested-by: Bc-bocun Chen Signed-off-by: Daniel Golle Signed-off-by: David S. Miller Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/net/ethernet/mediatek/mtk_ppe.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/drivers/net/ethernet/mediatek/mtk_ppe.c b/drivers/net/ethernet= /mediatek/mtk_ppe.c index 66298e2235c91..5e7b66846791d 100644 --- a/drivers/net/ethernet/mediatek/mtk_ppe.c +++ b/drivers/net/ethernet/mediatek/mtk_ppe.c @@ -425,7 +425,7 @@ int mtk_ppe_start(struct mtk_ppe *ppe) MTK_PPE_KEEPALIVE_DISABLE) | FIELD_PREP(MTK_PPE_TB_CFG_HASH_MODE, 1) | FIELD_PREP(MTK_PPE_TB_CFG_SCAN_MODE, - MTK_PPE_SCAN_MODE_KEEPALIVE_AGE) | + MTK_PPE_SCAN_MODE_CHECK_AGE) | FIELD_PREP(MTK_PPE_TB_CFG_ENTRY_NUM, MTK_PPE_ENTRIES_SHIFT); ppe_w32(ppe, MTK_PPE_TB_CFG, val); @@ -493,17 +493,21 @@ int mtk_ppe_stop(struct mtk_ppe *ppe) =20 mtk_ppe_cache_enable(ppe, false); =20 - /* disable offload engine */ - ppe_clear(ppe, MTK_PPE_GLO_CFG, MTK_PPE_GLO_CFG_EN); - ppe_w32(ppe, MTK_PPE_FLOW_CFG, 0); - /* disable aging */ val =3D MTK_PPE_TB_CFG_AGE_NON_L4 | MTK_PPE_TB_CFG_AGE_UNBIND | MTK_PPE_TB_CFG_AGE_TCP | MTK_PPE_TB_CFG_AGE_UDP | - MTK_PPE_TB_CFG_AGE_TCP_FIN; + MTK_PPE_TB_CFG_AGE_TCP_FIN | + MTK_PPE_TB_CFG_SCAN_MODE; ppe_clear(ppe, MTK_PPE_TB_CFG, val); =20 - return mtk_ppe_wait_busy(ppe); + if (mtk_ppe_wait_busy(ppe)) + return -ETIMEDOUT; + + /* disable offload engine */ + ppe_clear(ppe, MTK_PPE_GLO_CFG, MTK_PPE_GLO_CFG_EN); + ppe_w32(ppe, MTK_PPE_FLOW_CFG, 0); + + return 0; } --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E057317921E; Sun, 24 Mar 2024 23:39:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323591; cv=none; b=NB8xQ5lufvoWqz+c+Eh8d5uBm2O4ezXCuuT09tpwv/bUTAlpcvAH4LrxopbVf76mGALxz4rDD8qHsVxf5G+8gqB56CHlIJ/9c/1ljyPf92peTgreNkizRfQ92+YFGxOgImLL/tsvxjCU8ZZ8EKTThP5NbaHG9ud1ZraTxSh20ik= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323591; c=relaxed/simple; bh=uRsESuOkmiRS5aWeUuYDscC8x1Oml4HqYVEaWZB5vbs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=H6DKyBLSs0lTe2G1Sn1ZuYovK04i7S8A9gprqMTzVwfRPbgefNewEvlhwhivg/MBOtajCzCixwncDRSlUfNiV1p1vMGrHJZJfDyeqb+g9Y/kDKfOuz8kwAbuFOsJCwgN8MonmTNZGbf5vu1rsnhb5xQ81KJucxxY3+trMKlAXeg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=p0r+tg9y; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="p0r+tg9y" Received: by smtp.kernel.org (Postfix) with ESMTPSA id C2BCDC43390; Sun, 24 Mar 2024 23:39:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323589; bh=uRsESuOkmiRS5aWeUuYDscC8x1Oml4HqYVEaWZB5vbs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=p0r+tg9yyqXoZyMKjcB3wpC6FZnGLETu/tzlvjG55SSHL17AqxTI+bzUIzs5qh6aD 2pN9/UU/YwZMSD8vyJ0vyM1RLG8cBpY2xXf4iQiwXeRE2ubYdiLRHo+lJKcDKTwEkQ 4+cpmPe2tNmLc0qHNXCfWEdBrKFWpCDbjArqxBzn6I89+1pdBGpItWwd66yACkSjZK Mgo7KBlPiYJmmNlS/G5Wri3deXgI1FNLchjo+KYHK0q+M4gMTFZ5VF0ZavRSwGtYz1 QhXLVVAE1pBRgveeHFSAjCsuUc5H/gjNe1dq07avKAH63kLqQ6PlEp2mAmxSQWhIRU c3OYsxQWml7FA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Eric Dumazet , syzbot+c669c1136495a2e7c31f@syzkaller.appspotmail.com, Willem de Bruijn , Willem de Bruijn , Jason Xing , "David S . Miller" , Sasha Levin Subject: [PATCH 5.15 296/317] packet: annotate data-races around ignore_outgoing Date: Sun, 24 Mar 2024 19:34:36 -0400 Message-ID: <20240324233458.1352854-297-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Eric Dumazet [ Upstream commit 6ebfad33161afacb3e1e59ed1c2feefef70f9f97 ] ignore_outgoing is read locklessly from dev_queue_xmit_nit() and packet_getsockopt() Add appropriate READ_ONCE()/WRITE_ONCE() annotations. syzbot reported: BUG: KCSAN: data-race in dev_queue_xmit_nit / packet_setsockopt write to 0xffff888107804542 of 1 bytes by task 22618 on cpu 0: packet_setsockopt+0xd83/0xfd0 net/packet/af_packet.c:4003 do_sock_setsockopt net/socket.c:2311 [inline] __sys_setsockopt+0x1d8/0x250 net/socket.c:2334 __do_sys_setsockopt net/socket.c:2343 [inline] __se_sys_setsockopt net/socket.c:2340 [inline] __x64_sys_setsockopt+0x66/0x80 net/socket.c:2340 do_syscall_64+0xd3/0x1d0 entry_SYSCALL_64_after_hwframe+0x6d/0x75 read to 0xffff888107804542 of 1 bytes by task 27 on cpu 1: dev_queue_xmit_nit+0x82/0x620 net/core/dev.c:2248 xmit_one net/core/dev.c:3527 [inline] dev_hard_start_xmit+0xcc/0x3f0 net/core/dev.c:3547 __dev_queue_xmit+0xf24/0x1dd0 net/core/dev.c:4335 dev_queue_xmit include/linux/netdevice.h:3091 [inline] batadv_send_skb_packet+0x264/0x300 net/batman-adv/send.c:108 batadv_send_broadcast_skb+0x24/0x30 net/batman-adv/send.c:127 batadv_iv_ogm_send_to_if net/batman-adv/bat_iv_ogm.c:392 [inline] batadv_iv_ogm_emit net/batman-adv/bat_iv_ogm.c:420 [inline] batadv_iv_send_outstanding_bat_ogm_packet+0x3f0/0x4b0 net/batman-adv/bat_i= v_ogm.c:1700 process_one_work kernel/workqueue.c:3254 [inline] process_scheduled_works+0x465/0x990 kernel/workqueue.c:3335 worker_thread+0x526/0x730 kernel/workqueue.c:3416 kthread+0x1d1/0x210 kernel/kthread.c:388 ret_from_fork+0x4b/0x60 arch/x86/kernel/process.c:147 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:243 value changed: 0x00 -> 0x01 Reported by Kernel Concurrency Sanitizer on: CPU: 1 PID: 27 Comm: kworker/u8:1 Tainted: G W 6.8.0-syzkal= ler-08073-g480e035fc4c7 #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Goo= gle 02/29/2024 Workqueue: bat_events batadv_iv_send_outstanding_bat_ogm_packet Fixes: fa788d986a3a ("packet: add sockopt to ignore outgoing packets") Reported-by: syzbot+c669c1136495a2e7c31f@syzkaller.appspotmail.com Closes: https://lore.kernel.org/netdev/CANn89i+Z7MfbkBLOv=3Dp7KZ7=3DK1rKHO4= P1OL5LYDCtBiyqsa9oQ@mail.gmail.com/T/#t Signed-off-by: Eric Dumazet Cc: Willem de Bruijn Reviewed-by: Willem de Bruijn Reviewed-by: Jason Xing Signed-off-by: David S. Miller Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- net/core/dev.c | 2 +- net/packet/af_packet.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/net/core/dev.c b/net/core/dev.c index af77dc77eb9c8..1e41971c06177 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -2291,7 +2291,7 @@ void dev_queue_xmit_nit(struct sk_buff *skb, struct n= et_device *dev) rcu_read_lock(); again: list_for_each_entry_rcu(ptype, ptype_list, list) { - if (ptype->ignore_outgoing) + if (READ_ONCE(ptype->ignore_outgoing)) continue; =20 /* Never send packets back to the socket diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c index 75fb80717e489..cffa217fb3063 100644 --- a/net/packet/af_packet.c +++ b/net/packet/af_packet.c @@ -3951,7 +3951,7 @@ packet_setsockopt(struct socket *sock, int level, int= optname, sockptr_t optval, if (val < 0 || val > 1) return -EINVAL; =20 - po->prot_hook.ignore_outgoing =3D !!val; + WRITE_ONCE(po->prot_hook.ignore_outgoing, !!val); return 0; } case PACKET_TX_HAS_OFF: @@ -4080,7 +4080,7 @@ static int packet_getsockopt(struct socket *sock, int= level, int optname, 0); break; case PACKET_IGNORE_OUTGOING: - val =3D po->prot_hook.ignore_outgoing; + val =3D READ_ONCE(po->prot_hook.ignore_outgoing); break; case PACKET_ROLLOVER_STATS: if (!po->rollover) --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E20BF179215; Sun, 24 Mar 2024 23:39:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323592; cv=none; b=njYmXjgmziW9Iv0qQj74al4qcXhzJPdjQhSt+ujAlN/MOOCSCqNEoGF8/ybPLw5r/xC2xkUaDesldPMVRO/VrxDPssvl4hqQcku8wi3dzT5ty3tZYcsNwHGWumOEAkb+jjqX+a2Tp+gf/w7fPULmo9kaVs61xTDPFt8IKWbSa+E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323592; c=relaxed/simple; bh=1iSWyDGqMjAOjyD45RQQNwJCnJjHhCq9814UWAMzE/0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=VKO+9RMBtyGdZRlE025r+ryO6Xh92F1zVx8dCc/5H3fc/CvdLMcF2cy2xHD/FU0YqoLFzfZ3HbAnSyWBhXr5h9pTH+6S/56Bzk/66H033ViC1hwoeJojZ1v/M86PY3k+a94Gj8sEPuLpZ75s+mJ8IzKk9jRqzPzYE3iPGZcr4TQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=A+ZpfALu; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="A+ZpfALu" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0DB25C43394; Sun, 24 Mar 2024 23:39:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323590; bh=1iSWyDGqMjAOjyD45RQQNwJCnJjHhCq9814UWAMzE/0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=A+ZpfALuYGP5jydpPFFQQ2GN7NuID8NkUpulGCqwTB7wHSe/nnu4+euzrDrgflc5v TugVBBMimIvZSD5i4KaBFDst2H7VHLOO6RunilJ1iFvz7aGWOJkFYw1AUjKNsodZLL R8mY+JCKoNpNVmLWfJP0FZipkolpBdj45ucAJSyM+6GvSJ7oS+Vr1CwDcs2nUK1Lk/ wn/MVQqFyqwATvz1WXAU6eUzIakoMaT/GnAhZbcJ2kyQy3dUa6NhbB4gejdikNBlSe 80a9MvIewQmDL7YyOEIdwmWVGjVx0o+ohSb4Zt38feG+ZzYt+Rjku4rgH8+K6bywB6 2HHfpXSMUCSQQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Ignat Korchagin , =?UTF-8?q?Toke=20H=C3=B8iland-J=C3=B8rgensen?= , "David S . Miller" , Sasha Levin Subject: [PATCH 5.15 297/317] net: veth: do not manipulate GRO when using XDP Date: Sun, 24 Mar 2024 19:34:37 -0400 Message-ID: <20240324233458.1352854-298-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable From: Ignat Korchagin [ Upstream commit d7db7775ea2e31502d46427f5efd385afc4ff1eb ] Commit d3256efd8e8b ("veth: allow enabling NAPI even without XDP") tried to= fix the fact that GRO was not possible without XDP, because veth did not use NA= PI without XDP. However, it also introduced the behaviour that GRO is always enabled, when XDP is enabled. While it might be desired for most cases, it is confusing for the user at b= est as the GRO flag suddenly changes, when an XDP program is attached. It also introduces some complexities in state management as was partially addressed= in commit fe9f801355f0 ("net: veth: clear GRO when clearing XDP even when down= "). But the biggest problem is that it is not possible to disable GRO at all, w= hen an XDP program is attached, which might be needed for some use cases. Fix this by not touching the GRO flag on XDP enable/disable as the code alr= eady supports switching to NAPI if either GRO or XDP is requested. Link: https://lore.kernel.org/lkml/20240311124015.38106-1-ignat@cloudflare.= com/ Fixes: d3256efd8e8b ("veth: allow enabling NAPI even without XDP") Fixes: fe9f801355f0 ("net: veth: clear GRO when clearing XDP even when down= ") Signed-off-by: Ignat Korchagin Reviewed-by: Toke H=C3=B8iland-J=C3=B8rgensen Signed-off-by: David S. Miller Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/net/veth.c | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/drivers/net/veth.c b/drivers/net/veth.c index 0102f86d48676..cfacf8965bc59 100644 --- a/drivers/net/veth.c +++ b/drivers/net/veth.c @@ -1388,8 +1388,6 @@ static netdev_features_t veth_fix_features(struct net= _device *dev, if (peer_priv->_xdp_prog) features &=3D ~NETIF_F_GSO_SOFTWARE; } - if (priv->_xdp_prog) - features |=3D NETIF_F_GRO; =20 return features; } @@ -1481,14 +1479,6 @@ static int veth_xdp_set(struct net_device *dev, stru= ct bpf_prog *prog, } =20 if (!old_prog) { - if (!veth_gro_requested(dev)) { - /* user-space did not require GRO, but adding - * XDP is supposed to get GRO working - */ - dev->features |=3D NETIF_F_GRO; - netdev_features_change(dev); - } - peer->hw_features &=3D ~NETIF_F_GSO_SOFTWARE; peer->max_mtu =3D max_mtu; } @@ -1499,14 +1489,6 @@ static int veth_xdp_set(struct net_device *dev, stru= ct bpf_prog *prog, if (dev->flags & IFF_UP) veth_disable_xdp(dev); =20 - /* if user-space did not require GRO, since adding XDP - * enabled it, clear it now - */ - if (!veth_gro_requested(dev)) { - dev->features &=3D ~NETIF_F_GRO; - netdev_features_change(dev); - } - if (peer) { peer->hw_features |=3D NETIF_F_GSO_SOFTWARE; peer->max_mtu =3D ETH_MAX_MTU; --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D655F14198E; Sun, 24 Mar 2024 23:39:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323592; cv=none; b=qs6vNxbY84Qq3IFRp6yHW2ay7lYZpFY7gyKo88ccYjsZ0WiXEENp935ePj4aYjaOLO3C36aJQe/QuH7pvrwg7bmWQXaTO5uurSR7ed53kC3tVnirtTd2qD3GcBZBRWi998SbHcqm0M0Xqzd/MhSqRsurtMJINLe8sFbKseEdT3g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323592; c=relaxed/simple; bh=7nFrWKjORVJFDZ04vWB+gW5EXeckc6rX1NicBls0Js0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Bbv+r/lx4XB0yHDjjN1oj3XOJ36JBAYLLAeVLP69SFLFfQ7uncF1sQD+ealnWf5qQFL9QRy8THt70q9WACCSSAKirgFypn9gv6e+BGFZduhUPfx9QVFd6WiH/qq/Ff6+kDhG9C8ylrsjZFViohxrK1LMhfYC1DhaSpnzTU1e+GA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=q3dOgp8x; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="q3dOgp8x" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 07AC7C433C7; Sun, 24 Mar 2024 23:39:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323591; bh=7nFrWKjORVJFDZ04vWB+gW5EXeckc6rX1NicBls0Js0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=q3dOgp8xOCWyxa5hORN8cCphh8OIShE8YZE0Y6Y0TouXowX8HLPX03B1ccsU1LNcs PM5GVxr2HqXWpUT6PjcIkFBvI84wgN8E5X1W2CkM33x0nr+N9zG9NFWmtRMTfqfDOG QPtmaNHkEFgWv6dLhLfymljHIbrwVoFINsp49BJPodO3Tjc4Y+bepDz85QzVBltg7m y998qwrOVMMVUzqj4gc+jLyhdCK/ExJiQfowAEgZJmdcvaCeBFbQv4NFF24BWcskT6 ksysS7qP5tJyEqlZoBinpqOJyvUBrtk5BlDI6knvi8XG38SOZXIRgdNJ7AlXtV9XWE yBewSKhyQ4y1A== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?Ar=C4=B1n=C3=A7=20=C3=9CNAL?= , Justin Swartz , "David S . Miller" , Sasha Levin Subject: [PATCH 5.15 298/317] net: dsa: mt7530: prevent possible incorrect XTAL frequency selection Date: Sun, 24 Mar 2024 19:34:38 -0400 Message-ID: <20240324233458.1352854-299-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable From: Ar=C4=B1n=C3=A7 =C3=9CNAL [ Upstream commit f490c492e946d8ffbe65ad4efc66de3c5ede30a4 ] On MT7530, the HT_XTAL_FSEL field of the HWTRAP register stores a 2-bit value that represents the frequency of the crystal oscillator connected to the switch IC. The field is populated by the state of the ESW_P4_LED_0 and ESW_P4_LED_0 pins, which is done right after reset is deasserted. ESW_P4_LED_0 ESW_P3_LED_0 Frequency ----------------------------------------- 0 0 Reserved 0 1 20MHz 1 0 40MHz 1 1 25MHz On MT7531, the XTAL25 bit of the STRAP register stores this. The LAN0LED0 pin is used to populate the bit. 25MHz when the pin is high, 40MHz when it's low. These pins are also used with LEDs, therefore, their state can be set to something other than the bootstrapping configuration. For example, a link may be established on port 3 before the DSA subdriver takes control of the switch which would set ESW_P3_LED_0 to high. Currently on mt7530_setup() and mt7531_setup(), 1000 - 1100 usec delay is described between reset assertion and deassertion. Some switch ICs in real life conditions cannot always have these pins set back to the bootstrapping configuration before reset deassertion in this amount of delay. This causes wrong crystal frequency to be selected which puts the switch in a nonfunctional state after reset deassertion. The tests below are conducted on an MT7530 with a 40MHz crystal oscillator by Justin Swartz. With a cable from an active peer connected to port 3 before reset, an incorrect crystal frequency (0b11 =3D 25MHz) is selected: [1] [3] [5] : : : _____________________________ __________________ ESW_P4_LED_0 |_______| _____________________________ ESW_P3_LED_0 |__________________________ : : : : : : [4]...: : : [2]................: [1] Reset is asserted. [2] Period of 1000 - 1100 usec. [3] Reset is deasserted. [4] Period of 315 usec. HWTRAP register is populated with incorrect XTAL frequency. [5] Signals reflect the bootstrapped configuration. Increase the delay between reset_control_assert() and reset_control_deassert(), and gpiod_set_value_cansleep(priv->reset, 0) and gpiod_set_value_cansleep(priv->reset, 1) to 5000 - 5100 usec. This amount ensures a higher possibility that the switch IC will have these pins back to the bootstrapping configuration before reset deassertion. With a cable from an active peer connected to port 3 before reset, the correct crystal frequency (0b10 =3D 40MHz) is selected: [1] [2-1] [3] [5] : : : : _____________________________ __________________ ESW_P4_LED_0 |_______| ___________________ _______ ESW_P3_LED_0 |_________| |__________________ : : : : : : [2-2]...: [4]...: [2]................: [1] Reset is asserted. [2] Period of 5000 - 5100 usec. [2-1] ESW_P3_LED_0 goes low. [2-2] Remaining period of 5000 - 5100 usec. [3] Reset is deasserted. [4] Period of 310 usec. HWTRAP register is populated with bootstrapped XTAL frequency. [5] Signals reflect the bootstrapped configuration. ESW_P3_LED_0 low period before reset deassertion: 5000 usec - 5100 usec TEST RESET HOLD # (usec) --------------------- 1 5410 2 5440 3 4375 4 5490 5 5475 6 4335 7 4370 8 5435 9 4205 10 4335 11 3750 12 3170 13 4395 14 4375 15 3515 16 4335 17 4220 18 4175 19 4175 20 4350 Min 3170 Max 5490 Median 4342.500 Avg 4466.500 Revert commit 2920dd92b980 ("net: dsa: mt7530: disable LEDs before reset"). Changing the state of pins via reset assertion is simpler and more efficient than doing so by setting the LED controller off. Fixes: b8f126a8d543 ("net-next: dsa: add dsa support for Mediatek MT7530 sw= itch") Fixes: c288575f7810 ("net: dsa: mt7530: Add the support of MT7531 switch") Co-developed-by: Justin Swartz Signed-off-by: Justin Swartz Signed-off-by: Ar=C4=B1n=C3=A7 =C3=9CNAL Signed-off-by: David S. Miller Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/net/dsa/mt7530.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/net/dsa/mt7530.c b/drivers/net/dsa/mt7530.c index f74d9fbd08178..636943035c292 100644 --- a/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c @@ -2154,11 +2154,11 @@ mt7530_setup(struct dsa_switch *ds) */ if (priv->mcm) { reset_control_assert(priv->rstc); - usleep_range(1000, 1100); + usleep_range(5000, 5100); reset_control_deassert(priv->rstc); } else { gpiod_set_value_cansleep(priv->reset, 0); - usleep_range(1000, 1100); + usleep_range(5000, 5100); gpiod_set_value_cansleep(priv->reset, 1); } =20 @@ -2368,11 +2368,11 @@ mt7531_setup(struct dsa_switch *ds) */ if (priv->mcm) { reset_control_assert(priv->rstc); - usleep_range(1000, 1100); + usleep_range(5000, 5100); reset_control_deassert(priv->rstc); } else { gpiod_set_value_cansleep(priv->reset, 0); - usleep_range(1000, 1100); + usleep_range(5000, 5100); gpiod_set_value_cansleep(priv->reset, 1); } =20 --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0697C178CE5; Sun, 24 Mar 2024 23:39:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323594; cv=none; b=MV2qvIEJwbceZ83/pfjCj78cHLaB0CCe0NtHdFEUdTo8ZV7z4/x7ZKuH2kqyq5BsaqZP7NAQrIJbvlGaBMK3YZfH8bOs4XWXgNcQBXrNgj9Fqar+U8/l7h4LRr9aV0I/cT1FfwMbYCSttP9jW6kVAIOput7AWqWO9lS44fyuasg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323594; c=relaxed/simple; bh=9vpMZPAtBm6cIMVe/t5RJO0lOHsCbr811yyFXdRrKiw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=RayenayCvGbH6Q6g3sgr2+esQR4FpFgxdWSX0LU/e/CF+TLFh4NNaaKdDMwA9neQZXWzmheBVmJK+VBzGyvrPl8qEAGBVfhSO9kvUJ4EXJeyHlVTaUF5EjqmNjY0y50NHnEdylGosKAxMxQN38yfsnhA60+VVSIC7OxBQSoYb6I= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=OxGLghep; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="OxGLghep" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 02DB3C43399; Sun, 24 Mar 2024 23:39:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323592; bh=9vpMZPAtBm6cIMVe/t5RJO0lOHsCbr811yyFXdRrKiw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=OxGLghepnxylKfpAc6Hl9HK+x2lMEu4aDYsygWzyJKE6bdEX+gffnJ9tDbXxRFtzr Ska4R0kFuPjeOe3ovQBOJVP7hU3vuUOCVFrcBxSkD5XAHZLjfNIWlzgVrqTHxrYCwr A5g+P3QCRL2GXcUEHC0V6AI0t6CKsfPFm+CBSV4kGsPYtYbuyleBPXgFBeCXh0z0C2 Lx1g2COE3D8JJJ7/tliOdFq19l7FFTp62SMS9OROu1QeY5EbUj1OM6uKEZWih+UI20 9g+FSmPPgf3fARcUqMuuVptgSkIqdkW0aYs7WmrId145oDYzCD9YfUCDLFtCcPcZ6F tzFGg5Nc1dNjA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jonah Palmer , Dragos Tatulea , =?UTF-8?q?Eugenio=20P=C3=A9rez?= , "Michael S . Tsirkin" , Lei Yang , Sasha Levin Subject: [PATCH 5.15 299/317] vdpa/mlx5: Allow CVQ size changes Date: Sun, 24 Mar 2024 19:34:39 -0400 Message-ID: <20240324233458.1352854-300-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable From: Jonah Palmer [ Upstream commit 749a4016839270163efc36ecddddd01de491a16b ] The MLX driver was not updating its control virtqueue size at set_vq_num and instead always initialized to MLX5_CVQ_MAX_ENT (16) at setup_cvq_vring. Qemu would try to set the size to 64 by default, however, because the CVQ size always was initialized to 16, an error would be thrown when sending >16 control messages (as used-ring entry 17 is initialized to 0). For example, starting a guest with x-svq=3Don and then executing the following command would produce the error below: # for i in {1..20}; do ifconfig eth0 hw ether XX:xx:XX:xx:XX:XX; done qemu-system-x86_64: Insufficient written data (0) [ 435.331223] virtio_net virtio0: Failed to set mac address by vq command. SIOCSIFHWADDR: Invalid argument Acked-by: Dragos Tatulea Acked-by: Eugenio P=C3=A9rez Signed-off-by: Jonah Palmer Message-Id: <20240216142502.78095-1-jonah.palmer@oracle.com> Signed-off-by: Michael S. Tsirkin Tested-by: Lei Yang Fixes: 5262912ef3cf ("vdpa/mlx5: Add support for control VQ and MAC setting= ") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/vdpa/mlx5/net/mlx5_vnet.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/drivers/vdpa/mlx5/net/mlx5_vnet.c b/drivers/vdpa/mlx5/net/mlx5= _vnet.c index 46c72e6d3a29b..d9e4a949129a0 100644 --- a/drivers/vdpa/mlx5/net/mlx5_vnet.c +++ b/drivers/vdpa/mlx5/net/mlx5_vnet.c @@ -173,8 +173,6 @@ static void teardown_driver(struct mlx5_vdpa_net *ndev); =20 static bool mlx5_vdpa_debug; =20 -#define MLX5_CVQ_MAX_ENT 16 - #define MLX5_LOG_VIO_FLAG(_feature) = \ do { = \ if (features & BIT_ULL(_feature)) = \ @@ -1685,9 +1683,16 @@ static void mlx5_vdpa_set_vq_num(struct vdpa_device = *vdev, u16 idx, u32 num) struct mlx5_vdpa_net *ndev =3D to_mlx5_vdpa_ndev(mvdev); struct mlx5_vdpa_virtqueue *mvq; =20 - if (!is_index_valid(mvdev, idx) || is_ctrl_vq_idx(mvdev, idx)) + if (!is_index_valid(mvdev, idx)) return; =20 + if (is_ctrl_vq_idx(mvdev, idx)) { + struct mlx5_control_vq *cvq =3D &mvdev->cvq; + + cvq->vring.vring.num =3D num; + return; + } + mvq =3D &ndev->vqs[idx]; mvq->num_ent =3D num; } @@ -2182,7 +2187,7 @@ static int setup_cvq_vring(struct mlx5_vdpa_dev *mvde= v) u16 idx =3D cvq->vring.last_avail_idx; =20 err =3D vringh_init_iotlb(&cvq->vring, mvdev->actual_features, - MLX5_CVQ_MAX_ENT, false, + cvq->vring.vring.num, false, (struct vring_desc *)(uintptr_t)cvq->desc_addr, (struct vring_avail *)(uintptr_t)cvq->driver_addr, (struct vring_used *)(uintptr_t)cvq->device_addr); --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 32B5A178CE8; Sun, 24 Mar 2024 23:39:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323594; cv=none; b=nq4xpay1spNf2JobVbHZsVMZuRjCT0JqocQezMjKXlQVADEMIQIVazcxGUnIIOtSw9aRf8PPioHfFT29dwqBFca13ic83uLQ6kG4BcaIdwP8fkvjl4YcdQ++iFAF0gc2xmM4iponUH/0QtEMXaSYQECeuYKgWsFWCNg0dpGrwmg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323594; c=relaxed/simple; bh=iIIFuO3IyF+GToWNPBx+wb1MtQRgrsvlGd8f4fiHbJY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PI5x3f6xsMPKD0mcRvWWKotUPJ9zTPfscXVS9lrVVKBlGpo9eRMAcG7qlyl62uO5Yetr9aVawv2l+27Vrehl0FiRLTzGctunUIMYV5oZnThgDd6rmpW3xr1H9uI2M3r6UtI3Yjx4PuLmfWo2hkXsFmVVGfj6SeTOUpPworHDksA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=EisHUUh+; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="EisHUUh+" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2A439C433C7; Sun, 24 Mar 2024 23:39:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323594; bh=iIIFuO3IyF+GToWNPBx+wb1MtQRgrsvlGd8f4fiHbJY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=EisHUUh+wKX4wqxultWHvaPvcFZtYybpSWt1NqvM5Fi+ECQQKWU5MSzqn2H+/7YJb J0P6YHr/L9rx6937nWsp4iJrpH1J38cwY4O3EVoS1AQOr+yUUsoWKECEwwDnvyS4a0 T5CCGcJvHDfOed+mbfxzWfAt+jawP3V5aIDAsu1blyPdmE+7+9ElOjYjfZ/hfWui1u Brtzo6dcfHfJjno4TP0oUWNQYKAIUtmyy4xEP7epJdQUCng+WBdbrYZDo+f8VPnOim kS9m3p2QR8RaL8L4e2B7s70nSxenGjGLOj9/ePjk7NsTDxE22eM4AMPjt8cPdKUYeK JXdrH9kGiyn8g== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Nikita Zhandarovich , syzbot+d1de830e4ecdaac83d89@syzkaller.appspotmail.com, "Jason A . Donenfeld" , Jiri Pirko , Paolo Abeni , Sasha Levin Subject: [PATCH 5.15 300/317] wireguard: receive: annotate data-race around receiving_counter.counter Date: Sun, 24 Mar 2024 19:34:40 -0400 Message-ID: <20240324233458.1352854-301-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Nikita Zhandarovich [ Upstream commit bba045dc4d996d03dce6fe45726e78a1a1f6d4c3 ] Syzkaller with KCSAN identified a data-race issue when accessing keypair->receiving_counter.counter. Use READ_ONCE() and WRITE_ONCE() annotations to mark the data race as intentional. BUG: KCSAN: data-race in wg_packet_decrypt_worker / wg_packet_rx_poll write to 0xffff888107765888 of 8 bytes by interrupt on cpu 0: counter_validate drivers/net/wireguard/receive.c:321 [inline] wg_packet_rx_poll+0x3ac/0xf00 drivers/net/wireguard/receive.c:461 __napi_poll+0x60/0x3b0 net/core/dev.c:6536 napi_poll net/core/dev.c:6605 [inline] net_rx_action+0x32b/0x750 net/core/dev.c:6738 __do_softirq+0xc4/0x279 kernel/softirq.c:553 do_softirq+0x5e/0x90 kernel/softirq.c:454 __local_bh_enable_ip+0x64/0x70 kernel/softirq.c:381 __raw_spin_unlock_bh include/linux/spinlock_api_smp.h:167 [inline] _raw_spin_unlock_bh+0x36/0x40 kernel/locking/spinlock.c:210 spin_unlock_bh include/linux/spinlock.h:396 [inline] ptr_ring_consume_bh include/linux/ptr_ring.h:367 [inline] wg_packet_decrypt_worker+0x6c5/0x700 drivers/net/wireguard/receive.c:4= 99 process_one_work kernel/workqueue.c:2633 [inline] ... read to 0xffff888107765888 of 8 bytes by task 3196 on cpu 1: decrypt_packet drivers/net/wireguard/receive.c:252 [inline] wg_packet_decrypt_worker+0x220/0x700 drivers/net/wireguard/receive.c:5= 01 process_one_work kernel/workqueue.c:2633 [inline] process_scheduled_works+0x5b8/0xa30 kernel/workqueue.c:2706 worker_thread+0x525/0x730 kernel/workqueue.c:2787 ... Fixes: a9e90d9931f3 ("wireguard: noise: separate receive counter from send = counter") Reported-by: syzbot+d1de830e4ecdaac83d89@syzkaller.appspotmail.com Signed-off-by: Nikita Zhandarovich Signed-off-by: Jason A. Donenfeld Reviewed-by: Jiri Pirko Signed-off-by: Paolo Abeni Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/net/wireguard/receive.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/net/wireguard/receive.c b/drivers/net/wireguard/receiv= e.c index d38b24339a1f9..ed274e9bdf3ce 100644 --- a/drivers/net/wireguard/receive.c +++ b/drivers/net/wireguard/receive.c @@ -258,7 +258,7 @@ static bool decrypt_packet(struct sk_buff *skb, struct = noise_keypair *keypair) =20 if (unlikely(!READ_ONCE(keypair->receiving.is_valid) || wg_birthdate_has_expired(keypair->receiving.birthdate, REJECT_AFTER_TI= ME) || - keypair->receiving_counter.counter >=3D REJECT_AFTER_MESSAGES)) { + READ_ONCE(keypair->receiving_counter.counter) >=3D REJECT_AFTER_MESSAG= ES)) { WRITE_ONCE(keypair->receiving.is_valid, false); return false; } @@ -325,7 +325,7 @@ static bool counter_validate(struct noise_replay_counte= r *counter, u64 their_cou for (i =3D 1; i <=3D top; ++i) counter->backtrack[(i + index_current) & ((COUNTER_BITS_TOTAL / BITS_PER_LONG) - 1)] =3D 0; - counter->counter =3D their_counter; + WRITE_ONCE(counter->counter, their_counter); } =20 index &=3D (COUNTER_BITS_TOTAL / BITS_PER_LONG) - 1; @@ -470,7 +470,7 @@ int wg_packet_rx_poll(struct napi_struct *napi, int bud= get) net_dbg_ratelimited("%s: Packet has invalid nonce %llu (max %llu)\n", peer->device->dev->name, PACKET_CB(skb)->nonce, - keypair->receiving_counter.counter); + READ_ONCE(keypair->receiving_counter.counter)); goto next; } =20 --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 387D2178CF6; Sun, 24 Mar 2024 23:39:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323596; cv=none; b=dGm+ZzWzPIXlsCZHvUjwoeaj619/yoqRcYHA7jusVLycmlqVkcwfI+c3Xv5ev0J+VSP9sBVC0VaUfrIrRbMz3Hm0WWzO/0vS56CwVZnVKsktsOqIdF9gfqpQOMg8h+WWCms/YaQ3q1cXSnadC6xhtP8dGcSVJAtBmVIv5LJ0vKs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323596; c=relaxed/simple; bh=0/rB4dEKVbHsJHxiBJ1SGLJ9LMrWWDxyHf0NDmPfMeI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=K0gcGydBxq7icmt63abl1EMT8uO24NmlTdpzoKgYnHmKEdIauWUHbZ0vutppgedKl4ghrT/v524weuRAcMf7TFvGvMMUMGXHpIDEMuEz5gP8KLxDIH9AEfYNzYGezFhORd+v8oqUkb5JZHfWkt0ichI/t+naQhfrn30KktRiM88= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Mns3ab+c; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Mns3ab+c" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 55951C43394; Sun, 24 Mar 2024 23:39:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323595; bh=0/rB4dEKVbHsJHxiBJ1SGLJ9LMrWWDxyHf0NDmPfMeI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Mns3ab+cjOMkffS/4E/pRYKNp9KyzrWHs5b9VE6VYAkbUUKbrl6FKB4wevhoZF+Vb OvHgAjZJ3OzzE6oqk4d4u1nGXb4v4wEkAa393Z7E0wy5CyIw8zlxxvRXQv00Idw0hR niGKBt0YFWfvNdlr1L4djV2HZ7xJZihnmThEbRhYvtTHYct4ZnKWpHflXkWzuszCwt lsEj4X4OtGx3Bftx14dYY0W/0UhcS2vjuiRwd4SCM4ZGioID+kipvC0HkxT0rRo4HU TTGckESAXMxoQVqEVjSMF+ka02JUDopSRoVf3nsh6AtkBzqIcDwrzQ9Sj81aZLiDrr pItEmRaEyP03Q== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Yewon Choi , Michal Kubiak , Paolo Abeni , Sasha Levin Subject: [PATCH 5.15 301/317] rds: introduce acquire/release ordering in acquire/release_in_xmit() Date: Sun, 24 Mar 2024 19:34:41 -0400 Message-ID: <20240324233458.1352854-302-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Yewon Choi [ Upstream commit 1422f28826d2a0c11e5240b3e951c9e214d8656e ] acquire/release_in_xmit() work as bit lock in rds_send_xmit(), so they are expected to ensure acquire/release memory ordering semantics. However, test_and_set_bit/clear_bit() don't imply such semantics, on top of this, following smp_mb__after_atomic() does not guarantee release ordering (memory barrier actually should be placed before clear_bit()). Instead, we use clear_bit_unlock/test_and_set_bit_lock() here. Fixes: 0f4b1c7e89e6 ("rds: fix rds_send_xmit() serialization") Fixes: 1f9ecd7eacfd ("RDS: Pass rds_conn_path to rds_send_xmit()") Signed-off-by: Yewon Choi Reviewed-by: Michal Kubiak Link: https://lore.kernel.org/r/ZfQUxnNTO9AJmzwc@libra05 Signed-off-by: Paolo Abeni Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- net/rds/send.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/net/rds/send.c b/net/rds/send.c index d6462d1471c14..85c27d9aa33a3 100644 --- a/net/rds/send.c +++ b/net/rds/send.c @@ -103,13 +103,12 @@ EXPORT_SYMBOL_GPL(rds_send_path_reset); =20 static int acquire_in_xmit(struct rds_conn_path *cp) { - return test_and_set_bit(RDS_IN_XMIT, &cp->cp_flags) =3D=3D 0; + return test_and_set_bit_lock(RDS_IN_XMIT, &cp->cp_flags) =3D=3D 0; } =20 static void release_in_xmit(struct rds_conn_path *cp) { - clear_bit(RDS_IN_XMIT, &cp->cp_flags); - smp_mb__after_atomic(); + clear_bit_unlock(RDS_IN_XMIT, &cp->cp_flags); /* * We don't use wait_on_bit()/wake_up_bit() because our waking is in a * hot path and finding waiters is very rare. We don't want to walk --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 43A4F27F080; Sun, 24 Mar 2024 23:39:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323597; cv=none; b=UM2K6qOEirdr1fU61N0ikcOoCozozC7rWXKujW8L5S95IedYUqociXIS/wDbaXlMFfXRHNiTsgZlPtGI0p6ftid8a+99IsFfFXAHcLK9z9X3Zv0RAx8RIM65UhFm7QrKaPvaU8qVwCzL1rAYy2uqHAN9f4p3aE3ksnlk85eElSs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323597; c=relaxed/simple; bh=sfT9wSuVWuPB4Vz7YsLj6pSlsKLmBKXhzCbIHB8bj9I=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=IpzLnU0gfP85aoHZFFlY+021n+SURk/gmgdOUJnyM/ZD3LAWNhTDSaWxXCVDgdEbxxVOrBRurPTd5svb45xlxAFPyzJDXE0azqWabFtilIZlE0rxI7KFsgozSlHtBmuKiV5yJKSNaC8wOHUYpUcED3MIn2bwvN5t7u14aA2194c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=K2tvNlwt; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="K2tvNlwt" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 538ECC43399; Sun, 24 Mar 2024 23:39:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323596; bh=sfT9wSuVWuPB4Vz7YsLj6pSlsKLmBKXhzCbIHB8bj9I=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=K2tvNlwtQUK4OjNrUIWsGuyEpKIN8gAP7H4wmC+y48zcRDo5ckRCNEpgyzZbaRaHd EZAnhRkrUydi3cGNoSHmpLBcAHAKU4qoAoAZ6qqMVniWzsHjSwd/lrzbPJsOWFcvKT xNJZoUdUVNLQv5qh8xM2x8bbuylbuaRy1eyM8cPbvP9JLTjWvYFCmMGo37500IGhFv /tGAc/KcN2fs7bc9J5cq2U0WzQCRbB4rAsY76dHmJ4sLhEIzxCBxVowQejrAl+A6TS JYXfBFHbCMzNXOHxor8VHIwksx7IQBw8obHPq172RZTXy68TggTH2+MSXYqc0LRpJc gmvJrmjSBA6VQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Felix Maurer , Shigeru Yoshida , Breno Leitao , Paolo Abeni , Sasha Levin Subject: [PATCH 5.15 302/317] hsr: Handle failures in module init Date: Sun, 24 Mar 2024 19:34:42 -0400 Message-ID: <20240324233458.1352854-303-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Felix Maurer [ Upstream commit 3cf28cd492308e5f63ed00b29ea03ca016264376 ] A failure during registration of the netdev notifier was not handled at all. A failure during netlink initialization did not unregister the netdev notifier. Handle failures of netdev notifier registration and netlink initialization. Both functions should only return negative values on failure and thereby lead to the hsr module not being loaded. Fixes: f421436a591d ("net/hsr: Add support for the High-availability Seamle= ss Redundancy protocol (HSRv0)") Signed-off-by: Felix Maurer Reviewed-by: Shigeru Yoshida Reviewed-by: Breno Leitao Link: https://lore.kernel.org/r/3ce097c15e3f7ace98fc7fd9bcbf299f092e63d1.17= 10504184.git.fmaurer@redhat.com Signed-off-by: Paolo Abeni Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- net/hsr/hsr_main.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/net/hsr/hsr_main.c b/net/hsr/hsr_main.c index b099c31501509..257b50124cee5 100644 --- a/net/hsr/hsr_main.c +++ b/net/hsr/hsr_main.c @@ -148,14 +148,21 @@ static struct notifier_block hsr_nb =3D { =20 static int __init hsr_init(void) { - int res; + int err; =20 BUILD_BUG_ON(sizeof(struct hsr_tag) !=3D HSR_HLEN); =20 - register_netdevice_notifier(&hsr_nb); - res =3D hsr_netlink_init(); + err =3D register_netdevice_notifier(&hsr_nb); + if (err) + return err; + + err =3D hsr_netlink_init(); + if (err) { + unregister_netdevice_notifier(&hsr_nb); + return err; + } =20 - return res; + return 0; } =20 static void __exit hsr_exit(void) --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3DFD727F08A; Sun, 24 Mar 2024 23:39:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323598; cv=none; b=JFTqaSpOuxPaSaERkPiSzpq6rGVu9hj7RgzCpZLTMrtpSgA4KQ+5HhYVK3fbHM9UZFgUprJzweamJCkRC6kSbigpk4PE/6MybB3WyeXKc6VaY3dVRRwXKvEmWBiDWpQ70OQL/E1OZly0mjTNXZqi0yh5Ie/jqTb0sBrK11jMYxY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323598; c=relaxed/simple; bh=etXXV4qNNutSWaDORYaLYIuQPxSlpzv4WX/vG6Vg7ns=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=nWKSoDp77Q949XXKKtMlcgBL3ME8RkubmO6J5DQtX6UjsG3N1c7yaHQ6J6D59GZyjzOH+Wk3L4YaZLPvKGZVQ/rfhS4/1I1cCa7MzMEt6aZw0egWewaUTC5MRk9Qjx455ErzGAYLfbMEVzmKhktgXpIcWtsu9cM9+6yH0WkcFpw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=lPP9qTv+; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="lPP9qTv+" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 67E35C433C7; Sun, 24 Mar 2024 23:39:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323597; bh=etXXV4qNNutSWaDORYaLYIuQPxSlpzv4WX/vG6Vg7ns=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=lPP9qTv+GF5/FPYgt6GzkyGdGtXO+t1duGuNjKs84GkHAZWLmqmPZBwFxkTSTgzpu S59FWTiQXowhZuCH9TshP0ECz7VNLhGK3aCs9ANFCWCK2bYq5ex72gOx6bkwsTzb7S /rny5/JMf/phuxY+S6vVL/lSGYU4dPufITopr/p4OL1iqro8M6dacKZHFJ0kScgJaf eWglMPPmnbPwolH8/AJlJTZ5rHYWGfbsUwC0WIGcf8CCzWeDASIC28XYdk2aw0TXRl w5WyVPwCh+poZn80h6EL0TrKPuC04Bmnnr7oTwhP2h79YAGS1W9kWxGV8OkhRaoHeR mVp6VhucUsGzw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Nikita Kiryushin , Russell King , Paolo Abeni , Sasha Levin Subject: [PATCH 5.15 303/317] net: phy: fix phy_read_poll_timeout argument type in genphy_loopback Date: Sun, 24 Mar 2024 19:34:43 -0400 Message-ID: <20240324233458.1352854-304-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Nikita Kiryushin [ Upstream commit 32fa4366cc4da1c97b725a0066adf43c6b298f37 ] read_poll_timeout inside phy_read_poll_timeout can set val negative in some cases (for example, __mdiobus_read inside phy_read can return -EOPNOTSUPP). Supposedly, commit 4ec732951702 ("net: phylib: fix phy_read*_poll_timeout()= ") should fix problems with wrong-signed vals, but I do not see how as val is sent to phy_read as is and __val =3D phy_read (not val) is checked for sign. Change val type for signed to allow better error handling as done in other phy_read_poll_timeout callers. This will not fix any error handling by itself, but allows, for example, to modify cond with appropriate sign check or check resulting val separately. Found by Linux Verification Center (linuxtesting.org) with SVACE. Fixes: 014068dcb5b1 ("net: phy: genphy_loopback: add link speed configurati= on") Signed-off-by: Nikita Kiryushin Reviewed-by: Russell King (Oracle) Link: https://lore.kernel.org/r/20240315175052.8049-1-kiryushin@ancud.ru Signed-off-by: Paolo Abeni Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/net/phy/phy_device.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c index c1d6ebf12ec74..523436690adef 100644 --- a/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c @@ -2645,8 +2645,8 @@ EXPORT_SYMBOL(genphy_resume); int genphy_loopback(struct phy_device *phydev, bool enable) { if (enable) { - u16 val, ctl =3D BMCR_LOOPBACK; - int ret; + u16 ctl =3D BMCR_LOOPBACK; + int ret, val; =20 if (phydev->speed =3D=3D SPEED_1000) ctl |=3D BMCR_SPEED1000; --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3CACD27F089; Sun, 24 Mar 2024 23:39:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323598; cv=none; b=RsrzAO6ujK3XcYql9qSrFTXkqgTHbk0lYr4J0p1HiXs1/c+SxuHl6NooxAWH6FrTs5auouseqrzt5kfPqF3QEVNGyGh7MqxliV4fxGlAntbsa7Lqpwu6HjwSzEU+uT6cSz/oqL+LnHey0G8Km7HjCDIQwCPP3bfmUQTFH3kMFiM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323598; c=relaxed/simple; bh=ImYJx3//S3lb8pzEBjnxmyZSCu8/oqDudWFtAKGWTJA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=sRq5NlVdyDwA3gcAkJA5HAh5KzpOC1k6jJrLkAtkXxsVmeX2jBg7eprkK8t+rzlmbctLgdzhs7lbWslwGRKjHRYgVcO8TKF15szaR5wtU/9sLLaT8L18GPEk7w/FTylUGPkF08aaqyjy/FSk9hrn4Gw2mY5raaMM1JarKaUukng= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=WJ6bwzlm; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="WJ6bwzlm" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 64D02C43394; Sun, 24 Mar 2024 23:39:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323598; bh=ImYJx3//S3lb8pzEBjnxmyZSCu8/oqDudWFtAKGWTJA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=WJ6bwzlmmF7usvXt4QXKdh8d1MQD7dAzzgk8+oiQhbRr+Q/PX+GZS3zisEGKNMC8h Zs9uaOdCNIQEM03b1QDzVxa+WClSE7TAknam6UM68s/00eqdxumzSWRL+sCMZ0z7iD EpxJn8ss90GwDzC9KrzedLZ5dhPjHkLahh6xTQLQbp+XeN6K2NrhnX7512NqXJG5Ck KcIKKTycmYgaeu9Dw6ahN+9/7pD8AKKjqy6MHRAwUWGPbEHbgM+voP5pDZtY/a3WfS M4NZnSV+ze7TS/b1n5FVP1zOF/mdzmNvVJAyDF5wYF+/AR9ilnpSAk8svlUhncv80a GJeu7oEpi93Lw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Thinh Tran , Jiri Pirko , Jakub Kicinski , Sasha Levin Subject: [PATCH 5.15 304/317] net/bnx2x: Prevent access to a freed page in page_pool Date: Sun, 24 Mar 2024 19:34:44 -0400 Message-ID: <20240324233458.1352854-305-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Thinh Tran [ Upstream commit d27e2da94a42655861ca4baea30c8cd65546f25d ] Fix race condition leading to system crash during EEH error handling During EEH error recovery, the bnx2x driver's transmit timeout logic could cause a race condition when handling reset tasks. The bnx2x_tx_timeout() schedules reset tasks via bnx2x_sp_rtnl_task(), which ultimately leads to bnx2x_nic_unload(). In bnx2x_nic_unload() SGEs are freed using bnx2x_free_rx_sge_range(). However, this could overlap with the EEH driver's attempt to reset the device using bnx2x_io_slot_reset(), which also tries to free SGEs. This race condition can result in system crashes due to accessing freed memory locations in bnx2x_free_rx_sge() 799 static inline void bnx2x_free_rx_sge(struct bnx2x *bp, 800 struct bnx2x_fastpath *fp, u16 index) 801 { 802 struct sw_rx_page *sw_buf =3D &fp->rx_page_ring[index]; 803 struct page *page =3D sw_buf->page; .... where sw_buf was set to NULL after the call to dma_unmap_page() by the preceding thread. EEH: Beginning: 'slot_reset' PCI 0011:01:00.0#10000: EEH: Invoking bnx2x->slot_reset() bnx2x: [bnx2x_io_slot_reset:14228(eth1)]IO slot reset initializing... bnx2x 0011:01:00.0: enabling device (0140 -> 0142) bnx2x: [bnx2x_io_slot_reset:14244(eth1)]IO slot reset --> driver unload Kernel attempted to read user page (0) - exploit attempt? (uid: 0) BUG: Kernel NULL pointer dereference on read at 0x00000000 Faulting instruction address: 0xc0080000025065fc Oops: Kernel access of bad area, sig: 11 [#1] ..... Call Trace: [c000000003c67a20] [c00800000250658c] bnx2x_io_slot_reset+0x204/0x610 [= bnx2x] (unreliable) [c000000003c67af0] [c0000000000518a8] eeh_report_reset+0xb8/0xf0 [c000000003c67b60] [c000000000052130] eeh_pe_report+0x180/0x550 [c000000003c67c70] [c00000000005318c] eeh_handle_normal_event+0x84c/0xa= 60 [c000000003c67d50] [c000000000053a84] eeh_event_handler+0xf4/0x170 [c000000003c67da0] [c000000000194c58] kthread+0x1c8/0x1d0 [c000000003c67e10] [c00000000000cf64] ret_from_kernel_thread+0x5c/0x64 To solve this issue, we need to verify page pool allocations before freeing. Fixes: 4cace675d687 ("bnx2x: Alloc 4k fragment for each rx ring buffer elem= ent") Signed-off-by: Thinh Tran Reviewed-by: Jiri Pirko Link: https://lore.kernel.org/r/20240315205535.1321-1-thinhtr@linux.ibm.com Signed-off-by: Jakub Kicinski Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h b/drivers/net/= ethernet/broadcom/bnx2x/bnx2x_cmn.h index d8b1824c334d3..0bc1367fd6492 100644 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h @@ -1002,9 +1002,6 @@ static inline void bnx2x_set_fw_mac_addr(__le16 *fw_h= i, __le16 *fw_mid, static inline void bnx2x_free_rx_mem_pool(struct bnx2x *bp, struct bnx2x_alloc_pool *pool) { - if (!pool->page) - return; - put_page(pool->page); =20 pool->page =3D NULL; @@ -1015,6 +1012,9 @@ static inline void bnx2x_free_rx_sge_range(struct bnx= 2x *bp, { int i; =20 + if (!fp->page_pool.page) + return; + if (fp->mode =3D=3D TPA_MODE_DISABLED) return; =20 --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2033D27F095; Sun, 24 Mar 2024 23:39:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323600; cv=none; b=cW+F+LRwKdjhsRrKW9hPkE6jJ/O9AiqFsOEmr0jLeXhZoHzrv9SgaOkbovTq1v2yONG43yqgLI7M7O4aNzzKcOrPpXzquNNE5WjFkQGAu2l/iPPtaRRmult14ITn/pVRbfsVyDSR192ZP5OamVxhg28bmmt1Ji0dHoTGto6ARlE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323600; c=relaxed/simple; bh=XRGuTil339vx5L3x3APITUtg4LgUNQ85iCV4CT+4v1w=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=V3wMG+GDkrbOIWbkXEIEAqIXJThyKeQlF108AEw3m66oyobmC2r1Cf5tT5pkXdEGXzWUR3YVf60ITnNx7Q8jWBxt/6vRx4bxb87gC/9fa7vfd12A1Mq+ox21oY/RCSJybmsgF9SUx6wX2avrncxg2DYDns+HkFUv9TTzFNEkVLA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=diiEXJF8; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="diiEXJF8" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 60A4BC433C7; Sun, 24 Mar 2024 23:39:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323599; bh=XRGuTil339vx5L3x3APITUtg4LgUNQ85iCV4CT+4v1w=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=diiEXJF80GVHrRfSWnrUBqjFSyPSYfufgi5SeoZ4fcSIemSc/ivorwepnjLQQKRHg H3iKDjvAYQOaiRnz3wsW1XBHswoMjfcSlUL2M1tvOuHMI4K+G2pHxlwD66xORcetBg wLdKuV7W6tlW9WX5oxkjkxlGlPTTvxmObMRNy+ArGHqLebFikF9aZzE8NWyZR3Jkbg BGaLj28k6g/JVQnj7MQX+y13foC1HhrZveakmD1X1v5lJ2Vo6V8oMrkMtTLC75MBXv Zff/51HJYTkJf9d2mmMX21aGzRFEgbPDj7gxdVafrHRkGIKpJL7DqZCw0jDhr2/f6w 3WRfnC2FyqydA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Subbaraya Sundeep , "David S . Miller" , Sasha Levin Subject: [PATCH 5.15 305/317] octeontx2-af: Use separate handlers for interrupts Date: Sun, 24 Mar 2024 19:34:45 -0400 Message-ID: <20240324233458.1352854-306-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Subbaraya Sundeep [ Upstream commit 50e60de381c342008c0956fd762e1c26408f372c ] For PF to AF interrupt vector and VF to AF vector same interrupt handler is registered which is causing race condition. When two interrupts are raised to two CPUs at same time then two cores serve same event corrupting the data. Fixes: 7304ac4567bc ("octeontx2-af: Add mailbox IRQ and msg handlers") Signed-off-by: Subbaraya Sundeep Signed-off-by: David S. Miller Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/net/ethernet/marvell/octeontx2/af/rvu.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu.c b/drivers/net/= ethernet/marvell/octeontx2/af/rvu.c index f64509b1d120c..bac42e0065c6c 100644 --- a/drivers/net/ethernet/marvell/octeontx2/af/rvu.c +++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu.c @@ -2435,10 +2435,9 @@ static void rvu_queue_work(struct mbox_wq_info *mw, = int first, } } =20 -static irqreturn_t rvu_mbox_intr_handler(int irq, void *rvu_irq) +static irqreturn_t rvu_mbox_pf_intr_handler(int irq, void *rvu_irq) { struct rvu *rvu =3D (struct rvu *)rvu_irq; - int vfs =3D rvu->vfs; u64 intr; =20 intr =3D rvu_read64(rvu, BLKADDR_RVUM, RVU_AF_PFAF_MBOX_INT); @@ -2452,6 +2451,18 @@ static irqreturn_t rvu_mbox_intr_handler(int irq, vo= id *rvu_irq) =20 rvu_queue_work(&rvu->afpf_wq_info, 0, rvu->hw->total_pfs, intr); =20 + return IRQ_HANDLED; +} + +static irqreturn_t rvu_mbox_intr_handler(int irq, void *rvu_irq) +{ + struct rvu *rvu =3D (struct rvu *)rvu_irq; + int vfs =3D rvu->vfs; + u64 intr; + + /* Sync with mbox memory region */ + rmb(); + /* Handle VF interrupts */ if (vfs > 64) { intr =3D rvupf_read64(rvu, RVU_PF_VFPF_MBOX_INTX(1)); @@ -2779,7 +2790,7 @@ static int rvu_register_interrupts(struct rvu *rvu) /* Register mailbox interrupt handler */ sprintf(&rvu->irq_name[RVU_AF_INT_VEC_MBOX * NAME_SIZE], "RVUAF Mbox"); ret =3D request_irq(pci_irq_vector(rvu->pdev, RVU_AF_INT_VEC_MBOX), - rvu_mbox_intr_handler, 0, + rvu_mbox_pf_intr_handler, 0, &rvu->irq_name[RVU_AF_INT_VEC_MBOX * NAME_SIZE], rvu); if (ret) { dev_err(rvu->dev, --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E24CD27F09D; Sun, 24 Mar 2024 23:39:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323601; cv=none; b=kD6dc63YKaBsthQM/2oYwe18EGXAzuLDUwoZtRgvuBNLawFA29t1YBXKl9izKI33s/0uOt8J6ft4qDLJMwgV3TgfhzOnWUtgMLW7m1n/TBkhv+VAKAwDFFvEKeJgXKFtnGDNCdGiWLpcyWrVRBRHjlOa0hkGwkP8hMJtfmMrop0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323601; c=relaxed/simple; bh=D/U6K3wYlUvCX0zIlRt82+95pj2oHpt2nOXoNWzTP38=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=DKi0qFKaMQLjzfQd85CY0iIP+xyBWa9XL2iuotdGuQ6MGVfY9bNACpm5AJeJgKE9wraIAIBR0/LfEI7QPJuFdEdOtnkk/HwPEkJ6QKlvxKxoGca3kDIKrXUguY09vsX5wNz4iNN8tjjCAitrZXnVI06GzkIFtdrzsk8683OYrcU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=HLCZBELk; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="HLCZBELk" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 43F71C43390; Sun, 24 Mar 2024 23:39:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323599; bh=D/U6K3wYlUvCX0zIlRt82+95pj2oHpt2nOXoNWzTP38=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=HLCZBELkoGSydkz1sXv1Dl+JemmUIlupMB8cB5cgrsEbku9xwtC6GhXts2bFUAjS/ qi+6uoaeMzvbgXNYBL2V1Mjmi8IM+CiXTIg/yLmfgHvJ3Fzezphfq68+SX+sZldtzS 5HLia9TwTcrlgsWoAA58MPgi/UylnsU/2iKhRZnay8mTg2wrTkLqih3j/Ckavct6eq lDZLQULhy5NiW05xnjfj9g/yz/602DkALyHriqrFTRBtjFxswNmUWAJ54Gi2Pz0U1W blTjgbtYtQE0dJM4sVRBhmspUgEOUa6JPPpEsZRq2+UqJqHglqxxnUtlf3fK8Q2ZXY 6DqcJoC/g1mdQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Pablo Neira Ayuso , Sasha Levin Subject: [PATCH 5.15 306/317] netfilter: nft_set_pipapo: release elements in clone only from destroy path Date: Sun, 24 Mar 2024 19:34:46 -0400 Message-ID: <20240324233458.1352854-307-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Pablo Neira Ayuso [ Upstream commit b0e256f3dd2ba6532f37c5c22e07cb07a36031ee ] Clone already always provides a current view of the lookup table, use it to destroy the set, otherwise it is possible to destroy elements twice. This fix requires: 212ed75dc5fb ("netfilter: nf_tables: integrate pipapo into commit protocol= ") which came after: 9827a0e6e23b ("netfilter: nft_set_pipapo: release elements in clone from a= bort path"). Fixes: 9827a0e6e23b ("netfilter: nft_set_pipapo: release elements in clone = from abort path") Signed-off-by: Pablo Neira Ayuso Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- net/netfilter/nft_set_pipapo.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/net/netfilter/nft_set_pipapo.c b/net/netfilter/nft_set_pipapo.c index e1969209b3abb..58eca26162735 100644 --- a/net/netfilter/nft_set_pipapo.c +++ b/net/netfilter/nft_set_pipapo.c @@ -2240,8 +2240,6 @@ static void nft_pipapo_destroy(const struct nft_ctx *= ctx, if (m) { rcu_barrier(); =20 - nft_set_pipapo_match_destroy(ctx, set, m); - for_each_possible_cpu(cpu) pipapo_free_scratch(m, cpu); free_percpu(m->scratch); @@ -2253,8 +2251,7 @@ static void nft_pipapo_destroy(const struct nft_ctx *= ctx, if (priv->clone) { m =3D priv->clone; =20 - if (priv->dirty) - nft_set_pipapo_match_destroy(ctx, set, m); + nft_set_pipapo_match_destroy(ctx, set, m); =20 for_each_possible_cpu(cpu) pipapo_free_scratch(priv->clone, cpu); --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B0BBE27F0A2; Sun, 24 Mar 2024 23:40:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323601; cv=none; b=PipDXCmQzSlPQEH6men/gxaH0c7yEliy7ZKq7c5l14LLyd+4/OnslHwGsFDWZxBR87ubsewCe0XoXlgdAfAp/pAqRsJ8/UzbdhwmRJzgAjSc2cU2vpaE4D4MjfU+JlT68aKxOmTg5wcuWF1irxUfW7OF4V+/j+mV5dpQrtAgGig= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323601; c=relaxed/simple; bh=LR7iGJyYi/cz2ejQNfwXZZ+iJ39IZ1LD1F4qK1nR8C8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=uV7vk3JTy2B33cdL8C6Hb0Fb3XHLUmMG3nJ7gqPFKHguQggs5171QVNSBkz5DJ8wixYiPGnN0QL+V1d3yp9y9PcFgsuSuoV2swYq2HEZFGe8GGZEgcBzCXNqFJxu+liO/zh816VmK8Kxy6w0Fh7tB8V/t3I8tJahw2ZgQRy6X1o= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Z66d35yJ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Z66d35yJ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 11886C43394; Sun, 24 Mar 2024 23:39:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323600; bh=LR7iGJyYi/cz2ejQNfwXZZ+iJ39IZ1LD1F4qK1nR8C8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Z66d35yJY5cIKn+D3BkXh0KH0n6lMBAPkwAkFYSMGO0sG0dGFn4kQy481y4P04wdx mvuKfAFsd71Dhda0EsiDl/SSz+3NLCTRbBch+9lKcl2gTAj14C8aeVEQole2WdU0JH M320Jh5ML2hSUz70Vvjh2lfCwIJa5Fg9kQcYO0hUZQrFIU5HbSlj0EIVltbptpsCXg Akdu5qorGvQTliHpPYRJ1jj8UcDHsld4PKjGpugp0gHIXB0V1tAVIcVMpFpG0Hizhm S0CB6SOpzcYoUaMdQA88Opi+mnHQqz/83zBOee3LycBMd2X7ngXtg/9htLCKgkUsjx t3IZmceXR7AHw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Pablo Neira Ayuso , Sasha Levin Subject: [PATCH 5.15 307/317] netfilter: nf_tables: do not compare internal table flags on updates Date: Sun, 24 Mar 2024 19:34:47 -0400 Message-ID: <20240324233458.1352854-308-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Pablo Neira Ayuso [ Upstream commit 4a0e7f2decbf9bd72461226f1f5f7dcc4b08f139 ] Restore skipping transaction if table update does not modify flags. Fixes: 179d9ba5559a ("netfilter: nf_tables: fix table flag updates") Signed-off-by: Pablo Neira Ayuso Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- net/netfilter/nf_tables_api.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/netfilter/nf_tables_api.c b/net/netfilter/nf_tables_api.c index a5e1468cac5ed..42bf83a20cb52 100644 --- a/net/netfilter/nf_tables_api.c +++ b/net/netfilter/nf_tables_api.c @@ -1152,7 +1152,7 @@ static int nf_tables_updtable(struct nft_ctx *ctx) if (flags & ~NFT_TABLE_F_MASK) return -EOPNOTSUPP; =20 - if (flags =3D=3D ctx->table->flags) + if (flags =3D=3D (ctx->table->flags & NFT_TABLE_F_MASK)) return 0; =20 if ((nft_table_has_owner(ctx->table) && --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C626C27F0A5; Sun, 24 Mar 2024 23:40:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323601; cv=none; b=ap3lkbHSNECGlMSkMNnwFBkGefKIvtKzkYa1AcjOWJKqnL81YStrwGTfVgRxR82kAK6bEKOXR25BRlhA4+vMvo6OcmRbu1uE6Zp/dTMsz8prHKAmyfkAIk0iKhgfZVZ8TBnDiwMCKRYRZZfCd3dF5YmYJlexKOk5HdhD8ucmMIA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323601; c=relaxed/simple; bh=7YVNTYaVNaoUNrgLuMZUt7yXj8tc34KVJ9Dh9XYg5tY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=sawHfg6VStDX0M+hPQ4dKVWtg2ffr1wMX2+KA46t45DkqixHoflVTDbOHAy/qIHBXuS35BGyiIlplvbaQrlXzb+BDImSlfYvqAVvCXxKnS4vvPYUeWsU4IcbVVXK01y7Fm5cgWInkIVUob9N2N+bzKKn0mz5z2ixh7Va80/yG0k= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Ohj6r4/U; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Ohj6r4/U" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D3754C43399; Sun, 24 Mar 2024 23:40:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323601; bh=7YVNTYaVNaoUNrgLuMZUt7yXj8tc34KVJ9Dh9XYg5tY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Ohj6r4/UmOUmlBIiWPJqhFGIaW3jDFhJlycyIIrPdeTVyfDBmgrMUX1c111HYrss1 1A2u2pYfnBv7jUKR9ShzBLhTrmU/cDS5aNgynL2srgu6y/IB4lCGSvfGy4IZWnvbl5 Giaz4MSlV6aSWQm2sxTOp7lWoR/+wgKIDqHRdFtvgZDNrN3/XNTpDRNv1OxMKeCPe+ MQoEZUyb3aEuhXe/ZB27r6gGsQwxg2HUFRe6xqDcLG02g7K8DNz9RFzHZtT31zlhZD TGwBoirA50BE5tJb8UhKB9S6jxM41bWsiwUayh0eAFbigQ5Ju1Y+eSRaq904iH2eji HVOFlBDM5hllQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Yan Zhai , "Paul E . McKenney" , Jesper Dangaard Brouer , Jakub Kicinski , Sasha Levin Subject: [PATCH 5.15 308/317] rcu: add a helper to report consolidated flavor QS Date: Sun, 24 Mar 2024 19:34:48 -0400 Message-ID: <20240324233458.1352854-309-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Yan Zhai [ Upstream commit 1a77557d48cff187a169c2aec01c0dd78a5e7e50 ] When under heavy load, network processing can run CPU-bound for many tens of seconds. Even in preemptible kernels (non-RT kernel), this can block RCU Tasks grace periods, which can cause trace-event removal to take more than a minute, which is unacceptably long. This commit therefore creates a new helper function that passes through both RCU and RCU-Tasks quiescent states every 100 milliseconds. This hard-coded value suffices for current workloads. Suggested-by: Paul E. McKenney Reviewed-by: Jesper Dangaard Brouer Signed-off-by: Yan Zhai Reviewed-by: Paul E. McKenney Acked-by: Jesper Dangaard Brouer Link: https://lore.kernel.org/r/90431d46ee112d2b0af04dbfe936faaca11810a5.17= 10877680.git.yan@cloudflare.com Signed-off-by: Jakub Kicinski Stable-dep-of: d6dbbb11247c ("net: report RCU QS on threaded NAPI repolling= ") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- include/linux/rcupdate.h | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h index e3b12de36e924..d908af5917339 100644 --- a/include/linux/rcupdate.h +++ b/include/linux/rcupdate.h @@ -230,6 +230,37 @@ do { \ cond_resched(); \ } while (0) =20 +/** + * rcu_softirq_qs_periodic - Report RCU and RCU-Tasks quiescent states + * @old_ts: jiffies at start of processing. + * + * This helper is for long-running softirq handlers, such as NAPI threads = in + * networking. The caller should initialize the variable passed in as @old= _ts + * at the beginning of the softirq handler. When invoked frequently, this = macro + * will invoke rcu_softirq_qs() every 100 milliseconds thereafter, which w= ill + * provide both RCU and RCU-Tasks quiescent states. Note that this macro + * modifies its old_ts argument. + * + * Because regions of code that have disabled softirq act as RCU read-side + * critical sections, this macro should be invoked with softirq (and + * preemption) enabled. + * + * The macro is not needed when CONFIG_PREEMPT_RT is defined. RT kernels w= ould + * have more chance to invoke schedule() calls and provide necessary quies= cent + * states. As a contrast, calling cond_resched() only won't achieve the sa= me + * effect because cond_resched() does not provide RCU-Tasks quiescent stat= es. + */ +#define rcu_softirq_qs_periodic(old_ts) \ +do { \ + if (!IS_ENABLED(CONFIG_PREEMPT_RT) && \ + time_after(jiffies, (old_ts) + HZ / 10)) { \ + preempt_disable(); \ + rcu_softirq_qs(); \ + preempt_enable(); \ + (old_ts) =3D jiffies; \ + } \ +} while (0) + /* * Infrastructure to implement the synchronize_() primitives in * TREE_RCU and rcu_barrier_() primitives in TINY_RCU. --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DDE2227F0AB; Sun, 24 Mar 2024 23:40:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323603; cv=none; b=RCSR5IhuBMbfR65x3gJrbBDOExj+ccHrhcOSrux9cgBdpmAD0ww45FvPae53/axHnsAxRVjWuLT9HngsFqvH7ZW3wFBW8xqLVNPHOQXJ/RTLEP7XfAC4XknuzQAX2e57OdobUqrGZulDEEECsHO3XclyYY1dH3lTpnQ7SnRAdDA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323603; c=relaxed/simple; bh=eaBrFbHF+JPRxuw1dYGmnkADjKnB0DW7CmbTKBFaTfk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=bqn+UVk2LpbDFzmm46ONOEgqghZYzowCgb1j7r0LO+FmFbnhoZth5KyZtA9/h4pfSGhbk7odnbpx1MrfIMqIDw50ar4fAsqg3R/b0g7tTyX4hMLvhjotNwrWZrcOSLYVgeTX10OOJ13zAjsdW4E0iOPqEHvwVAeZeH/s7MkRFn4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=D/sWTlzV; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="D/sWTlzV" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E604EC43394; Sun, 24 Mar 2024 23:40:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323602; bh=eaBrFbHF+JPRxuw1dYGmnkADjKnB0DW7CmbTKBFaTfk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=D/sWTlzVkEbbf/qrnUws9DHMN6wFkiEMxpFCJlT60YVfgV7Sxe3ivoLwLBpUDntXC ZKqqacRk6kOg3CGFSWCDFNnrdZSK4W1YlSfbNEEue1/MWvo8XwhCAhVeohrxP0T02I 1sN4ySrhGzqwUk/hQSW/i/jPupJrMHArhP+S8JlP+zc9t2qXAbXSG0yik8a/5cbbyJ /ZvXcd0mLPVr0lp3iEo3KELk3eopYXx9TT4p3CT+Dj7PIfVYxzNThhSU556lHPlQ4P e5doJhMgvlrBpDFZ5ePE+Nr6y2LRILyOZtCAoF84+CBg8deiuMYuJmKwkoM3umpV/T YQdFNJfMVIjbA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Yan Zhai , Jesper Dangaard Brouer , "Paul E . McKenney" , Jakub Kicinski , Sasha Levin Subject: [PATCH 5.15 309/317] net: report RCU QS on threaded NAPI repolling Date: Sun, 24 Mar 2024 19:34:49 -0400 Message-ID: <20240324233458.1352854-310-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Yan Zhai [ Upstream commit d6dbbb11247c71203785a2c9da474c36f4b19eae ] NAPI threads can keep polling packets under load. Currently it is only calling cond_resched() before repolling, but it is not sufficient to clear out the holdout of RCU tasks, which prevent BPF tracing programs from detaching for long period. This can be reproduced easily with following set up: ip netns add test1 ip netns add test2 ip -n test1 link add veth1 type veth peer name veth2 netns test2 ip -n test1 link set veth1 up ip -n test1 link set lo up ip -n test2 link set veth2 up ip -n test2 link set lo up ip -n test1 addr add 192.168.1.2/31 dev veth1 ip -n test1 addr add 1.1.1.1/32 dev lo ip -n test2 addr add 192.168.1.3/31 dev veth2 ip -n test2 addr add 2.2.2.2/31 dev lo ip -n test1 route add default via 192.168.1.3 ip -n test2 route add default via 192.168.1.2 for i in `seq 10 210`; do for j in `seq 10 210`; do ip netns exec test2 iptables -I INPUT -s 3.3.$i.$j -p udp --dport 5201 done done ip netns exec test2 ethtool -K veth2 gro on ip netns exec test2 bash -c 'echo 1 > /sys/class/net/veth2/threaded' ip netns exec test1 ethtool -K veth1 tso off Then run an iperf3 client/server and a bpftrace script can trigger it: ip netns exec test2 iperf3 -s -B 2.2.2.2 >/dev/null& ip netns exec test1 iperf3 -c 2.2.2.2 -B 1.1.1.1 -u -l 1500 -b 3g -t 100 >/= dev/null& bpftrace -e 'kfunc:__napi_poll{@=3Dcount();} interval:s:1{exit();}' Report RCU quiescent states periodically will resolve the issue. Fixes: 29863d41bb6e ("net: implement threaded-able napi poll loop support") Reviewed-by: Jesper Dangaard Brouer Signed-off-by: Yan Zhai Acked-by: Paul E. McKenney Acked-by: Jesper Dangaard Brouer Link: https://lore.kernel.org/r/4c3b0d3f32d3b18949d75b18e5e1d9f13a24f025.17= 10877680.git.yan@cloudflare.com Signed-off-by: Jakub Kicinski Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- net/core/dev.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/net/core/dev.c b/net/core/dev.c index 1e41971c06177..f80bc2ca888aa 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -7143,6 +7143,8 @@ static int napi_threaded_poll(void *data) void *have; =20 while (!napi_thread_wait(napi)) { + unsigned long last_qs =3D jiffies; + for (;;) { bool repoll =3D false; =20 @@ -7157,6 +7159,7 @@ static int napi_threaded_poll(void *data) if (!repoll) break; =20 + rcu_softirq_qs_periodic(last_qs); cond_resched(); } } --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EC9B527F0A0; Sun, 24 Mar 2024 23:40:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323604; cv=none; b=JttY4WAmVX6S2ELOjyA9JxwnRfwlndZRu/EhWjJg9j/ybpcVG0BpT7xdrI8MUF0JQkcyvvzB0CpGWR4amwuWK8A0zrW7f8TGDoiMl5RO4E/q6aRUbb2OoQPhWily98X7VZzAHcgrSmFtJynGQahK3Y0ytcv0Ac8zbhXpr3RxCVM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323604; c=relaxed/simple; bh=34NgVSaXwpxNu1Y2kRUvJtxcbAIMn1pKbBU9bE04Kn4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=pDAEVw0438cLrgegVCd2VZg9oPfm6nYK62cjFJbxhqcFwQwldaOAvW62/izrWb8rDn4bQcTrpg4x9jUuqivoywajPK5aIdAUbGUBlxW0qkhyQ5UVROiyioLYbgs9rtVBmZ14MWV+i7RZPzDtvCDjPee4RKnrEj+3JAUEvsIb7Ng= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=jzg21le6; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="jzg21le6" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 06069C433B1; Sun, 24 Mar 2024 23:40:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323603; bh=34NgVSaXwpxNu1Y2kRUvJtxcbAIMn1pKbBU9bE04Kn4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jzg21le62SAyB1977WdYY3dL4j7nl+MVH0oDegAHn5Hs/lplq0dR4Mbn41LMo/L+k OmpaeHtRQc6uuAv4jG+IcMyE0M+3o72tkiIz6NxsnkksEMc29dRXig1/KGYbIbiftP gwNtzL1M8LdnUoBlqtymHt1jQ5cS1vkEyM91NS/n/t0J4nnI/ffli1DXWf5ybj2V5l W1CRLnNiClWTPDc/23IP+s1YgpQIrIZT8FdBFGJMidD2zyIX5zTYLsBwakqFeuZT2e sR0m7ZSq0W4t1r1zd2ArRbMOQMkTzUEUo4lQ/nWCtyYHMFDYR1rjUUsqRE0ocRPSom JFvubEwiGRoUQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Yan Zhai , Jesper Dangaard Brouer , "Paul E . McKenney" , Jakub Kicinski , Sasha Levin Subject: [PATCH 5.15 310/317] bpf: report RCU QS in cpumap kthread Date: Sun, 24 Mar 2024 19:34:50 -0400 Message-ID: <20240324233458.1352854-311-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Yan Zhai [ Upstream commit 00bf63122459e87193ee7f1bc6161c83a525569f ] When there are heavy load, cpumap kernel threads can be busy polling packets from redirect queues and block out RCU tasks from reaching quiescent states. It is insufficient to just call cond_resched() in such context. Periodically raise a consolidated RCU QS before cond_resched fixes the problem. Fixes: 6710e1126934 ("bpf: introduce new bpf cpu map type BPF_MAP_TYPE_CPUM= AP") Reviewed-by: Jesper Dangaard Brouer Signed-off-by: Yan Zhai Acked-by: Paul E. McKenney Acked-by: Jesper Dangaard Brouer Link: https://lore.kernel.org/r/c17b9f1517e19d813da3ede5ed33ee18496bb5d8.17= 10877680.git.yan@cloudflare.com Signed-off-by: Jakub Kicinski Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- kernel/bpf/cpumap.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/kernel/bpf/cpumap.c b/kernel/bpf/cpumap.c index f7de5b313cc5b..a8429cfb4ae8c 100644 --- a/kernel/bpf/cpumap.c +++ b/kernel/bpf/cpumap.c @@ -305,6 +305,7 @@ static int cpu_map_bpf_prog_run(struct bpf_cpu_map_entr= y *rcpu, void **frames, static int cpu_map_kthread_run(void *data) { struct bpf_cpu_map_entry *rcpu =3D data; + unsigned long last_qs =3D jiffies; =20 complete(&rcpu->kthread_running); set_current_state(TASK_INTERRUPTIBLE); @@ -330,10 +331,12 @@ static int cpu_map_kthread_run(void *data) if (__ptr_ring_empty(rcpu->queue)) { schedule(); sched =3D 1; + last_qs =3D jiffies; } else { __set_current_state(TASK_RUNNING); } } else { + rcu_softirq_qs_periodic(last_qs); sched =3D cond_resched(); } =20 --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2642727F0B0; Sun, 24 Mar 2024 23:40:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323605; cv=none; b=cazHFzTiKYjg7bkSc7kvlR3/4mlLIlGuDkKDD3N/Sp8SEnRoR3fPqzAqU371kcmIUSKTCiX8GhUGuSrcKA1teXMSOrSJ4ZBVyJXD/1Bup4HXteuVk0ZK08wa4udOvgO/F6mH6n3kNmFhfzmkpHGkrgxkg+lZYJHcy3ywLdA6RrE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323605; c=relaxed/simple; bh=DMarUFrcpgU0h+phKoJ4W3E1vNnZHI8pqt2yyjTBQas=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=L5QpfhPiqoO6GDE3zBr+Xg5KcmHQJhxdVeouk54PT4U7/0Wm782CBKTyamljnySKURdC995YR/VnUZqamvND+mmweszvaLeZjGHyCqN11gFEU09ko9jceq/XUKMIzKiDyGcCQrdVxOVggysV/yl2/qqGAzA8aiFLpqcuVVVNBlQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=LcsdHBKb; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="LcsdHBKb" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1E3D6C433A6; Sun, 24 Mar 2024 23:40:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323605; bh=DMarUFrcpgU0h+phKoJ4W3E1vNnZHI8pqt2yyjTBQas=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=LcsdHBKbCSpNHyWT1BzRZCg+BZA3ctvkk7P+PFgYlVBRvACx5Ata0Ae7wPKeZAQoM AmfMoiJIJLo/ipb/UVrRbazBZe8tVCm5oy3F2sCy0ohN7DOvvuDWnTkI7WjfKZPoKt bXVDIQr0GyYEgKV5NMQEeGQEuTNEbNTomDdEbm6b3N8WNkZsDMEj3cTtDANCo6MeVv 0Y9nM+1o1ef6tGGy32WdOeC8uEip0RM29FymmxRX5IFybmslUTKzD7g1eShhE6A7E9 Qah1d7cpQ3KYhBGTkhp2R4Vls/azIwMXeFgYyo9ZwNu+ldEDu+w7bf66Xs9Msncyd9 mucVyrzXtRioQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?Ar=C4=B1n=C3=A7=20=C3=9CNAL?= , Vladimir Oltean , Russell King , Florian Fainelli , "David S . Miller" , Sasha Levin Subject: [PATCH 5.15 311/317] net: dsa: mt7530: fix handling of LLDP frames Date: Sun, 24 Mar 2024 19:34:51 -0400 Message-ID: <20240324233458.1352854-312-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable From: Ar=C4=B1n=C3=A7 =C3=9CNAL [ Upstream commit 8332cf6fd7c7087dbc2067115b33979c9851bbc4 ] LLDP frames are link-local frames, therefore they must be trapped to the CPU port. Currently, the MT753X switches treat LLDP frames as regular multicast frames, therefore flooding them to user ports. To fix this, set LLDP frames to be trapped to the CPU port(s). Fixes: b8f126a8d543 ("net-next: dsa: add dsa support for Mediatek MT7530 sw= itch") Signed-off-by: Ar=C4=B1n=C3=A7 =C3=9CNAL Reviewed-by: Vladimir Oltean Reviewed-by: Russell King (Oracle) Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller Stable-dep-of: e8bf353577f3 ("net: dsa: mt7530: fix link-local frames that = ingress vlan filtering ports") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/net/dsa/mt7530.c | 4 ++++ drivers/net/dsa/mt7530.h | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/drivers/net/dsa/mt7530.c b/drivers/net/dsa/mt7530.c index 636943035c292..252e8eaa92767 100644 --- a/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c @@ -999,6 +999,10 @@ mt753x_trap_frames(struct mt7530_priv *priv) /* Trap BPDUs to the CPU port(s) */ mt7530_rmw(priv, MT753X_BPC, MT753X_BPDU_PORT_FW_MASK, MT753X_BPDU_CPU_ONLY); + + /* Trap LLDP frames with :0E MAC DA to the CPU port(s) */ + mt7530_rmw(priv, MT753X_RGAC2, MT753X_R0E_PORT_FW_MASK, + MT753X_R0E_PORT_FW(MT753X_BPDU_CPU_ONLY)); } =20 static int diff --git a/drivers/net/dsa/mt7530.h b/drivers/net/dsa/mt7530.h index 91508e2feef95..8cee462d5f1cb 100644 --- a/drivers/net/dsa/mt7530.h +++ b/drivers/net/dsa/mt7530.h @@ -66,6 +66,11 @@ enum mt753x_id { #define MT753X_BPC 0x24 #define MT753X_BPDU_PORT_FW_MASK GENMASK(2, 0) =20 +/* Register for :03 and :0E MAC DA frame control */ +#define MT753X_RGAC2 0x2c +#define MT753X_R0E_PORT_FW_MASK GENMASK(18, 16) +#define MT753X_R0E_PORT_FW(x) FIELD_PREP(MT753X_R0E_PORT_FW_MASK, x) + enum mt753x_bpdu_port_fw { MT753X_BPDU_FOLLOW_MFC, MT753X_BPDU_CPU_EXCLUDE =3D 4, --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1E178178313; Sun, 24 Mar 2024 23:40:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323606; cv=none; b=Q8vXHE1J1HrgYw9N8yy+56GWTVkSKbNClf6xBl4saDRVKcFOr7908VCYm8gDkcPwXKl56QhwCI/01FfUH7JAP205OUFRCN85kUj8nlZ2N66W4mCnME2D5dq1cjvNk2sWO8UUQV4gkHfmuC5fK6Q+/ZKeCAFIzvl7vJoSArkIbeo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323606; c=relaxed/simple; bh=ATmspV2YRL0zGBJBt/KTvjwdHW4rqFDudFRNPbL94fY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=A3Wz6FaYiJF+NZDaso+Tb8fHB6ZfuJgDy9CCMo7/PyXhrG8+eEc4l77H1Y/cE8eQtTUxT/0m3EB9RIcC8gR1yxF4v+1yRMDwWXX/ilfPqPbp+vXmdcN9gCjM0SH9KrjfsrzZ/25JUFS+w6wGgRc4OKNOCWA+S+Cs4b+taAx5Z/8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=q8PQoBTw; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="q8PQoBTw" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 46629C43390; Sun, 24 Mar 2024 23:40:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323606; bh=ATmspV2YRL0zGBJBt/KTvjwdHW4rqFDudFRNPbL94fY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=q8PQoBTw4HrfXQwbOdqrojqRwHDRFAzcRaxAZHAEKHFuiAEFtoJfIAv6xOkFCgE1m s2REp1Fk+zckLjIHz94YCAvRol6/ZKo8ayKv/NxBlpqNF7DJipfN5nSPkSOilH+5ud xxb9vmfxOF5o/+03ZHtcBRqvciJpHEP+LyxmtCoWcHMvQjlnb3syBMW5SZI/hCNuuv 8baJ0B1zNE1p95skUadN44suAWdPVQMGZY0pqIg6nPYz98zgxzSPOcFD3zTn1wPx8e v7Mt7zT5XLDtuyelMs6cAq76qwgB8rbvK60ZToxmsEpKNvMH0+dWkYocAToZl4v5QF cIAO+PDMuiwGg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?Ar=C4=B1n=C3=A7=20=C3=9CNAL?= , Vladimir Oltean , "David S . Miller" , Sasha Levin Subject: [PATCH 5.15 312/317] net: dsa: mt7530: fix handling of 802.1X PAE frames Date: Sun, 24 Mar 2024 19:34:52 -0400 Message-ID: <20240324233458.1352854-313-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable From: Ar=C4=B1n=C3=A7 =C3=9CNAL [ Upstream commit e94b590abfff2cdbf0bdaa7d9904364c8d480af5 ] 802.1X PAE frames are link-local frames, therefore they must be trapped to the CPU port. Currently, the MT753X switches treat 802.1X PAE frames as regular multicast frames, therefore flooding them to user ports. To fix this, set 802.1X PAE frames to be trapped to the CPU port(s). Fixes: b8f126a8d543 ("net-next: dsa: add dsa support for Mediatek MT7530 sw= itch") Signed-off-by: Ar=C4=B1n=C3=A7 =C3=9CNAL Reviewed-by: Vladimir Oltean Signed-off-by: David S. Miller Stable-dep-of: e8bf353577f3 ("net: dsa: mt7530: fix link-local frames that = ingress vlan filtering ports") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/net/dsa/mt7530.c | 4 ++++ drivers/net/dsa/mt7530.h | 2 ++ 2 files changed, 6 insertions(+) diff --git a/drivers/net/dsa/mt7530.c b/drivers/net/dsa/mt7530.c index 252e8eaa92767..30570b9dc88f2 100644 --- a/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c @@ -1000,6 +1000,10 @@ mt753x_trap_frames(struct mt7530_priv *priv) mt7530_rmw(priv, MT753X_BPC, MT753X_BPDU_PORT_FW_MASK, MT753X_BPDU_CPU_ONLY); =20 + /* Trap 802.1X PAE frames to the CPU port(s) */ + mt7530_rmw(priv, MT753X_BPC, MT753X_PAE_PORT_FW_MASK, + MT753X_PAE_PORT_FW(MT753X_BPDU_CPU_ONLY)); + /* Trap LLDP frames with :0E MAC DA to the CPU port(s) */ mt7530_rmw(priv, MT753X_RGAC2, MT753X_R0E_PORT_FW_MASK, MT753X_R0E_PORT_FW(MT753X_BPDU_CPU_ONLY)); diff --git a/drivers/net/dsa/mt7530.h b/drivers/net/dsa/mt7530.h index 8cee462d5f1cb..2c895f35383e2 100644 --- a/drivers/net/dsa/mt7530.h +++ b/drivers/net/dsa/mt7530.h @@ -65,6 +65,8 @@ enum mt753x_id { /* Registers for BPDU and PAE frame control*/ #define MT753X_BPC 0x24 #define MT753X_BPDU_PORT_FW_MASK GENMASK(2, 0) +#define MT753X_PAE_PORT_FW_MASK GENMASK(18, 16) +#define MT753X_PAE_PORT_FW(x) FIELD_PREP(MT753X_PAE_PORT_FW_MASK, x) =20 /* Register for :03 and :0E MAC DA frame control */ #define MT753X_RGAC2 0x2c --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0668127F0A9; Sun, 24 Mar 2024 23:40:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323607; cv=none; b=e1+omA3BulWmzqTqST1Xb2sUDVNILceC4eCC5XOS4SSf6IaaMn7w8eH5+t5JB0fMqT27bmqkQv/4i2DiFt7OzrCcW1vzeAOjMcQ7aSHtsZAez2rCTaPb6M6RlTPm5SFAoPKO1cEN3BRM76RE4VEAofiyC8cwOv4FIvHreuAkdN4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323607; c=relaxed/simple; bh=mkdBLRLJB/dbNCVzygSeDPgi7rbO4NgZJGsQQ/XHGZU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=X/39lql7MYK88andzxlfa1Qam7OG8yzOfyWaCGjh/Qx+ukxQ38ybOLkKwizmS7DAyorgT8GD51zSCRTL77h3QeaDX3EYz7T2TRIalSYyfokYxJlN0EpRkSrbph5Tx4xyRs9uKv7zWOljPjMzX7RXAxTZeXom1IAp1VIEwHjxa68= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=I/QZslvQ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="I/QZslvQ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 42E37C43394; Sun, 24 Mar 2024 23:40:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323606; bh=mkdBLRLJB/dbNCVzygSeDPgi7rbO4NgZJGsQQ/XHGZU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=I/QZslvQ70KDnedmqh6q0AAgwjFAWPxqtJmqP8Mcr2NTQ2QOhp+4yV0US0UYo3Mma EBG100rW5XRIHhWu1aqvAeUr56DBdN/eUAa2+RDni4BuDf4jy8opYXy1OlGPjJUMbV yDa4O8dcxsjKZH4PcPeYMfoWvpNPYUO0knf1SaBAhNXJS7hiGTDBIZe4cMtXn/e/sJ H1VxIoXYU4/F3LQ3ae6AZcotfw/NzsFCfRYU70rEwTWz+SjSoFWPrH8zK77xrx1wzC DwwJbHCkpUVGt96iGfC5F0rWDln0SDSn9Xh6wKxL87ve3ZyIt4+Rijwe0JFt3Bs2mn PyJO1ep2uF0/A== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?Ar=C4=B1n=C3=A7=20=C3=9CNAL?= , Paolo Abeni , Sasha Levin Subject: [PATCH 5.15 313/317] net: dsa: mt7530: fix link-local frames that ingress vlan filtering ports Date: Sun, 24 Mar 2024 19:34:53 -0400 Message-ID: <20240324233458.1352854-314-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable From: Ar=C4=B1n=C3=A7 =C3=9CNAL [ Upstream commit e8bf353577f382c7066c661fed41b2adc0fc7c40 ] Whether VLAN-aware or not, on every VID VLAN table entry that has the CPU port as a member of it, frames are set to egress the CPU port with the VLAN tag stacked. This is so that VLAN tags can be appended after hardware special tag (called DSA tag in the context of Linux drivers). For user ports on a VLAN-unaware bridge, frame ingressing the user port egresses CPU port with only the special tag. For user ports on a VLAN-aware bridge, frame ingressing the user port egresses CPU port with the special tag and the VLAN tag. This causes issues with link-local frames, specifically BPDUs, because the software expects to receive them VLAN-untagged. There are two options to make link-local frames egress untagged. Setting CONSISTENT or UNTAGGED on the EG_TAG bits on the relevant register. CONSISTENT means frames egress exactly as they ingress. That means egressing with the VLAN tag they had at ingress or egressing untagged if they ingressed untagged. Although link-local frames are not supposed to be transmitted VLAN-tagged, if they are done so, when egressing through a CPU port, the special tag field will be broken. BPDU egresses CPU port with VLAN tag egressing stacked, received on software: 00:01:25.104821 AF Unknown (382365846), length 106: | STAG | | VLAN | 0x0000: 0000 6c27 614d 4143 0001 0000 8100 0001 ..l'aMAC........ 0x0010: 0026 4242 0300 0000 0000 0000 6c27 614d .&BB........l'aM 0x0020: 4143 0000 0000 0000 6c27 614d 4143 0000 AC......l'aMAC.. 0x0030: 0000 1400 0200 0f00 0000 0000 0000 0000 ................ BPDU egresses CPU port with VLAN tag egressing untagged, received on software: 00:23:56.628708 AF Unknown (25215488), length 64: | STAG | 0x0000: 0000 6c27 614d 4143 0001 0000 0026 4242 ..l'aMAC.....&BB 0x0010: 0300 0000 0000 0000 6c27 614d 4143 0000 ........l'aMAC.. 0x0020: 0000 0000 6c27 614d 4143 0000 0000 1400 ....l'aMAC...... 0x0030: 0200 0f00 0000 0000 0000 0000 ............ BPDU egresses CPU port with VLAN tag egressing tagged, received on software: 00:01:34.311963 AF Unknown (25215488), length 64: | Mess | 0x0000: 0000 6c27 614d 4143 0001 0001 0026 4242 ..l'aMAC.....&BB 0x0010: 0300 0000 0000 0000 6c27 614d 4143 0000 ........l'aMAC.. 0x0020: 0000 0000 6c27 614d 4143 0000 0000 1400 ....l'aMAC...... 0x0030: 0200 0f00 0000 0000 0000 0000 ............ To prevent confusing the software, force the frame to egress UNTAGGED instead of CONSISTENT. This way, frames can't possibly be received TAGGED by software which would have the special tag field broken. VLAN Tag Egress Procedure For all frames, one of these options set the earliest in this order will apply to the frame: - EG_TAG in certain registers for certain frames. This will apply to frame with matching MAC DA or EtherType. - EG_TAG in the address table. This will apply to frame at its incoming port. - EG_TAG in the PVC register. This will apply to frame at its incoming port. - EG_CON and [EG_TAG per port] in the VLAN table. This will apply to frame at its outgoing port. - EG_TAG in the PCR register. This will apply to frame at its outgoing port. EG_TAG in certain registers for certain frames: PPPoE Discovery_ARP/RARP: PPP_EG_TAG and ARP_EG_TAG in the APC register. IGMP_MLD: IGMP_EG_TAG and MLD_EG_TAG in the IMC register. BPDU and PAE: BPDU_EG_TAG and PAE_EG_TAG in the BPC register. REV_01 and REV_02: R01_EG_TAG and R02_EG_TAG in the RGAC1 register. REV_03 and REV_0E: R03_EG_TAG and R0E_EG_TAG in the RGAC2 register. REV_10 and REV_20: R10_EG_TAG and R20_EG_TAG in the RGAC3 register. REV_21 and REV_UN: R21_EG_TAG and RUN_EG_TAG in the RGAC4 register. With this change, it can be observed that a bridge interface with stp_state and vlan_filtering enabled will properly block ports now. Fixes: b8f126a8d543 ("net-next: dsa: add dsa support for Mediatek MT7530 sw= itch") Signed-off-by: Ar=C4=B1n=C3=A7 =C3=9CNAL Signed-off-by: Paolo Abeni Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/net/dsa/mt7530.c | 23 +++++++++++++++-------- drivers/net/dsa/mt7530.h | 9 ++++++++- 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/drivers/net/dsa/mt7530.c b/drivers/net/dsa/mt7530.c index 30570b9dc88f2..834bcb9d44fd7 100644 --- a/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c @@ -996,16 +996,23 @@ static void mt7530_setup_port5(struct dsa_switch *ds,= phy_interface_t interface) static void mt753x_trap_frames(struct mt7530_priv *priv) { - /* Trap BPDUs to the CPU port(s) */ - mt7530_rmw(priv, MT753X_BPC, MT753X_BPDU_PORT_FW_MASK, + /* Trap 802.1X PAE frames and BPDUs to the CPU port(s) and egress them + * VLAN-untagged. + */ + mt7530_rmw(priv, MT753X_BPC, MT753X_PAE_EG_TAG_MASK | + MT753X_PAE_PORT_FW_MASK | MT753X_BPDU_EG_TAG_MASK | + MT753X_BPDU_PORT_FW_MASK, + MT753X_PAE_EG_TAG(MT7530_VLAN_EG_UNTAGGED) | + MT753X_PAE_PORT_FW(MT753X_BPDU_CPU_ONLY) | + MT753X_BPDU_EG_TAG(MT7530_VLAN_EG_UNTAGGED) | MT753X_BPDU_CPU_ONLY); =20 - /* Trap 802.1X PAE frames to the CPU port(s) */ - mt7530_rmw(priv, MT753X_BPC, MT753X_PAE_PORT_FW_MASK, - MT753X_PAE_PORT_FW(MT753X_BPDU_CPU_ONLY)); - - /* Trap LLDP frames with :0E MAC DA to the CPU port(s) */ - mt7530_rmw(priv, MT753X_RGAC2, MT753X_R0E_PORT_FW_MASK, + /* Trap LLDP frames with :0E MAC DA to the CPU port(s) and egress them + * VLAN-untagged. + */ + mt7530_rmw(priv, MT753X_RGAC2, MT753X_R0E_EG_TAG_MASK | + MT753X_R0E_PORT_FW_MASK, + MT753X_R0E_EG_TAG(MT7530_VLAN_EG_UNTAGGED) | MT753X_R0E_PORT_FW(MT753X_BPDU_CPU_ONLY)); } =20 diff --git a/drivers/net/dsa/mt7530.h b/drivers/net/dsa/mt7530.h index 2c895f35383e2..7c0820d341db7 100644 --- a/drivers/net/dsa/mt7530.h +++ b/drivers/net/dsa/mt7530.h @@ -64,12 +64,18 @@ enum mt753x_id { =20 /* Registers for BPDU and PAE frame control*/ #define MT753X_BPC 0x24 -#define MT753X_BPDU_PORT_FW_MASK GENMASK(2, 0) +#define MT753X_PAE_EG_TAG_MASK GENMASK(24, 22) +#define MT753X_PAE_EG_TAG(x) FIELD_PREP(MT753X_PAE_EG_TAG_MASK, x) #define MT753X_PAE_PORT_FW_MASK GENMASK(18, 16) #define MT753X_PAE_PORT_FW(x) FIELD_PREP(MT753X_PAE_PORT_FW_MASK, x) +#define MT753X_BPDU_EG_TAG_MASK GENMASK(8, 6) +#define MT753X_BPDU_EG_TAG(x) FIELD_PREP(MT753X_BPDU_EG_TAG_MASK, x) +#define MT753X_BPDU_PORT_FW_MASK GENMASK(2, 0) =20 /* Register for :03 and :0E MAC DA frame control */ #define MT753X_RGAC2 0x2c +#define MT753X_R0E_EG_TAG_MASK GENMASK(24, 22) +#define MT753X_R0E_EG_TAG(x) FIELD_PREP(MT753X_R0E_EG_TAG_MASK, x) #define MT753X_R0E_PORT_FW_MASK GENMASK(18, 16) #define MT753X_R0E_PORT_FW(x) FIELD_PREP(MT753X_R0E_PORT_FW_MASK, x) =20 @@ -252,6 +258,7 @@ enum mt7530_port_mode { enum mt7530_vlan_port_eg_tag { MT7530_VLAN_EG_DISABLED =3D 0, MT7530_VLAN_EG_CONSISTENT =3D 1, + MT7530_VLAN_EG_UNTAGGED =3D 4, }; =20 enum mt7530_vlan_port_attr { --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DFD3B179646; Sun, 24 Mar 2024 23:40:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323608; cv=none; b=F7ropFOfG9lPZn+JoqBLI0oEAvFsp8WdNFfKGjya9VGXMvlGlE6MuKg2oT0B8tkAsSfaMJOV+FyUn/8WGaDTp9T+0vY9Q4SUYUrne5NS3Ij0dFR8nyKKFjk+1VdOUYRflrcN5gJ+72WQLuR9Fwg6KnQiDVjzxHb/daOiQLpSD5Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323608; c=relaxed/simple; bh=UA6yHe7AjiCpnNsB6/awa3N4u3CNokgehRkPBtewLtE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=YyUFWyrm2/MPOBZjwbgdRFtShNhDmIp9kGsEfRPB6gS2ucxzKR49zv6rv9JkJXS3+VT00leC7X5kSxgZLRGs2C8QNV/88qQIglleM9Isu/YB0D14NbDiq7GTnkXOoQUMG5NPmIqOdhWr0imaCm9C/yNY+lj4qgmhmqlue5fOW/Q= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=sD7ErK0W; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="sD7ErK0W" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 288C3C433C7; Sun, 24 Mar 2024 23:40:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323607; bh=UA6yHe7AjiCpnNsB6/awa3N4u3CNokgehRkPBtewLtE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=sD7ErK0WhDWhD639FPdXrDlRrTBw5vpjS/t0DbAs7KX9xAUnK/tL0m7p0Jve/z6Q/ HPN5fDMog8PgDWZX6Grdp4/X1mroYfRqJKNX73RV26r/63tjut7OUs8c8ZGd+6gQIW HBY2IRqCY0kuVlgJnoP2xnWUdg3k26BH5irD9f+C7zxt+sYUUZZSSWf7s/3mxytanS XJVJFWXSCjo+IC4NbM+dYZri5i1G38alrP2Fkjv18G4eTbqA1u+BFpeW2NNexM144V D9pvW7/P2fVdAjrwS9hrmOSRRS/oeQGUA4bu58uz2A5BCtF3UUdZKRAAzkaDu9JCjT FOwOuYNLRvDxA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?Ar=C4=B1n=C3=A7=20=C3=9CNAL?= , Paolo Abeni , Sasha Levin Subject: [PATCH 5.15 314/317] net: dsa: mt7530: fix handling of all link-local frames Date: Sun, 24 Mar 2024 19:34:54 -0400 Message-ID: <20240324233458.1352854-315-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable From: Ar=C4=B1n=C3=A7 =C3=9CNAL [ Upstream commit 69ddba9d170bdaee1dc0eb4ced38d7e4bb7b92af ] Currently, the MT753X switches treat frames with :01-0D and :0F MAC DAs as regular multicast frames, therefore flooding them to user ports. On page 205, section "8.6.3 Frame filtering" of the active standard, IEEE Std 802.1Q=E2=84=A2-2022, it is stated that frames with 01:80:C2:00:00:00-0= F as MAC DA must only be propagated to C-VLAN and MAC Bridge components. That means VLAN-aware and VLAN-unaware bridges. On the switch designs with CPU ports, these frames are supposed to be processed by the CPU (software). So we make the switch only forward them to the CPU port. And if received from a CPU port, forward to a single port. The software is responsible of making the switch conform to the latter by setting a single port as destination port on the special tag. This switch intellectual property cannot conform to this part of the standard fully. Whilst the REV_UN frame tag covers the remaining :04-0D and :0F MAC DAs, it also includes :22-FF which the scope of propagation is not supposed to be restricted for these MAC DAs. Set frames with :01-03 MAC DAs to be trapped to the CPU port(s). Add a comment for the remaining MAC DAs. Note that the ingress port must have a PVID assigned to it for the switch to forward untagged frames. A PVID is set by default on VLAN-aware and VLAN-unaware ports. However, when the network interface that pertains to the ingress port is attached to a vlan_filtering enabled bridge, the user can remove the PVID assignment from it which would prevent the link-local frames from being trapped to the CPU port. I am yet to see a way to forward link-local frames while preventing other untagged frames from being forwarded too. Fixes: b8f126a8d543 ("net-next: dsa: add dsa support for Mediatek MT7530 sw= itch") Signed-off-by: Ar=C4=B1n=C3=A7 =C3=9CNAL Signed-off-by: Paolo Abeni Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/net/dsa/mt7530.c | 37 +++++++++++++++++++++++++++++++++---- drivers/net/dsa/mt7530.h | 13 +++++++++++++ 2 files changed, 46 insertions(+), 4 deletions(-) diff --git a/drivers/net/dsa/mt7530.c b/drivers/net/dsa/mt7530.c index 834bcb9d44fd7..f36aacebb1bc6 100644 --- a/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c @@ -993,6 +993,21 @@ static void mt7530_setup_port5(struct dsa_switch *ds, = phy_interface_t interface) mutex_unlock(&priv->reg_mutex); } =20 +/* On page 205, section "8.6.3 Frame filtering" of the active standard, IE= EE Std + * 802.1Q=E2=84=A2-2022, it is stated that frames with 01:80:C2:00:00:00-0= F as MAC DA + * must only be propagated to C-VLAN and MAC Bridge components. That means + * VLAN-aware and VLAN-unaware bridges. On the switch designs with CPU por= ts, + * these frames are supposed to be processed by the CPU (software). So we = make + * the switch only forward them to the CPU port. And if received from a CPU + * port, forward to a single port. The software is responsible of making t= he + * switch conform to the latter by setting a single port as destination po= rt on + * the special tag. + * + * This switch intellectual property cannot conform to this part of the st= andard + * fully. Whilst the REV_UN frame tag covers the remaining :04-0D and :0F = MAC + * DAs, it also includes :22-FF which the scope of propagation is not supp= osed + * to be restricted for these MAC DAs. + */ static void mt753x_trap_frames(struct mt7530_priv *priv) { @@ -1007,13 +1022,27 @@ mt753x_trap_frames(struct mt7530_priv *priv) MT753X_BPDU_EG_TAG(MT7530_VLAN_EG_UNTAGGED) | MT753X_BPDU_CPU_ONLY); =20 - /* Trap LLDP frames with :0E MAC DA to the CPU port(s) and egress them - * VLAN-untagged. + /* Trap frames with :01 and :02 MAC DAs to the CPU port(s) and egress + * them VLAN-untagged. + */ + mt7530_rmw(priv, MT753X_RGAC1, MT753X_R02_EG_TAG_MASK | + MT753X_R02_PORT_FW_MASK | MT753X_R01_EG_TAG_MASK | + MT753X_R01_PORT_FW_MASK, + MT753X_R02_EG_TAG(MT7530_VLAN_EG_UNTAGGED) | + MT753X_R02_PORT_FW(MT753X_BPDU_CPU_ONLY) | + MT753X_R01_EG_TAG(MT7530_VLAN_EG_UNTAGGED) | + MT753X_BPDU_CPU_ONLY); + + /* Trap frames with :03 and :0E MAC DAs to the CPU port(s) and egress + * them VLAN-untagged. */ mt7530_rmw(priv, MT753X_RGAC2, MT753X_R0E_EG_TAG_MASK | - MT753X_R0E_PORT_FW_MASK, + MT753X_R0E_PORT_FW_MASK | MT753X_R03_EG_TAG_MASK | + MT753X_R03_PORT_FW_MASK, MT753X_R0E_EG_TAG(MT7530_VLAN_EG_UNTAGGED) | - MT753X_R0E_PORT_FW(MT753X_BPDU_CPU_ONLY)); + MT753X_R0E_PORT_FW(MT753X_BPDU_CPU_ONLY) | + MT753X_R03_EG_TAG(MT7530_VLAN_EG_UNTAGGED) | + MT753X_BPDU_CPU_ONLY); } =20 static int diff --git a/drivers/net/dsa/mt7530.h b/drivers/net/dsa/mt7530.h index 7c0820d341db7..03598f9ae288c 100644 --- a/drivers/net/dsa/mt7530.h +++ b/drivers/net/dsa/mt7530.h @@ -72,12 +72,25 @@ enum mt753x_id { #define MT753X_BPDU_EG_TAG(x) FIELD_PREP(MT753X_BPDU_EG_TAG_MASK, x) #define MT753X_BPDU_PORT_FW_MASK GENMASK(2, 0) =20 +/* Register for :01 and :02 MAC DA frame control */ +#define MT753X_RGAC1 0x28 +#define MT753X_R02_EG_TAG_MASK GENMASK(24, 22) +#define MT753X_R02_EG_TAG(x) FIELD_PREP(MT753X_R02_EG_TAG_MASK, x) +#define MT753X_R02_PORT_FW_MASK GENMASK(18, 16) +#define MT753X_R02_PORT_FW(x) FIELD_PREP(MT753X_R02_PORT_FW_MASK, x) +#define MT753X_R01_EG_TAG_MASK GENMASK(8, 6) +#define MT753X_R01_EG_TAG(x) FIELD_PREP(MT753X_R01_EG_TAG_MASK, x) +#define MT753X_R01_PORT_FW_MASK GENMASK(2, 0) + /* Register for :03 and :0E MAC DA frame control */ #define MT753X_RGAC2 0x2c #define MT753X_R0E_EG_TAG_MASK GENMASK(24, 22) #define MT753X_R0E_EG_TAG(x) FIELD_PREP(MT753X_R0E_EG_TAG_MASK, x) #define MT753X_R0E_PORT_FW_MASK GENMASK(18, 16) #define MT753X_R0E_PORT_FW(x) FIELD_PREP(MT753X_R0E_PORT_FW_MASK, x) +#define MT753X_R03_EG_TAG_MASK GENMASK(8, 6) +#define MT753X_R03_EG_TAG(x) FIELD_PREP(MT753X_R03_EG_TAG_MASK, x) +#define MT753X_R03_PORT_FW_MASK GENMASK(2, 0) =20 enum mt753x_bpdu_port_fw { MT753X_BPDU_FOLLOW_MFC, --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DBB36179654; Sun, 24 Mar 2024 23:40:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323610; cv=none; b=XNa/pwLYG0obvW+gBAEUXshKbHJvHLJTht+zSX9lspxhwbcvjj+GRkBf7QgD2Ya7aXRQhPIVuh4nsXpvjifQPyp48lTp6WmjhiuKC3Ul5Dc7Vp5+vyDkcDPdRAxxeYn8H4l4TTXUO2++1HfKu2h+YkJYynjKPP7d6tojK8zUP2s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323610; c=relaxed/simple; bh=o6El1tKnt4Ehg7Yqmasp327IhVWwumJhRElCNUA259s=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=gipFdpuh4vTSx1gtqgYjDKLHoBX2dXsF9Ex0IUGCLvm4U84TPFPzIJSqhz4rvFO0+CsTNpoa4Z+x3WQ9FCHrW35uY3c+8r1uaKizqTHNS5LaAQCrmUTvN3NCTUOYvvSwOtj87nPx4CLOFQ4ZB53oCgnj/7s4go4SZ+XWylAHikA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=EYbFzwWg; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="EYbFzwWg" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0BCA6C43390; Sun, 24 Mar 2024 23:40:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323608; bh=o6El1tKnt4Ehg7Yqmasp327IhVWwumJhRElCNUA259s=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=EYbFzwWgNlq0sUGgqTHR013/SZDWDlXXAuEpOvSshppJ/QUT3x6Vf9QJoq4BB47r2 kA4Dp3Pts0/VF16XM2xvWUHKUJmqOaZQ+K6XTiQoQpGhOXuYsIf+py8X4uFdfLEjfs Y+IuLUxeOxLIQ6zPn17zU+rvwRjC6+2OJEiWfuZuvB73V+/VFLLCNksAgRLlZkXdsh fAkFEUtWEH8wfPDb+BLS+Iuf2YCTaF/uUqUTzUn+/lcn4GkkhVLnu67IHducFipOl8 sWQMlI30fmTljPdDTzh2sthl6iTmawkPpncGHK+vHjS7bqsEuw1gU06vFWCm2XHh7S SVI3FjBdOFbmA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Fei Shao , AngeloGioacchino Del Regno , Mark Brown , Sasha Levin Subject: [PATCH 5.15 315/317] spi: spi-mt65xx: Fix NULL pointer access in interrupt handler Date: Sun, 24 Mar 2024 19:34:55 -0400 Message-ID: <20240324233458.1352854-316-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Fei Shao [ Upstream commit a20ad45008a7c82f1184dc6dee280096009ece55 ] The TX buffer in spi_transfer can be a NULL pointer, so the interrupt handler may end up writing to the invalid memory and cause crashes. Add a check to trans->tx_buf before using it. Fixes: 1ce24864bff4 ("spi: mediatek: Only do dma for 4-byte aligned buffers= ") Signed-off-by: Fei Shao Reviewed-by: AngeloGioacchino Del Regno Link: https://msgid.link/r/20240321070942.1587146-2-fshao@chromium.org Signed-off-by: Mark Brown Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/spi/spi-mt65xx.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/drivers/spi/spi-mt65xx.c b/drivers/spi/spi-mt65xx.c index 49acba1dea1e7..30aac6f093b21 100644 --- a/drivers/spi/spi-mt65xx.c +++ b/drivers/spi/spi-mt65xx.c @@ -659,17 +659,19 @@ static irqreturn_t mtk_spi_interrupt(int irq, void *d= ev_id) mdata->xfer_len =3D min(MTK_SPI_MAX_FIFO_SIZE, len); mtk_spi_setup_packet(master); =20 - cnt =3D mdata->xfer_len / 4; - iowrite32_rep(mdata->base + SPI_TX_DATA_REG, - trans->tx_buf + mdata->num_xfered, cnt); + if (trans->tx_buf) { + cnt =3D mdata->xfer_len / 4; + iowrite32_rep(mdata->base + SPI_TX_DATA_REG, + trans->tx_buf + mdata->num_xfered, cnt); =20 - remainder =3D mdata->xfer_len % 4; - if (remainder > 0) { - reg_val =3D 0; - memcpy(®_val, - trans->tx_buf + (cnt * 4) + mdata->num_xfered, - remainder); - writel(reg_val, mdata->base + SPI_TX_DATA_REG); + remainder =3D mdata->xfer_len % 4; + if (remainder > 0) { + reg_val =3D 0; + memcpy(®_val, + trans->tx_buf + (cnt * 4) + mdata->num_xfered, + remainder); + writel(reg_val, mdata->base + SPI_TX_DATA_REG); + } } =20 mtk_spi_enable_transfer(master); --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EFFB6179943; Sun, 24 Mar 2024 23:40:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323611; cv=none; b=XGVVjgRRjcrNKzO0Czf3aRQ0C9OkLhFhIYd+u2umcPG59oSYp7u8hmy5X502RdTe2WxJukrgtOWQv/M8XgXZGSZKa7xRZehcBWN9Suz7ZnEkl1Ve/e+pPjXtDmNCyEmzWYEKxsb84ofO44XMSzXGEGfAji/5el+uHTNKeRH30iw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323611; c=relaxed/simple; bh=N9J+Q87Gpl6PopGY52TYfWuXItc8bHDolFg3pSYC4uA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=inT4Yw9coeBbtDxnN1LwoodY2zzF6vUB6SNYeShbsdeQA7+O6zXq+sfcKUGa41kT7jt8tedP8TmsvrV0r7hIGsvhwKUatV7R8Ka5Xc/0kHQFdlpQS8C2fz1Rae84x53xfZn1IvKeCQhkmGEWZ0kaDcG2yGoBuJQYvs64dc3IiZw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=nIejtj2H; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="nIejtj2H" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0C9A9C43394; Sun, 24 Mar 2024 23:40:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323609; bh=N9J+Q87Gpl6PopGY52TYfWuXItc8bHDolFg3pSYC4uA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nIejtj2HxIOzRyS2XObCvb4sku/uec0wHOtXq4fGuXjeFqMdS2E2EbMq6GeDyTt4V 4qy7XgTfWFv7NCTGdgfZYL5sQwy+EtfqAmL1hsz00JbL7lvX8+AG6WVaHwb9TKOEu2 /MvVBfcvkZ81EJydFxS3ea+ar+dPVfO7bMnSj4m562WrXGcbnLn9dNebinmQdXkSTh jfYVxl31hLxLsXfQAnP8QIu41iIm2QnwKcRVMwAsyIwPwWSWq+0YKh2hoXXmp1w6ab viYVUMt9REXhP8EP1/dZpmpMTES3yYvHKaJp+EBu/TivophXyYI71GWYpmCxT6JzJR VyaOYMIdK1/RQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Marek Vasut , kernel test robot , Dan Carpenter , Mark Brown , Sasha Levin Subject: [PATCH 5.15 316/317] regmap: Add missing map->bus check Date: Sun, 24 Mar 2024 19:34:56 -0400 Message-ID: <20240324233458.1352854-317-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Marek Vasut [ Upstream commit 5c422f0b970d287efa864b8390a02face404db5d ] The map->bus can be NULL here, add the missing NULL pointer check. Fixes: d77e745613680 ("regmap: Add bulk read/write callbacks into regmap_co= nfig") Reported-by: kernel test robot Reported-by: Dan Carpenter Signed-off-by: Marek Vasut Cc: Dan Carpenter Cc: Mark Brown To: linux-kernel@vger.kernel.org Link: https://lore.kernel.org/r/20220509003035.225272-1-marex@denx.de Signed-off-by: Mark Brown Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- drivers/base/regmap/regmap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/base/regmap/regmap.c b/drivers/base/regmap/regmap.c index 6adb345866610..893b0615935e9 100644 --- a/drivers/base/regmap/regmap.c +++ b/drivers/base/regmap/regmap.c @@ -1836,7 +1836,7 @@ static int _regmap_raw_write_impl(struct regmap *map,= unsigned int reg, map->format.reg_bytes + map->format.pad_bytes + val_len); - else if (map->bus->gather_write) + else if (map->bus && map->bus->gather_write) ret =3D map->bus->gather_write(map->bus_context, map->work_buf, map->format.reg_bytes + map->format.pad_bytes, --=20 2.43.0 From nobody Wed Oct 15 22:31:25 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B1F4717994B; Sun, 24 Mar 2024 23:40:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323611; cv=none; b=j5SBqTgKlwsyKKx3xomeM0F+COrIMugC2vhrfvuHPCqpXdUBm3UkauMIcBhGUW+9X+bqHBwLdJKC0GjHJVGifypc0VkfHXBTFz76K1rUGC1nmri4IJfFVTRS220qYLW72pXMxmtCyEFaIeo83xuvFLEF8HgibtYmIg1E8jBssgA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711323611; c=relaxed/simple; bh=rKNk1Mw5Koh8ee6XK1a+7nOSiONMXt5TTFlMobCF/HE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=fX1Rmc/UGzWSfFSWwx9h8SU0Z+tgZ8QcSaCRmfrJtP0i+fqFnoDVIkKIM8S5azAMTU1CLt8Bthnz1RUWnTZXhHQ7C4Yahc0j8gpOYsg/cNoWCIHjSVxlw7DRC7dVUgGY87MoYR+hpOpiX6zYf1iUSTFUY6lSrfBftz0DD7+DRz4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=SGTyXoGZ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="SGTyXoGZ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1E591C433C7; Sun, 24 Mar 2024 23:40:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711323610; bh=rKNk1Mw5Koh8ee6XK1a+7nOSiONMXt5TTFlMobCF/HE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=SGTyXoGZuAt23Jc41DnuOhsBKrEJIdu05Zh5DIJ+49txwi5TC+OxFDjklfqBMnC4R AUrOt96E8FAG6r1bm+qT5JFVOosoN1/j0Dxak0AnaHV7dodKyzlxwBDndzAHRAI9Ct mn12JUV0zBM4bqK0L5eNC5HWmFz2D4CWl0/4PX0SD+N0FGnExVVBjUI1ZgB/HCWFjM P+BH4JgcRL9LSuoCLLyP7IZwBGNkQCThxorrNq5Z2ynJ0jBF7ojE6sggqn/BRvjzAo SrUUu9yG3ahB7I7mNy9fwv/Hko1HJbgtf5coGizbjdd8fCg6kLztmD14vMo8VWVlZR 0ueFCBDkS0jdA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Sasha Levin Subject: [PATCH 5.15 317/317] Linux 5.15.153-rc1 Date: Sun, 24 Mar 2024 19:34:57 -0400 Message-ID: <20240324233458.1352854-318-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324233458.1352854-1-sashal@kernel.org> References: <20240324233458.1352854-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 918a73d3976f9..bdd523cd005d9 100644 --- a/Makefile +++ b/Makefile @@ -1,8 +1,8 @@ # SPDX-License-Identifier: GPL-2.0 VERSION =3D 5 PATCHLEVEL =3D 15 -SUBLEVEL =3D 152 -EXTRAVERSION =3D +SUBLEVEL =3D 153 +EXTRAVERSION =3D -rc1 NAME =3D Trick or Treat =20 # *DOCUMENTATION* --=20 2.43.0