From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1093E128387; Sun, 24 Mar 2024 23:01: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=1711321281; cv=none; b=nPmHB7biOTmUbuTRZSISa1NFsRXYDgU4LaF836KNy1l1rz30YVuVkifVYJlF0SBClwzYBJ0drzqhh6GBge2N5nqVZf9gisBFkMokmz9biwvAomwcID0tmw3DP1sssaCkAHYMYtjZiqObHGp5UdHZrs+nbadRPll10CU//LvuvLQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321281; c=relaxed/simple; bh=69h97DXk3sezN9njqO4oxBgBj5oS7i0ELO2Bz6h1VXk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=bWwXKYEd6C44uknX4wJYla7EDa/Io+m9vgLyfUW62nEWUiuf72JFOg87iMAbAEMVzOUH4kGkuNJENwSdztp9mBRR588PcuCP9WgtPHZhDHhreTMKXj7dMIMDHpBax7zTVFOlPfg36Dcjb0AfCJM5kLxZFRrr0GP3dmFapd2a5CM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=W5O1arQ6; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="W5O1arQ6" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 48C14C433C7; Sun, 24 Mar 2024 23:01:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321279; bh=69h97DXk3sezN9njqO4oxBgBj5oS7i0ELO2Bz6h1VXk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=W5O1arQ6kDgAHV0lHt0BkKRteMC5Gu9dNELziSpN9EupVBa6HJ1MDPmdE1yvfLvNM peeOpvHVkiKQGsN4tJzRjY03aomesJV5kv7DEZNym7kMxSL5mc+IRsMx4/R3W/HWfw DpAVNBcLMDse9rWvoUsPMZkW4i50LIJsKsKcZyVDI/Yirf/rWRwaReYfrhCwJGvXjy Lj15pe7Raz73HsQftcVvZRRc205YHmGrBviz4zdeL/OwqwMEdbe7KX5X5d+7b0C5Fj 9k6W+uZj44O6zAmA5RvOi7qLwCEGoYJbBYb78aO0/L0NXURfIVC20uh2b8yI80YgJp HMCI5aLMLCyRw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Hans de Goede , Danil Rybakov , Sasha Levin Subject: [PATCH 6.6 001/638] platform/x86: p2sb: On Goldmont only cache P2SB and SPI devfn BAR Date: Sun, 24 Mar 2024 18:50:38 -0400 Message-ID: <20240324230116.1348576-2-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 aec7d25b497ce4a8d044e9496de0aa433f7f8f06 ] On Goldmont p2sb_bar() only ever gets called for 2 devices, the actual P2SB devfn 13,0 and the SPI controller which is part of the P2SB, devfn 13,2. But the current p2sb code tries to cache BAR0 info for all of devfn 13,0 to 13,7 . This involves calling pci_scan_single_device() for device 13 functions 0-7 and the hw does not seem to like pci_scan_single_device() getting called for some of the other hidden devices. E.g. on an ASUS VivoBook D540NV-GQ065T this leads to continuous ACPI errors leading to high CPU usage. Fix this by only caching BAR0 info and thus only calling pci_scan_single_device() for the P2SB and the SPI controller. Fixes: 5913320eb0b3 ("platform/x86: p2sb: Allow p2sb_bar() calls during PCI= device probe") Reported-by: Danil Rybakov Closes: https://bugzilla.kernel.org/show_bug.cgi?id=3D218531 Tested-by: Danil Rybakov Signed-off-by: Hans de Goede Link: https://lore.kernel.org/r/20240304134356.305375-2-hdegoede@redhat.com Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/platform/x86/p2sb.c | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/drivers/platform/x86/p2sb.c b/drivers/platform/x86/p2sb.c index 17cc4b45e0239..a64f56ddd4a44 100644 --- a/drivers/platform/x86/p2sb.c +++ b/drivers/platform/x86/p2sb.c @@ -20,9 +20,11 @@ #define P2SBC_HIDE BIT(8) =20 #define P2SB_DEVFN_DEFAULT PCI_DEVFN(31, 1) +#define P2SB_DEVFN_GOLDMONT PCI_DEVFN(13, 0) +#define SPI_DEVFN_GOLDMONT PCI_DEVFN(13, 2) =20 static const struct x86_cpu_id p2sb_cpu_ids[] =3D { - X86_MATCH_INTEL_FAM6_MODEL(ATOM_GOLDMONT, PCI_DEVFN(13, 0)), + X86_MATCH_INTEL_FAM6_MODEL(ATOM_GOLDMONT, P2SB_DEVFN_GOLDMONT), {} }; =20 @@ -98,21 +100,12 @@ static void p2sb_scan_and_cache_devfn(struct pci_bus *= bus, unsigned int devfn) =20 static int p2sb_scan_and_cache(struct pci_bus *bus, unsigned int devfn) { - unsigned int slot, fn; - - if (PCI_FUNC(devfn) =3D=3D 0) { - /* - * When function number of the P2SB device is zero, scan it and - * other function numbers, and if devices are available, cache - * their BAR0s. - */ - slot =3D PCI_SLOT(devfn); - for (fn =3D 0; fn < NR_P2SB_RES_CACHE; fn++) - p2sb_scan_and_cache_devfn(bus, PCI_DEVFN(slot, fn)); - } else { - /* Scan the P2SB device and cache its BAR0 */ - p2sb_scan_and_cache_devfn(bus, devfn); - } + /* Scan the P2SB device and cache its BAR0 */ + p2sb_scan_and_cache_devfn(bus, devfn); + + /* On Goldmont p2sb_bar() also gets called for the SPI controller */ + if (devfn =3D=3D P2SB_DEVFN_GOLDMONT) + p2sb_scan_and_cache_devfn(bus, SPI_DEVFN_GOLDMONT); =20 if (!p2sb_valid_resource(&p2sb_resources[PCI_FUNC(devfn)].res)) return -ENOENT; --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1D2CA1F9C38; Sun, 24 Mar 2024 23:01: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=1711321282; cv=none; b=sfyDWziZAHPfTaH1/cogxPMscvDx5ShCU3MCtrx+5pIfeumetLk3xwHqr7PcTPQYTudF5kbHGJNx0oOiBDJUccXbZa6S6lVRJKNIcpqjITPEAYUVVimmh0nuNHHHy2T/VH75UREfhJsWBZpR1et0ZR9eTnM8YSOB6Th2pOrbHSY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321282; c=relaxed/simple; bh=1xrkI0FaU02Etf8mrDA9l6QkmHc9mRQrQ7IPVksNPys=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=UjROBUYVNBqvfaAw1JzWLHQRLmVNn8PXJK8jwiN/Zmf6GGnP4Q09lQOXhKeKRF/rVHrXl9gKLz7YecNjprqJ7dIJC+oyDmq+EZL/OLesK127SNnirT1DeYdS7BYzq3KVCsTueiMZkj7bBC+j78hrTBjm8UnPOw/LZdzc7nUc/6o= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=JyEx+EJy; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="JyEx+EJy" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2E7BDC433A6; Sun, 24 Mar 2024 23:01:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321280; bh=1xrkI0FaU02Etf8mrDA9l6QkmHc9mRQrQ7IPVksNPys=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=JyEx+EJyaXf0qTAqUYOupUOukrMqYCICFMoEo4X8zdbD+GXg6aRo5GZ9QwUMlPwyc vLYBZdy4PoWQh8BgsgKi7V7GoV7+Bs0d/GHObj7DS7uMbF2Jbxf3E6I2oLF/+R+MGP 3KPLJUQzKOHJsui34DTq1UUjJv1ds9hgow2Kt5ptSeb6Ji0UKPRIL/RDI8tU5AsMbc nQxmKpzH3ohpVBOOld1ymFlr26DxbIaQCTN2ZkM+tIWfFYJsihwtlgbvCl369Qcc/Z G7Pb6GC/63wcSeUuAiPHAXJP7nXJFu1M8k3ZbAWoh7gdhKkOS8abXEDIha5JR2NdiV PO0S7HpHP5P7w== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jens Axboe , Sasha Levin Subject: [PATCH 6.6 002/638] io_uring/unix: drop usage of io_uring socket Date: Sun, 24 Mar 2024 18:50:39 -0400 Message-ID: <20240324230116.1348576-3-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- include/linux/io_uring.h | 10 +++++----- io_uring/io_uring.c | 13 ------------- io_uring/io_uring.h | 1 - net/core/scm.c | 2 +- net/unix/scm.c | 4 +--- 5 files changed, 7 insertions(+), 23 deletions(-) diff --git a/include/linux/io_uring.h b/include/linux/io_uring.h index 106cdc55ff3bd..f99ff6de926cb 100644 --- a/include/linux/io_uring.h +++ b/include/linux/io_uring.h @@ -46,7 +46,6 @@ int io_uring_cmd_import_fixed(u64 ubuf, unsigned long len= , int rw, struct iov_iter *iter, void *ioucmd); void io_uring_cmd_done(struct io_uring_cmd *cmd, ssize_t ret, ssize_t res2, unsigned issue_flags); -struct sock *io_uring_get_socket(struct file *file); void __io_uring_cancel(bool cancel_all); void __io_uring_free(struct task_struct *tsk); void io_uring_unreg_ringfd(void); @@ -82,6 +81,7 @@ static inline void io_uring_free(struct task_struct *tsk) __io_uring_free(tsk); } int io_uring_cmd_sock(struct io_uring_cmd *cmd, unsigned int issue_flags); +bool io_is_uring_fops(struct file *file); #else static inline int io_uring_cmd_import_fixed(u64 ubuf, unsigned long len, i= nt rw, struct iov_iter *iter, void *ioucmd) @@ -100,10 +100,6 @@ static inline void io_uring_cmd_do_in_task_lazy(struct= io_uring_cmd *ioucmd, void (*task_work_cb)(struct io_uring_cmd *, unsigned)) { } -static inline struct sock *io_uring_get_socket(struct file *file) -{ - return NULL; -} static inline void io_uring_task_cancel(void) { } @@ -122,6 +118,10 @@ static inline int io_uring_cmd_sock(struct io_uring_cm= d *cmd, { return -EOPNOTSUPP; } +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 ea772a02c1405..747d2a6ecab89 100644 --- a/io_uring/io_uring.c +++ b/io_uring/io_uring.c @@ -175,19 +175,6 @@ static struct ctl_table kernel_io_uring_disabled_table= [] =3D { }; #endif =20 -struct sock *io_uring_get_socket(struct file *file) -{ -#if defined(CONFIG_UNIX) - if (io_is_uring_fops(file)) { - 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_submit_flush_completions(struct io_ring_ctx *ctx) { if (!wq_list_empty(&ctx->submit_state.compl_reqs) || diff --git a/io_uring/io_uring.h b/io_uring/io_uring.h index c8cba78310831..411c883b37a95 100644 --- a/io_uring/io_uring.h +++ b/io_uring/io_uring.h @@ -61,7 +61,6 @@ struct file *io_file_get_fixed(struct io_kiocb *req, int = fd, unsigned issue_flags); =20 void __io_req_task_work_add(struct io_kiocb *req, unsigned flags); -bool io_is_uring_fops(struct file *file); bool io_alloc_async_data(struct io_kiocb *req); void io_req_task_queue(struct io_kiocb *req); void io_queue_iowq(struct io_kiocb *req, struct io_tw_state *ts_dont_use); diff --git a/net/core/scm.c b/net/core/scm.c index 7dc47c17d8638..737917c7ac627 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 6ff628f2349f5..822ce0d0d7915 100644 --- a/net/unix/scm.c +++ b/net/unix/scm.c @@ -35,10 +35,8 @@ struct sock *unix_get_socket(struct file *filp) /* PF_UNIX ? */ if (s && ops && 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 Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9EAB212F5B4; Sun, 24 Mar 2024 23:01: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=1711321282; cv=none; b=pAbdRMJqoYBOMJSJzXPpgNKKf20YRQVaHVcpK/VJ8oaNvlJNuHG6X6h65rdFEEVYzg+Xsj1xB5pNpIz6MJibr1b0pMZV1DjjVdFR2c4wnd3cyHzarHVsxFNyoJlAjal4db4EgKfg8/pf7JpFlTaXg6C7W2H8wDgJ1/in4y+QLAE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321282; c=relaxed/simple; bh=lG9e6KRtjN/U1H6KMmjH5jokgsg175DdzyNoabZ/AVs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=NkrfpqbXKR//dHyRYBMdtkv1RlM7Jv+oh6Sox8kJbYrsHDIedVx+HChV1617dSwFxbK0LrU0TDINmXmYfA8hidG+sn77BMGZITK157la/4Uf22pse7rAcetatwtAwErdNQhI36dOsnD7KxO2MJ0nGBkPvPAvNEQGEmPtqt77AkE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=nU0Fi7+m; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="nU0Fi7+m" Received: by smtp.kernel.org (Postfix) with ESMTPSA id F0BFAC433F1; Sun, 24 Mar 2024 23:01:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321281; bh=lG9e6KRtjN/U1H6KMmjH5jokgsg175DdzyNoabZ/AVs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nU0Fi7+mXK9HZQnflVHCUxyk9zm9UW9GCdftn4k4j4+Do71TpjWJvdPgVX4YidWnO JCafBotnBIsH41yANIFK6PhE9y9cComd8TAxwAYy7rI+vAMXxQJ6MX28RSKFswoDVa bfKn1qMkgD5bFNqOCzarSeh+TvhPQFcFV9uj4fgy+jmf2KL16dOwYqNo+pSXJbkM2z AYViXq6SD5Y4PPtKPWifngeWGA3BEE6dK8P84Btxn0gUHyXVekNtX0HQYiXFzdFsk3 N5B87PMOtI2RvjV4Pdnyg9p+fWS3gXDYwuoruFpqLChfSk9tFmPDwyFtG2BN3iY2lF fEB+gNNhjul/A== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jens Axboe , Sasha Levin Subject: [PATCH 6.6 003/638] io_uring: drop any code related to SCM_RIGHTS Date: Sun, 24 Mar 2024 18:50:40 -0400 Message-ID: <20240324230116.1348576-4-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 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 Tested-by: Takeshi Ogasawara --- include/linux/io_uring_types.h | 3 - io_uring/filetable.c | 11 +-- io_uring/io_uring.c | 32 +------ io_uring/rsrc.c | 169 +-------------------------------- io_uring/rsrc.h | 15 --- 5 files changed, 10 insertions(+), 220 deletions(-) diff --git a/include/linux/io_uring_types.h b/include/linux/io_uring_types.h index 5fd664fb71c86..731beb3198c4f 100644 --- a/include/linux/io_uring_types.h +++ b/include/linux/io_uring_types.h @@ -347,9 +347,6 @@ struct io_ring_ctx { =20 struct list_head io_buffers_pages; =20 - #if defined(CONFIG_UNIX) - struct socket *ring_sock; - #endif /* hashed buffered write serialization */ struct io_wq_hash *hash_map; =20 diff --git a/io_uring/filetable.c b/io_uring/filetable.c index e7d749991de42..6e86e6188dbee 100644 --- a/io_uring/filetable.c +++ b/io_uring/filetable.c @@ -87,13 +87,10 @@ static int io_install_fixed_file(struct io_ring_ctx *ct= x, struct file *file, io_file_bitmap_clear(&ctx->file_table, slot_index); } =20 - ret =3D io_scm_file_account(ctx, file); - if (!ret) { - *io_get_tag_slot(ctx->file_data, slot_index) =3D 0; - io_fixed_file_set(file_slot, file); - io_file_bitmap_set(&ctx->file_table, slot_index); - } - return ret; + *io_get_tag_slot(ctx->file_data, slot_index) =3D 0; + io_fixed_file_set(file_slot, file); + io_file_bitmap_set(&ctx->file_table, slot_index); + return 0; } =20 int __io_fixed_fd_install(struct io_ring_ctx *ctx, struct file *file, diff --git a/io_uring/io_uring.c b/io_uring/io_uring.c index 747d2a6ecab89..2744d72f10858 100644 --- a/io_uring/io_uring.c +++ b/io_uring/io_uring.c @@ -60,7 +60,6 @@ #include #include #include -#include #include #include #include @@ -2931,13 +2930,6 @@ static __cold void io_ring_ctx_free(struct io_ring_c= tx *ctx) io_rsrc_node_destroy(ctx, ctx->rsrc_node); =20 WARN_ON_ONCE(!list_empty(&ctx->rsrc_ref_list)); - -#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 io_alloc_cache_free(&ctx->rsrc_node_cache, io_rsrc_node_cache_free); @@ -3825,32 +3817,12 @@ static int io_uring_install_fd(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_secure("[io_uring]", &io_uring_fops, ctx, + return anon_inode_getfile_secure("[io_uring]", &io_uring_fops, ctx, O_RDWR | O_CLOEXEC, NULL); -#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; } =20 static __cold int io_uring_create(unsigned entries, struct io_uring_params= *p, diff --git a/io_uring/rsrc.c b/io_uring/rsrc.c index dde501abd7196..95230921b16d0 100644 --- a/io_uring/rsrc.c +++ b/io_uring/rsrc.c @@ -24,7 +24,6 @@ struct io_rsrc_update { }; =20 static void io_rsrc_buf_put(struct io_ring_ctx *ctx, struct io_rsrc_put *p= rsrc); -static void io_rsrc_file_put(struct io_ring_ctx *ctx, struct io_rsrc_put *= prsrc); static int io_sqe_buffer_register(struct io_ring_ctx *ctx, struct iovec *i= ov, struct io_mapped_ubuf **pimu, struct page **last_hpage); @@ -157,7 +156,7 @@ static void io_rsrc_put_work(struct io_rsrc_node *node) =20 switch (node->type) { case IORING_RSRC_FILE: - io_rsrc_file_put(node->ctx, prsrc); + fput(prsrc->file); break; case IORING_RSRC_BUFFER: io_rsrc_buf_put(node->ctx, prsrc); @@ -402,23 +401,13 @@ static int __io_sqe_files_update(struct io_ring_ctx *= ctx, break; } /* - * Don't allow io_uring instances to be registered. If - * UNIX isn't enabled, then this causes a reference - * cycle and this instance can never get freed. If UNIX - * is enabled we'll handle it just fine, but there's - * still no point in allowing a ring fd as it doesn't - * support regular read/write anyway. + * Don't allow io_uring instances to be registered. */ if (io_is_uring_fops(file)) { fput(file); err =3D -EBADF; break; } - err =3D io_scm_file_account(ctx, file); - if (err) { - fput(file); - break; - } *io_get_tag_slot(data, i) =3D tag; io_fixed_file_set(file_slot, file); io_file_bitmap_set(&ctx->file_table, i); @@ -675,22 +664,12 @@ void __io_sqe_files_unregister(struct io_ring_ctx *ct= x) for (i =3D 0; i < ctx->nr_user_files; i++) { struct file *file =3D io_file_from_index(&ctx->file_table, i); =20 - /* skip scm accounted files, they'll be freed by ->ring_sock */ - if (!file || io_file_need_scm(file)) + if (!file) continue; io_file_bitmap_clear(&ctx->file_table, i); fput(file); } =20 -#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); - } -#endif io_free_file_tables(&ctx->file_table); io_file_table_set_alloc_range(ctx, 0, 0); io_rsrc_data_free(ctx->file_data); @@ -718,137 +697,6 @@ int io_sqe_files_unregister(struct io_ring_ctx *ctx) return ret; } =20 -/* - * 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. We account only files that can hold other - * files because otherwise they can't form a loop and so are not interesti= ng - * for GC. - */ -int __io_scm_file_account(struct io_ring_ctx *ctx, struct file *file) -{ -#if defined(CONFIG_UNIX) - struct sock *sk =3D ctx->ring_sock->sk; - struct sk_buff_head *head =3D &sk->sk_receive_queue; - struct scm_fp_list *fpl; - struct sk_buff *skb; - - if (likely(!io_file_need_scm(file))) - return 0; - - /* - * See if we can merge this file into an existing skb SCM_RIGHTS - * file set. If there's no room, fall back to allocating a new skb - * and filling it in. - */ - spin_lock_irq(&head->lock); - skb =3D skb_peek(head); - if (skb && UNIXCB(skb).fp->count < SCM_MAX_FD) - __skb_unlink(skb, head); - else - skb =3D NULL; - spin_unlock_irq(&head->lock); - - if (!skb) { - fpl =3D kzalloc(sizeof(*fpl), GFP_KERNEL); - if (!fpl) - return -ENOMEM; - - skb =3D alloc_skb(0, GFP_KERNEL); - if (!skb) { - kfree(fpl); - return -ENOMEM; - } - - fpl->user =3D get_uid(current_user()); - fpl->max =3D SCM_MAX_FD; - fpl->count =3D 0; - - UNIXCB(skb).fp =3D fpl; - skb->sk =3D sk; - skb->destructor =3D io_uring_destruct_scm; - refcount_add(skb->truesize, &sk->sk_wmem_alloc); - } - - fpl =3D UNIXCB(skb).fp; - fpl->fp[fpl->count++] =3D get_file(file); - unix_inflight(fpl->user, file); - skb_queue_head(head, skb); - fput(file); -#endif - return 0; -} - -static __cold void io_rsrc_file_scm_put(struct io_ring_ctx *ctx, struct fi= le *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; - - __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); - } -#endif -} - -static void io_rsrc_file_put(struct io_ring_ctx *ctx, struct io_rsrc_put *= prsrc) -{ - struct file *file =3D prsrc->file; - - if (likely(!io_file_need_scm(file))) - fput(file); - else - io_rsrc_file_scm_put(ctx, file); -} - int io_sqe_files_register(struct io_ring_ctx *ctx, void __user *arg, unsigned nr_args, u64 __user *tags) { @@ -897,21 +745,12 @@ int io_sqe_files_register(struct io_ring_ctx *ctx, vo= id __user *arg, goto fail; =20 /* - * Don't allow io_uring instances to be registered. If UNIX - * isn't enabled, then this causes a reference cycle and this - * instance can never get freed. If UNIX is enabled we'll - * handle it just fine, but there's still no point in allowing - * a ring fd as it doesn't support regular read/write anyway. + * Don't allow io_uring instances to be registered. */ if (io_is_uring_fops(file)) { fput(file); goto fail; } - ret =3D io_scm_file_account(ctx, file); - if (ret) { - fput(file); - goto fail; - } file_slot =3D io_fixed_file_slot(&ctx->file_table, i); io_fixed_file_set(file_slot, file); io_file_bitmap_set(&ctx->file_table, i); diff --git a/io_uring/rsrc.h b/io_uring/rsrc.h index 08ac0d8e07ef8..7238b9cfe33b6 100644 --- a/io_uring/rsrc.h +++ b/io_uring/rsrc.h @@ -75,21 +75,6 @@ int io_sqe_files_unregister(struct io_ring_ctx *ctx); int io_sqe_files_register(struct io_ring_ctx *ctx, void __user *arg, unsigned nr_args, u64 __user *tags); =20 -int __io_scm_file_account(struct io_ring_ctx *ctx, struct file *file); - -static inline bool io_file_need_scm(struct file *filp) -{ - return false; -} - -static inline int io_scm_file_account(struct io_ring_ctx *ctx, - struct file *file) -{ - if (likely(!io_file_need_scm(file))) - return 0; - return __io_scm_file_account(ctx, file); -} - int io_register_files_update(struct io_ring_ctx *ctx, void __user *arg, unsigned nr_args); int io_register_rsrc_update(struct io_ring_ctx *ctx, void __user *arg, --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9C3AD1E4A31; Sun, 24 Mar 2024 23:01: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=1711321283; cv=none; b=HPl7TrKXxj4DG8fW06gugANmHOyY8CJfRNRblFDY6WM4/epllFr5J42j5mCwt0QBlbnPT+mrcfjq13zrT10kPyxXt6GcEHCWtE2jVWteOSIOvQXVl9UulXMDggzuVlWq5xJZ+WK6Sqb4s3/Ltw3qZHWiCl8YDLJ2Iq7YWe5FZuw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321283; c=relaxed/simple; bh=8z2nE/zW8rE3KsAFpVlPxAcg/pD53I/rou9MThQ9TEU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=O462WYpW5/smGdy6Tk/v3psNBtMR4zT0XvYkZ+tFiCdh0EghCk0Q4MS/VAyCoIRLKZ34/c/+Vzo6Vl5UNk0W+LN49a/i6sara3BECEJPjhvBh+PJ8x7clgd+Frw7tjr5qMlI+V8D1OhEkFMQQ/eGsf2/MOoWvopbA7JPrfBg7OQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=fztzV6lr; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="fztzV6lr" Received: by smtp.kernel.org (Postfix) with ESMTPSA id C017FC43390; Sun, 24 Mar 2024 23:01:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321282; bh=8z2nE/zW8rE3KsAFpVlPxAcg/pD53I/rou9MThQ9TEU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=fztzV6lrstsZa0aJQ3iVnQCmcnuQtW4ZablI0T4RRDv41eATEaigby51AUNwEeriG UfvroCzLhW8D3VBlEW3BpwWHM723tC920ZcPBKjfl6T80K1yC3tollCD5DrUcP6SAz 6myca5IIUCKSRl/+Pgj19RVBgwHxLXLJY8/U0Fj/DBtEkQp/ZBUIT08dMrZhkHdpMq 735nA9bPfQ5igRlZYubd9IrMIwCaOgjKoBPdIF8D108xY2Luzj+ImJaY404Z6eWB5g WfivaBvP7ACBwAccOrf4cfmUsXzJ3b6crxowlnoCAbCkGQDLJkDxAvQFd/yVuwyz73 sif5u3vadTI7Q== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Johan Hovold , Bjorn Andersson , Dmitry Baryshkov , Sasha Levin Subject: [PATCH 6.6 004/638] soc: qcom: pmic_glink_altmode: fix drm bridge use-after-free Date: Sun, 24 Mar 2024 18:50:41 -0400 Message-ID: <20240324230116.1348576-5-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 commit b979f2d50a099f3402418d7ff5f26c3952fb08bb upstream. A recent DRM series purporting to simplify support for "transparent bridges" and handling of probe deferrals ironically exposed a use-after-free issue on pmic_glink_altmode probe deferral. This has manifested itself as the display subsystem occasionally failing to initialise and NULL-pointer dereferences during boot of machines like the Lenovo ThinkPad X13s. Specifically, the dp-hpd bridge is currently registered before all resources have been acquired which means that it can also be deregistered on probe deferrals. In the meantime there is a race window where the new aux bridge driver (or PHY driver previously) may have looked up the dp-hpd bridge and stored a (non-reference-counted) pointer to the bridge which is about to be deallocated. When the display controller is later initialised, this triggers a use-after-free when attaching the bridges: dp -> aux -> dp-hpd (freed) which may, for example, result in the freed bridge failing to attach: [drm:drm_bridge_attach [drm]] *ERROR* failed to attach bridge /soc@0/phy@8= 8eb000 to encoder TMDS-31: -16 or a NULL-pointer dereference: Unable to handle kernel NULL pointer dereference at virtual address 000000= 0000000000 ... Call trace: drm_bridge_attach+0x70/0x1a8 [drm] drm_aux_bridge_attach+0x24/0x38 [aux_bridge] drm_bridge_attach+0x80/0x1a8 [drm] dp_bridge_init+0xa8/0x15c [msm] msm_dp_modeset_init+0x28/0xc4 [msm] The DRM bridge implementation is clearly fragile and implicitly built on the assumption that bridges may never go away. In this case, the fix is to move the bridge registration in the pmic_glink_altmode driver to after all resources have been looked up. Incidentally, with the new dp-hpd bridge implementation, which registers child devices, this is also a requirement due to a long-standing issue in driver core that can otherwise lead to a probe deferral loop (see commit fbc35b45f9f6 ("Add documentation on meaning of -EPROBE_DEFER")). [DB: slightly fixed commit message by adding the word 'commit'] Fixes: 080b4e24852b ("soc: qcom: pmic_glink: Introduce altmode support") Fixes: 2bcca96abfbf ("soc: qcom: pmic-glink: switch to DRM_AUX_HPD_BRIDGE") Cc: # 6.3 Cc: Bjorn Andersson Cc: Dmitry Baryshkov Signed-off-by: Johan Hovold Reviewed-by: Bjorn Andersson Reviewed-by: Dmitry Baryshkov Signed-off-by: Dmitry Baryshkov Link: https://patchwork.freedesktop.org/patch/msgid/20240217150228.5788-4-j= ohan+linaro@kernel.org [ johan: backport to 6.7 which does not have DRM aux bridge ] Signed-off-by: Johan Hovold Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/soc/qcom/pmic_glink_altmode.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/drivers/soc/qcom/pmic_glink_altmode.c b/drivers/soc/qcom/pmic_= glink_altmode.c index 9b0000b5f064c..a35df66bb07b5 100644 --- a/drivers/soc/qcom/pmic_glink_altmode.c +++ b/drivers/soc/qcom/pmic_glink_altmode.c @@ -469,12 +469,6 @@ static int pmic_glink_altmode_probe(struct auxiliary_d= evice *adev, alt_port->bridge.ops =3D DRM_BRIDGE_OP_HPD; alt_port->bridge.type =3D DRM_MODE_CONNECTOR_DisplayPort; =20 - ret =3D devm_drm_bridge_add(dev, &alt_port->bridge); - if (ret) { - fwnode_handle_put(fwnode); - return ret; - } - alt_port->dp_alt.svid =3D USB_TYPEC_DP_SID; alt_port->dp_alt.mode =3D USB_TYPEC_DP_MODE; alt_port->dp_alt.active =3D 1; @@ -525,6 +519,16 @@ static int pmic_glink_altmode_probe(struct auxiliary_d= evice *adev, } } =20 + for (port =3D 0; port < ARRAY_SIZE(altmode->ports); port++) { + alt_port =3D &altmode->ports[port]; + if (!alt_port->altmode) + continue; + + ret =3D devm_drm_bridge_add(dev, &alt_port->bridge); + if (ret) + return ret; + } + altmode->client =3D devm_pmic_glink_register_client(dev, altmode->owner_id, pmic_glink_altmode_callback, --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 990E31FA809; Sun, 24 Mar 2024 23:01: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=1711321284; cv=none; b=h1KEvhrTrhOwIG+M+8omXMgZt0FRhpPDBqQ7wrqeV6ErDPdWa3Fb4IysHxG0QEI2+1nSaVwvLpmyny9nLQ/kx6/6t12H175x75UBOhaEmcLMRRqTgHo9q0bc6Wa9IyKCNgiWBo/5/CUjkAo36ik7V5pBnDod6JMTj1M8VLe6AO8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321284; c=relaxed/simple; bh=JvLxDW07Gt/27exbqBLUQLZ3ITh8Gwx3ZVFx5ssdy/Q=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=lG7l8adNEnADSrDpQyjgHXHVdOWJkI9bJKp+dHuuvbmtg1h5vhEhM+kWDnevFkcqZCY9prpew+HDFWxe7ntajr4Klc0IVyM+HX8pk7PAbuOeQqt3NRoJtHipo9mqcAgqU8PS6XWvIzJm7cMfvkIFN0AZakB3LFe+Jub3bF4wGSk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=hVULR1W+; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="hVULR1W+" Received: by smtp.kernel.org (Postfix) with ESMTPSA id C0914C43394; Sun, 24 Mar 2024 23:01:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321283; bh=JvLxDW07Gt/27exbqBLUQLZ3ITh8Gwx3ZVFx5ssdy/Q=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=hVULR1W+CXCvbuQFrL10qg1Uj+2Hg75RNLz3rkPU2gem7jaZ94dWpS/b5OcqBOvHb fM+RCx+GbSqAL10nFqYtVmgSGcrn2NL0xLwrqfGK32yDQQc7f64qy9bzgwCA+OWoyg fdr0/9EgO+ZFmw0Tr9ShulrNdA/dhph2LG7ujCW2iMYA1FgfLpKKq48e6ZuQA0GkqW m43iEHviiSnAMImt3hE+B6QV2pkPNUEn5gUsQsml0x09xnqGxHr2R/ZINtdico82Nk b/wvnRvTq5p16KWVmcV1vxV1WEGYaBpNQdxcAujjAYy2M9hIHe3cVQjngSg1a91OmM rLX49l49wsoEw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Tomi Valkeinen , Laurent Pinchart , Mauro Carvalho Chehab , Sasha Levin Subject: [PATCH 6.6 005/638] media: rkisp1: Fix IRQ handling due to shared interrupts Date: Sun, 24 Mar 2024 18:50:42 -0400 Message-ID: <20240324230116.1348576-6-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 ffb635bb398fc07cb38f8a7b4a82cbe5f412f08e ] The driver requests the interrupts as IRQF_SHARED, so the interrupt handlers can be called at any time. If such a call happens while the ISP is powered down, the SoC will hang as the driver tries to access the ISP registers. This can be reproduced even without the platform sharing the IRQ line: Enable CONFIG_DEBUG_SHIRQ and unload the driver, and the board will hang. Fix this by adding a new field, 'irqs_enabled', which is used to bail out from the interrupt handler when the ISP is not operational. Link: https://lore.kernel.org/r/20231218-rkisp-shirq-fix-v1-2-173007628248@= ideasonboard.com Signed-off-by: Tomi Valkeinen Signed-off-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- .../platform/rockchip/rkisp1/rkisp1-capture.c | 3 +++ .../platform/rockchip/rkisp1/rkisp1-common.h | 2 ++ .../platform/rockchip/rkisp1/rkisp1-csi.c | 3 +++ .../platform/rockchip/rkisp1/rkisp1-dev.c | 22 +++++++++++++++++++ .../platform/rockchip/rkisp1/rkisp1-isp.c | 3 +++ 5 files changed, 33 insertions(+) diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c b/driv= ers/media/platform/rockchip/rkisp1/rkisp1-capture.c index 8f3cba3197623..c584bb6d31998 100644 --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c @@ -723,6 +723,9 @@ irqreturn_t rkisp1_capture_isr(int irq, void *ctx) unsigned int i; u32 status; =20 + if (!rkisp1->irqs_enabled) + return IRQ_NONE; + status =3D rkisp1_read(rkisp1, RKISP1_CIF_MI_MIS); if (!status) return IRQ_NONE; diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-common.h b/drive= rs/media/platform/rockchip/rkisp1/rkisp1-common.h index 104a1dbeff433..e9bc6c155d2fc 100644 --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-common.h +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-common.h @@ -467,6 +467,7 @@ struct rkisp1_debug { * @debug: debug params to be exposed on debugfs * @info: version-specific ISP information * @irqs: IRQ line numbers + * @irqs_enabled: the hardware is enabled and can cause interrupts */ struct rkisp1_device { void __iomem *base_addr; @@ -488,6 +489,7 @@ struct rkisp1_device { struct rkisp1_debug debug; const struct rkisp1_info *info; int irqs[RKISP1_NUM_IRQS]; + bool irqs_enabled; }; =20 /* diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-csi.c b/drivers/= media/platform/rockchip/rkisp1/rkisp1-csi.c index 0a67eb96402cb..1537dccbd2e28 100644 --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-csi.c +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-csi.c @@ -211,6 +211,9 @@ irqreturn_t rkisp1_csi_isr(int irq, void *ctx) struct rkisp1_device *rkisp1 =3D dev_get_drvdata(dev); u32 val, status; =20 + if (!rkisp1->irqs_enabled) + return IRQ_NONE; + status =3D rkisp1_read(rkisp1, RKISP1_CIF_MIPI_MIS); if (!status) return IRQ_NONE; diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-dev.c b/drivers/= media/platform/rockchip/rkisp1/rkisp1-dev.c index acc559652d6eb..73cf08a740118 100644 --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-dev.c +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-dev.c @@ -305,6 +305,24 @@ static int __maybe_unused rkisp1_runtime_suspend(struc= t device *dev) { struct rkisp1_device *rkisp1 =3D dev_get_drvdata(dev); =20 + rkisp1->irqs_enabled =3D false; + /* Make sure the IRQ handler will see the above */ + mb(); + + /* + * Wait until any running IRQ handler has returned. The IRQ handler + * may get called even after this (as it's a shared interrupt line) + * but the 'irqs_enabled' flag will make the handler return immediately. + */ + for (unsigned int il =3D 0; il < ARRAY_SIZE(rkisp1->irqs); ++il) { + if (rkisp1->irqs[il] =3D=3D -1) + continue; + + /* Skip if the irq line is the same as previous */ + if (il =3D=3D 0 || rkisp1->irqs[il - 1] !=3D rkisp1->irqs[il]) + synchronize_irq(rkisp1->irqs[il]); + } + clk_bulk_disable_unprepare(rkisp1->clk_size, rkisp1->clks); return pinctrl_pm_select_sleep_state(dev); } @@ -321,6 +339,10 @@ static int __maybe_unused rkisp1_runtime_resume(struct= device *dev) if (ret) return ret; =20 + rkisp1->irqs_enabled =3D true; + /* Make sure the IRQ handler will see the above */ + mb(); + return 0; } =20 diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-isp.c b/drivers/= media/platform/rockchip/rkisp1/rkisp1-isp.c index 2239fb6c7d393..8fc9c1c116f1d 100644 --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-isp.c +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-isp.c @@ -1027,6 +1027,9 @@ irqreturn_t rkisp1_isp_isr(int irq, void *ctx) struct rkisp1_device *rkisp1 =3D dev_get_drvdata(dev); u32 status, isp_err; =20 + if (!rkisp1->irqs_enabled) + return IRQ_NONE; + status =3D rkisp1_read(rkisp1, RKISP1_CIF_ISP_MIS); if (!status) return IRQ_NONE; --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7B81B1FA813; Sun, 24 Mar 2024 23:01: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=1711321285; cv=none; b=Fk1OmziOt06k7GbgHiXv9XbC4WeQOY4/kcdJm1T5GM93VAH7hm5H5XkPMxqx8XVRE8mJhKoAjNqsWjjFsHeV5oxBgbfUp8GaZuGVPKxG0ss9rG0tErfrWhf89aB8xVcsp8E5AIpIHnZqEvDJlA5E1hdp+0LwlXBHpfGQjQSluIg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321285; c=relaxed/simple; bh=seMaBnzxWwvV+xWVKAtZ7vvq6fEuoCY+K3+gKI3+l9s=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mvWvew5OfPV/fKHNzN+CpZopLsrojWoFNuouWuCkOQQnla5FVfEj3VsytzzwtnJvg6AxMJlIqnPPbNz4ZoPulc2XVrP3Ny195H+QCqvD/qFvD8n/pPuM+ketc9mBdCktHGa4Rr3ojGAUVi1CcmbzNJTBHxZINyM1l8Q0uxLHPjU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=mmFo7MbX; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="mmFo7MbX" Received: by smtp.kernel.org (Postfix) with ESMTPSA id BA7B3C433F1; Sun, 24 Mar 2024 23:01:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321284; bh=seMaBnzxWwvV+xWVKAtZ7vvq6fEuoCY+K3+gKI3+l9s=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=mmFo7MbXhs7TeTpMPilYUOiFrHRNoBTx5PAgSn/QFpSCGDV6Whkc7+CkfQfHPRa+S g2HAuXIxVWsXxETamThL9kz/DI9w1LM7pd+zH4aE0VqkHkjJyDqwQIGWAs62QhnSQH LtMfI/c57rRvY7KtbtF91gBhRCdD5LglICj2Lp+D5IUMyAVwR0Mw/YTrbG1wfJb7OR T9oRWwhf39VSdlQB1UYDYMPdzVOJe9l9JhluBPiXRMd2Dq7m5LvOZgDbiXc/XswsZv IeCyuqS9wxc+NyKN7zLg7JlyAAuPFnoQvHKls8cYdRGITWobrR2LD5SGwe0E4c9u89 r7d6P4XWtYsDA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Charles Keepax , Mark Brown , Sasha Levin Subject: [PATCH 6.6 006/638] ASoC: cs42l43: Handle error from devm_pm_runtime_enable Date: Sun, 24 Mar 2024 18:50:43 -0400 Message-ID: <20240324230116.1348576-7-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Charles Keepax [ Upstream commit d1722057477a3786b8c0d60c28fc281f6ecf1cc3 ] As devm_pm_runtime_enable can fail due to memory allocations, it is best to handle the error. Signed-off-by: Charles Keepax Link: https://lore.kernel.org/r/20240206113850.719888-1-ckeepax@opensource.= cirrus.com Signed-off-by: Mark Brown Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- sound/soc/codecs/cs42l43.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/sound/soc/codecs/cs42l43.c b/sound/soc/codecs/cs42l43.c index 5643c666d7d04..8015f4b7a5b32 100644 --- a/sound/soc/codecs/cs42l43.c +++ b/sound/soc/codecs/cs42l43.c @@ -2175,7 +2175,10 @@ static int cs42l43_codec_probe(struct platform_devic= e *pdev) pm_runtime_use_autosuspend(priv->dev); pm_runtime_set_active(priv->dev); pm_runtime_get_noresume(priv->dev); - devm_pm_runtime_enable(priv->dev); + + ret =3D devm_pm_runtime_enable(priv->dev); + if (ret) + goto err_pm; =20 for (i =3D 0; i < ARRAY_SIZE(cs42l43_irqs); i++) { ret =3D cs42l43_request_irq(priv, dom, cs42l43_irqs[i].name, --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 781681FA819; Sun, 24 Mar 2024 23:01: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=1711321286; cv=none; b=Wu+cmDaLqmUszL/ZKna7S7+PRrSJcvPuQGj98wXMb1tjq5IZXbxuJCMYjGCsQd8zw3by9eKgC2K1ZZvNAfM33V+Zq7JImAnFh5uGC+zoZwYCIaWg4V1AQcAaaE37UCRzgvoH7IXWMSut+ui9wJMd7EP1/dcpCk/ZuAEf64LuKZs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321286; c=relaxed/simple; bh=hoUFVXBUc4PJkc2Bbi/RC+j7C+Z0Ys8ZxYU9GzypvvU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=pCCniltd+BLTUdDkbTMOKsT/yVmsOY5TcBdOhMkhB1PLuWOuIdI+GCDBhKK1ANwKmK6SR8jJe16ws8cAcPZRWbZrtofpdxnkItqTDJCyUohA7qcYWRA9FoGNqKpYpA1X07dtTwGknN5H+cT+EADkkOCYEZ0WEIczhalxHJo34+k= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=pXLEXN76; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="pXLEXN76" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A0176C43390; Sun, 24 Mar 2024 23:01:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321285; bh=hoUFVXBUc4PJkc2Bbi/RC+j7C+Z0Ys8ZxYU9GzypvvU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=pXLEXN76g833SLG2MAxfG7XBrnbbimwMPoRFYTrSgMxGsgIAop+BYC4QbZLYIUXOL XRnrh3WwNA3MSGJnBmTNeBYquXo1MJCLmZixpNlVnMJDv7cULnzUgLzZEjV1qCiIEG O+vhTpd85fmgSue2CXAUfcNlcb+kNGGvnLHT+dx7ApuvEqcISL/4/JE96PuNLLskCJ 457I6rUcj7b+0PkNHpmmxNdITcqTURYdF1mGo9qDNvA2okk5uBwa4fjtn/PSZH2TL5 hHGYVVtFEPVam45c4EgdRzg9TOBeVf/taci8zfnfjvBILl2fIKfSn5FaOQGYzWvvK5 cEx32ZN8Adtsw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Daniel Gabay , Miri Korenblit , Johannes Berg , Sasha Levin Subject: [PATCH 6.6 007/638] wifi: iwlwifi: mvm: use correct address 3 in A-MSDU Date: Sun, 24 Mar 2024 18:50:44 -0400 Message-ID: <20240324230116.1348576-8-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Gabay [ Upstream commit 2e57b77583ca34fdb6e14f253172636c52f81cf2 ] As described in IEEE sta 802.11-2020, table 9-30 (Address field contents), A-MSDU address 3 should contain the BSSID address. In TX_CMD we copy the MAC header from skb, and skb address 3 holds the destination address, but it may not be identical to the BSSID. Using the wrong destination address appears to work with (most) receivers without MLO, but in MLO some devices are checking for it carefully, perhaps as a consequence of link to MLD address translation. Replace address 3 in the TX_CMD MAC header with the correct address while retaining the skb address 3 unchanged. This ensures that skb address 3 will be utilized later for constructing the A-MSDU subframes. Note that we fill in the MLD address, but the firmware will do the necessary translation to link address after encryption. Signed-off-by: Daniel Gabay Signed-off-by: Miri Korenblit Link: https://msgid.link/20240204235836.4583a1bf9188.I3f8e7892bdf8f86b4daa2= 8453771a8c9817b2416@changeid Signed-off-by: Johannes Berg Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/net/wireless/intel/iwlwifi/mvm/tx.c | 69 ++++++++++++++++++--- 1 file changed, 59 insertions(+), 10 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/tx.c b/drivers/net/wire= less/intel/iwlwifi/mvm/tx.c index 6fdb2c38518e3..4ea3aabc64883 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/tx.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/tx.c @@ -500,13 +500,24 @@ static void iwl_mvm_set_tx_cmd_crypto(struct iwl_mvm = *mvm, } } =20 +static void iwl_mvm_copy_hdr(void *cmd, const void *hdr, int hdrlen, + const u8 *addr3_override) +{ + struct ieee80211_hdr *out_hdr =3D cmd; + + memcpy(cmd, hdr, hdrlen); + if (addr3_override) + memcpy(out_hdr->addr3, addr3_override, ETH_ALEN); +} + /* * Allocates and sets the Tx cmd the driver data pointers in the skb */ static struct iwl_device_tx_cmd * iwl_mvm_set_tx_params(struct iwl_mvm *mvm, struct sk_buff *skb, struct ieee80211_tx_info *info, int hdrlen, - struct ieee80211_sta *sta, u8 sta_id) + struct ieee80211_sta *sta, u8 sta_id, + const u8 *addr3_override) { struct ieee80211_hdr *hdr =3D (struct ieee80211_hdr *)skb->data; struct iwl_device_tx_cmd *dev_cmd; @@ -564,7 +575,7 @@ iwl_mvm_set_tx_params(struct iwl_mvm *mvm, struct sk_bu= ff *skb, cmd->len =3D cpu_to_le16((u16)skb->len); =20 /* Copy MAC header from skb into command buffer */ - memcpy(cmd->hdr, hdr, hdrlen); + iwl_mvm_copy_hdr(cmd->hdr, hdr, hdrlen, addr3_override); =20 cmd->flags =3D cpu_to_le16(flags); cmd->rate_n_flags =3D cpu_to_le32(rate_n_flags); @@ -579,7 +590,7 @@ iwl_mvm_set_tx_params(struct iwl_mvm *mvm, struct sk_bu= ff *skb, cmd->len =3D cpu_to_le16((u16)skb->len); =20 /* Copy MAC header from skb into command buffer */ - memcpy(cmd->hdr, hdr, hdrlen); + iwl_mvm_copy_hdr(cmd->hdr, hdr, hdrlen, addr3_override); =20 cmd->flags =3D cpu_to_le32(flags); cmd->rate_n_flags =3D cpu_to_le32(rate_n_flags); @@ -597,7 +608,7 @@ iwl_mvm_set_tx_params(struct iwl_mvm *mvm, struct sk_bu= ff *skb, iwl_mvm_set_tx_cmd_rate(mvm, tx_cmd, info, sta, hdr->frame_control); =20 /* Copy MAC header from skb into command buffer */ - memcpy(tx_cmd->hdr, hdr, hdrlen); + iwl_mvm_copy_hdr(tx_cmd->hdr, hdr, hdrlen, addr3_override); =20 out: return dev_cmd; @@ -800,7 +811,8 @@ int iwl_mvm_tx_skb_non_sta(struct iwl_mvm *mvm, struct = sk_buff *skb) =20 IWL_DEBUG_TX(mvm, "station Id %d, queue=3D%d\n", sta_id, queue); =20 - dev_cmd =3D iwl_mvm_set_tx_params(mvm, skb, &info, hdrlen, NULL, sta_id); + dev_cmd =3D iwl_mvm_set_tx_params(mvm, skb, &info, hdrlen, NULL, sta_id, + NULL); if (!dev_cmd) return -1; =20 @@ -1120,7 +1132,8 @@ static int iwl_mvm_tx_pkt_queued(struct iwl_mvm *mvm, */ static int iwl_mvm_tx_mpdu(struct iwl_mvm *mvm, struct sk_buff *skb, struct ieee80211_tx_info *info, - struct ieee80211_sta *sta) + struct ieee80211_sta *sta, + const u8 *addr3_override) { struct ieee80211_hdr *hdr =3D (struct ieee80211_hdr *)skb->data; struct iwl_mvm_sta *mvmsta; @@ -1152,7 +1165,8 @@ static int iwl_mvm_tx_mpdu(struct iwl_mvm *mvm, struc= t sk_buff *skb, iwl_mvm_probe_resp_set_noa(mvm, skb); =20 dev_cmd =3D iwl_mvm_set_tx_params(mvm, skb, info, hdrlen, - sta, mvmsta->deflink.sta_id); + sta, mvmsta->deflink.sta_id, + addr3_override); if (!dev_cmd) goto drop; =20 @@ -1274,9 +1288,11 @@ int iwl_mvm_tx_skb_sta(struct iwl_mvm *mvm, struct s= k_buff *skb, struct iwl_mvm_sta *mvmsta =3D iwl_mvm_sta_from_mac80211(sta); struct ieee80211_tx_info info; struct sk_buff_head mpdus_skbs; + struct ieee80211_vif *vif; unsigned int payload_len; int ret; struct sk_buff *orig_skb =3D skb; + const u8 *addr3; =20 if (WARN_ON_ONCE(!mvmsta)) return -1; @@ -1287,26 +1303,59 @@ int iwl_mvm_tx_skb_sta(struct iwl_mvm *mvm, struct = sk_buff *skb, memcpy(&info, skb->cb, sizeof(info)); =20 if (!skb_is_gso(skb)) - return iwl_mvm_tx_mpdu(mvm, skb, &info, sta); + return iwl_mvm_tx_mpdu(mvm, skb, &info, sta, NULL); =20 payload_len =3D skb_tail_pointer(skb) - skb_transport_header(skb) - tcp_hdrlen(skb) + skb->data_len; =20 if (payload_len <=3D skb_shinfo(skb)->gso_size) - return iwl_mvm_tx_mpdu(mvm, skb, &info, sta); + return iwl_mvm_tx_mpdu(mvm, skb, &info, sta, NULL); =20 __skb_queue_head_init(&mpdus_skbs); =20 + vif =3D info.control.vif; + if (!vif) + return -1; + ret =3D iwl_mvm_tx_tso(mvm, skb, &info, sta, &mpdus_skbs); if (ret) return ret; =20 WARN_ON(skb_queue_empty(&mpdus_skbs)); =20 + /* + * As described in IEEE sta 802.11-2020, table 9-30 (Address + * field contents), A-MSDU address 3 should contain the BSSID + * address. + * Pass address 3 down to iwl_mvm_tx_mpdu() and further to set it + * in the command header. We need to preserve the original + * address 3 in the skb header to correctly create all the + * A-MSDU subframe headers from it. + */ + switch (vif->type) { + case NL80211_IFTYPE_STATION: + addr3 =3D vif->cfg.ap_addr; + break; + case NL80211_IFTYPE_AP: + addr3 =3D vif->addr; + break; + default: + addr3 =3D NULL; + break; + } + while (!skb_queue_empty(&mpdus_skbs)) { + struct ieee80211_hdr *hdr; + bool amsdu; + skb =3D __skb_dequeue(&mpdus_skbs); + hdr =3D (void *)skb->data; + amsdu =3D ieee80211_is_data_qos(hdr->frame_control) && + (*ieee80211_get_qos_ctl(hdr) & + IEEE80211_QOS_CTL_A_MSDU_PRESENT); =20 - ret =3D iwl_mvm_tx_mpdu(mvm, skb, &info, sta); + ret =3D iwl_mvm_tx_mpdu(mvm, skb, &info, sta, + amsdu ? addr3 : NULL); if (ret) { /* Free skbs created as part of TSO logic that have not yet been dequeu= ed */ __skb_queue_purge(&mpdus_skbs); --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 74F0D1FA817; Sun, 24 Mar 2024 23:01: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=1711321286; cv=none; b=sUyLOOFT9GfipJ/ejOHTQ6GRL+Sranctk971St+kEHEEjdsVcbz7oekfDTJ9YWnogJdACDVE7pNAF9ynAnA0eJ6XnoRv15mIMoofuiGE8dfyDfHmDv7kZBcqj7bhbbj6FooELfOGz87o0vyIQ3MQDFwk2q/ADd9ZJey+VUmmNhk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321286; c=relaxed/simple; bh=/UDMCO+p3pTN0o3VKH882mj3piAL34bvPIkXm2pXWnI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=KqncQHCrtA2XG23WIztOeCit9v0OFlOEqY81LpmARj1pI1ltQy36x6CZf4K7zT5dhjVa7fzbMZzl7q2n8kmXAO799XbEKY3rMehVlcIMQIaOwOQqyTYNrb5woNWPGKEevXARzK8AuPJW0LexxqXC7OUiAGQB2QCKEWXLKhKdIEQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=loCGWy7H; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="loCGWy7H" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9CAEDC43394; Sun, 24 Mar 2024 23:01:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321286; bh=/UDMCO+p3pTN0o3VKH882mj3piAL34bvPIkXm2pXWnI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=loCGWy7HzCr9mqumtQY3rIO5FfxoIfuZaJyS/U7+id+IKFruIir01lfAOBbSjlkDJ HpvD2nG8HEfUV0rmdT2/JMptYtOHdfeG/kHbdIQSgwEC/77snhy7h3O2VhfKuFw2mT eD0a30i9tmsTRuZxo/T1r30p4fNtDJ78qzEwqT4dKKikc6Iyx3skmiz1/PU6y+O2mA eqfzhC9hwp/lW3fw4zGRanQB3EnN+ffBbYv0j9j9ND6ngj7Lc/FByDaRW4hwjHIp7N Cei/Gzpy5eJIXCKGpH6Lz6KhbXFdyQ0h0F33nLrc7kXj/z2zhJXQWLDvoFVLdts8EX gnC85ovM2F5eA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Ilkka Koskinen , Robin Murphy , Will Deacon , Sasha Levin Subject: [PATCH 6.6 008/638] perf/arm-cmn: Workaround AmpereOneX errata AC04_MESH_1 (incorrect child count) Date: Sun, 24 Mar 2024 18:50:45 -0400 Message-ID: <20240324230116.1348576-9-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Ilkka Koskinen [ Upstream commit 50572064ec7109b00eef8880e905f55861c8b3de ] AmpereOneX mesh implementation has a bug in HN-P nodes that makes them report incorrect child count. The failing crosspoints report 8 children while they only have two. When the driver tries to access the inexistent child nodes, it believes it has reached an invalid node type and probing fails. The workaround is to ignore those incorrect child nodes and continue normally. Signed-off-by: Ilkka Koskinen [ rm: rewrote simpler generalised version ] Tested-by: Ilkka Koskinen Signed-off-by: Robin Murphy Link: https://lore.kernel.org/r/ce4b1442135fe03d0de41859b04b268c88c854a3.17= 07498577.git.robin.murphy@arm.com Signed-off-by: Will Deacon Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/perf/arm-cmn.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/drivers/perf/arm-cmn.c b/drivers/perf/arm-cmn.c index 6404b17d3aeb0..2c684e49a6fc7 100644 --- a/drivers/perf/arm-cmn.c +++ b/drivers/perf/arm-cmn.c @@ -2301,6 +2301,17 @@ static int arm_cmn_discover(struct arm_cmn *cmn, uns= igned int rgn_offset) dev_dbg(cmn->dev, "ignoring external node %llx\n", reg); continue; } + /* + * AmpereOneX erratum AC04_MESH_1 makes some XPs report a bogus + * child count larger than the number of valid child pointers. + * A child offset of 0 can only occur on CMN-600; otherwise it + * would imply the root node being its own grandchild, which + * we can safely dismiss in general. + */ + if (reg =3D=3D 0 && cmn->part !=3D PART_CMN600) { + dev_dbg(cmn->dev, "bogus child pointer?\n"); + continue; + } =20 arm_cmn_init_node_info(cmn, reg & CMN_CHILD_NODE_ADDR, dn); =20 --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C44351FA81F; Sun, 24 Mar 2024 23:01: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=1711321288; cv=none; b=VoWGzRUdldOtqiMRRnpX2XFOoYfDw646dXnPIPgwtCnXhA3kkTIgINtQQt/olEL2YIv2Upy5ltYMdWqtYsyqcxmhQb2OVcCmw5516f7inlzP+bKXLAwh7PUMhdxM8yyvFYIV7rx4rHRB5LtQMVhNIQ/1FkVXufC1vxzjl62TIY8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321288; c=relaxed/simple; bh=fAometgkYT+8afRTn5I8qtc/WQf0RndWwBfG1rn1ejA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=jmmCfPxWvP31v9BiwkV8OZoetBbVijtN6KW5AObc5CVEUponQ4IWwpstdNzzE4yNJBzhd1iBo7x56OUwK3Wppcd/jnkoYZu8muWHJxVgZJywOOEyD2tB5BnRpMsVfW1iETiSEEHdYNEEJ5G8p7vyJI6K+P3LX3EphWaX0I3ySy8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=JJTyjstz; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="JJTyjstz" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9847BC433B1; Sun, 24 Mar 2024 23:01:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321287; bh=fAometgkYT+8afRTn5I8qtc/WQf0RndWwBfG1rn1ejA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=JJTyjstzEUT3MhYDeCHmwTPClrVRGmYgb8sZTcyo+dd8qwxG168hlmLuVf/rYj9/s zwazPjBXuTqP11nWjI5inpq0MbNvkg6MiDtGH6RTVGQWHteYjU+E5tLj/Xo56bOGIN lxJ62v96uAR0cyUx7mp7BBW0SU6RHuGoc+CeRkZnASZKgKBLtV0/hvw9Gi6TvoJf2T ik69x/9hfA925a8yyXSR4UXx7ytFohVJ/tBSSY8YkrRmQFgrIgHBT9ldLXDHdi+yiK qDYeTljxXYpK0L6xEMlmoNlXoSTRWHmAXjXOK3z4PJiISiOpP9wvNneOWcW6z4veuk a+h1VcE6R7AIA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Aaron Conole , Simon Horman , Jakub Kicinski , Sasha Levin Subject: [PATCH 6.6 009/638] selftests: openvswitch: Add validation for the recursion test Date: Sun, 24 Mar 2024 18:50:46 -0400 Message-ID: <20240324230116.1348576-10-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Aaron Conole [ Upstream commit bd128f62c365504e1268dc09fcccdfb1f091e93a ] Add a test case into the netlink checks that will show the number of nested action recursions won't exceed 16. Going to 17 on a small clone call isn't enough to exhaust the stack on (most) systems, so it should be safe to run even on systems that don't have the fix applied. Signed-off-by: Aaron Conole Reviewed-by: Simon Horman Link: https://lore.kernel.org/r/20240207132416.1488485-3-aconole@redhat.com Signed-off-by: Jakub Kicinski Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- .../selftests/net/openvswitch/openvswitch.sh | 13 ++++ .../selftests/net/openvswitch/ovs-dpctl.py | 71 +++++++++++++++---- 2 files changed, 69 insertions(+), 15 deletions(-) diff --git a/tools/testing/selftests/net/openvswitch/openvswitch.sh b/tools= /testing/selftests/net/openvswitch/openvswitch.sh index f8499d4c87f3f..36e40256ab92a 100755 --- a/tools/testing/selftests/net/openvswitch/openvswitch.sh +++ b/tools/testing/selftests/net/openvswitch/openvswitch.sh @@ -502,7 +502,20 @@ test_netlink_checks () { wc -l) =3D=3D 2 ] || \ return 1 =20 + info "Checking clone depth" ERR_MSG=3D"Flow actions may not be safe on all matching packets" + PRE_TEST=3D$(dmesg | grep -c "${ERR_MSG}") + ovs_add_flow "test_netlink_checks" nv0 \ + 'in_port(1),eth(),eth_type(0x800),ipv4()' \ + 'clone(clone(clone(clone(clone(clone(clone(clone(clone(clone(clone(clone= (clone(clone(clone(clone(clone(drop)))))))))))))))))' \ + >/dev/null 2>&1 && return 1 + POST_TEST=3D$(dmesg | grep -c "${ERR_MSG}") + + if [ "$PRE_TEST" =3D=3D "$POST_TEST" ]; then + info "failed - clone depth too large" + return 1 + fi + PRE_TEST=3D$(dmesg | grep -c "${ERR_MSG}") ovs_add_flow "test_netlink_checks" nv0 \ 'in_port(1),eth(),eth_type(0x0806),arp()' 'drop(0),2' \ diff --git a/tools/testing/selftests/net/openvswitch/ovs-dpctl.py b/tools/t= esting/selftests/net/openvswitch/ovs-dpctl.py index b97e621face95..5e0e539a323d5 100644 --- a/tools/testing/selftests/net/openvswitch/ovs-dpctl.py +++ b/tools/testing/selftests/net/openvswitch/ovs-dpctl.py @@ -299,7 +299,7 @@ class ovsactions(nla): ("OVS_ACTION_ATTR_PUSH_NSH", "none"), ("OVS_ACTION_ATTR_POP_NSH", "flag"), ("OVS_ACTION_ATTR_METER", "none"), - ("OVS_ACTION_ATTR_CLONE", "none"), + ("OVS_ACTION_ATTR_CLONE", "recursive"), ("OVS_ACTION_ATTR_CHECK_PKT_LEN", "none"), ("OVS_ACTION_ATTR_ADD_MPLS", "none"), ("OVS_ACTION_ATTR_DEC_TTL", "none"), @@ -465,29 +465,42 @@ class ovsactions(nla): print_str +=3D "pop_mpls" else: datum =3D self.get_attr(field[0]) - print_str +=3D datum.dpstr(more) + if field[0] =3D=3D "OVS_ACTION_ATTR_CLONE": + print_str +=3D "clone(" + print_str +=3D datum.dpstr(more) + print_str +=3D ")" + else: + print_str +=3D datum.dpstr(more) =20 return print_str =20 def parse(self, actstr): + totallen =3D len(actstr) while len(actstr) !=3D 0: parsed =3D False + parencount =3D 0 if actstr.startswith("drop"): # If no reason is provided, the implicit drop is used (i.e= no # action). If some reason is given, an explicit action is = used. - actstr, reason =3D parse_extract_field( - actstr, - "drop(", - "([0-9]+)", - lambda x: int(x, 0), - False, - None, - ) + reason =3D None + if actstr.startswith("drop("): + parencount +=3D 1 + + actstr, reason =3D parse_extract_field( + actstr, + "drop(", + "([0-9]+)", + lambda x: int(x, 0), + False, + None, + ) + if reason is not None: self["attrs"].append(["OVS_ACTION_ATTR_DROP", reason]) parsed =3D True else: - return + actstr =3D actstr[len("drop"): ] + return (totallen - len(actstr)) =20 elif parse_starts_block(actstr, "^(\d+)", False, True): actstr, output =3D parse_extract_field( @@ -504,6 +517,7 @@ class ovsactions(nla): False, 0, ) + parencount +=3D 1 self["attrs"].append(["OVS_ACTION_ATTR_RECIRC", recircid]) parsed =3D True =20 @@ -516,12 +530,22 @@ class ovsactions(nla): =20 for flat_act in parse_flat_map: if parse_starts_block(actstr, flat_act[0], False): - actstr +=3D len(flat_act[0]) + actstr =3D actstr[len(flat_act[0]):] self["attrs"].append([flat_act[1]]) actstr =3D actstr[strspn(actstr, ", ") :] parsed =3D True =20 - if parse_starts_block(actstr, "ct(", False): + if parse_starts_block(actstr, "clone(", False): + parencount +=3D 1 + subacts =3D ovsactions() + actstr =3D actstr[len("clone("):] + parsedLen =3D subacts.parse(actstr) + lst =3D [] + self["attrs"].append(("OVS_ACTION_ATTR_CLONE", subacts)) + actstr =3D actstr[parsedLen:] + parsed =3D True + elif parse_starts_block(actstr, "ct(", False): + parencount +=3D 1 actstr =3D actstr[len("ct(") :] ctact =3D ovsactions.ctact() =20 @@ -553,6 +577,7 @@ class ovsactions(nla): natact =3D ovsactions.ctact.natattr() =20 if actstr.startswith("("): + parencount +=3D 1 t =3D None actstr =3D actstr[1:] if actstr.startswith("src"): @@ -607,15 +632,29 @@ class ovsactions(nla): actstr =3D actstr[strspn(actstr, ", ")= :] =20 ctact["attrs"].append(["OVS_CT_ATTR_NAT", natact]) - actstr =3D actstr[strspn(actstr, ",) ") :] + actstr =3D actstr[strspn(actstr, ", ") :] =20 self["attrs"].append(["OVS_ACTION_ATTR_CT", ctact]) parsed =3D True =20 - actstr =3D actstr[strspn(actstr, "), ") :] + actstr =3D actstr[strspn(actstr, ", ") :] + while parencount > 0: + parencount -=3D 1 + actstr =3D actstr[strspn(actstr, " "):] + if len(actstr) and actstr[0] !=3D ")": + raise ValueError("Action str: '%s' unbalanced" % actst= r) + actstr =3D actstr[1:] + + if len(actstr) and actstr[0] =3D=3D ")": + return (totallen - len(actstr)) + + actstr =3D actstr[strspn(actstr, ", ") :] + if not parsed: raise ValueError("Action str: '%s' not supported" % actstr) =20 + return (totallen - len(actstr)) + =20 class ovskey(nla): nla_flags =3D NLA_F_NESTED @@ -2111,6 +2150,8 @@ def main(argv): ovsflow =3D OvsFlow() ndb =3D NDB() =20 + sys.setrecursionlimit(100000) + if hasattr(args, "showdp"): found =3D False for iface in ndb.interfaces: --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C6A2A1FA832; Sun, 24 Mar 2024 23:01: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=1711321288; cv=none; b=cKiYcLF7NAsp1d9j4R0nuvkGTsizMdpiQh0+rMl/7O2VLrJX1Lfi5T5wAUgCl/UOfGQ6fnO5k+pH6oDkrSVVSqPyUxnPsLWpfaJwnek5smdAl92akDPYl5E+leAtHyAZvy5Xhg4eEUZx0kRx54Q/SpkqOAMxzteXlDvhtiDie0I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321288; c=relaxed/simple; bh=8dD5To5M8RyoSt5fx2k/nign80MLUb757pypdZrbxBU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=W1k+CyJGXk+Di9cVSdBPENBitJb+foTg+5j3yVTgeUdrB8OsO3aEEDHYzOqKhhmmu6R/9iMe9ag74Vf6dJI5Qu6gkZdyYqPLp5tHlqWbEIv2EWRrOfwoOMmZx7aXkKN0zaur11EzgphAoF2Ju8dNKkqtkl+GmiUQ43GL4dVVyIs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=dqTSstGk; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="dqTSstGk" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 95D50C433A6; Sun, 24 Mar 2024 23:01:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321288; bh=8dD5To5M8RyoSt5fx2k/nign80MLUb757pypdZrbxBU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=dqTSstGksmou24Dl4qqlHJ+IzcX0m+HkmugQHfEbNBFA2PAAsDqhC8FN+j6Khy1fy +WwdGEULPMIU48/UPUBYaS+VldSosw6CbJiFNE8FYzxIjR9+gb9fidojRVWqPKojE2 X60h32Xq/CNpw5c+UH0mnleZJF9QXFfgEQh/CBNnoa4muaxQP9u61HZTn6ONxSpwwb lH4E4sZOakqMzPiMISzC/NpZI+X+BbD5TldUiXGlTkrJ55UzZjn0c46bbBpH+7qwsl YHVCSIlgdhKqHauGq8xUjntjAwFjpqWv87koPDb6zmIvZFMkKFfIBZQlmuZ+jjdGB8 EYP1a2HcVVEKQ== 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 6.6 010/638] selftests: tls: use exact comparison in recv_partial Date: Sun, 24 Mar 2024 18:50:47 -0400 Message-ID: <20240324230116.1348576-11-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 464853a7f9829..ad993ab3ac181 100644 --- a/tools/testing/selftests/net/tls.c +++ b/tools/testing/selftests/net/tls.c @@ -988,12 +988,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 Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B13B51FA831; Sun, 24 Mar 2024 23:01: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=1711321290; cv=none; b=rFv0u0KSdkxzpt7FdxtGay1M8lz/H4KX5HekRr7DORNZNXk3YV9ZmEQZVCwEIW0vcoGCsPJ1HZMEoqzCuTJUGfEgNyqK3QiOZ7orQ8pdGQ9wUXKLl+wi/neMSZ2yPnV484rdG+ij3TUoe4BD02DBJ6D5ctdX6bscY1uBYnAMth0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321290; c=relaxed/simple; bh=3W6dR8PdnATH3wLhgXePo6qAuvBQwrdOzzSzsfx9tTs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=aaBvpdU3zVTs4sqg8aIbRe2z800tbkaNVT8Fgv68EVe9y26qBObGvesQO6w4L7uDsNqZgnj4ox+8lOh022dcZBGvwavOKYCqWcEOshkZm7nW9A1B3KJa/lpTf/1AdPeQMSPGvXxF/fJvjq/qDshUWkcT0sNlxXCrZ+4yG1xIsek= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=miKevgVu; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="miKevgVu" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 956D4C433C7; Sun, 24 Mar 2024 23:01:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321289; bh=3W6dR8PdnATH3wLhgXePo6qAuvBQwrdOzzSzsfx9tTs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=miKevgVuEyfBwUihT+bjVCPJp6tNrznuDXKr55d9RliiW0pMQeIb+cKFytiZJ49fW 7Pj5H3f78f7jPyNMilhPpvjVVPlIhXvoOj9zVHaFc0ZQPPKEifvX0zbV0AdNjau7SZ EcXUDr8WRU3eKYMSrlX4XW1/rBw8swoPAeUOr7n6tbL75K478tynQvU7Y6FJUFqgtA Zpc8T7UH18p/BbcGPHo9CrhaA2117dpWNcNYl1wl6oeBmAa5oMc7I91PgecGL44Zoc 7XZCVCoFjNK1TvXrEoh2p0O5WjVAg7ALJDT5iKT4Gl/3269pQGqEjIJKNhvS3GTYhH As7ueUfDIzv6A== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Hans de Goede , Mark Brown , Sasha Levin Subject: [PATCH 6.6 011/638] ASoC: rt5645: Make LattePanda board DMI match more precise Date: Sun, 24 Mar 2024 18:50:48 -0400 Message-ID: <20240324230116.1348576-12-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 ea08b7cfc31da..e0da151508309 100644 --- a/sound/soc/codecs/rt5645.c +++ b/sound/soc/codecs/rt5645.c @@ -3829,6 +3829,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 Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3D05012FB04; Sun, 24 Mar 2024 23:01: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=1711321291; cv=none; b=EHXN7cZZrcajYGeO/Cq7+JxqtMP+ZrdX5kmbu4/9y5FBO1Sezug/DKOUSN7HeJTDTHYHDPe2SMWMME06f+AzXHzDl1ZE8+TwPDviG3F2AeY8x/rxBSfWiBQ+vtsva/+PDscKBAsnHBnw8rzGxqlc55vzKYc2LdbZifEIivMSgBY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321291; c=relaxed/simple; bh=W4RwcyHV3K6Low51NVIhVtApOG+DXghL1IwfkGZklV4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZMKI3l8gKqSV+0cebrrPGqYuXrgrhppamNtkAJIPGWf7s8dYVrQlJIkjjxY2LpOLQwMjNUvrkdgycJhVVASrp8s0pqWiqrnTI5nRMMm7T1UeLERB/j+hBRXP0508tmry4NMnMSnB8Uxbt2U7C+7j+A5XnxT5y0G5u1dFO1apzEY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=goDebecm; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="goDebecm" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 79EF0C43390; Sun, 24 Mar 2024 23:01:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321290; bh=W4RwcyHV3K6Low51NVIhVtApOG+DXghL1IwfkGZklV4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=goDebecmuMH7Upr1ZillyK6ZRXQHR6Fdw0O9ol084MpvkGCB5J51woHUfV0yZX0PJ Yd544YCTlkgo1evh1Ef8wZYk9dcCXtU/c075KVUy3i9vrOPUsXS8x7vb9O9+uddBfU QiPkeFj0eIf5mYbzIit+ZBr3mJaGIT3YcbF7UTOm3NQTTk0iZa5GL5nysFYyod1ORe grk08+KpBvbVZosyEO9Aq9+JlUQp++cr2neyq5fqFxrUQkYeWBmeBd6EK0DNfG4XOq DU2fWzKm33g0AKYjcFMNnnj37OoF1gJKuEnJ6/VQGHNIMcQUdEV8+supQVXG29MjV5 agnDbpcywKWZg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Mika Westerberg , Mark Brown , Sasha Levin Subject: [PATCH 6.6 012/638] spi: intel-pci: Add support for Lunar Lake-M SPI serial flash Date: Sun, 24 Mar 2024 18:50:49 -0400 Message-ID: <20240324230116.1348576-13-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Mika Westerberg [ Upstream commit 8f44e3808200c1434c26ef459722f88f48b306df ] Add Intel Lunar Lake-M PCI ID to the driver list of supported devices. This is the same controller found in previous generations. Signed-off-by: Mika Westerberg Link: https://msgid.link/r/20240212082027.2462849-1-mika.westerberg@linux.i= ntel.com Signed-off-by: Mark Brown Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/spi/spi-intel-pci.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/spi/spi-intel-pci.c b/drivers/spi/spi-intel-pci.c index 07d20ca1164c3..4337ca51d7aa2 100644 --- a/drivers/spi/spi-intel-pci.c +++ b/drivers/spi/spi-intel-pci.c @@ -85,6 +85,7 @@ static const struct pci_device_id intel_spi_pci_ids[] =3D= { { PCI_VDEVICE(INTEL, 0xa2a4), (unsigned long)&cnl_info }, { PCI_VDEVICE(INTEL, 0xa324), (unsigned long)&cnl_info }, { PCI_VDEVICE(INTEL, 0xa3a4), (unsigned long)&cnl_info }, + { PCI_VDEVICE(INTEL, 0xa823), (unsigned long)&cnl_info }, { }, }; MODULE_DEVICE_TABLE(pci, intel_spi_pci_ids); --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1F6AA1FA83B; Sun, 24 Mar 2024 23:01: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=1711321291; cv=none; b=GO2ZUH7iY9I78S/jP3xA7Ur6IxgPLPwCC13ZWpzniS0JBPSxhx0XeFbsQYDA90bCbAo5t3cZhRZqSlxM2j0ZmVLgOL6qkp7Hzoy6FgXIhbbN94e3/ZPt/4kn/j11DDuWrEjdwndIG0FYPXGTYccVGOviljsQSn7l6XlkeZzcmdw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321291; c=relaxed/simple; bh=nFdvnctb3HwjwC3YYHCe4RQV74wIoxZXlt0S3wnnHOQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=hpPgc5ccCxoeD7Myz9p152XM1z9HpjR9/svV7JW52RWtzq5Less74KpRiDo3Qw/G4QVMBr8HaQPn5p1WJwJmy9EVK25UCMUp5eYPr25IyvkxRzT77yVSi9JFz5d3Ld6+I46yDEIaBJ6ln1i6yvKppZXce5k4Ugd+WOu+DUGlPzE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=a7c1aSj6; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="a7c1aSj6" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5E18BC433F1; Sun, 24 Mar 2024 23:01:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321291; bh=nFdvnctb3HwjwC3YYHCe4RQV74wIoxZXlt0S3wnnHOQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=a7c1aSj6gHqD3EX0j5SyAAAgt8YiYb4QPLdtOyp1zif9KdXqsEvte/VvO5uEEop9d Dzyzp4efMQ47YPthjFwwLGSlLtlLrv7AnUQfA3iSDCJmFv8xANqBMxowB4YcBFKuOg Qo8WsCFQfa/WZWIbzvvtHLALvNXzB96DICpIdFTgtKY+6jdcSV9JkraLmCmmJgbS88 vgQBrxyoJ+9bMssKFTwox80Za4Or1oFtE7mVTrWGOxbAOIBvvndkLGMToPvqHrFMjc 61ujfc8G8fGc1TgntKYPX590aaoodyYEQIv4zkU7LP/gJi4DlzhEbsGJYXNR3lKIxr FNw4w5xZjMp5Q== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Mark Brown , Guenter Roeck , Sasha Levin Subject: [PATCH 6.6 013/638] regmap: kunit: Ensure that changed bytes are actually different Date: Sun, 24 Mar 2024 18:50:50 -0400 Message-ID: <20240324230116.1348576-14-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Mark Brown [ Upstream commit 2f0dbb24f78a333433a2b875c0b76bf55c119cd4 ] During the cache sync test we verify that values we expect to have been written only to the cache do not appear in the hardware. This works most of the time but since we randomly generate both the original and new values there is a low probability that these values may actually be the same. Wrap get_random_bytes() to ensure that the values are different, there are other tests which should have similar verification that we actually changed something. While we're at it refactor the test to use three changed values rather than attempting to use one of them twice, that just complicates checking that our new values are actually new. We use random generation to try to avoid data dependencies in the tests. Reported-by: Guenter Roeck Reviewed-by: Guenter Roeck Tested-by: Guenter Roeck Signed-off-by: Mark Brown Link: https://msgid.link/r/20240211-regmap-kunit-random-change-v3-1-e387a9e= a4468@kernel.org Signed-off-by: Mark Brown Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/base/regmap/regmap-kunit.c | 54 +++++++++++++++++++++--------- 1 file changed, 38 insertions(+), 16 deletions(-) diff --git a/drivers/base/regmap/regmap-kunit.c b/drivers/base/regmap/regma= p-kunit.c index 264d29b3fced0..5f1e914646cd9 100644 --- a/drivers/base/regmap/regmap-kunit.c +++ b/drivers/base/regmap/regmap-kunit.c @@ -9,6 +9,23 @@ =20 #define BLOCK_TEST_SIZE 12 =20 +static void get_changed_bytes(void *orig, void *new, size_t size) +{ + char *o =3D orig; + char *n =3D new; + int i; + + get_random_bytes(new, size); + + /* + * This could be nicer and more efficient but we shouldn't + * super care. + */ + for (i =3D 0; i < size; i++) + while (n[i] =3D=3D o[i]) + get_random_bytes(&n[i], 1); +} + static const struct regmap_config test_regmap_config =3D { .max_register =3D BLOCK_TEST_SIZE, .reg_stride =3D 1, @@ -1131,7 +1148,7 @@ static void raw_sync(struct kunit *test) struct regmap *map; struct regmap_config config; struct regmap_ram_data *data; - u16 val[2]; + u16 val[3]; u16 *hw_buf; unsigned int rval; int i; @@ -1145,17 +1162,13 @@ static void raw_sync(struct kunit *test) =20 hw_buf =3D (u16 *)data->vals; =20 - get_random_bytes(&val, sizeof(val)); + get_changed_bytes(&hw_buf[2], &val[0], sizeof(val)); =20 /* Do a regular write and a raw write in cache only mode */ regcache_cache_only(map, true); - KUNIT_EXPECT_EQ(test, 0, regmap_raw_write(map, 2, val, sizeof(val))); - if (config.val_format_endian =3D=3D REGMAP_ENDIAN_BIG) - KUNIT_EXPECT_EQ(test, 0, regmap_write(map, 6, - be16_to_cpu(val[0]))); - else - KUNIT_EXPECT_EQ(test, 0, regmap_write(map, 6, - le16_to_cpu(val[0]))); + KUNIT_EXPECT_EQ(test, 0, regmap_raw_write(map, 2, val, + sizeof(u16) * 2)); + KUNIT_EXPECT_EQ(test, 0, regmap_write(map, 4, val[2])); =20 /* We should read back the new values, and defaults for the rest */ for (i =3D 0; i < config.max_register + 1; i++) { @@ -1164,24 +1177,34 @@ static void raw_sync(struct kunit *test) switch (i) { case 2: case 3: - case 6: if (config.val_format_endian =3D=3D REGMAP_ENDIAN_BIG) { KUNIT_EXPECT_EQ(test, rval, - be16_to_cpu(val[i % 2])); + be16_to_cpu(val[i - 2])); } else { KUNIT_EXPECT_EQ(test, rval, - le16_to_cpu(val[i % 2])); + le16_to_cpu(val[i - 2])); } break; + case 4: + KUNIT_EXPECT_EQ(test, rval, val[i - 2]); + break; default: KUNIT_EXPECT_EQ(test, config.reg_defaults[i].def, rval); break; } } + + /* + * The value written via _write() was translated by the core, + * translate the original copy for comparison purposes. + */ + if (config.val_format_endian =3D=3D REGMAP_ENDIAN_BIG) + val[2] =3D cpu_to_be16(val[2]); + else + val[2] =3D cpu_to_le16(val[2]); =09 /* The values should not appear in the "hardware" */ - KUNIT_EXPECT_MEMNEQ(test, &hw_buf[2], val, sizeof(val)); - KUNIT_EXPECT_MEMNEQ(test, &hw_buf[6], val, sizeof(u16)); + KUNIT_EXPECT_MEMNEQ(test, &hw_buf[2], &val[0], sizeof(val)); =20 for (i =3D 0; i < config.max_register + 1; i++) data->written[i] =3D false; @@ -1192,8 +1215,7 @@ static void raw_sync(struct kunit *test) KUNIT_EXPECT_EQ(test, 0, regcache_sync(map)); =20 /* The values should now appear in the "hardware" */ - KUNIT_EXPECT_MEMEQ(test, &hw_buf[2], val, sizeof(val)); - KUNIT_EXPECT_MEMEQ(test, &hw_buf[6], val, sizeof(u16)); + KUNIT_EXPECT_MEMEQ(test, &hw_buf[2], &val[0], sizeof(val)); =20 regmap_exit(map); } --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 017281E586C; Sun, 24 Mar 2024 23:01: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=1711321293; cv=none; b=Azxrilzk9dDyF2VpM8uDd+Jx1sEyHsCIKr7d7AwDz0o0daCMGTGAUDIs3kPg+EfbLV3U2VoTNg7Li8yvlxZBYc6N1HOvFVvX1GDltP6PHtWv55dYnuJfnQIaI+NuEXEdhVUe0IrB91TMoMEtU6/+4NmbOkzsIom98ux3zwjamqw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321293; c=relaxed/simple; bh=TVn0K55l25BpswqOak4H/Qan8tlImkF4R9suQP0gmms=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=f4jh55vJaKlZXIDQtncL3rI7MQ0G1oLXnFZ26D24mV0FWfWKBHs2KM3GERQ91EgjNMPgKQjyh5SzDoyQLSbjF/Ev9ubQFxXZXKs0GJm+GD3F4mgNgXuAHAxMYHdjK/5XGpZS73b3f2FsnaUom54qeZcmDbAtfnigrj7OFP7UIWI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ZpLgeBV7; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ZpLgeBV7" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 40858C43394; Sun, 24 Mar 2024 23:01:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321291; bh=TVn0K55l25BpswqOak4H/Qan8tlImkF4R9suQP0gmms=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ZpLgeBV7lVZ1KQtjAhehndqzOYKHt0Ws6WuQsS7SJGICHD7z9lLVnjwi4w2KesKbR PzLlbp1iVBqDmDHleIusnMQuLI8Hw3QHHfrQ+p0mt9b0VC0HKbzfjWsXMHgXWbJ7ZU mNrONmbkIJdnQ1J3frNCL98M9vSnOxdbSo7wFq0nMG+Jt48hgfBe/Ath1XVXqem9Uz LqetNvJXTRIsEnWrNAzbH6T84mEiJl2Szc+3ycsTvk/OGeodLXtukJDO0vErpw6YA6 U6S6V4V4HUnOnXw3ImcH7YOlLiEtvZ9nXk5xT2t+dhdp9yVqr7SvrlTzhWglB0n24h AbV36ng+Ko7gg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?Attila=20T=C5=91k=C3=A9s?= , Mark Brown , Sasha Levin Subject: [PATCH 6.6 014/638] ASoC: amd: yc: Fix non-functional mic on Lenovo 82UU Date: Sun, 24 Mar 2024 18:50:51 -0400 Message-ID: <20240324230116.1348576-15-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-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: Attila T=C5=91k=C3=A9s [ Upstream commit f7fe85b229bc30cb5dc95b4e9015a601c9e3a8cd ] Like many other models, the Lenovo 82UU (Yoga Slim 7 Pro 14ARH7) needs a quirk entry for the internal microphone to function. Signed-off-by: Attila T=C5=91k=C3=A9s Link: https://msgid.link/r/20240210193638.144028-1-attitokes@gmail.com Signed-off-by: Mark Brown Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- sound/soc/amd/yc/acp6x-mach.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sound/soc/amd/yc/acp6x-mach.c b/sound/soc/amd/yc/acp6x-mach.c index 80ad60d485ea0..cc231185d72c3 100644 --- a/sound/soc/amd/yc/acp6x-mach.c +++ b/sound/soc/amd/yc/acp6x-mach.c @@ -234,6 +234,13 @@ static const struct dmi_system_id yc_acp_quirk_table[]= =3D { DMI_MATCH(DMI_PRODUCT_NAME, "82UG"), } }, + { + .driver_data =3D &acp6x_card, + .matches =3D { + DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_NAME, "82UU"), + } + }, { .driver_data =3D &acp6x_card, .matches =3D { --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 124971E5F48; Sun, 24 Mar 2024 23:01: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=1711321294; cv=none; b=IT7fzXcuePBf+7Z1SPwz34Aa0+IZihlQoiHscYAp0D3pAGpwTU2WeIemZJU4j0h5iu3lr+gM2hmRcFF65aEteZClXS52oxcU6EqnVZrxtE+not9xjplQuxxH4mqb3fN6QzrcPfjYl2q+YUQtwsII1BU7o23WY0BfWS8xcmt0G7Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321294; c=relaxed/simple; bh=8b7DfpvkFhJ07ZMBds5WMnK3M2mYX6QhEVWSf43j/K4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=XwtsdJom3ODZ+g415w0mpNgZeYrFwKfaZFmvpLbAdH73PeFPgu6e3cCr4YcWNobggbfQU7iMi5ekXvtYwMOhJRBjx29NBBcew034snZOM5ScMn1z0wB3RQr2auh8i16eTjxJhOfqn1EzLGT5RCMb1kLGBxoOSt9sK1ehubW+/YU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=nilOjPtC; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="nilOjPtC" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 22F26C433C7; Sun, 24 Mar 2024 23:01:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321292; bh=8b7DfpvkFhJ07ZMBds5WMnK3M2mYX6QhEVWSf43j/K4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nilOjPtC6dFYFxbLxab1WBwk4uK9IMIrxohfIB/iZdiRJO9wasLIpHAU2C9DJhaPE fymbLfXl+966j5BGwn8cIFrRrBoei7N44sndkvE43zCdmyGuNLNZ/UPcokEgnmCABa 919StKFSfG1KV1yCKOUwZldAIC7HZhdVrxszueoxmzSOwQSsi5f60cd3AIO+ww14A6 wVPd2+G7ziE7VYvk0pDhsx0NVk6PVsQ1LIv/Q1FmCX5y0lANe/NmGEZ1lVAgQl1oLM J2y57Kh8zZdXxsFgMSJZXNW+Fo9oGjy2DOrzFwlir7jBj/uHPj59YTzf5dgE6xuK3n BpdMCQk9iXu6A== 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 6.6 015/638] x86/xen: Add some null pointer checking to smp.c Date: Sun, 24 Mar 2024 18:50:52 -0400 Message-ID: <20240324230116.1348576-16-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 4b0d6fff88de5..1fb9a1644d944 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 Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E90BB1E5F46; Sun, 24 Mar 2024 23:01: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=1711321294; cv=none; b=cQRjEwmSingKTfgiIsNrZXj6ZJQyLjLs2mX/komJXNab32tmsa1AJC8gRrhb3CzCV2dbUgdfCom4ctpMMz4UH4B60gTXNIUfFIKJYmLNKrsifO2zwpaypTRwlGvd0hP7X5gzsUrn6lv+WGfeGFfme10wzFldiAgq9pBUG5k/4/0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321294; c=relaxed/simple; bh=XGGSvzBJNfmfnhL9G/6nyYMIHVzLF9YEZMutrFl1KtE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=GdgbZJ3a8Hqm20lplPnR9txvH0pVGZx3B9yPDGGxoDqoy57j1uSLCz3mhgjaHQpGvJLctWsHxmGixfFAiXMQ6j4bsr7QuEwyBc0iksG0ArxN888OIiTSic8vE83tCs03vNjhJAtMMqKTalcd+pJlTh5I2awH88RzLkOq/BKcA/k= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=mFwpfl1Z; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="mFwpfl1Z" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 30CC5C433F1; Sun, 24 Mar 2024 23:01:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321293; bh=XGGSvzBJNfmfnhL9G/6nyYMIHVzLF9YEZMutrFl1KtE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=mFwpfl1ZHRtY0tx6jL0dakenpYTwNapYZYsJbbD+UcMZBPK0ixf8IwPSFIK/UE0ue 6mI0lRnyqyD79XCObobhpibkZ1gNzvgUHQ/NvvPU9b66TjvyRNqQTz3yYy76LsyZYT kiBfZgyM0aaK/cuA14QTg2oE61A9uxQBhRvstHocmfGYbkioST7t5uQEH7zXBj3Qkb f4+O+vEqNTuU4ZQ57RpYhj8MbMDs9DNcGgDq2Q+BT2XVZO7HiYWn80KI1o/HOiVB9F 0gXS/Y0nlc/6DMuovMIzGFQ49LKEY08/IGoxduc54u1Ap5XA9UZxC9Srl9EDKRJXU5 axjVvsCP99gHQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jiaxun Yang , Thomas Bogendoerfer , Sasha Levin Subject: [PATCH 6.6 016/638] MIPS: Clear Cause.BD in instruction_pointer_set Date: Sun, 24 Mar 2024 18:50:53 -0400 Message-ID: <20240324230116.1348576-17-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 701a233583c2c..d14d0e37ad02d 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 Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CA5E41E5F57; Sun, 24 Mar 2024 23:01: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=1711321295; cv=none; b=ch7bE/Den6lGgJG/kLQoI+cKMQVlypR598q9MOX1mRZyXcNkuIDKVlueMtvecjbqG+vWqv14gHKruDRd4FaMQF0Rk+n7AgZuz9C3Y2kayaW9qb+R7Ssxsvea51OIADApOWotBT2kc0YQFtQGX29YpluNEWDiFjKbyrKVBlQV4sw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321295; c=relaxed/simple; bh=h7vZhE/3zNxbW/raux5GMr5zWcoQY2up1hIwKwdJiis=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=XkHVXY4HcozmC77dD0GO2qI3fMRAqabDs4KNAXnc6wNMSKxRPa6WZ/ojN35cC3hDj9/UL+gpQ6T1mW7hzg2gMyfr16ZjAI0Is4KW5qbJN2mFKC40exUp6VwQH/YBjdProBMkbCBwz9yDWU+ItwunbIk4bpVUmnH2AWvzNo6Dlog= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ZfaAVWgV; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ZfaAVWgV" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1571AC43390; Sun, 24 Mar 2024 23:01:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321294; bh=h7vZhE/3zNxbW/raux5GMr5zWcoQY2up1hIwKwdJiis=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ZfaAVWgV/klIaQKULmM65NGqaANg8vq6TAC/L3XkbrdgZG8oq7f9fnijcv3GlzvIx Dkf5ULEwUhj+hv2KtPxJeBla54XSLGolmqpw3VazHxrcrFFf437kae01fmNbEMQCxT YVEGmJCBVMob0qA3BvcpbQ2V6M9CsCBx+AMDllTdyEBD7jLHfw9tv8E1yTNZv7Z/7+ mghGceDNQZbUmxHCfrbcpPW7/5tK9rpihpsFQhQ66+940ymQWzp78aw63bU7uvRtxv O7GLQmMiTPHymLnxXZySKMfO1U3K+72G+T/o9wyUO3mss90txTBO1+puOZfRge9GvY Q9IuKrC7IoeLQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Manuel Fombuena , Jiri Kosina , Sasha Levin Subject: [PATCH 6.6 017/638] HID: multitouch: Add required quirk for Synaptics 0xcddc device Date: Sun, 24 Mar 2024 18:50:54 -0400 Message-ID: <20240324230116.1348576-18-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 5ec1f174127a3..3816fd06bc953 100644 --- a/drivers/hid/hid-multitouch.c +++ b/drivers/hid/hid-multitouch.c @@ -2153,6 +2153,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 Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 094701E5F4D; Sun, 24 Mar 2024 23:01: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=1711321297; cv=none; b=TQqKixEw61tlY7miunYbB5dmoD/UwTR4OGl316v9M2i9glg4WHDKwtdgTD11tye3m5N0A7UqWiltcQynx+i1djY6t4vZ2gwQ+P47jnsi2UEpf9wixtjOImjNcH+jnk43nf0A4Tn0VFIpTosGJPxsAj+f5/k/KaD58sULK5prQoU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321297; c=relaxed/simple; bh=BTstNTU4rdjYfmXZ3VWwYPtnTndcYv9QQpk64ZexWUo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=D11m9NqdwupslmJpQ8SI6MKxwKGord2OLmRT74vOxeyG6v8Uc1kWA0FHZRS0xnlhUT3LdGkrFI5BKtGSF4BVyjv0SimLez1m8chSkBuoVbmVxvexc3suWPB91uHlE7Ej+YwdwOswLkQVTj6yb6yhlYe4Vfvkg2qIP9QAFQBN/3E= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=jKd+DjPs; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="jKd+DjPs" Received: by smtp.kernel.org (Postfix) with ESMTPSA id EDDD8C433F1; Sun, 24 Mar 2024 23:01:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321295; bh=BTstNTU4rdjYfmXZ3VWwYPtnTndcYv9QQpk64ZexWUo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jKd+DjPsi9d8OytFZCg1b6qIQ5gdwXVRR5qXwjU89TUN8eG1P/FIxylQZHc+XdiFh iUcyODz5JKwyIbqcf0Ga5ieJVxw2gXLfeWvsCS+JoviG66W+Y6BCJDXYr7vFa10kvx /OGAMx1iRkscNYxNWm77uNBZXWzee/kEoHrgVp35ldwLeoMHFvltBrFrW1Vxjeomo7 uIKgS2v9WA0DvG7B2VzM2SUTegJL/jnV1+js9w2GpH1gQ+b/bLpz2ZWsvB+tNCrwTn prJ3UrsY3F6IOurGRJJGhVE00DUspjD32YQTvw6Qv69w8rjSvQ3ijKv0VINTbv0Kyo /uBx6uLpPlsOQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Peter Ujfalusi , Ranjani Sridharan , Pierre-Louis Bossart , Bard Liao , Mark Brown , Sasha Levin Subject: [PATCH 6.6 018/638] ASoC: SOF: ipc4-pcm: Workaround for crashed firmware on system suspend Date: Sun, 24 Mar 2024 18:50:55 -0400 Message-ID: <20240324230116.1348576-19-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Ujfalusi [ Upstream commit c40aad7c81e5fba34b70123ed7ce3397fa62a4d2 ] When the system is suspended while audio is active, the sof_ipc4_pcm_hw_free() is invoked to reset the pipelines since during suspend the DSP is turned off, streams will be re-started after resume. If the firmware crashes during while audio is running (or when we reset the stream before suspend) then the sof_ipc4_set_multi_pipeline_state() will fail with IPC error and the state change is interrupted. This will cause misalignment between the kernel and firmware state on next DSP boot resulting errors returned by firmware for IPC messages, eventually failing the audio resume. On stream close the errors are ignored so the kernel state will be corrected on the next DSP boot, so the second boot after the DSP panic. If sof_ipc4_trigger_pipelines() is called from sof_ipc4_pcm_hw_free() then state parameter is SOF_IPC4_PIPE_RESET and only in this case. Treat a forced pipeline reset similarly to how we treat a pcm_free by ignoring error on state sending to allow the kernel's state to be consistent with the state the firmware will have after the next boot. Link: https://github.com/thesofproject/sof/issues/8721 Signed-off-by: Peter Ujfalusi Reviewed-by: Ranjani Sridharan Reviewed-by: Pierre-Louis Bossart Reviewed-by: Bard Liao Link: https://msgid.link/r/20240213115233.15716-1-peter.ujfalusi@linux.inte= l.com Signed-off-by: Mark Brown Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- sound/soc/sof/ipc4-pcm.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/sound/soc/sof/ipc4-pcm.c b/sound/soc/sof/ipc4-pcm.c index db19cd03ecad8..e8acf60c27a74 100644 --- a/sound/soc/sof/ipc4-pcm.c +++ b/sound/soc/sof/ipc4-pcm.c @@ -377,7 +377,18 @@ static int sof_ipc4_trigger_pipelines(struct snd_soc_c= omponent *component, ret =3D sof_ipc4_set_multi_pipeline_state(sdev, state, trigger_list); if (ret < 0) { dev_err(sdev->dev, "failed to set final state %d for all pipelines\n", s= tate); - goto free; + /* + * workaround: if the firmware is crashed while setting the + * pipelines to reset state we must ignore the error code and + * reset it to 0. + * Since the firmware is crashed we will not send IPC messages + * and we are going to see errors printed, but the state of the + * widgets will be correct for the next boot. + */ + if (sdev->fw_state !=3D SOF_FW_CRASHED || state !=3D SOF_IPC4_PIPE_RESET) + goto free; + + ret =3D 0; } =20 /* update RUNNING/RESET state for all pipelines that were just triggered = */ --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5CF7D1E5F65; Sun, 24 Mar 2024 23:01: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=1711321297; cv=none; b=btRjn9jEXeuXJQd8jyi+qUjHDI1SWXVrd4FDfzpqgYxuZVoklwLny1y/VqyroXOO05pzToSnsuA7r8WjcPlqaDlp1QP5W6K5YajAnPRHYp3aOIUx/H17iBk4clCmeeN3oPx/KJubx6/WaTKle7Xx+vZY2uTAD7t5isAQ/1CsqA8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321297; c=relaxed/simple; bh=gIBzsxEfqCELs+orQBkAqqxwLcIB/dzP3lehUdOAuRs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=iO2K3ugOPj15grBDvMYctiCzjbaKi8ggQnmbrBMSwQUgnlGB3qbSgr5QEuo/mTG/qg4drMofNzrDLDSoXkXEny+HbX/gueAMoPap2vuktQebZknQe0XgvGVCKFg/F1kU1qv9CT1j+RjC/qB/URmsv94+GUq2aoF2AZ8CjbUN8ds= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=uYAfcsho; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="uYAfcsho" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 291C6C43399; Sun, 24 Mar 2024 23:01:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321296; bh=gIBzsxEfqCELs+orQBkAqqxwLcIB/dzP3lehUdOAuRs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=uYAfcshoB2ixfBStZKMNi24jYwPAZHXZyoZ4Xv1CZP62Hb3Em2s05josGDSPHFcll Lj8XXNioblGS/nHK2qQMGJ7hkz8pqmeJtXzhJeNznDjUIGOp4JQT8OOCT1nusmrZRv TP5iaxreTL+M3YZCVz1wo0Ps/HWelWPLB5hYzlAANdtyW7CRWmsUERjlBAy+tuhV+D HjfvWEK6FYUctcqzOzixsedbIp3CV1v7qhsFGk+Wj0GH2zmOmcgFZvgxqbiqSj5IxB Fv4+hEmjl4MldfgalmiPdvoj7BUjovfkbzXSvdBsJP7B7JSdH59aPggKDvNWI5lA8c 2Vzdnn2fIq2ow== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Andrew Ballance , Justin Stitt , Masahiro Yamada , Sasha Levin Subject: [PATCH 6.6 019/638] gen_compile_commands: fix invalid escape sequence warning Date: Sun, 24 Mar 2024 18:50:56 -0400 Message-ID: <20240324230116.1348576-20-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 a84cc5737c2c6..bc005cac19441 100755 --- a/scripts/clang-tools/gen_compile_commands.py +++ b/scripts/clang-tools/gen_compile_commands.py @@ -170,7 +170,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 Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 54B661E5F79; Sun, 24 Mar 2024 23:01: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=1711321299; cv=none; b=BXw8tWsi5A59ajoDQQ/LkxhfGkMBDOYdh1P/LTgqh3qfjf/l9hE6M0tJKTcroBD4EpIeoFnlzctX+gN5W1k6nU+/jkwloZGN6KtRGAudo67QXGSuMz2ypmx/6nB37CMreWY9ZGv5Sa4UPOFr2XeIHV7KAy8+uAVICh2LnLE0yTA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321299; c=relaxed/simple; bh=OutfAaxHplxN/6QYJB+BYOmAYda3+2Wj95CgSbf2Z1Q=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=XtwKDdEAhI7Mj7YxvhlKvY+1o1Z18wuSyzxyr60VMitRn2nd0v3TJQY3K7FuINFaDinRRFKe/kGFVZw/cPa03lxeez0oIP1+I9nzl9pHk4vUqNd0Oa/rFyAuHJOb32QWuoFOmWPJKlb4opDOj0igfKNpab8Zbxv+btDQ802f7ME= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=oiSxFimE; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="oiSxFimE" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2D1C7C433F1; Sun, 24 Mar 2024 23:01:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321297; bh=OutfAaxHplxN/6QYJB+BYOmAYda3+2Wj95CgSbf2Z1Q=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=oiSxFimE7PlITkUW3jxIL/Da4Jp0ZlQpxprJSC//1HbGe2LxYRtthEVytc2+Wi/+1 ZoO2ktxC1f3wG9dzKXQhGGZvGiyzlMA7WO5ch7R88g9Xp27Qdp6ZohlUX3cPYha7p3 C3PCKENd4Uv4QBe4JxSeoKuHNkkkdTK8pucDdkFD8LV3k5beIC961FnbtoysoSVhDR Qjx4AoJTcJCKyT8CAIYftcdwV0q2A3gAM6d84iz4l04z3fpFir2rY6HUsh7NWCPIJT YaryaFy2BxkLFhfjkkRpITw+eqTVmsv/MwVfOA6WVSsqMPb7QwqcAFJS2XJsIZ2Ia7 uKnL0Vp3AJKXA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Mark Brown , Doug Anderson , Will Deacon , Sasha Levin Subject: [PATCH 6.6 020/638] arm64/sve: Lower the maximum allocation for the SVE ptrace regset Date: Sun, 24 Mar 2024 18:50:57 -0400 Message-ID: <20240324230116.1348576-21-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Mark Brown [ Upstream commit 2813926261e436d33bc74486b51cce60b76edf78 ] Doug Anderson observed that ChromeOS crashes are being reported which include failing allocations of order 7 during core dumps due to ptrace allocating storage for regsets: chrome: page allocation failure: order:7, mode:0x40dc0(GFP_KERNEL|__GFP_COMP|__GFP_ZERO), nodemask=3D(null),cpuset=3Durgent,mems_allowed=3D0 ... regset_get_alloc+0x1c/0x28 elf_core_dump+0x3d8/0xd8c do_coredump+0xeb8/0x1378 with further investigation showing that this is: [ 66.957385] DOUG: Allocating 279584 bytes which is the maximum size of the SVE regset. As Doug observes it is not entirely surprising that such a large allocation of contiguous memory might fail on a long running system. The SVE regset is currently sized to hold SVE registers with a VQ of SVE_VQ_MAX which is 512, substantially more than the architectural maximum of 16 which we might see even in a system emulating the limits of the architecture. Since we don't expose the size we tell the regset core externally let's define ARCH_SVE_VQ_MAX with the actual architectural maximum and use that for the regset, we'll still overallocate most of the time but much less so which will be helpful even if the core is fixed to not require contiguous allocations. Specify ARCH_SVE_VQ_MAX in terms of the maximum value that can be written into ZCR_ELx.LEN (where this is set in the hardware). For consistency update the maximum SME vector length to be specified in the same style while we are at it. We could also teach the ptrace core about runtime discoverable regset sizes but that would be a more invasive change and this is being observed in practical systems. Reported-by: Doug Anderson Signed-off-by: Mark Brown Tested-by: Douglas Anderson Link: https://lore.kernel.org/r/20240213-arm64-sve-ptrace-regset-size-v2-1-= c7600ca74b9b@kernel.org Signed-off-by: Will Deacon Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/include/asm/fpsimd.h | 12 ++++++------ arch/arm64/kernel/ptrace.c | 3 ++- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/arch/arm64/include/asm/fpsimd.h b/arch/arm64/include/asm/fpsim= d.h index b54506d707380..7415c63b41874 100644 --- a/arch/arm64/include/asm/fpsimd.h +++ b/arch/arm64/include/asm/fpsimd.h @@ -36,13 +36,13 @@ * When we defined the maximum SVE vector length we defined the ABI so * that the maximum vector length included all the reserved for future * expansion bits in ZCR rather than those just currently defined by - * the architecture. While SME follows a similar pattern the fact that - * it includes a square matrix means that any allocations that attempt - * to cover the maximum potential vector length (such as happen with - * the regset used for ptrace) end up being extremely large. Define - * the much lower actual limit for use in such situations. + * the architecture. Using this length to allocate worst size buffers + * results in excessively large allocations, and this effect is even + * more pronounced for SME due to ZA. Define more suitable VLs for + * these situations. */ -#define SME_VQ_MAX 16 +#define ARCH_SVE_VQ_MAX ((ZCR_ELx_LEN_MASK >> ZCR_ELx_LEN_SHIFT) + 1) +#define SME_VQ_MAX ((SMCR_ELx_LEN_MASK >> SMCR_ELx_LEN_SHIFT) + 1) =20 struct task_struct; =20 diff --git a/arch/arm64/kernel/ptrace.c b/arch/arm64/kernel/ptrace.c index b3f64144b5cd9..c94c0f8c9a737 100644 --- a/arch/arm64/kernel/ptrace.c +++ b/arch/arm64/kernel/ptrace.c @@ -1499,7 +1499,8 @@ static const struct user_regset aarch64_regsets[] =3D= { #ifdef CONFIG_ARM64_SVE [REGSET_SVE] =3D { /* Scalable Vector Extension */ .core_note_type =3D NT_ARM_SVE, - .n =3D DIV_ROUND_UP(SVE_PT_SIZE(SVE_VQ_MAX, SVE_PT_REGS_SVE), + .n =3D DIV_ROUND_UP(SVE_PT_SIZE(ARCH_SVE_VQ_MAX, + SVE_PT_REGS_SVE), SVE_VQ_BYTES), .size =3D SVE_VQ_BYTES, .align =3D SVE_VQ_BYTES, --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E6B0912FB17; Sun, 24 Mar 2024 23:01: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=1711321300; cv=none; b=RfmgQSM3m4vFsb20woHiky13zV2HSmlQBYFw2Z/cm6vPdbFP9FSd7dl2DJ+BpZi0iowSTh+hn/fKZ239tzfZCbqKkFiS1p/arTbkobxIiErRfW4kZNB8wAMdwSsFSkg1KBVJ5h3r8LahBJMULJ7sE4m5MphSfxKgHeX3ZN7XOpo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321300; c=relaxed/simple; bh=FkzDlT8ctDyCauDA5oCuwo7gENN9bz4/MUbxBdnuFjM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=lo+FA53DnUyhsBR0Wp3dq0tPDt+2CJmHwI95BWtouBfyZV58sqrJoi2j1JdVaCtQi/r5/LeRF4okBAh0CQwLa/hOIMMxLbWAvt6CvqtAyyMuZoCD+UOU9zqZf3tfTs2SSgzZEehWzyAngxcbLHJ8qMhj8q+szT6H10kwrarcO6Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=U6rH/Igy; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="U6rH/Igy" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2FCFDC433A6; Sun, 24 Mar 2024 23:01:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321298; bh=FkzDlT8ctDyCauDA5oCuwo7gENN9bz4/MUbxBdnuFjM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=U6rH/IgyYAtU6ihcspC2Fsp3TS5+2jM7qR8qFXbTMnd8Hw9UN62Q37Q9nTWRVNsYF 8OaSfwuhhuD+L/KHrxZswDYIoQIqlG4IewwEm1MPYI4HaHLPNC0IbQbK98JXS/uglb JBCpGnIP4oGinzKTyYZemXS+6iNDMawBrAG+zLoYAvGOAceMajHPQRQpG7xJqTOD55 tOUi1+iYvPX3Tf35NMR3HhTDZCY3kCwn+1UW8jH0NepQSe++Iqo2zi0YbXwduHWKMO inwMaPkqdwb7ykj4Xnr2Z4OBIORx/E/QM7JJT03zitVC8o2gxsuNhhz82b47eH6aka 0qdR42QSwADGA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Geert Uytterhoeven , Conor Dooley , Sasha Levin Subject: [PATCH 6.6 021/638] soc: microchip: Fix POLARFIRE_SOC_SYS_CTRL input prompt Date: Sun, 24 Mar 2024 18:50:58 -0400 Message-ID: <20240324230116.1348576-22-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 6dd9a236042e305d7b69ee92db7347bf5943e7d3 ] The symbol's prompt should be a one-line description, instead of just duplicating the symbol name. Signed-off-by: Geert Uytterhoeven Signed-off-by: Conor Dooley Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/soc/microchip/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/soc/microchip/Kconfig b/drivers/soc/microchip/Kconfig index eb656b33156ba..f19e74d342aa2 100644 --- a/drivers/soc/microchip/Kconfig +++ b/drivers/soc/microchip/Kconfig @@ -1,5 +1,5 @@ config POLARFIRE_SOC_SYS_CTRL - tristate "POLARFIRE_SOC_SYS_CTRL" + tristate "Microchip PolarFire SoC (MPFS) system controller support" depends on POLARFIRE_SOC_MAILBOX help This driver adds support for the PolarFire SoC (MPFS) system controller. --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C8A8312FB23; Sun, 24 Mar 2024 23:01: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=1711321300; cv=none; b=rha6qbzC2kpdK0d46pmcBYn3snzhZGZKf40/nVdhSfXP5cuzKs39FaGvngxhCxVKFpntaS+90mRiHzF8xpPJNCrOVzmy3nNe5X+vr0h0ghb8r3071t2+/x9dDiv6kkUM5+2P01H6ju75Jd9Eppf6iXMOJSUf9TeVxsnOpw9c3+c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321300; c=relaxed/simple; bh=2BdqdFEP9DNIj4Ti/gNcxrXdKA23Zc1z1zE0/5TQH0U=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=n2Kw5h5adDr9QvMlohJ5YRnfxWTyuizaOHGpGGz5mgeUw+VF/Q6vD6fsVFKOYKvsgnWwWzL9/yoyhdtGPSo4EmvSDiZyO6jco4FhNmYbEOxfdEFU74V4tcUXXNpOC8VYW285qmsHaKPmj/h5n+e8SV/nIsxxbpy61f8DbVg4Go0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Vhx+wykr; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Vhx+wykr" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 12B45C433C7; Sun, 24 Mar 2024 23:01:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321299; bh=2BdqdFEP9DNIj4Ti/gNcxrXdKA23Zc1z1zE0/5TQH0U=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Vhx+wykrgUUz6HZT8pMHcdVisPk1R6lavShNCI+oXE2O/w8csaRNLcLet4WZ8XTsT 1tH6lKd70nyRK7u6GLPUCM5O9LztAklFQtFRoW3N2yWxVq+EQRV14IFL5qnHnJOkxL Ehz5QHTDIXrKgdrUOzhhgP13sXBYDc2VgRleoXj5UI1zoBshQaXUfldJDMbVTXLfaR DO7FAOfvtkDmYLZ7Dquz1AwK582utKh0njEunBQMLMb4hXbd7eFWhxHNuK4CcG2YWO DuoonJzmYOe1dB3TJsH/aV78Nu77wLXSNEK8rF/C4x2hDymGXpSgKr9K1fR4VQ8HE3 PU01XxyxFZVew== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Sebastian Reichel , Heiko Stuebner , Sasha Levin Subject: [PATCH 6.6 022/638] arm64: dts: rockchip: mark system power controller on rk3588-evb1 Date: Sun, 24 Mar 2024 18:50:59 -0400 Message-ID: <20240324230116.1348576-23-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Sebastian Reichel [ Upstream commit fc4657971be31ae679e2bbeee2fb8e93a7a063eb ] Mark the primary PMIC as system-power-controller, so that the system properly shuts down on poweroff. Signed-off-by: Sebastian Reichel Link: https://lore.kernel.org/r/20240117191555.86138-1-sebastian.reichel@co= llabora.com Signed-off-by: Heiko Stuebner Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/rockchip/rk3588-evb1-v10.dts | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm64/boot/dts/rockchip/rk3588-evb1-v10.dts b/arch/arm64/= boot/dts/rockchip/rk3588-evb1-v10.dts index 229a9111f5eb0..fa8286a325af7 100644 --- a/arch/arm64/boot/dts/rockchip/rk3588-evb1-v10.dts +++ b/arch/arm64/boot/dts/rockchip/rk3588-evb1-v10.dts @@ -215,6 +215,7 @@ pmic@0 { <&rk806_dvs2_null>, <&rk806_dvs3_null>; pinctrl-names =3D "default"; spi-max-frequency =3D <1000000>; + system-power-controller; =20 vcc1-supply =3D <&vcc5v0_sys>; vcc2-supply =3D <&vcc5v0_sys>; --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D676112FB26; Sun, 24 Mar 2024 23:01: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=1711321300; cv=none; b=re4Woko99whElX28edYpqNMemYb1bQb+rZoej5AhfsSDdiRsEO4usZJs76bZ1nGQbC3zT6YKKqo8B2Tau9BhY0K2SLlUrDvc6AjzYw7ooU6TRRE+eQZL8vRr7p/9hnnexQaUKm+ZXXLSAXi7J/iFrFWwhhMJsXyFX/gl1g+hcqU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321300; c=relaxed/simple; bh=9ho8EJ2VFT3bEroonlc5dWDoUEEhnUjuMR9yIwHc+Gs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=RIsbMIEuL3M33AyCduT8OVjVzCLme0lOkN6aisTB+YvBX6NX6jhmsdwGZ/JsAgi+J8xZmLCTZA0RtcUvQEtYmG5gRKtXnIyF7pLyAdROpd1miPbBsEhwqKYk5T37ZYkqQ4Vaxfp5vkKZ6QfCKZBjYbCZUz84KmaeMo4qgIVvXYY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=sWao3NFc; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="sWao3NFc" Received: by smtp.kernel.org (Postfix) with ESMTPSA id EB521C433F1; Sun, 24 Mar 2024 23:01:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321300; bh=9ho8EJ2VFT3bEroonlc5dWDoUEEhnUjuMR9yIwHc+Gs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=sWao3NFcjGN7QX/OyfbahkhzDBORJ4YstnBH/4M85H8o/esOKZPC0nJACjnnXrn9H 9fDDZZ/OqjrD4XdHE2vjWoC0K2/uvcncEWLgxhjibvS67O7toS1oEaFQu7ujzp6Tm8 UWIs8I6jSoJzhq5iB5xDFK3t6iZAphfVLExH+Y7UU0jRMoDaGqCvcZ4vKQq352z/mx /i2zTOXrBxSYdaxr3EFQk7Uhl7bpCKU59bANvz09p+/yp433oaomYJOY8JpIuiJQOA R2yYwvCz3WdvaJ+F4qj2cvyTvWQZPx9DmZ4md1UzooJyTG+II0+nKM48wJFHFTVhQO 0akXL/pRv/akA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Leon Romanovsky , Sasha Levin Subject: [PATCH 6.6 023/638] RDMA/mlx5: Fix fortify source warning while accessing Eth segment Date: Sun, 24 Mar 2024 18:51:00 -0400 Message-ID: <20240324230116.1348576-24-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 df1d1b0a3ef72..9947feb7fb8a0 100644 --- a/drivers/infiniband/hw/mlx5/wr.c +++ b/drivers/infiniband/hw/mlx5/wr.c @@ -78,7 +78,7 @@ static void set_eth_seg(const struct ib_send_wr *wr, stru= ct 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 bd53cf4be7bdc..f0e55bf3ec8b5 100644 --- a/include/linux/mlx5/qp.h +++ b/include/linux/mlx5/qp.h @@ -269,7 +269,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 Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E67321FB6F0; Sun, 24 Mar 2024 23:01: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=1711321303; cv=none; b=KV1qZRN4BqobuMhdbqXtYu2Bkpmng4mLnuyEPS8FTgg18PyQ1NJX0S1xBC53NfFUeiP8n76oMyS5qiLmEQ2xTvi4nUTIilYhGlHoloblZr4i77nAhZL19Pwdzyuw8IB1ZNFJC08dmj6sIq/xWCoEI5UIL0AN3494KjNbcYzM7Pc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321303; c=relaxed/simple; bh=KSF7boKFkFUKI5Y7wTzgbmgkVIR1+Hf5SXgY2kEF1mA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=V7JrEuxis0Zsun53viVWoSUWCXnvenqYCRbaa/Bh4opB8E1n28igAcU9J8x/sJtFhke/R08PhgBmX0TMxAuE03pMhpM1PFEte6qLd4ZND5B17WFZdpxgWrWgfbSLFOHiYDV144GWQV6sXemw7FZp0W+0inHYE30fo7SC71/OMEc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=c2HY68e8; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="c2HY68e8" Received: by smtp.kernel.org (Postfix) with ESMTPSA id BBAF5C43394; Sun, 24 Mar 2024 23:01:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321301; bh=KSF7boKFkFUKI5Y7wTzgbmgkVIR1+Hf5SXgY2kEF1mA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=c2HY68e8DArQ3uxQxtVBrtbXfxVEbhvmYEcrCmstyWwm87DEVrjNG8mIh9JFOAXa2 QufsDkQ9bcpXALzc2OKGOJdk8mMu18egKVD5U71TtutrDczfFDfjcOafkganPksyq7 DhtAARSxffKF3lAZx6MSj3fgneS0OaTPuxXX5oBrhSgBf1q7tKKx77C3VWq0jxae24 ShbSK1Eh3qS66SfOXb77Ei6DbMSrhlGCcNYK7v6tateMogHFHU6y+abubO6WDjyC51 Ph4SXrFtdG2wJDoMwjTqwT2XuFJ3CxD0pDf4ACAXREzS7m0MjU3Pl61z+zkS+tNpIs lxGf/kge3UFBg== 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 6.6 024/638] RDMA/mlx5: Relax DEVX access upon modify commands Date: Sun, 24 Mar 2024 18:51:01 -0400 Message-ID: <20240324230116.1348576-25-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 8ba53edf23119..6e19974ecf6e7 100644 --- a/drivers/infiniband/hw/mlx5/devx.c +++ b/drivers/infiniband/hw/mlx5/devx.c @@ -2949,7 +2949,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 Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8CBB11FB6ED; Sun, 24 Mar 2024 23:01: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=1711321302; cv=none; b=qzCwkXo9XOUq0i16W/rkU295eStSlG+jCckNpZFnfokxt6BYqOf8W2EIv7ZaCSh2XkkIOOcGF3iI6nlyKSgkEY5zt7T+i+p2rGHx+UZO97XehDhxqovzplkU8JtEMKopTO/fxIkTrA6Yji5H3KP0Hq7ZnKSR2DZblEEcTRL6wJ4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321302; c=relaxed/simple; bh=ayO7XyN49cXFaYIdOLLp2HPoo0b7cB0hWQMIZqiT/UM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=ip7EnSXakPH+nUynn0a0wHr8lwZqef1I7MBqQmb3UKYyTZ6WwIMWQ5ptmziBOR4hc6pbF2jWp+U72hRr7W+yiD+3yivCvcBx4YgEcYhNiOBj5yui0bwEiXuJVRMzkoSM8u/Sgae/daTQzrwFTbIz9Xf4NCe3MyI3d/MpKTIWHBc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=k7w+70QW; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="k7w+70QW" Received: by smtp.kernel.org (Postfix) with ESMTPSA id CDB89C433C7; Sun, 24 Mar 2024 23:01:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321302; bh=ayO7XyN49cXFaYIdOLLp2HPoo0b7cB0hWQMIZqiT/UM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=k7w+70QWkCYfMXcZfCgLOz1HZb0YrE6xPzxnCWbWPl7PgGOHbWxKBnlrmQ1avhiEr Do6t7Exp9O23vi1KlETNMk5AwoiBthEGVFBNPIwrRAtvE8gMGsITaCXZKktSdsuDDr ATOkGRiJuDUZcTHlptc4P87O4NzCaemgD8AiO5sJYQDNYhhc4bZVflnGweS4rYzETZ OMwrdik8jVeTKskwqyedbwBoTbmBDTCUPgemmVPka62M+is0clXAE18r+EV2w+Wgzf jiZyYHcvbeB7vb8jJQINQjzhnwGs701EZQA/rx2bhSLnRjOqzgZM+ByIoWgvQcuUPN 3ZMori32g+VyQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= , Heiko Stuebner , Sasha Levin Subject: [PATCH 6.6 025/638] ARM: dts: rockchip: Drop interrupts property from pwm-rockchip nodes Date: Sun, 24 Mar 2024 18:51:02 -0400 Message-ID: <20240324230116.1348576-26-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-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 f98643d8daf3443e3b414a82d0cb3d745f8c8bbc ] The binding doesn't define interrupts and adding such a definition was refused because it's unclear how they should ever be used and the relevant registers are outside the PWM range. So drop them fixing several dtbs_check warnings like: arch/arm/boot/dts/rockchip/rv1108-elgin-r1.dtb: pwm@10280030: 'interrupts'= does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/pwm/pwm-rockchip.yaml# Signed-off-by: Uwe Kleine-K=C3=B6nig Link: https://lore.kernel.org/r/20240129113205.2453029-2-u.kleine-koenig@pe= ngutronix.de Signed-off-by: Heiko Stuebner Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm/boot/dts/rockchip/rv1108.dtsi | 8 -------- 1 file changed, 8 deletions(-) diff --git a/arch/arm/boot/dts/rockchip/rv1108.dtsi b/arch/arm/boot/dts/roc= kchip/rv1108.dtsi index abf3006f0a842..f3291f3bbc6fd 100644 --- a/arch/arm/boot/dts/rockchip/rv1108.dtsi +++ b/arch/arm/boot/dts/rockchip/rv1108.dtsi @@ -196,7 +196,6 @@ spi: spi@10270000 { pwm4: pwm@10280000 { compatible =3D "rockchip,rv1108-pwm", "rockchip,rk3288-pwm"; reg =3D <0x10280000 0x10>; - interrupts =3D ; clocks =3D <&cru SCLK_PWM>, <&cru PCLK_PWM>; clock-names =3D "pwm", "pclk"; pinctrl-names =3D "default"; @@ -208,7 +207,6 @@ pwm4: pwm@10280000 { pwm5: pwm@10280010 { compatible =3D "rockchip,rv1108-pwm", "rockchip,rk3288-pwm"; reg =3D <0x10280010 0x10>; - interrupts =3D ; clocks =3D <&cru SCLK_PWM>, <&cru PCLK_PWM>; clock-names =3D "pwm", "pclk"; pinctrl-names =3D "default"; @@ -220,7 +218,6 @@ pwm5: pwm@10280010 { pwm6: pwm@10280020 { compatible =3D "rockchip,rv1108-pwm", "rockchip,rk3288-pwm"; reg =3D <0x10280020 0x10>; - interrupts =3D ; clocks =3D <&cru SCLK_PWM>, <&cru PCLK_PWM>; clock-names =3D "pwm", "pclk"; pinctrl-names =3D "default"; @@ -232,7 +229,6 @@ pwm6: pwm@10280020 { pwm7: pwm@10280030 { compatible =3D "rockchip,rv1108-pwm", "rockchip,rk3288-pwm"; reg =3D <0x10280030 0x10>; - interrupts =3D ; clocks =3D <&cru SCLK_PWM>, <&cru PCLK_PWM>; clock-names =3D "pwm", "pclk"; pinctrl-names =3D "default"; @@ -386,7 +382,6 @@ i2c0: i2c@20000000 { pwm0: pwm@20040000 { compatible =3D "rockchip,rv1108-pwm", "rockchip,rk3288-pwm"; reg =3D <0x20040000 0x10>; - interrupts =3D ; clocks =3D <&cru SCLK_PWM0_PMU>, <&cru PCLK_PWM0_PMU>; clock-names =3D "pwm", "pclk"; pinctrl-names =3D "default"; @@ -398,7 +393,6 @@ pwm0: pwm@20040000 { pwm1: pwm@20040010 { compatible =3D "rockchip,rv1108-pwm", "rockchip,rk3288-pwm"; reg =3D <0x20040010 0x10>; - interrupts =3D ; clocks =3D <&cru SCLK_PWM0_PMU>, <&cru PCLK_PWM0_PMU>; clock-names =3D "pwm", "pclk"; pinctrl-names =3D "default"; @@ -410,7 +404,6 @@ pwm1: pwm@20040010 { pwm2: pwm@20040020 { compatible =3D "rockchip,rv1108-pwm", "rockchip,rk3288-pwm"; reg =3D <0x20040020 0x10>; - interrupts =3D ; clocks =3D <&cru SCLK_PWM0_PMU>, <&cru PCLK_PWM0_PMU>; clock-names =3D "pwm", "pclk"; pinctrl-names =3D "default"; @@ -422,7 +415,6 @@ pwm2: pwm@20040020 { pwm3: pwm@20040030 { compatible =3D "rockchip,rv1108-pwm", "rockchip,rk3288-pwm"; reg =3D <0x20040030 0x10>; - interrupts =3D ; clocks =3D <&cru SCLK_PWM0_PMU>, <&cru PCLK_PWM0_PMU>; clock-names =3D "pwm", "pclk"; pinctrl-names =3D "default"; --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C122B1FB704; Sun, 24 Mar 2024 23:01: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=1711321304; cv=none; b=qNMVz5V/g0A29uFJ8rciow9KPejbmYviHjzm6Kraj6Gm9CnPo/ndQH3QUVREWvTzHfHTdY2AdGj/WRZ4rTwTIoLcA+KuDB4TqJxXpZB9pna1uc1XersO7lzZFFFDHo+fYwCS1rlE8/+u9Xo46glAI+hoNDSc8Cjack0sw6+ljKA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321304; c=relaxed/simple; bh=T/akRPi5ao0d12BmCz3WEgH+FPHY9KHNebOOEFBHkBM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=BEYFStCGXiatWCjJJeNlCA9KpnN7qTSGeO+GVmcFVM2tZJoRbueCLEqvLRXPsadB+oTecZvYQQWgTWrnGfIKIz5mtGXJuL4UmfhMkmdXFog/f9AYxNhglYFto+RVxtDjRsAg+BqjO1OFk7DJk1/mJJGtXH37E0sPU9fghTTEw1Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=aRK9iLo+; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="aRK9iLo+" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B2684C43390; Sun, 24 Mar 2024 23:01:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321303; bh=T/akRPi5ao0d12BmCz3WEgH+FPHY9KHNebOOEFBHkBM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=aRK9iLo+bacb4Iqm8R4zBHJP+zRQYb1qsXklDJ6YrPMbBg/5zOtdTAIWDx/WcBRH2 FRAGht7CitdWv+lhz1SLF3sdW1Ax7H58OELKBUAuxZA/S1GFxXoAB254E9T5pJWML/ CyaSCvRRdDOahw7QKrWhhO7ZeJlXR0XSeTza2Sybh5vbBpSRKmhRJrshmlUS3nivv1 wm1ZVUG1udEpuY0m38x8LULh5kY8V8i+zykB6kbvnxS6PIRVwaQ9iDuF9tKglbR0Xk 6CSVviPMUDYyZaSDH7Td054AlN4eMZNTH/KFogD3mFSXF8L2fhJRsLYb3+toRwmoI2 fyxocrogjsXww== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Conor Dooley , Samuel Holland , Sasha Levin Subject: [PATCH 6.6 026/638] riscv: dts: sifive: add missing #interrupt-cells to pmic Date: Sun, 24 Mar 2024 18:51:03 -0400 Message-ID: <20240324230116.1348576-27-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 07387f9c135ca..72b87b08ab444 100644 --- a/arch/riscv/boot/dts/sifive/hifive-unmatched-a00.dts +++ b/arch/riscv/boot/dts/sifive/hifive-unmatched-a00.dts @@ -123,6 +123,7 @@ pmic@58 { interrupt-parent =3D <&gpio>; interrupts =3D <1 IRQ_TYPE_LEVEL_LOW>; interrupt-controller; + #interrupt-cells =3D <2>; =20 onkey { compatible =3D "dlg,da9063-onkey"; --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B152A1FB702; Sun, 24 Mar 2024 23:01: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=1711321304; cv=none; b=b9WIjRl9HamYOL5w4hZTZw4XkvpMZjavxHeca+0Q6zz9cEY0oT8I//Mg7BtLkam7f5d5MyxPsJweUhFb8PtmAHtbNs0Xz234/12kLJj7ElHEWMV2t43BxlIxvsDDnfkBMVt9wSQNjzzxN92JviYHM/gjKZs0Y6yqBHCGiITsSLk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321304; c=relaxed/simple; bh=du2aFlm+xs0pTQLEJ971wtsOkmAlatVJgbY9t73ZhnI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=eHKHeDg1Eboy5OnidBjM5DSgpdQQ5nKvpRoVk0aVmHWt+F3i+7F2KH16peA8jXfAFGQgOTPqWJy4Crf9UBFCcXBLgAk9mvdVK24A1ybvaxd3LG8oeu7ouivCF2abQc0JkR6xYXq1OvZtQMIT5wdMAzGl/oqkrT3r6pt91jGoiRk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=YyxUTwbu; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="YyxUTwbu" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9750CC43394; Sun, 24 Mar 2024 23:01:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321304; bh=du2aFlm+xs0pTQLEJ971wtsOkmAlatVJgbY9t73ZhnI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=YyxUTwbuP7iwAp23h5eM4niTH7BHK9lr5sz8YF8NDXC+aDvQ85V6Oqzkq2W2zEgkE /eLMEkFQRFQoHy+9Tjh/iK6sWITRlcPEnYUUYtlgvyPfNCUNjncGp0GkyWWfdbPwo1 K6wRC7ZKu5Lk25wlmElrkab8dR3z8RmVgGFoHfkWLo0aZ8csRHRWbKSDiuWaJGFk5E GLz8OqfATjP4aErkLgUHnUtLDR1Fr759NlbMfPul73qUe0zKi9a1DhRC0n3mjS4o+x W+5sFAf38UH8BhVu3BUhsqKpMwelBnu2/jTOeKXkOE0ziaROCb46UluYfeoTmyWUY1 ZirhaUbdW1dzw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Hou Tao , Sohil Mehta , Alexei Starovoitov , Sasha Levin Subject: [PATCH 6.6 027/638] x86/mm: Move is_vsyscall_vaddr() into asm/vsyscall.h Date: Sun, 24 Mar 2024 18:51:04 -0400 Message-ID: <20240324230116.1348576-28-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 ab778eac19520..a9d69ec994b75 100644 --- a/arch/x86/mm/fault.c +++ b/arch/x86/mm/fault.c @@ -798,15 +798,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 Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B3CF81FB6F5; Sun, 24 Mar 2024 23:01: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=1711321305; cv=none; b=q9VZkmv0IS8RenfdQh/Ez9yUJRzkgM5jw3o5SRrQ2f9vAxeshLXkqrt2MkC7sl5ndw9Tj+U5Ub2ZDwj3+9MSUifEfPajGeiLMSWiroXtCRhtg+UQWWItGe38YIwZAkWUVZphGJtN0uR6HhCpv7lMHi7nNFz6YgkyByUzL/eQKjY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321305; c=relaxed/simple; bh=Vo3k/UgoRrmyUGzlldwCCqinbenvGMIr4yM+BJI4MQQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=FL/RvRYz/1sP8l378Avp6Usef8cmFOzLsTrwX7JmlejwvOS5jKC/XRB2jndtrDeiJwiVKw899u1AB0Am9tKsu7LzRFkqtliVMJP3J1SAmTbY3HtPkDFDTKRHxVuI5EyyfZefy72qLaZ6OXozHRb26YmjDS/bgk/6OxbtdR4Vdb0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=WlOvhtQz; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="WlOvhtQz" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9455AC43399; Sun, 24 Mar 2024 23:01:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321305; bh=Vo3k/UgoRrmyUGzlldwCCqinbenvGMIr4yM+BJI4MQQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=WlOvhtQzK+ugJiw/wBKBbdGoeypg0ThXWeHRDLpFTy+LE4vQRr62hKYgfz5iCBsG0 sMTeX6IvtVgXM+A9TQGzsuc663Orxzby0DDkT8l4Je5+KhSYazclCMjYqs5xNKd11w JwAfT3pgrF3Xiz1+XflDCxZxlnlh/wZzhD1YLfoeIlrn15ogCZkD944jdET51NdxOs qGodsRQIuThSV8n168xrLJzWRcegkXvT5LJHY3oxIolzxGUPeN9VyZQs2uRT0aeGm4 kruqIm/sVmQE85/etlMrnTOxsQ7o8oZea6h02QoiEJv6Lc50h7iRXEsQLNpgMYr0rg FdHc5fe9i1ndQ== 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 6.6 028/638] x86/mm: Disallow vsyscall page read for copy_from_kernel_nofault() Date: Sun, 24 Mar 2024 18:51:05 -0400 Message-ID: <20240324230116.1348576-29-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 044CE1FB711; Sun, 24 Mar 2024 23:01: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=1711321307; cv=none; b=IJRwDdDQSzEmdQW6QpwiAkvsId5eMyhv5rQLdZFeXFjMdRldCamq3rLtaDR19SkMvIgZ5B/Nup6sNSQZskwozVL21yCFysnroGflxznI/sc69/eU001NF5AmQQXpg+h8Vecw5ykk6U1Zqq8cRg+/5PKn5xdZf3ZbOdBaueiZ/PA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321307; c=relaxed/simple; bh=74kBJTUxv1Q4HgbcKWpYMeYUi0KuiFLvBp1n22KuFJM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=CoYZHeA7L31hdygopoiihcV1b2oZ4X5MyhPv4tz/QLEm+mWdIhY8TNqvdnakz63ag+fSbgjuEvUv2TAPoYIpIO0EjAFqahyOPQV4SfdZBDswHTczsKsOQB5xkduXWTd0OAVAJGkFMr2hA8Yi/7DwZX9UZ6uqEzFInDPiwNAloQU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Sj2iaNlD; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Sj2iaNlD" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D429AC433C7; Sun, 24 Mar 2024 23:01:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321306; bh=74kBJTUxv1Q4HgbcKWpYMeYUi0KuiFLvBp1n22KuFJM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Sj2iaNlDZFeJT3jT66ppwvepPePxrw4F/qxUz0yboGgGElS3AKaDWv1fXNwcK06Gf p3nAFM6YN1+4Ds1xBI9DO3ONI259WfY0QJEvp/zbQwA82G1/RtCa/ZRPvVA/SWQwkg jqUu0ACYx2Rftl2uP8fYQP06htHoXzFKr+5Dc5KcPP4bXY4iJe6kcy7kSug04183I3 GcO27dNdcZfDAdlB5GHGNrk1d5VNCP3DldjF6pYYKqGsjPZXUCIHm23FaqBlaJP4rj 2V6OSQdx+dYk0OMh+yAvAyet0GlRGVPycBBTKzVHdeaiSkeAvWHv0AsHNtMHTVUGCp vguDFYmbANm7A== 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 6.6 029/638] net/iucv: fix the allocation size of iucv_path_table array Date: Sun, 24 Mar 2024 18:51:06 -0400 Message-ID: <20240324230116.1348576-30-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 fc3fddeb6f36d..f66b5f74cd83a 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 Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CD4CD128836; Sun, 24 Mar 2024 23:01: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=1711321308; cv=none; b=mk+x/d/iiqcgz3zeF5WFMcxG3Q4ElXz2nGWFO+QkMK6No5YAx+3r9sBOATCMZ6CUrdaLnBNpx6bYVIguI4tKKdcDYSCSx4IsaKR8FUJfmPMl3lXRr+YDmacRHC81yC0yZAEwIxE11//C6Cwjqg0yjWE25ripOA7FQpVVRtGPTbU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321308; c=relaxed/simple; bh=DM56fWUpnYs8NKGcPFxbzDsx0rC5E5rIw5nd28XokT8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=lsRZZCWN4JhMfGg/khjC2F7+NdKB3nYwrL2AQSfzihgaul3QevSbNoxQM3LjOGdz+BjE8AuWjtegXDkOgHgFnnTEAK+AtMd9/Asc9RWjB6lXb0ipx7EULihpBXCxq8R/jCiXAdk5+z6wGTawrmaP/EPWWEPh5kPetSkomraBfs0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=uqkEW0ct; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="uqkEW0ct" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D02CAC43394; Sun, 24 Mar 2024 23:01:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321307; bh=DM56fWUpnYs8NKGcPFxbzDsx0rC5E5rIw5nd28XokT8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=uqkEW0ctt209EmAQXzqz/3yCq8NVWcP2dLmCRsFdve/iHKadF97FQ13fRfp2ntnws oDks5yNLIfjQdlPeMMfhF0K2qIGT4qYI+Ly9IYHm12o0ZSDqvThpioBDiKPYv/m8ht emgo+7vrihi0deoBK1NUcGAiXq8pWgc15F8EPaKohzDKBCejNTnWz7AD16OnhT83Qv unb2Ss4myZVAL1cVbkQy7w/s6VMEeGo46o0Ac27EK3g4/hCXSloP4Yi6aLaA91BL11 5Vjc/jh7gVUC+wOQMflFdbpva41lx/67VqbDYtlT01pmvBpCQmnKOr41WbNSAEYy0n DI91mPsy8k+1g== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Max Kellermann , Helge Deller , Sasha Levin Subject: [PATCH 6.6 030/638] parisc/ftrace: add missing CONFIG_DYNAMIC_FTRACE check Date: Sun, 24 Mar 2024 18:51:07 -0400 Message-ID: <20240324230116.1348576-31-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 d1defb9ede70c..621a4b386ae4f 100644 --- a/arch/parisc/kernel/ftrace.c +++ b/arch/parisc/kernel/ftrace.c @@ -78,7 +78,7 @@ asmlinkage void notrace __hot ftrace_function_trampoline(= unsigned long 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) { static_key_enable(&ftrace_graph_enable.key); --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7E75C1FB71B; Sun, 24 Mar 2024 23:01: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=1711321308; cv=none; b=RtBW6lU4J5SB/C9AsG8naKX/1e0cLtKUA/Snp2OeAdiGt0pfmCU7h4NNepMeFhHu2ig0CcB2sxLWzq8QB7p9L+utKsdWf5NFm9a1YDysxJzwh8GosyGvfFdpy9lZluH2jBQAGuMI+Eh1A+2C6jWH/8ZNUiag/fs5PJJ3VJcK8/M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321308; c=relaxed/simple; bh=mxRUa5CthTVInxGr8kKOevfXkarA6jUudOI+9gLETuc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=OW9/zSm9MTKhXTSdGPCYKa0w6DNaR3q5Aih5GPIqAiA7hxjr/V8V0djzaibvvLxWHabQ77quVnHZf9IzRNEvQ5b74zzboB+9TEj2Jl+u7OOlBifQvtPeNlYSMe+01UFvO1/U/b8h30gxkagHq1XdQpEQNUoZS8ovdoN4DtmNDIk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=rmYJNAYD; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="rmYJNAYD" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B814AC433F1; Sun, 24 Mar 2024 23:01:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321308; bh=mxRUa5CthTVInxGr8kKOevfXkarA6jUudOI+9gLETuc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=rmYJNAYDnDlu5kxyRiXiYX2k9RmGHwhcWL+GnPAPD9KTKBEnHj5XBfChQ9ycV2Pzv 3Bh0Id5BWgThcs+gTxu5xsdr9Un60Pw7Zsxa9tBs3dTOPVCnfyIo3kzvDxrkLFAzZA agk3s9SfHrZjRRT+j7fwql0np9imI/Mc7wWX/wOBDVyq4Kkrzfp0iRlwkyw+EGhPq4 pSy+a2GKIBYO52iwVq05fBtOlsRHSVvd6EHJfCijikVKBWuuejDAgtaiVRobJY7Ujw vEfPDZu9uW1iF4xOGhv9XHQbv2xm8RsLEBd5BK8PUu6F57X983EvIgFzwvg7rTcMKN 9t9QdtK0GrBJw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Greg Joyce , Jens Axboe , Sasha Levin Subject: [PATCH 6.6 031/638] block: sed-opal: handle empty atoms when parsing response Date: Sun, 24 Mar 2024 18:51:08 -0400 Message-ID: <20240324230116.1348576-32-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 dec7ce3a3edb7..d247a457bf6e3 100644 --- a/block/opal_proto.h +++ b/block/opal_proto.h @@ -71,6 +71,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 04f38a3f5d959..e27109be77690 100644 --- a/block/sed-opal.c +++ b/block/sed-opal.c @@ -1055,16 +1055,20 @@ static int response_parse(const u8 *buf, size_t len= gth, 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 Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 78D4212FB38; Sun, 24 Mar 2024 23:01: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=1711321310; cv=none; b=hEhIHvrdHCjG0oxd0QSnLEwnXeKUnCiELfXJjHVG48mKoSSmXM5IkLRWBlSfySTRPCg3d2YqOIv2iC01AeJ0n5pUo4HN2my5HgAd5YgRMZTVnpQtbQ0nBfliNgWr4Bb7irJ5hDzsK+UxVh/KTma11lKfFqbJbg9RfjDiAWCOeBg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321310; c=relaxed/simple; bh=qB4HappnWK8PlV2MzfcXsXtLknPnzx6f5UGJ670ViNM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=KlWd37l5G9jRn9kLw614NawYvFX0L6JRkxgVPr042MY70v9iizSgmV9R64avl+fN2u0agG0Oy4O6yt1ilZ8syTwfom012Z64j9hJLOunKPzdnniRbFp/ix/hsHhymPK1DTyMPzz+BSpCoVskar4uyVxTm4UFpotv80gY6Mc8HX8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=I069xcfC; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="I069xcfC" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9E3F5C43390; Sun, 24 Mar 2024 23:01:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321309; bh=qB4HappnWK8PlV2MzfcXsXtLknPnzx6f5UGJ670ViNM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=I069xcfCcZ5neASeNm9qjOctdNAtlna/1Ho2ow5PYK2ubM1lbAB+pPAaiFPouIyZi 5QLXsIJvJXN8jmtF2toAyadBTD6bKAqcM9MggLx74g8b+LrSADjZQRUctEuS3q9Au5 DN+ghAj/Guok7yeEHPnAGEFn56cTE3gbcm4KpMA6GD/Wu55IEUicaOZt/KwsKz+Ix5 bkphwN8nnsLqt7ODthFgMULH2euZ1sX0s1OOwXIvb9TURVOOmo88gTLHfvWvP1nJTe hKbZpMIx3scnrcGbFCHVJ1BvCQwEbjlU2Sken0NfIq/xmEfwV8aksUCUet3sNsLOxM FLbIw9l6YrqUA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Alison Schofield , Wonjae Lee , Dan Williams , Sasha Levin Subject: [PATCH 6.6 032/638] cxl/region: Handle endpoint decoders in cxl_region_find_decoder() Date: Sun, 24 Mar 2024 18:51:09 -0400 Message-ID: <20240324230116.1348576-33-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Alison Schofield [ Upstream commit 453a7fde8031a5192ed2f9646ad048c1a5e930dc ] In preparation for adding a new caller of cxl_region_find_decoders() teach it to find a decoder from a cxl_endpoint_decoder structure. Combining switch and endpoint decoder lookup in one function prevents code duplication in call sites. Update the existing caller. Signed-off-by: Alison Schofield Tested-by: Wonjae Lee Link: https://lore.kernel.org/r/79ae6d72978ef9f3ceec9722e1cb793820553c8e.17= 06736863.git.alison.schofield@intel.com Signed-off-by: Dan Williams Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/cxl/core/region.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/drivers/cxl/core/region.c b/drivers/cxl/core/region.c index 6ebd12f7970bc..a3d82ef5599e8 100644 --- a/drivers/cxl/core/region.c +++ b/drivers/cxl/core/region.c @@ -729,12 +729,17 @@ static int match_auto_decoder(struct device *dev, voi= d *data) return 0; } =20 -static struct cxl_decoder *cxl_region_find_decoder(struct cxl_port *port, - struct cxl_region *cxlr) +static struct cxl_decoder * +cxl_region_find_decoder(struct cxl_port *port, + struct cxl_endpoint_decoder *cxled, + struct cxl_region *cxlr) { struct device *dev; int id =3D 0; =20 + if (port =3D=3D cxled_to_port(cxled)) + return &cxled->cxld; + if (test_bit(CXL_REGION_F_AUTO, &cxlr->flags)) dev =3D device_find_child(&port->dev, &cxlr->params, match_auto_decoder); @@ -852,10 +857,7 @@ static int cxl_rr_alloc_decoder(struct cxl_port *port,= struct cxl_region *cxlr, { struct cxl_decoder *cxld; =20 - if (port =3D=3D cxled_to_port(cxled)) - cxld =3D &cxled->cxld; - else - cxld =3D cxl_region_find_decoder(port, cxlr); + cxld =3D cxl_region_find_decoder(port, cxled, cxlr); if (!cxld) { dev_dbg(&cxlr->dev, "%s: no decoder available\n", dev_name(&port->dev)); --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C86D21FC0E0; Sun, 24 Mar 2024 23:01: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=1711321311; cv=none; b=An2BMUhYvB4S+Ji1ZRhZN1wZXsSk35iaFR7PMlWX2LJAewMNmNM6trLWNLAOKQsNe5rOXdvaKj1TyFQg7v1p4JCj2g+bKLmUig5L+zA+nGlCft+utSWZJBy21jlF2PDsbivDAu9wbawKk4bzjElkI3uhaCgy06ih5OPc4BGi35g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321311; c=relaxed/simple; bh=z7qh1e8vbDVQ4yzcCgshluBRHXqVwd2S32PdSJRIBvw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=iSioLnOVqUHDC1KX2zy6tmegAzwzXvT3LTZyG219vB/0OW8Qi++xCLcCIWwFyJMek0WIvREwd3jArEouudv4ypwc4Rb5yreTSr5Dsq7ongcah5kou4ADTjOPqJhKM+6kPurO4YTpwpY45Sj4DYBlQHFWa3Qe/ko8R349QC2Vzvo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=aDZBTvsn; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="aDZBTvsn" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 99BDDC43394; Sun, 24 Mar 2024 23:01:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321310; bh=z7qh1e8vbDVQ4yzcCgshluBRHXqVwd2S32PdSJRIBvw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=aDZBTvsnf0rVlsKX/E7BvYYTYBMEtdkCAP3ITHiVM1mAjPTmYuy82n/QygRV49ERV FK1qJsMxst496z1tlgEuVRmCCmCdwijXgYTSanLYoJxhA0yolGpkTrkvT7xX/2Jb7W KMdsa3W1IrTcsMKeaVfBDeE0Iomv0dOF+8ltA+UhIhrISntp6LJOkk5Q2SL1ElD6FG 71X0/54hlFUChmZBXTMUgRdB8JATNfghlStslu4enCcPPJb3uUHSFxQGbWA6ergb1H jqHK6PqdgcIzdnp0sPL5C4iUy+WU7m8JF0/32+JXg4v55L2qmWw4W4myuBpQ+VEKgq a1pKPE+0rjQRQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Alison Schofield , Wonjae Lee , Dan Williams , Sasha Levin Subject: [PATCH 6.6 033/638] cxl/region: Allow out of order assembly of autodiscovered regions Date: Sun, 24 Mar 2024 18:51:10 -0400 Message-ID: <20240324230116.1348576-34-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Alison Schofield [ Upstream commit cb66b1d60c283bb340a2fc19deff7de8acea74b1 ] Autodiscovered regions can fail to assemble if they are not discovered in HPA decode order. The user will see failure messages like: [] cxl region0: endpoint5: HPA order violation region1 [] cxl region0: endpoint5: failed to allocate region reference The check that is causing the failure helps the CXL driver enforce a CXL spec mandate that decoders be committed in HPA order. The check is needless for autodiscovered regions since their decoders are already programmed. Trying to enforce order in the assembly of these regions is useless because they are assembled once all their member endpoints arrive, and there is no guarantee on the order in which endpoints are discovered during probe. Keep the existing check, but for autodiscovered regions, allow the out of order assembly after a sanity check that the lesser numbered decoder has the lesser HPA starting address. Signed-off-by: Alison Schofield Tested-by: Wonjae Lee Link: https://lore.kernel.org/r/3dec69ee97524ab229a20c6739272c3000b18408.17= 06736863.git.alison.schofield@intel.com Signed-off-by: Dan Williams Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/cxl/core/region.c | 48 +++++++++++++++++++++++++++++++-------- 1 file changed, 38 insertions(+), 10 deletions(-) diff --git a/drivers/cxl/core/region.c b/drivers/cxl/core/region.c index a3d82ef5599e8..e2a82ee4ff0cf 100644 --- a/drivers/cxl/core/region.c +++ b/drivers/cxl/core/region.c @@ -757,8 +757,31 @@ cxl_region_find_decoder(struct cxl_port *port, return to_cxl_decoder(dev); } =20 -static struct cxl_region_ref *alloc_region_ref(struct cxl_port *port, - struct cxl_region *cxlr) +static bool auto_order_ok(struct cxl_port *port, struct cxl_region *cxlr_i= ter, + struct cxl_decoder *cxld) +{ + struct cxl_region_ref *rr =3D cxl_rr_load(port, cxlr_iter); + struct cxl_decoder *cxld_iter =3D rr->decoder; + + /* + * Allow the out of order assembly of auto-discovered regions. + * Per CXL Spec 3.1 8.2.4.20.12 software must commit decoders + * in HPA order. Confirm that the decoder with the lesser HPA + * starting address has the lesser id. + */ + dev_dbg(&cxld->dev, "check for HPA violation %s:%d < %s:%d\n", + dev_name(&cxld->dev), cxld->id, + dev_name(&cxld_iter->dev), cxld_iter->id); + + if (cxld_iter->id > cxld->id) + return true; + + return false; +} + +static struct cxl_region_ref * +alloc_region_ref(struct cxl_port *port, struct cxl_region *cxlr, + struct cxl_endpoint_decoder *cxled) { struct cxl_region_params *p =3D &cxlr->params; struct cxl_region_ref *cxl_rr, *iter; @@ -768,16 +791,21 @@ static struct cxl_region_ref *alloc_region_ref(struct= cxl_port *port, xa_for_each(&port->regions, index, iter) { struct cxl_region_params *ip =3D &iter->region->params; =20 - if (!ip->res) + if (!ip->res || ip->res->start < p->res->start) continue; =20 - if (ip->res->start > p->res->start) { - dev_dbg(&cxlr->dev, - "%s: HPA order violation %s:%pr vs %pr\n", - dev_name(&port->dev), - dev_name(&iter->region->dev), ip->res, p->res); - return ERR_PTR(-EBUSY); + if (test_bit(CXL_REGION_F_AUTO, &cxlr->flags)) { + struct cxl_decoder *cxld; + + cxld =3D cxl_region_find_decoder(port, cxled, cxlr); + if (auto_order_ok(port, iter->region, cxld)) + continue; } + dev_dbg(&cxlr->dev, "%s: HPA order violation %s:%pr vs %pr\n", + dev_name(&port->dev), + dev_name(&iter->region->dev), ip->res, p->res); + + return ERR_PTR(-EBUSY); } =20 cxl_rr =3D kzalloc(sizeof(*cxl_rr), GFP_KERNEL); @@ -954,7 +982,7 @@ static int cxl_port_attach_region(struct cxl_port *port, nr_targets_inc =3D true; } } else { - cxl_rr =3D alloc_region_ref(port, cxlr); + cxl_rr =3D alloc_region_ref(port, cxlr, cxled); if (IS_ERR(cxl_rr)) { dev_dbg(&cxlr->dev, "%s: failed to allocate region reference\n", --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 73B251FC0E7; Sun, 24 Mar 2024 23:01: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=1711321312; cv=none; b=X565GVyDQGNpG8EWztvOOJnxlBoQE2hxgnlrAnwPimyqh+MJVkjaG9Zkp84hKcfN4J8pc5w21GKVqlSR/ZVrWArvUZJXUmVlR81/iJosGDiX9vpo7InDdSA4j9yy/8HHYlQ0B7uau14H45a01FjhGzJmPj30KhBtp3JgWgYDWfY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321312; c=relaxed/simple; bh=45ZrZ9a6InGLOX3zCd/VX2084a+7yRSkog5VZIcOYcM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Qf5LVAYc9YmHomHo6hMTd1k77wsyJFqy+s2SgDtP4BgdpCZqXsxZKFRdhVM/hlh7ZX8HAj11xCi4r+mTmRVEukqYlx58Z0iE1XoA0mFdKgXOYBA1bnjRRAjQWZ1ZByQEQdT26I1uD4+GcnYdQotF7cTyzBamoLfKrcfHxY+/IAo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=h7s20LXM; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="h7s20LXM" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9962AC43399; Sun, 24 Mar 2024 23:01:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321311; bh=45ZrZ9a6InGLOX3zCd/VX2084a+7yRSkog5VZIcOYcM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=h7s20LXMiADAQcDy1CSaKC+0MDpPTMeNmyarj4O/JAZ6XeIzHW+zFIGjIqf10QnEm BkbEDgzTDqaW9qNkf0uKG6KsZdZtAFDgrbS3XPT6uxKkdo3oRO6+L6B0HbdGNjyq0k kunuZvYQ99ayW2NY10gUvDvPvXCIAPZWnIFEgdCsaLVo3ruPgbyjXffKMFaNQrm98F PaS0V0BdzD6H2hNhu/0XUzmX9pF4GJ8ENo3kfjFZ5RmdNb+ir8wtHbSh3pOWS0Puwq iQwYOPzLvF49QgwtNdZ48if8Zxx3JwlDCio7yNUrJzd/mOavHVVO7cIRjL0F4NTPut HXW/Bre14kJPA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Hojin Nam , Jonathan Cameron , Will Deacon , Sasha Levin Subject: [PATCH 6.6 034/638] perf: CXL: fix CPMU filter value mask length Date: Sun, 24 Mar 2024 18:51:11 -0400 Message-ID: <20240324230116.1348576-35-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Hojin Nam [ Upstream commit 802379b8f9e169293e9ba7089e5f1a6340e2e7a3 ] CPMU filter value is described as 4B length in CXL r3.0 8.2.7.2.2. However, it is used as 2B length in code and comments. Reviewed-by: Jonathan Cameron Signed-off-by: Hojin Nam Link: https://lore.kernel.org/r/20240216014522.32321-1-hj96.nam@samsung.com Signed-off-by: Will Deacon Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/perf/cxl_pmu.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/perf/cxl_pmu.c b/drivers/perf/cxl_pmu.c index bc0d414a6aff9..308c9969642e1 100644 --- a/drivers/perf/cxl_pmu.c +++ b/drivers/perf/cxl_pmu.c @@ -59,7 +59,7 @@ #define CXL_PMU_COUNTER_CFG_EVENT_GRP_ID_IDX_MSK GENMASK_ULL(63, 59) =20 #define CXL_PMU_FILTER_CFG_REG(n, f) (0x400 + 4 * ((f) + (n) * 8)) -#define CXL_PMU_FILTER_CFG_VALUE_MSK GENMASK(15, 0) +#define CXL_PMU_FILTER_CFG_VALUE_MSK GENMASK(31, 0) =20 #define CXL_PMU_COUNTER_REG(n) (0xc00 + 8 * (n)) =20 @@ -314,9 +314,9 @@ static bool cxl_pmu_config1_get_edge(struct perf_event = *event) } =20 /* - * CPMU specification allows for 8 filters, each with a 16 bit value... - * So we need to find 8x16bits to store it in. - * As the value used for disable is 0xffff, a separate enable switch + * CPMU specification allows for 8 filters, each with a 32 bit value... + * So we need to find 8x32bits to store it in. + * As the value used for disable is 0xffff_ffff, a separate enable switch * is needed. */ =20 @@ -642,7 +642,7 @@ static void cxl_pmu_event_start(struct perf_event *even= t, int flags) if (cxl_pmu_config1_hdm_filter_en(event)) cfg =3D cxl_pmu_config2_get_hdm_decoder(event); else - cfg =3D GENMASK(15, 0); /* No filtering if 0xFFFF_FFFF */ + cfg =3D GENMASK(31, 0); /* No filtering if 0xFFFF_FFFF */ writeq(cfg, base + CXL_PMU_FILTER_CFG_REG(hwc->idx, 0)); } =20 --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 426161FC0F1; Sun, 24 Mar 2024 23:01: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=1711321313; cv=none; b=tvCFThWY7uFBvu9CbdM/aRjDZXadkfL8rVn7SmsMDjoqy5H6nTcudOt+WPNx39HQ4A6ZbSAdsGJgkzmP4uAecOiz4i5VfK2LNR0ijzNMS8xynsFG+E668aS8UlZuzLnmvm2m+6JqOcyRpWblGKOy/cDZlUlnHuJcte+4HB5QLCk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321313; c=relaxed/simple; bh=NkYNaqC8gUpfieNnjfBQsil8TTp5PmLuCYEYfbeDJzw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=RQFBEoX8SQwdX0AU723GS8MUvDRxHgRCxm9S+G994KoAAbKYmGB/GF53e6mk+NOgEfj7G3cNMeDPWVEaafZb76Ew5NdWXSkmQq/E0NKOBnblKeorCZPpkG12ujYyF6Ht851E28yGqniU7rsf7qbdcXy2mzL0midv/Maiy/O65c8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=e/6rv8jU; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="e/6rv8jU" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 95E4BC433F1; Sun, 24 Mar 2024 23:01:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321312; bh=NkYNaqC8gUpfieNnjfBQsil8TTp5PmLuCYEYfbeDJzw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=e/6rv8jULjhbJOd0oc9FmSoqf+5dQSbn6wkcIkzNqxDQw6V0sy+yjLqt4m9UrmWKF BhsCbjzgE/lWHCFt7/P7cWcyggXwqybK2HdOYXMwjwcVPtEbazYaSZFu2wZ0NpwP3N rF6vxrk4/jr5CV8dBGBJ5TLkIMzpCoDWV26QzMFc6U/orw3I68tIEaH1K9jX2JGOcE 2oLpo4ptt41jJt6QE6K0sJ/boJuV/xCYsYRwR7Zy09K+PBnZfEFNFF/+pdYqFiv0I+ xMwJxtrtx0r/GZUuyIeBXQTZbRq8vjXVZDgy+/CEXnW5myE4t6MU3OwkdRbCG5jSOr a6vnrgBAj7Axg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Hans de Goede , Sasha Levin Subject: [PATCH 6.6 035/638] platform/x86: x86-android-tablets: Fix acer_b1_750_goodix_gpios name Date: Sun, 24 Mar 2024 18:51:12 -0400 Message-ID: <20240324230116.1348576-36-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 8215ca518164d35f10c0b5545c8bb80f538638b8 ] The Acer B1 750 tablet used a Novatek NVT-ts touchscreen, not a Goodix touchscreen. Rename acer_b1_750_goodix_gpios to acer_b1_750_nvt_ts_gpios to correctly reflect this. Signed-off-by: Hans de Goede Link: https://lore.kernel.org/r/20240216201721.239791-5-hdegoede@redhat.com Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/platform/x86/x86-android-tablets/other.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/platform/x86/x86-android-tablets/other.c b/drivers/pla= tform/x86/x86-android-tablets/other.c index e79549c6aae17..fe5f68fa7bca7 100644 --- a/drivers/platform/x86/x86-android-tablets/other.c +++ b/drivers/platform/x86/x86-android-tablets/other.c @@ -66,7 +66,7 @@ static const struct x86_i2c_client_info acer_b1_750_i2c_c= lients[] __initconst =3D }, }; =20 -static struct gpiod_lookup_table acer_b1_750_goodix_gpios =3D { +static struct gpiod_lookup_table acer_b1_750_nvt_ts_gpios =3D { .dev_id =3D "i2c-NVT-ts", .table =3D { GPIO_LOOKUP("INT33FC:01", 26, "reset", GPIO_ACTIVE_LOW), @@ -75,7 +75,7 @@ static struct gpiod_lookup_table acer_b1_750_goodix_gpios= =3D { }; =20 static struct gpiod_lookup_table * const acer_b1_750_gpios[] =3D { - &acer_b1_750_goodix_gpios, + &acer_b1_750_nvt_ts_gpios, &int3496_reference_gpios, NULL }; --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 80A261FC0FD; Sun, 24 Mar 2024 23:01: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=1711321314; cv=none; b=Prf/t13xzHdrKmHM6RlSBepTeUNFxO8jw8ljSaLDXnQ4MXQKrIZBvB/GKuI6SbejRUCI3i0zQbr4aHCUtFYl4din+jvLCCFAS0MqpCSxDWq+PFhWmZSbknQHLoYrGU9rcZSaduDdhTj+16s8tjmXne9jlog/CTXQWT6PSY7OsC0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321314; c=relaxed/simple; bh=/d0AEGoBRuH3lFe8OUNhobKL/Wwa069uJ2JkGwpBGnI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qZ6zxub8pd9jjxpBc8HGlEPoQflad6+MaCAtJDnDD8hhMdSggwOojvogK7NqYsUT4e5LSn2436uqJ9w3eFxRN7wTv5SCl92Uo5RMpeC47qFA8bJyA4XZtL9jYt1JVBA4aYQ2b90O3ZksVyuyrhUPUnNoqI3C5ovGMdCWNKTkn4E= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=J2NJFAA1; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="J2NJFAA1" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 72D25C43390; Sun, 24 Mar 2024 23:01:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321313; bh=/d0AEGoBRuH3lFe8OUNhobKL/Wwa069uJ2JkGwpBGnI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=J2NJFAA15OGtzNi11/6vSrFLu7/HB/2G6N/NDaGeQFd4jQtzG+nc0gtPQR/1mzUgf gt7Gd701v2l6RdSCbfUx57ZXzMGmU704pXb0JvFlZVvmDgidtTlsybLZobaZ7wr81C SoxD1P3TAWVgmI5tHCRwPS/QKe3tGzxnWax62PciYORt1XArdkxZ+H3f+/SgCOMp2o +MlROU/c1g7K3fAtiOqzR0zSylDfA0hB6+fwTVp3Ovl/hFhrDzMPnXYUoISn/dgrFC 4yR47WhkYnplCjNGAjNOrL3fNJ9dJr4joKzpbVKZr6PkVK+VVpdE2z2qknxqqUy6pr Cc6MTAEqBjz+Q== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Mikulas Patocka , Mike Snitzer , Sasha Levin Subject: [PATCH 6.6 036/638] dm-verity, dm-crypt: align "struct bvec_iter" correctly Date: Sun, 24 Mar 2024 18:51:13 -0400 Message-ID: <20240324230116.1348576-37-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 5a296db23feb3..aa6bb5b4704ba 100644 --- a/drivers/md/dm-crypt.c +++ b/drivers/md/dm-crypt.c @@ -53,11 +53,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 4620a98c99561..db93a91169d5e 100644 --- a/drivers/md/dm-verity.h +++ b/drivers/md/dm-verity.h @@ -80,12 +80,12 @@ 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 int n_blocks; bool in_tasklet; =20 - struct bvec_iter iter; - struct work_struct work; =20 char *recheck_buffer; --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C8E631FC108; Sun, 24 Mar 2024 23:01: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=1711321315; cv=none; b=nW7bok8o1RcN4zJ0PNg0rdMZb4+hMFqqPgwLs5JrAxdiZeOIJtcAsJKi1DJULdPQuuUPy3CEIOYWbk6WoWzjYTedz9AEqUFh3qsjMjJTgKoHnyOIdDAisXQbzDazrSaL/ukwIx4SUHuy4B+h1xqIBhvsp9BiAZ2YCqL1K2Cpcjs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321315; c=relaxed/simple; bh=NKk9DfgAyxGXNWdgqcpfsG6GEb2KHxtt6O3UhenhoNA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PbmTbTNypBTPgWuvHB60i0JhqKRBAJ/5XDKIf+RUQE5fGvJxMYByYo/SPVpRJg/nvX4HjkWEWvRfRfdftZO6GLd5qQblj6C1h262V0oWoX9DUQTh1Kk7llnOxvRpXlQSbEcNJtD2J6XJX7yEHd6GhqRENPoliV8MDr3RhtSMTDw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=EZU+WSuw; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="EZU+WSuw" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A7477C3278B; Sun, 24 Mar 2024 23:01:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321314; bh=NKk9DfgAyxGXNWdgqcpfsG6GEb2KHxtt6O3UhenhoNA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=EZU+WSuwRG+3XKUFSabWFt+pBHrFUH65GnmPQrxdAdRiwHSP+WQMpvCdb1wu3r24p Ka2qI3OfYYm4JdnbPxI8gHt6oMS+l/HaR4EHFywuVFc/NdtczR0avs+lxbG9l6Kwjk 1vZv2oK9o9WdkevMDK+BqXAQyA3Q5tr3hpvnfYWn4FKJPu2Szmif7BwCkn/sbdQKW4 AoJ9F/5akqXelHxxdgInyrYFepECIFYqLO2P7Apt5LeYRlWZ45ji9cFSwHDxHM1dlL szGmky1uKx4jvaUdg8dhnyLMiGamkpnrI554d11TqS6BrcyYTtLGy8EDHsCocDOUP4 rFb1gY7FuuR2g== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Rob Herring , Andrew Jeffery , Alexandre Torgue , Florian Fainelli , Thierry Reding , Arnd Bergmann , Sasha Levin Subject: [PATCH 6.6 037/638] arm: dts: Fix dtc interrupt_provider warnings Date: Sun, 24 Mar 2024 18:51:14 -0400 Message-ID: <20240324230116.1348576-38-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 96fd598e9c34cfa68402a4da3020c9236cfacf35 ] The dtc interrupt_provider warning is off by default. Fix all the warnings so it can be enabled. Signed-off-by: Rob Herring Reviewed-by: Andrew Jeffery Reviewed-by: Alexandre Torgue Acked-by: Florian Fainelli #Broadcom Acked-by: Thierry Reding Link: https://lore.kernel.org/r/20240213-arm-dt-cleanups-v1-2-f2dee1292525@= kernel.org Signed-off-by: Arnd Bergmann Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm/boot/dts/amazon/alpine.dtsi | 1 - arch/arm/boot/dts/aspeed/aspeed-g4.dtsi | 14 -------------- arch/arm/boot/dts/aspeed/aspeed-g5.dtsi | 15 +-------------- arch/arm/boot/dts/aspeed/aspeed-g6.dtsi | 18 ++---------------- arch/arm/boot/dts/broadcom/bcm-cygnus.dtsi | 3 +++ arch/arm/boot/dts/broadcom/bcm-hr2.dtsi | 1 + arch/arm/boot/dts/broadcom/bcm-nsp.dtsi | 2 ++ arch/arm/boot/dts/marvell/kirkwood-l-50.dts | 2 ++ arch/arm/boot/dts/nuvoton/nuvoton-wpcm450.dtsi | 2 ++ .../boot/dts/nvidia/tegra30-apalis-v1.1.dtsi | 1 - arch/arm/boot/dts/nvidia/tegra30-apalis.dtsi | 1 - arch/arm/boot/dts/nvidia/tegra30-colibri.dtsi | 1 - arch/arm/boot/dts/nxp/imx/imx6q-b850v3.dts | 3 --- arch/arm/boot/dts/nxp/imx/imx6q-bx50v3.dtsi | 2 +- arch/arm/boot/dts/nxp/imx/imx6qdl-apalis.dtsi | 1 - arch/arm/boot/dts/nxp/imx/imx6qdl-colibri.dtsi | 1 - arch/arm/boot/dts/nxp/imx/imx6qdl-emcon.dtsi | 1 - .../dts/nxp/imx/imx6qdl-phytec-pfla02.dtsi | 1 + .../nxp/imx/imx6qdl-phytec-phycore-som.dtsi | 1 + arch/arm/boot/dts/nxp/imx/imx7d-pico-dwarf.dts | 1 + .../boot/dts/nxp/vf/vf610-zii-dev-rev-b.dts | 1 + arch/arm/boot/dts/st/stm32429i-eval.dts | 1 - arch/arm/boot/dts/st/stm32mp157c-dk2.dts | 1 - .../boot/dts/ti/omap/am5729-beagleboneai.dts | 1 - 24 files changed, 18 insertions(+), 58 deletions(-) diff --git a/arch/arm/boot/dts/amazon/alpine.dtsi b/arch/arm/boot/dts/amazo= n/alpine.dtsi index ff68dfb4eb787..90bd12feac010 100644 --- a/arch/arm/boot/dts/amazon/alpine.dtsi +++ b/arch/arm/boot/dts/amazon/alpine.dtsi @@ -167,7 +167,6 @@ pcie@fbc00000 { msix: msix@fbe00000 { compatible =3D "al,alpine-msix"; reg =3D <0x0 0xfbe00000 0x0 0x100000>; - interrupt-controller; msi-controller; al,msi-base-spi =3D <96>; al,msi-num-spis =3D <64>; diff --git a/arch/arm/boot/dts/aspeed/aspeed-g4.dtsi b/arch/arm/boot/dts/as= peed/aspeed-g4.dtsi index 530491ae5eb26..857cb26ed6d7e 100644 --- a/arch/arm/boot/dts/aspeed/aspeed-g4.dtsi +++ b/arch/arm/boot/dts/aspeed/aspeed-g4.dtsi @@ -466,7 +466,6 @@ i2c_ic: interrupt-controller@0 { i2c0: i2c-bus@40 { #address-cells =3D <1>; #size-cells =3D <0>; - #interrupt-cells =3D <1>; =20 reg =3D <0x40 0x40>; compatible =3D "aspeed,ast2400-i2c-bus"; @@ -482,7 +481,6 @@ i2c0: i2c-bus@40 { i2c1: i2c-bus@80 { #address-cells =3D <1>; #size-cells =3D <0>; - #interrupt-cells =3D <1>; =20 reg =3D <0x80 0x40>; compatible =3D "aspeed,ast2400-i2c-bus"; @@ -498,7 +496,6 @@ i2c1: i2c-bus@80 { i2c2: i2c-bus@c0 { #address-cells =3D <1>; #size-cells =3D <0>; - #interrupt-cells =3D <1>; =20 reg =3D <0xc0 0x40>; compatible =3D "aspeed,ast2400-i2c-bus"; @@ -515,7 +512,6 @@ i2c2: i2c-bus@c0 { i2c3: i2c-bus@100 { #address-cells =3D <1>; #size-cells =3D <0>; - #interrupt-cells =3D <1>; =20 reg =3D <0x100 0x40>; compatible =3D "aspeed,ast2400-i2c-bus"; @@ -532,7 +528,6 @@ i2c3: i2c-bus@100 { i2c4: i2c-bus@140 { #address-cells =3D <1>; #size-cells =3D <0>; - #interrupt-cells =3D <1>; =20 reg =3D <0x140 0x40>; compatible =3D "aspeed,ast2400-i2c-bus"; @@ -549,7 +544,6 @@ i2c4: i2c-bus@140 { i2c5: i2c-bus@180 { #address-cells =3D <1>; #size-cells =3D <0>; - #interrupt-cells =3D <1>; =20 reg =3D <0x180 0x40>; compatible =3D "aspeed,ast2400-i2c-bus"; @@ -566,7 +560,6 @@ i2c5: i2c-bus@180 { i2c6: i2c-bus@1c0 { #address-cells =3D <1>; #size-cells =3D <0>; - #interrupt-cells =3D <1>; =20 reg =3D <0x1c0 0x40>; compatible =3D "aspeed,ast2400-i2c-bus"; @@ -583,7 +576,6 @@ i2c6: i2c-bus@1c0 { i2c7: i2c-bus@300 { #address-cells =3D <1>; #size-cells =3D <0>; - #interrupt-cells =3D <1>; =20 reg =3D <0x300 0x40>; compatible =3D "aspeed,ast2400-i2c-bus"; @@ -600,7 +592,6 @@ i2c7: i2c-bus@300 { i2c8: i2c-bus@340 { #address-cells =3D <1>; #size-cells =3D <0>; - #interrupt-cells =3D <1>; =20 reg =3D <0x340 0x40>; compatible =3D "aspeed,ast2400-i2c-bus"; @@ -617,7 +608,6 @@ i2c8: i2c-bus@340 { i2c9: i2c-bus@380 { #address-cells =3D <1>; #size-cells =3D <0>; - #interrupt-cells =3D <1>; =20 reg =3D <0x380 0x40>; compatible =3D "aspeed,ast2400-i2c-bus"; @@ -634,7 +624,6 @@ i2c9: i2c-bus@380 { i2c10: i2c-bus@3c0 { #address-cells =3D <1>; #size-cells =3D <0>; - #interrupt-cells =3D <1>; =20 reg =3D <0x3c0 0x40>; compatible =3D "aspeed,ast2400-i2c-bus"; @@ -651,7 +640,6 @@ i2c10: i2c-bus@3c0 { i2c11: i2c-bus@400 { #address-cells =3D <1>; #size-cells =3D <0>; - #interrupt-cells =3D <1>; =20 reg =3D <0x400 0x40>; compatible =3D "aspeed,ast2400-i2c-bus"; @@ -668,7 +656,6 @@ i2c11: i2c-bus@400 { i2c12: i2c-bus@440 { #address-cells =3D <1>; #size-cells =3D <0>; - #interrupt-cells =3D <1>; =20 reg =3D <0x440 0x40>; compatible =3D "aspeed,ast2400-i2c-bus"; @@ -685,7 +672,6 @@ i2c12: i2c-bus@440 { i2c13: i2c-bus@480 { #address-cells =3D <1>; #size-cells =3D <0>; - #interrupt-cells =3D <1>; =20 reg =3D <0x480 0x40>; compatible =3D "aspeed,ast2400-i2c-bus"; diff --git a/arch/arm/boot/dts/aspeed/aspeed-g5.dtsi b/arch/arm/boot/dts/as= peed/aspeed-g5.dtsi index 04f98d1dbb97c..e6f3cf3c721e5 100644 --- a/arch/arm/boot/dts/aspeed/aspeed-g5.dtsi +++ b/arch/arm/boot/dts/aspeed/aspeed-g5.dtsi @@ -363,6 +363,7 @@ sgpio: sgpio@1e780200 { interrupts =3D <40>; reg =3D <0x1e780200 0x0100>; clocks =3D <&syscon ASPEED_CLK_APB>; + #interrupt-cells =3D <2>; interrupt-controller; bus-frequency =3D <12000000>; pinctrl-names =3D "default"; @@ -594,7 +595,6 @@ i2c_ic: interrupt-controller@0 { i2c0: i2c-bus@40 { #address-cells =3D <1>; #size-cells =3D <0>; - #interrupt-cells =3D <1>; =20 reg =3D <0x40 0x40>; compatible =3D "aspeed,ast2500-i2c-bus"; @@ -610,7 +610,6 @@ i2c0: i2c-bus@40 { i2c1: i2c-bus@80 { #address-cells =3D <1>; #size-cells =3D <0>; - #interrupt-cells =3D <1>; =20 reg =3D <0x80 0x40>; compatible =3D "aspeed,ast2500-i2c-bus"; @@ -626,7 +625,6 @@ i2c1: i2c-bus@80 { i2c2: i2c-bus@c0 { #address-cells =3D <1>; #size-cells =3D <0>; - #interrupt-cells =3D <1>; =20 reg =3D <0xc0 0x40>; compatible =3D "aspeed,ast2500-i2c-bus"; @@ -643,7 +641,6 @@ i2c2: i2c-bus@c0 { i2c3: i2c-bus@100 { #address-cells =3D <1>; #size-cells =3D <0>; - #interrupt-cells =3D <1>; =20 reg =3D <0x100 0x40>; compatible =3D "aspeed,ast2500-i2c-bus"; @@ -660,7 +657,6 @@ i2c3: i2c-bus@100 { i2c4: i2c-bus@140 { #address-cells =3D <1>; #size-cells =3D <0>; - #interrupt-cells =3D <1>; =20 reg =3D <0x140 0x40>; compatible =3D "aspeed,ast2500-i2c-bus"; @@ -677,7 +673,6 @@ i2c4: i2c-bus@140 { i2c5: i2c-bus@180 { #address-cells =3D <1>; #size-cells =3D <0>; - #interrupt-cells =3D <1>; =20 reg =3D <0x180 0x40>; compatible =3D "aspeed,ast2500-i2c-bus"; @@ -694,7 +689,6 @@ i2c5: i2c-bus@180 { i2c6: i2c-bus@1c0 { #address-cells =3D <1>; #size-cells =3D <0>; - #interrupt-cells =3D <1>; =20 reg =3D <0x1c0 0x40>; compatible =3D "aspeed,ast2500-i2c-bus"; @@ -711,7 +705,6 @@ i2c6: i2c-bus@1c0 { i2c7: i2c-bus@300 { #address-cells =3D <1>; #size-cells =3D <0>; - #interrupt-cells =3D <1>; =20 reg =3D <0x300 0x40>; compatible =3D "aspeed,ast2500-i2c-bus"; @@ -728,7 +721,6 @@ i2c7: i2c-bus@300 { i2c8: i2c-bus@340 { #address-cells =3D <1>; #size-cells =3D <0>; - #interrupt-cells =3D <1>; =20 reg =3D <0x340 0x40>; compatible =3D "aspeed,ast2500-i2c-bus"; @@ -745,7 +737,6 @@ i2c8: i2c-bus@340 { i2c9: i2c-bus@380 { #address-cells =3D <1>; #size-cells =3D <0>; - #interrupt-cells =3D <1>; =20 reg =3D <0x380 0x40>; compatible =3D "aspeed,ast2500-i2c-bus"; @@ -762,7 +753,6 @@ i2c9: i2c-bus@380 { i2c10: i2c-bus@3c0 { #address-cells =3D <1>; #size-cells =3D <0>; - #interrupt-cells =3D <1>; =20 reg =3D <0x3c0 0x40>; compatible =3D "aspeed,ast2500-i2c-bus"; @@ -779,7 +769,6 @@ i2c10: i2c-bus@3c0 { i2c11: i2c-bus@400 { #address-cells =3D <1>; #size-cells =3D <0>; - #interrupt-cells =3D <1>; =20 reg =3D <0x400 0x40>; compatible =3D "aspeed,ast2500-i2c-bus"; @@ -796,7 +785,6 @@ i2c11: i2c-bus@400 { i2c12: i2c-bus@440 { #address-cells =3D <1>; #size-cells =3D <0>; - #interrupt-cells =3D <1>; =20 reg =3D <0x440 0x40>; compatible =3D "aspeed,ast2500-i2c-bus"; @@ -813,7 +801,6 @@ i2c12: i2c-bus@440 { i2c13: i2c-bus@480 { #address-cells =3D <1>; #size-cells =3D <0>; - #interrupt-cells =3D <1>; =20 reg =3D <0x480 0x40>; compatible =3D "aspeed,ast2500-i2c-bus"; diff --git a/arch/arm/boot/dts/aspeed/aspeed-g6.dtsi b/arch/arm/boot/dts/as= peed/aspeed-g6.dtsi index c4d1faade8be3..29f94696d8b18 100644 --- a/arch/arm/boot/dts/aspeed/aspeed-g6.dtsi +++ b/arch/arm/boot/dts/aspeed/aspeed-g6.dtsi @@ -474,6 +474,7 @@ sgpiom0: sgpiom@1e780500 { reg =3D <0x1e780500 0x100>; interrupts =3D ; clocks =3D <&syscon ASPEED_CLK_APB2>; + #interrupt-cells =3D <2>; interrupt-controller; bus-frequency =3D <12000000>; pinctrl-names =3D "default"; @@ -488,6 +489,7 @@ sgpiom1: sgpiom@1e780600 { reg =3D <0x1e780600 0x100>; interrupts =3D ; clocks =3D <&syscon ASPEED_CLK_APB2>; + #interrupt-cells =3D <2>; interrupt-controller; bus-frequency =3D <12000000>; pinctrl-names =3D "default"; @@ -902,7 +904,6 @@ &i2c { i2c0: i2c-bus@80 { #address-cells =3D <1>; #size-cells =3D <0>; - #interrupt-cells =3D <1>; reg =3D <0x80 0x80>; compatible =3D "aspeed,ast2600-i2c-bus"; clocks =3D <&syscon ASPEED_CLK_APB2>; @@ -917,7 +918,6 @@ i2c0: i2c-bus@80 { i2c1: i2c-bus@100 { #address-cells =3D <1>; #size-cells =3D <0>; - #interrupt-cells =3D <1>; reg =3D <0x100 0x80>; compatible =3D "aspeed,ast2600-i2c-bus"; clocks =3D <&syscon ASPEED_CLK_APB2>; @@ -932,7 +932,6 @@ i2c1: i2c-bus@100 { i2c2: i2c-bus@180 { #address-cells =3D <1>; #size-cells =3D <0>; - #interrupt-cells =3D <1>; reg =3D <0x180 0x80>; compatible =3D "aspeed,ast2600-i2c-bus"; clocks =3D <&syscon ASPEED_CLK_APB2>; @@ -947,7 +946,6 @@ i2c2: i2c-bus@180 { i2c3: i2c-bus@200 { #address-cells =3D <1>; #size-cells =3D <0>; - #interrupt-cells =3D <1>; reg =3D <0x200 0x80>; compatible =3D "aspeed,ast2600-i2c-bus"; clocks =3D <&syscon ASPEED_CLK_APB2>; @@ -962,7 +960,6 @@ i2c3: i2c-bus@200 { i2c4: i2c-bus@280 { #address-cells =3D <1>; #size-cells =3D <0>; - #interrupt-cells =3D <1>; reg =3D <0x280 0x80>; compatible =3D "aspeed,ast2600-i2c-bus"; clocks =3D <&syscon ASPEED_CLK_APB2>; @@ -977,7 +974,6 @@ i2c4: i2c-bus@280 { i2c5: i2c-bus@300 { #address-cells =3D <1>; #size-cells =3D <0>; - #interrupt-cells =3D <1>; reg =3D <0x300 0x80>; compatible =3D "aspeed,ast2600-i2c-bus"; clocks =3D <&syscon ASPEED_CLK_APB2>; @@ -992,7 +988,6 @@ i2c5: i2c-bus@300 { i2c6: i2c-bus@380 { #address-cells =3D <1>; #size-cells =3D <0>; - #interrupt-cells =3D <1>; reg =3D <0x380 0x80>; compatible =3D "aspeed,ast2600-i2c-bus"; clocks =3D <&syscon ASPEED_CLK_APB2>; @@ -1007,7 +1002,6 @@ i2c6: i2c-bus@380 { i2c7: i2c-bus@400 { #address-cells =3D <1>; #size-cells =3D <0>; - #interrupt-cells =3D <1>; reg =3D <0x400 0x80>; compatible =3D "aspeed,ast2600-i2c-bus"; clocks =3D <&syscon ASPEED_CLK_APB2>; @@ -1022,7 +1016,6 @@ i2c7: i2c-bus@400 { i2c8: i2c-bus@480 { #address-cells =3D <1>; #size-cells =3D <0>; - #interrupt-cells =3D <1>; reg =3D <0x480 0x80>; compatible =3D "aspeed,ast2600-i2c-bus"; clocks =3D <&syscon ASPEED_CLK_APB2>; @@ -1037,7 +1030,6 @@ i2c8: i2c-bus@480 { i2c9: i2c-bus@500 { #address-cells =3D <1>; #size-cells =3D <0>; - #interrupt-cells =3D <1>; reg =3D <0x500 0x80>; compatible =3D "aspeed,ast2600-i2c-bus"; clocks =3D <&syscon ASPEED_CLK_APB2>; @@ -1052,7 +1044,6 @@ i2c9: i2c-bus@500 { i2c10: i2c-bus@580 { #address-cells =3D <1>; #size-cells =3D <0>; - #interrupt-cells =3D <1>; reg =3D <0x580 0x80>; compatible =3D "aspeed,ast2600-i2c-bus"; clocks =3D <&syscon ASPEED_CLK_APB2>; @@ -1067,7 +1058,6 @@ i2c10: i2c-bus@580 { i2c11: i2c-bus@600 { #address-cells =3D <1>; #size-cells =3D <0>; - #interrupt-cells =3D <1>; reg =3D <0x600 0x80>; compatible =3D "aspeed,ast2600-i2c-bus"; clocks =3D <&syscon ASPEED_CLK_APB2>; @@ -1082,7 +1072,6 @@ i2c11: i2c-bus@600 { i2c12: i2c-bus@680 { #address-cells =3D <1>; #size-cells =3D <0>; - #interrupt-cells =3D <1>; reg =3D <0x680 0x80>; compatible =3D "aspeed,ast2600-i2c-bus"; clocks =3D <&syscon ASPEED_CLK_APB2>; @@ -1097,7 +1086,6 @@ i2c12: i2c-bus@680 { i2c13: i2c-bus@700 { #address-cells =3D <1>; #size-cells =3D <0>; - #interrupt-cells =3D <1>; reg =3D <0x700 0x80>; compatible =3D "aspeed,ast2600-i2c-bus"; clocks =3D <&syscon ASPEED_CLK_APB2>; @@ -1112,7 +1100,6 @@ i2c13: i2c-bus@700 { i2c14: i2c-bus@780 { #address-cells =3D <1>; #size-cells =3D <0>; - #interrupt-cells =3D <1>; reg =3D <0x780 0x80>; compatible =3D "aspeed,ast2600-i2c-bus"; clocks =3D <&syscon ASPEED_CLK_APB2>; @@ -1127,7 +1114,6 @@ i2c14: i2c-bus@780 { i2c15: i2c-bus@800 { #address-cells =3D <1>; #size-cells =3D <0>; - #interrupt-cells =3D <1>; reg =3D <0x800 0x80>; compatible =3D "aspeed,ast2600-i2c-bus"; clocks =3D <&syscon ASPEED_CLK_APB2>; diff --git a/arch/arm/boot/dts/broadcom/bcm-cygnus.dtsi b/arch/arm/boot/dts= /broadcom/bcm-cygnus.dtsi index f9f79ed825181..07ca0d993c9fd 100644 --- a/arch/arm/boot/dts/broadcom/bcm-cygnus.dtsi +++ b/arch/arm/boot/dts/broadcom/bcm-cygnus.dtsi @@ -167,6 +167,7 @@ gpio_crmu: gpio@3024800 { #gpio-cells =3D <2>; gpio-controller; interrupt-controller; + #interrupt-cells =3D <2>; interrupt-parent =3D <&mailbox>; interrupts =3D <0>; }; @@ -247,6 +248,7 @@ gpio_ccm: gpio@1800a000 { gpio-controller; interrupts =3D ; interrupt-controller; + #interrupt-cells =3D <2>; }; =20 i2c1: i2c@1800b000 { @@ -518,6 +520,7 @@ gpio_asiu: gpio@180a5000 { gpio-controller; =20 interrupt-controller; + #interrupt-cells =3D <2>; interrupts =3D ; gpio-ranges =3D <&pinctrl 0 42 1>, <&pinctrl 1 44 3>, diff --git a/arch/arm/boot/dts/broadcom/bcm-hr2.dtsi b/arch/arm/boot/dts/br= oadcom/bcm-hr2.dtsi index 788a6806191a3..75545b10ef2fa 100644 --- a/arch/arm/boot/dts/broadcom/bcm-hr2.dtsi +++ b/arch/arm/boot/dts/broadcom/bcm-hr2.dtsi @@ -200,6 +200,7 @@ gpiob: gpio@30000 { gpio-controller; ngpios =3D <4>; interrupt-controller; + #interrupt-cells =3D <2>; interrupts =3D ; }; =20 diff --git a/arch/arm/boot/dts/broadcom/bcm-nsp.dtsi b/arch/arm/boot/dts/br= oadcom/bcm-nsp.dtsi index 9d20ba3b1ffb1..6a4482c931674 100644 --- a/arch/arm/boot/dts/broadcom/bcm-nsp.dtsi +++ b/arch/arm/boot/dts/broadcom/bcm-nsp.dtsi @@ -180,6 +180,7 @@ gpioa: gpio@20 { gpio-controller; ngpios =3D <32>; interrupt-controller; + #interrupt-cells =3D <2>; interrupts =3D ; gpio-ranges =3D <&pinctrl 0 0 32>; }; @@ -352,6 +353,7 @@ gpiob: gpio@30000 { gpio-controller; ngpios =3D <4>; interrupt-controller; + #interrupt-cells =3D <2>; interrupts =3D ; }; =20 diff --git a/arch/arm/boot/dts/marvell/kirkwood-l-50.dts b/arch/arm/boot/dt= s/marvell/kirkwood-l-50.dts index dffb9f84e67c5..c841eb8e7fb1d 100644 --- a/arch/arm/boot/dts/marvell/kirkwood-l-50.dts +++ b/arch/arm/boot/dts/marvell/kirkwood-l-50.dts @@ -65,6 +65,7 @@ i2c@11000 { gpio2: gpio-expander@20 { #gpio-cells =3D <2>; #interrupt-cells =3D <2>; + interrupt-controller; compatible =3D "semtech,sx1505q"; reg =3D <0x20>; =20 @@ -79,6 +80,7 @@ gpio2: gpio-expander@20 { gpio3: gpio-expander@21 { #gpio-cells =3D <2>; #interrupt-cells =3D <2>; + interrupt-controller; compatible =3D "semtech,sx1505q"; reg =3D <0x21>; =20 diff --git a/arch/arm/boot/dts/nuvoton/nuvoton-wpcm450.dtsi b/arch/arm/boot= /dts/nuvoton/nuvoton-wpcm450.dtsi index fd671c7a1e5d6..6e1f0f164cb4f 100644 --- a/arch/arm/boot/dts/nuvoton/nuvoton-wpcm450.dtsi +++ b/arch/arm/boot/dts/nuvoton/nuvoton-wpcm450.dtsi @@ -120,6 +120,7 @@ gpio0: gpio@0 { interrupts =3D <2 IRQ_TYPE_LEVEL_HIGH>, <3 IRQ_TYPE_LEVEL_HIGH>, <4 IRQ_TYPE_LEVEL_HIGH>; + #interrupt-cells =3D <2>; interrupt-controller; }; =20 @@ -128,6 +129,7 @@ gpio1: gpio@1 { gpio-controller; #gpio-cells =3D <2>; interrupts =3D <5 IRQ_TYPE_LEVEL_HIGH>; + #interrupt-cells =3D <2>; interrupt-controller; }; =20 diff --git a/arch/arm/boot/dts/nvidia/tegra30-apalis-v1.1.dtsi b/arch/arm/b= oot/dts/nvidia/tegra30-apalis-v1.1.dtsi index 1640763fd4af2..ff0d684622f74 100644 --- a/arch/arm/boot/dts/nvidia/tegra30-apalis-v1.1.dtsi +++ b/arch/arm/boot/dts/nvidia/tegra30-apalis-v1.1.dtsi @@ -997,7 +997,6 @@ touchscreen@41 { compatible =3D "st,stmpe811"; reg =3D <0x41>; irq-gpio =3D <&gpio TEGRA_GPIO(V, 0) GPIO_ACTIVE_LOW>; - interrupt-controller; id =3D <0>; blocks =3D <0x5>; irq-trigger =3D <0x1>; diff --git a/arch/arm/boot/dts/nvidia/tegra30-apalis.dtsi b/arch/arm/boot/d= ts/nvidia/tegra30-apalis.dtsi index 3b6fad273cabf..d38f1dd38a906 100644 --- a/arch/arm/boot/dts/nvidia/tegra30-apalis.dtsi +++ b/arch/arm/boot/dts/nvidia/tegra30-apalis.dtsi @@ -980,7 +980,6 @@ touchscreen@41 { compatible =3D "st,stmpe811"; reg =3D <0x41>; irq-gpio =3D <&gpio TEGRA_GPIO(V, 0) GPIO_ACTIVE_LOW>; - interrupt-controller; id =3D <0>; blocks =3D <0x5>; irq-trigger =3D <0x1>; diff --git a/arch/arm/boot/dts/nvidia/tegra30-colibri.dtsi b/arch/arm/boot/= dts/nvidia/tegra30-colibri.dtsi index 4eb526fe9c558..81c8a5fd92cce 100644 --- a/arch/arm/boot/dts/nvidia/tegra30-colibri.dtsi +++ b/arch/arm/boot/dts/nvidia/tegra30-colibri.dtsi @@ -861,7 +861,6 @@ touchscreen@41 { compatible =3D "st,stmpe811"; reg =3D <0x41>; irq-gpio =3D <&gpio TEGRA_GPIO(V, 0) GPIO_ACTIVE_LOW>; - interrupt-controller; id =3D <0>; blocks =3D <0x5>; irq-trigger =3D <0x1>; diff --git a/arch/arm/boot/dts/nxp/imx/imx6q-b850v3.dts b/arch/arm/boot/dts= /nxp/imx/imx6q-b850v3.dts index db8c332df6a1d..cad112e054758 100644 --- a/arch/arm/boot/dts/nxp/imx/imx6q-b850v3.dts +++ b/arch/arm/boot/dts/nxp/imx/imx6q-b850v3.dts @@ -227,7 +227,6 @@ bridge@1,0 { =20 #address-cells =3D <3>; #size-cells =3D <2>; - #interrupt-cells =3D <1>; =20 bridge@2,1 { compatible =3D "pci10b5,8605"; @@ -235,7 +234,6 @@ bridge@2,1 { =20 #address-cells =3D <3>; #size-cells =3D <2>; - #interrupt-cells =3D <1>; =20 /* Intel Corporation I210 Gigabit Network Connection */ ethernet@3,0 { @@ -250,7 +248,6 @@ bridge@2,2 { =20 #address-cells =3D <3>; #size-cells =3D <2>; - #interrupt-cells =3D <1>; =20 /* Intel Corporation I210 Gigabit Network Connection */ switch_nic: ethernet@4,0 { diff --git a/arch/arm/boot/dts/nxp/imx/imx6q-bx50v3.dtsi b/arch/arm/boot/dt= s/nxp/imx/imx6q-bx50v3.dtsi index 99f4f6ac71d4a..c1ae7c47b4422 100644 --- a/arch/arm/boot/dts/nxp/imx/imx6q-bx50v3.dtsi +++ b/arch/arm/boot/dts/nxp/imx/imx6q-bx50v3.dtsi @@ -245,6 +245,7 @@ pca9539: pca9539@74 { reg =3D <0x74>; gpio-controller; #gpio-cells =3D <2>; + #interrupt-cells =3D <2>; interrupt-controller; interrupt-parent =3D <&gpio2>; interrupts =3D <3 IRQ_TYPE_LEVEL_LOW>; @@ -390,7 +391,6 @@ pci_root: root@0,0 { =20 #address-cells =3D <3>; #size-cells =3D <2>; - #interrupt-cells =3D <1>; }; }; =20 diff --git a/arch/arm/boot/dts/nxp/imx/imx6qdl-apalis.dtsi b/arch/arm/boot/= dts/nxp/imx/imx6qdl-apalis.dtsi index 4cc965277c521..dcb4f6a32f809 100644 --- a/arch/arm/boot/dts/nxp/imx/imx6qdl-apalis.dtsi +++ b/arch/arm/boot/dts/nxp/imx/imx6qdl-apalis.dtsi @@ -619,7 +619,6 @@ stmpe811@41 { blocks =3D <0x5>; id =3D <0>; interrupts =3D <10 IRQ_TYPE_LEVEL_LOW>; - interrupt-controller; interrupt-parent =3D <&gpio4>; irq-trigger =3D <0x1>; pinctrl-names =3D "default"; diff --git a/arch/arm/boot/dts/nxp/imx/imx6qdl-colibri.dtsi b/arch/arm/boot= /dts/nxp/imx/imx6qdl-colibri.dtsi index 11d9c7a2dacb1..6cc4d6fd5f28b 100644 --- a/arch/arm/boot/dts/nxp/imx/imx6qdl-colibri.dtsi +++ b/arch/arm/boot/dts/nxp/imx/imx6qdl-colibri.dtsi @@ -543,7 +543,6 @@ stmpe811@41 { blocks =3D <0x5>; interrupts =3D <20 IRQ_TYPE_LEVEL_LOW>; interrupt-parent =3D <&gpio6>; - interrupt-controller; id =3D <0>; irq-trigger =3D <0x1>; pinctrl-names =3D "default"; diff --git a/arch/arm/boot/dts/nxp/imx/imx6qdl-emcon.dtsi b/arch/arm/boot/d= ts/nxp/imx/imx6qdl-emcon.dtsi index a63e73adc1fc5..42b2ba23aefc9 100644 --- a/arch/arm/boot/dts/nxp/imx/imx6qdl-emcon.dtsi +++ b/arch/arm/boot/dts/nxp/imx/imx6qdl-emcon.dtsi @@ -225,7 +225,6 @@ da9063: pmic@58 { pinctrl-0 =3D <&pinctrl_pmic>; interrupt-parent =3D <&gpio2>; interrupts =3D <8 IRQ_TYPE_LEVEL_LOW>; - interrupt-controller; =20 onkey { compatible =3D "dlg,da9063-onkey"; diff --git a/arch/arm/boot/dts/nxp/imx/imx6qdl-phytec-pfla02.dtsi b/arch/ar= m/boot/dts/nxp/imx/imx6qdl-phytec-pfla02.dtsi index 113974520d544..c0c47adc5866e 100644 --- a/arch/arm/boot/dts/nxp/imx/imx6qdl-phytec-pfla02.dtsi +++ b/arch/arm/boot/dts/nxp/imx/imx6qdl-phytec-pfla02.dtsi @@ -124,6 +124,7 @@ pmic@58 { reg =3D <0x58>; interrupt-parent =3D <&gpio2>; interrupts =3D <9 IRQ_TYPE_LEVEL_LOW>; /* active-low GPIO2_9 */ + #interrupt-cells =3D <2>; interrupt-controller; =20 regulators { diff --git a/arch/arm/boot/dts/nxp/imx/imx6qdl-phytec-phycore-som.dtsi b/ar= ch/arm/boot/dts/nxp/imx/imx6qdl-phytec-phycore-som.dtsi index 86b4269e0e011..85e278eb20161 100644 --- a/arch/arm/boot/dts/nxp/imx/imx6qdl-phytec-phycore-som.dtsi +++ b/arch/arm/boot/dts/nxp/imx/imx6qdl-phytec-phycore-som.dtsi @@ -100,6 +100,7 @@ pmic: pmic@58 { interrupt-parent =3D <&gpio1>; interrupts =3D <2 IRQ_TYPE_LEVEL_LOW>; interrupt-controller; + #interrupt-cells =3D <2>; gpio-controller; #gpio-cells =3D <2>; =20 diff --git a/arch/arm/boot/dts/nxp/imx/imx7d-pico-dwarf.dts b/arch/arm/boot= /dts/nxp/imx/imx7d-pico-dwarf.dts index 12361fcbe24af..1b965652291bf 100644 --- a/arch/arm/boot/dts/nxp/imx/imx7d-pico-dwarf.dts +++ b/arch/arm/boot/dts/nxp/imx/imx7d-pico-dwarf.dts @@ -63,6 +63,7 @@ pca9554: io-expander@25 { gpio-controller; #gpio-cells =3D <2>; #interrupt-cells =3D <2>; + interrupt-controller; reg =3D <0x25>; }; =20 diff --git a/arch/arm/boot/dts/nxp/vf/vf610-zii-dev-rev-b.dts b/arch/arm/bo= ot/dts/nxp/vf/vf610-zii-dev-rev-b.dts index 16b4e06c4efad..a248b8a453421 100644 --- a/arch/arm/boot/dts/nxp/vf/vf610-zii-dev-rev-b.dts +++ b/arch/arm/boot/dts/nxp/vf/vf610-zii-dev-rev-b.dts @@ -338,6 +338,7 @@ gpio6: io-expander@22 { reg =3D <0x22>; gpio-controller; #gpio-cells =3D <2>; + #interrupt-cells =3D <2>; interrupt-controller; interrupt-parent =3D <&gpio3>; interrupts =3D <2 IRQ_TYPE_LEVEL_LOW>; diff --git a/arch/arm/boot/dts/st/stm32429i-eval.dts b/arch/arm/boot/dts/st= /stm32429i-eval.dts index 576235ec3c516..afa417b34b25f 100644 --- a/arch/arm/boot/dts/st/stm32429i-eval.dts +++ b/arch/arm/boot/dts/st/stm32429i-eval.dts @@ -222,7 +222,6 @@ stmpe1600: stmpe1600@42 { reg =3D <0x42>; interrupts =3D <8 3>; interrupt-parent =3D <&gpioi>; - interrupt-controller; wakeup-source; =20 stmpegpio: stmpe_gpio { diff --git a/arch/arm/boot/dts/st/stm32mp157c-dk2.dts b/arch/arm/boot/dts/s= t/stm32mp157c-dk2.dts index 510cca5acb79c..7a701f7ef0c70 100644 --- a/arch/arm/boot/dts/st/stm32mp157c-dk2.dts +++ b/arch/arm/boot/dts/st/stm32mp157c-dk2.dts @@ -64,7 +64,6 @@ touchscreen@38 { reg =3D <0x38>; interrupts =3D <2 2>; interrupt-parent =3D <&gpiof>; - interrupt-controller; touchscreen-size-x =3D <480>; touchscreen-size-y =3D <800>; status =3D "okay"; diff --git a/arch/arm/boot/dts/ti/omap/am5729-beagleboneai.dts b/arch/arm/b= oot/dts/ti/omap/am5729-beagleboneai.dts index 9a234dc1431d1..5b240769d300e 100644 --- a/arch/arm/boot/dts/ti/omap/am5729-beagleboneai.dts +++ b/arch/arm/boot/dts/ti/omap/am5729-beagleboneai.dts @@ -415,7 +415,6 @@ stmpe811@41 { reg =3D <0x41>; interrupts =3D <30 IRQ_TYPE_LEVEL_LOW>; interrupt-parent =3D <&gpio2>; - interrupt-controller; id =3D <0>; blocks =3D <0x5>; irq-trigger =3D <0x1>; --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 327321FC10D; Sun, 24 Mar 2024 23:01: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=1711321316; cv=none; b=DhOsX60xQnvIbEYw6Jkr0jHmPWTqQK4Y1CiTpTI0mwcs2NdLdiB6arPoxcx4KQL9f1gUlTPsVjHAdj/4PHCngXCw2XUO2V2ByPeoAcOowABV3HI2KILZFihIc+1kkt5jTstT6KX8FErs++GvsoCXBkG/SF9CtQevEcimN6t+0aM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321316; c=relaxed/simple; bh=v72yR9TvJL75rbdEOwqmwC5IEhpmO5X238jNeAFXJaU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=OYeHMrjbHahSpRnUBIvaKPGFHM76OPe79/Qi5DK4xHYrCa5H97+EFAWbI6sAQcOmy418K8KgDe4LqPtyOvB1tAe+yVOyoICE8FRaB6zwQ7pNExa04vIwbF5/q7TyDAf6okeURSSi0OhbT2k07dJsRqSmyqZ0iwv2nGN63sp18Ho= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=UfzpfU6X; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="UfzpfU6X" Received: by smtp.kernel.org (Postfix) with ESMTPSA id EABCEC43399; Sun, 24 Mar 2024 23:01:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321316; bh=v72yR9TvJL75rbdEOwqmwC5IEhpmO5X238jNeAFXJaU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=UfzpfU6X/39amirxvLfVsz+n+qjkr3BHvx4bjndZPe1kHR7ivJ3ddnnN3TV8dSEOT J9LCSg63+/CB8ESQ2OvPfct7LT1CUT6dUfXCS0NPeCYHKAhaSw+I5Ql7GXx+gBpQlC TzJzJQ4N+LXpEaYFSnHwy60Zhv6rfURqBta9SmI7ZAnY3opnA1bKHcKX5bcFmNxQ+B ZvcZXfSvu/V3+03f7RB0xAR8ZblyZ6Is7CJaEKkOrxIWnN7USRfGou+bSgtDDdaieX WV/3uURN4pRdylr1+uvB+cx9dQNmLOKJXGNTPYLd46odTxtu+wDPxsYsQ15uAo0Ca7 i13uUtaWO0Cyg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Rob Herring , AngeloGioacchino Del Regno , Geert Uytterhoeven , Florian Fainelli , Chanho Min , Arnd Bergmann , Sasha Levin Subject: [PATCH 6.6 038/638] arm64: dts: Fix dtc interrupt_provider warnings Date: Sun, 24 Mar 2024 18:51:15 -0400 Message-ID: <20240324230116.1348576-39-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 91adecf911e5df78ea3e8f866e69db2c33416a5c ] The dtc interrupt_provider warning is off by default. Fix all the warnings so it can be enabled. Signed-off-by: Rob Herring Reviewed-By: AngeloGioacchino Del Regno # Reviewed-by: Geert Uytterhoeven Acked-by: Geert Uytterhoeven Acked-by: Florian Fainelli #Broadcom Acked-by: Chanho Min Link: https://lore.kernel.org/r/20240213-arm-dt-cleanups-v1-3-f2dee1292525@= kernel.org Signed-off-by: Arnd Bergmann Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/amazon/alpine-v2.dtsi | 1 - arch/arm64/boot/dts/amazon/alpine-v3.dtsi | 1 - arch/arm64/boot/dts/broadcom/northstar2/ns2.dtsi | 1 + arch/arm64/boot/dts/broadcom/stingray/stingray.dtsi | 1 + arch/arm64/boot/dts/lg/lg1312.dtsi | 1 - arch/arm64/boot/dts/lg/lg1313.dtsi | 1 - arch/arm64/boot/dts/marvell/armada-ap80x.dtsi | 1 - arch/arm64/boot/dts/mediatek/mt8195-demo.dts | 1 + arch/arm64/boot/dts/renesas/ulcb-kf.dtsi | 4 ++++ 9 files changed, 7 insertions(+), 5 deletions(-) diff --git a/arch/arm64/boot/dts/amazon/alpine-v2.dtsi b/arch/arm64/boot/dt= s/amazon/alpine-v2.dtsi index dccbba6e7f98e..dbf2dce8d1d68 100644 --- a/arch/arm64/boot/dts/amazon/alpine-v2.dtsi +++ b/arch/arm64/boot/dts/amazon/alpine-v2.dtsi @@ -145,7 +145,6 @@ pci@fbc00000 { msix: msix@fbe00000 { compatible =3D "al,alpine-msix"; reg =3D <0x0 0xfbe00000 0x0 0x100000>; - interrupt-controller; msi-controller; al,msi-base-spi =3D <160>; al,msi-num-spis =3D <160>; diff --git a/arch/arm64/boot/dts/amazon/alpine-v3.dtsi b/arch/arm64/boot/dt= s/amazon/alpine-v3.dtsi index 39481d7fd7d4d..3ea178acdddfe 100644 --- a/arch/arm64/boot/dts/amazon/alpine-v3.dtsi +++ b/arch/arm64/boot/dts/amazon/alpine-v3.dtsi @@ -355,7 +355,6 @@ pcie@fbd00000 { msix: msix@fbe00000 { compatible =3D "al,alpine-msix"; reg =3D <0x0 0xfbe00000 0x0 0x100000>; - interrupt-controller; msi-controller; al,msi-base-spi =3D <336>; al,msi-num-spis =3D <959>; diff --git a/arch/arm64/boot/dts/broadcom/northstar2/ns2.dtsi b/arch/arm64/= boot/dts/broadcom/northstar2/ns2.dtsi index 9dcd25ec2c041..896d1f33b5b61 100644 --- a/arch/arm64/boot/dts/broadcom/northstar2/ns2.dtsi +++ b/arch/arm64/boot/dts/broadcom/northstar2/ns2.dtsi @@ -586,6 +586,7 @@ gpio_g: gpio@660a0000 { #gpio-cells =3D <2>; gpio-controller; interrupt-controller; + #interrupt-cells =3D <2>; interrupts =3D ; }; =20 diff --git a/arch/arm64/boot/dts/broadcom/stingray/stingray.dtsi b/arch/arm= 64/boot/dts/broadcom/stingray/stingray.dtsi index f049687d6b96d..d8516ec0dae74 100644 --- a/arch/arm64/boot/dts/broadcom/stingray/stingray.dtsi +++ b/arch/arm64/boot/dts/broadcom/stingray/stingray.dtsi @@ -450,6 +450,7 @@ gpio_hsls: gpio@d0000 { #gpio-cells =3D <2>; gpio-controller; interrupt-controller; + #interrupt-cells =3D <2>; interrupts =3D ; gpio-ranges =3D <&pinmux 0 0 16>, <&pinmux 16 71 2>, diff --git a/arch/arm64/boot/dts/lg/lg1312.dtsi b/arch/arm64/boot/dts/lg/lg= 1312.dtsi index 48ec4ebec0a83..b864ffa74ea8b 100644 --- a/arch/arm64/boot/dts/lg/lg1312.dtsi +++ b/arch/arm64/boot/dts/lg/lg1312.dtsi @@ -126,7 +126,6 @@ eth0: ethernet@c1b00000 { amba { #address-cells =3D <2>; #size-cells =3D <1>; - #interrupt-cells =3D <3>; =20 compatible =3D "simple-bus"; interrupt-parent =3D <&gic>; diff --git a/arch/arm64/boot/dts/lg/lg1313.dtsi b/arch/arm64/boot/dts/lg/lg= 1313.dtsi index 3869460aa5dcb..996fb39bb50c1 100644 --- a/arch/arm64/boot/dts/lg/lg1313.dtsi +++ b/arch/arm64/boot/dts/lg/lg1313.dtsi @@ -126,7 +126,6 @@ eth0: ethernet@c3700000 { amba { #address-cells =3D <2>; #size-cells =3D <1>; - #interrupt-cells =3D <3>; =20 compatible =3D "simple-bus"; interrupt-parent =3D <&gic>; diff --git a/arch/arm64/boot/dts/marvell/armada-ap80x.dtsi b/arch/arm64/boo= t/dts/marvell/armada-ap80x.dtsi index 2c920e22cec2b..7ec7c789d87ef 100644 --- a/arch/arm64/boot/dts/marvell/armada-ap80x.dtsi +++ b/arch/arm64/boot/dts/marvell/armada-ap80x.dtsi @@ -138,7 +138,6 @@ pmu { =20 odmi: odmi@300000 { compatible =3D "marvell,odmi-controller"; - interrupt-controller; msi-controller; marvell,odmi-frames =3D <4>; reg =3D <0x300000 0x4000>, diff --git a/arch/arm64/boot/dts/mediatek/mt8195-demo.dts b/arch/arm64/boot= /dts/mediatek/mt8195-demo.dts index 5d635085fe3fd..9079e48aea23e 100644 --- a/arch/arm64/boot/dts/mediatek/mt8195-demo.dts +++ b/arch/arm64/boot/dts/mediatek/mt8195-demo.dts @@ -128,6 +128,7 @@ mt6360: pmic@34 { compatible =3D "mediatek,mt6360"; reg =3D <0x34>; interrupt-controller; + #interrupt-cells =3D <1>; interrupts-extended =3D <&pio 101 IRQ_TYPE_EDGE_FALLING>; interrupt-names =3D "IRQB"; =20 diff --git a/arch/arm64/boot/dts/renesas/ulcb-kf.dtsi b/arch/arm64/boot/dts= /renesas/ulcb-kf.dtsi index 3885ef3454ff6..50de17e4fb3f2 100644 --- a/arch/arm64/boot/dts/renesas/ulcb-kf.dtsi +++ b/arch/arm64/boot/dts/renesas/ulcb-kf.dtsi @@ -234,6 +234,7 @@ gpio_exp_74: gpio@74 { gpio-controller; #gpio-cells =3D <2>; interrupt-controller; + #interrupt-cells =3D <2>; interrupt-parent =3D <&gpio6>; interrupts =3D <8 IRQ_TYPE_EDGE_FALLING>; =20 @@ -294,6 +295,7 @@ gpio_exp_75: gpio@75 { gpio-controller; #gpio-cells =3D <2>; interrupt-controller; + #interrupt-cells =3D <2>; interrupt-parent =3D <&gpio6>; interrupts =3D <4 IRQ_TYPE_EDGE_FALLING>; }; @@ -314,6 +316,7 @@ gpio_exp_76: gpio@76 { gpio-controller; #gpio-cells =3D <2>; interrupt-controller; + #interrupt-cells =3D <2>; interrupt-parent =3D <&gpio7>; interrupts =3D <3 IRQ_TYPE_EDGE_FALLING>; }; @@ -324,6 +327,7 @@ gpio_exp_77: gpio@77 { gpio-controller; #gpio-cells =3D <2>; interrupt-controller; + #interrupt-cells =3D <2>; interrupt-parent =3D <&gpio5>; interrupts =3D <9 IRQ_TYPE_EDGE_FALLING>; }; --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 55ABB12FF60; Sun, 24 Mar 2024 23:01: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=1711321318; cv=none; b=WZaIN5jD6bIJt5AZFPqYHzNRAlFmcd7G89UlCybf3G4jlXZuJWz8sIEM6r1d54kqgJymr+qVEMvn19S+Uo87Z3lzh+n1H1m98b/vADAT4whBDEPAO86ptmk0DvXu6Fi8l8pJlDXDO7Wgq1J7CvDcGy9CNCFD4tTWexEbN6jg6Qc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321318; c=relaxed/simple; bh=eBUzn36vqZymU/CNWaaNunB4aUI45530KBqfOLornhs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=AvHu1wJf+YqpU9WKS/iRlm3ejsalmh1zed8D1sp+rguFUWlSPhttV/3OQ8xcPl+USzMxBLDE+FuucnV1lsOfZPZK6W5Ghc7re2yLlSZJANaTE0DocPJVBh2LSYNsj+Zr7P7NSegLWdr2j3yeU4Z84q3SiTl27BDSCNMvK7jtdcc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ovboVuUy; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ovboVuUy" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3FC58C43394; Sun, 24 Mar 2024 23:01:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321317; bh=eBUzn36vqZymU/CNWaaNunB4aUI45530KBqfOLornhs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ovboVuUyBRBCLoM0YGhcHV36BGPmPE774MHIJB8YeU8LRxcUHTS7jDD1z6pcw1W2R /hRqjBWGElo6k+zeIOObC6FxN74XwS1e1RU+rjI1W8qyiMbeWPCCu48eDkobCgXtLV ViAUTFfpnJt0mg/XEcn5iQCkEbzlxJ42NOhPkpagHDaC3aFItsBAQsnwUg7Nw5xcEn MBYgF+XUMHnO2+dq4NNk+mrqhUT5EauXcjFlnr6z+PTJ/hc2wKA8G18cYDMgf7GkGF c7kBAWlnNQ6+892Xyd0IU5vAPXivKfswiwkJTTJov4GZvw4c1xHNT4zJaCqPzSSH06 MrasnsefAn2ew== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Rob Herring , Linus Walleij , Arnd Bergmann , Sasha Levin Subject: [PATCH 6.6 039/638] arm: dts: Fix dtc interrupt_map warnings Date: Sun, 24 Mar 2024 18:51:16 -0400 Message-ID: <20240324230116.1348576-40-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 f02b0f0dc26fbb77fe47b6e47cc5c211f0432c37 ] The dtc interrupt_map warning is off because its dependency, interrupt_provider, is off by default. Fix all the warnings so it can be enabled. Signed-off-by: Rob Herring Reviewed-by: Linus Walleij Link: https://lore.kernel.org/r/20240213-arm-dt-cleanups-v1-4-f2dee1292525@= kernel.org Signed-off-by: Arnd Bergmann Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm/boot/dts/intel/ixp/intel-ixp42x-gateway-7001.dts | 2 ++ .../boot/dts/intel/ixp/intel-ixp42x-goramo-multilink.dts | 2 ++ arch/arm/boot/dts/qcom/qcom-sdx55.dtsi | 8 ++++---- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/arch/arm/boot/dts/intel/ixp/intel-ixp42x-gateway-7001.dts b/ar= ch/arm/boot/dts/intel/ixp/intel-ixp42x-gateway-7001.dts index 4d70f6afd13ab..6d5e69035f94d 100644 --- a/arch/arm/boot/dts/intel/ixp/intel-ixp42x-gateway-7001.dts +++ b/arch/arm/boot/dts/intel/ixp/intel-ixp42x-gateway-7001.dts @@ -60,6 +60,8 @@ pci@c0000000 { * We have slots (IDSEL) 1 and 2 with one assigned IRQ * each handling all IRQs. */ + #interrupt-cells =3D <1>; + interrupt-map-mask =3D <0xf800 0 0 7>; interrupt-map =3D /* IDSEL 1 */ <0x0800 0 0 1 &gpio0 11 IRQ_TYPE_LEVEL_LOW>, /* INT A on slot 1 is irq = 11 */ diff --git a/arch/arm/boot/dts/intel/ixp/intel-ixp42x-goramo-multilink.dts = b/arch/arm/boot/dts/intel/ixp/intel-ixp42x-goramo-multilink.dts index 9ec0169bacf8c..5f4c849915db7 100644 --- a/arch/arm/boot/dts/intel/ixp/intel-ixp42x-goramo-multilink.dts +++ b/arch/arm/boot/dts/intel/ixp/intel-ixp42x-goramo-multilink.dts @@ -89,6 +89,8 @@ pci@c0000000 { * The slots have Ethernet, Ethernet, NEC and MPCI. * The IDSELs are 11, 12, 13, 14. */ + #interrupt-cells =3D <1>; + interrupt-map-mask =3D <0xf800 0 0 7>; interrupt-map =3D /* IDSEL 11 - Ethernet A */ <0x5800 0 0 1 &gpio0 4 IRQ_TYPE_LEVEL_LOW>, /* INT A on slot 11 is irq = 4 */ diff --git a/arch/arm/boot/dts/qcom/qcom-sdx55.dtsi b/arch/arm/boot/dts/qco= m/qcom-sdx55.dtsi index 5b86b4de1a1bd..f9ad5abfbd28b 100644 --- a/arch/arm/boot/dts/qcom/qcom-sdx55.dtsi +++ b/arch/arm/boot/dts/qcom/qcom-sdx55.dtsi @@ -345,10 +345,10 @@ pcie_rc: pcie@1c00000 { "msi8"; #interrupt-cells =3D <1>; interrupt-map-mask =3D <0 0 0 0x7>; - interrupt-map =3D <0 0 0 1 &intc 0 0 0 141 IRQ_TYPE_LEVEL_HIGH>, /* int= _a */ - <0 0 0 2 &intc 0 0 0 142 IRQ_TYPE_LEVEL_HIGH>, /* int_b */ - <0 0 0 3 &intc 0 0 0 143 IRQ_TYPE_LEVEL_HIGH>, /* int_c */ - <0 0 0 4 &intc 0 0 0 144 IRQ_TYPE_LEVEL_HIGH>; /* int_d */ + interrupt-map =3D <0 0 0 1 &intc 0 141 IRQ_TYPE_LEVEL_HIGH>, /* int_a */ + <0 0 0 2 &intc 0 142 IRQ_TYPE_LEVEL_HIGH>, /* int_b */ + <0 0 0 3 &intc 0 143 IRQ_TYPE_LEVEL_HIGH>, /* int_c */ + <0 0 0 4 &intc 0 144 IRQ_TYPE_LEVEL_HIGH>; /* int_d */ =20 clocks =3D <&gcc GCC_PCIE_PIPE_CLK>, <&gcc GCC_PCIE_AUX_CLK>, --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0582212F588; Sun, 24 Mar 2024 23:01: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=1711321318; cv=none; b=Mns85/67dgUInKYgpJO6vTGQ6imqxvNn/IPr2lCc+ritF4OXOispxPiPTSin4hRl9IltNnvOfpOaP/QpyAvOu5NQj2PA206xJb4ujpy5OzptKtNfkNOG6jEEYH2wcEAv+wbnnbSkyatC50fTNkh48nbkxQwgy0ntfmL21ERYNhg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321318; c=relaxed/simple; bh=+VkSfxLjq9zTh2Um2OakZb7sD8Gj8u1Q9eEf/0H2ymo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=FLuxAw2dOKMR35+t2tNPg5G9WWn1dp0ZkAAna774P1VNZpXC7gY7SmhKPuTg1NBsY8qfuhVORhK7N1kW2ZcM0nJyszgY/oQO3olNaRuln/f2l1J1iwAuS/ZWUc1ZjWV4uk7VM4KPnkQBwZsIbwE8RED7fqfFodVs1lcggE2DBls= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=d3E1/dhe; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="d3E1/dhe" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3F461C433F1; Sun, 24 Mar 2024 23:01:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321317; bh=+VkSfxLjq9zTh2Um2OakZb7sD8Gj8u1Q9eEf/0H2ymo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=d3E1/dheSAM/ztS54kBsTbCXI65COyxirTPgjHxnClFDROfvhGtUY3LNcyBfEcez7 /253nlMhv8uo/37Xtg22+70ElfYkw5FR/g8+ZEVeLI5MSMbkrty0o/P38CBOWNMXEA UAJQDK15RxGfxBI2oqvE8v6gF44w1MiSGQgBRbUPwdfwdqS599FqNkcMPMbSl3zW78 Nmt4tQ0vpslaqldRYxUpZyYTavkgIQo5bSCtKUAtqttQRzHOvX1ig76pYepGyChjOG OgaRhVe9eD3j5LEOhDrHEFasXVQO4W5PdkIwrV52NBk2vTQBrcDSa1zjFV+Mfvnbho MB9NXdx59otbg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Rob Herring , Arnd Bergmann , Sasha Levin Subject: [PATCH 6.6 040/638] arm64: dts: qcom: Fix interrupt-map cell sizes Date: Sun, 24 Mar 2024 18:51:17 -0400 Message-ID: <20240324230116.1348576-41-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 704dccec0d490f2ad06f3f16ebed254d81906c3a ] The PCI node interrupt-map properties have the wrong size as #address-cells in the interrupt parent are not accounted for. The dtc interrupt_map check catches this, but the warning is off because its dependency, interrupt_provider, is off by default. Signed-off-by: Rob Herring Link: https://lore.kernel.org/r/20240213-arm-dt-cleanups-v1-5-f2dee1292525@= kernel.org Signed-off-by: Arnd Bergmann Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/qcom/ipq6018.dtsi | 8 ++++---- arch/arm64/boot/dts/qcom/ipq8074.dtsi | 16 ++++++++-------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/arch/arm64/boot/dts/qcom/ipq6018.dtsi b/arch/arm64/boot/dts/qc= om/ipq6018.dtsi index fc907afe5174c..4294a5405c012 100644 --- a/arch/arm64/boot/dts/qcom/ipq6018.dtsi +++ b/arch/arm64/boot/dts/qcom/ipq6018.dtsi @@ -767,10 +767,10 @@ pcie0: pci@20000000 { =20 #interrupt-cells =3D <1>; interrupt-map-mask =3D <0 0 0 0x7>; - interrupt-map =3D <0 0 0 1 &intc 0 75 IRQ_TYPE_LEVEL_HIGH>, /* int_a */ - <0 0 0 2 &intc 0 78 IRQ_TYPE_LEVEL_HIGH>, /* int_b */ - <0 0 0 3 &intc 0 79 IRQ_TYPE_LEVEL_HIGH>, /* int_c */ - <0 0 0 4 &intc 0 83 IRQ_TYPE_LEVEL_HIGH>; /* int_d */ + interrupt-map =3D <0 0 0 1 &intc 0 0 0 75 IRQ_TYPE_LEVEL_HIGH>, /* int_= a */ + <0 0 0 2 &intc 0 0 0 78 IRQ_TYPE_LEVEL_HIGH>, /* int_b */ + <0 0 0 3 &intc 0 0 0 79 IRQ_TYPE_LEVEL_HIGH>, /* int_c */ + <0 0 0 4 &intc 0 0 0 83 IRQ_TYPE_LEVEL_HIGH>; /* int_d */ =20 clocks =3D <&gcc GCC_SYS_NOC_PCIE0_AXI_CLK>, <&gcc GCC_PCIE0_AXI_M_CLK>, diff --git a/arch/arm64/boot/dts/qcom/ipq8074.dtsi b/arch/arm64/boot/dts/qc= om/ipq8074.dtsi index 92fd924bbdbe5..5effd8180cc41 100644 --- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi +++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi @@ -817,13 +817,13 @@ pcie1: pci@10000000 { interrupt-names =3D "msi"; #interrupt-cells =3D <1>; interrupt-map-mask =3D <0 0 0 0x7>; - interrupt-map =3D <0 0 0 1 &intc 0 142 + interrupt-map =3D <0 0 0 1 &intc 0 0 142 IRQ_TYPE_LEVEL_HIGH>, /* int_a */ - <0 0 0 2 &intc 0 143 + <0 0 0 2 &intc 0 0 143 IRQ_TYPE_LEVEL_HIGH>, /* int_b */ - <0 0 0 3 &intc 0 144 + <0 0 0 3 &intc 0 0 144 IRQ_TYPE_LEVEL_HIGH>, /* int_c */ - <0 0 0 4 &intc 0 145 + <0 0 0 4 &intc 0 0 145 IRQ_TYPE_LEVEL_HIGH>; /* int_d */ =20 clocks =3D <&gcc GCC_SYS_NOC_PCIE1_AXI_CLK>, @@ -879,13 +879,13 @@ pcie0: pci@20000000 { interrupt-names =3D "msi"; #interrupt-cells =3D <1>; interrupt-map-mask =3D <0 0 0 0x7>; - interrupt-map =3D <0 0 0 1 &intc 0 75 + interrupt-map =3D <0 0 0 1 &intc 0 0 75 IRQ_TYPE_LEVEL_HIGH>, /* int_a */ - <0 0 0 2 &intc 0 78 + <0 0 0 2 &intc 0 0 78 IRQ_TYPE_LEVEL_HIGH>, /* int_b */ - <0 0 0 3 &intc 0 79 + <0 0 0 3 &intc 0 0 79 IRQ_TYPE_LEVEL_HIGH>, /* int_c */ - <0 0 0 4 &intc 0 83 + <0 0 0 4 &intc 0 0 83 IRQ_TYPE_LEVEL_HIGH>; /* int_d */ =20 clocks =3D <&gcc GCC_SYS_NOC_PCIE0_AXI_CLK>, --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DF5D314EC41; Sun, 24 Mar 2024 23:01: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=1711321320; cv=none; b=iCYlpDk9ru6OUVj2N5F/r9ghSQj2dxS3ikEqenai9A0a6DOXnwzrh7ubjSij8xhOEv0+Ej/zmmr27BEjxFZoVufJux3D4jrowweB4tdedEUHnjCtZcOYRT5l6iPjqMJUpZDKpugd3aq/OwweMDQurOWSnq3g48eUwDlWB0ODHa8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321320; c=relaxed/simple; bh=n6A4tUBhWX7HwegfEx4yiXj5Dlp8rAGYSamdvQLeZP0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=jBgmoUD4sNrI9vXOvbbkv24jVOkLEQKi0dcs/1WI3BSsRUxstDVmtoIU1iKNZhulUhtMCIs7xfnqpZ617rhz4WmIgxbntbJBM4uEY1rdGiN0Tr9uOieZ2gpBJRGznWLixCIsgmWleneTm26GnfnDorR9J2vr5/SUbg8OnDlBiaw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Wh+kRcmj; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Wh+kRcmj" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 26116C43399; Sun, 24 Mar 2024 23:01:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321318; bh=n6A4tUBhWX7HwegfEx4yiXj5Dlp8rAGYSamdvQLeZP0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Wh+kRcmjqUNNbO5SOhE9nbB4dcMMwMSdwnxgOKR05nCPIamswDTieeg+fWgR3yNjw CI4WrQ2Muctr1+07K128RkqGOwv6GBSzLoEfvESf4NkgHCscq1gSOQG89MveVAMBdy wd9fET9tmGhc8aGbmAaA187ayvW91ZV5mApDRQM7m3YWzJPIuKt0+N/Je8UTG+juzm u5Hh8QaKxEvThxjNfCf/t7HE5VHlEGgmXLn9C2OjSrlA3P/jUbniIhLM7zSFUmwaoi k0vf/dmbTV/8dhu9b5PViNBQuWicyWjhVGYqG56YbtpY5EX9Rjsm4UVUkAU0pLt6a/ mgXZoC7+naF/g== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Geert Uytterhoeven , Rob Herring , Sasha Levin Subject: [PATCH 6.6 041/638] ARM: dts: renesas: rcar-gen2: Add missing #interrupt-cells to DA9063 nodes Date: Sun, 24 Mar 2024 18:51:18 -0400 Message-ID: <20240324230116.1348576-42-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 8c987693dc2d292d777f1be63cb35233049ae25e ] make dtbs_check W=3D2: arch/arm/boot/dts/renesas/r8a7790-lager.dts:444.11-458.5: Warning (inte= rrupt_provider): /i2c-mux4/pmic@58: Missing '#interrupt-cells' in interrupt= provider ... Fix this by adding the missing #interrupt-cells properties. Reported-by: Rob Herring Signed-off-by: Geert Uytterhoeven Reviewed-by: Rob Herring Link: https://lore.kernel.org/r/a351e503ea97fb1af68395843f513925ff1bdf26.17= 07922460.git.geert+renesas@glider.be Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm/boot/dts/renesas/r8a7790-lager.dts | 1 + arch/arm/boot/dts/renesas/r8a7790-stout.dts | 1 + arch/arm/boot/dts/renesas/r8a7791-koelsch.dts | 1 + arch/arm/boot/dts/renesas/r8a7791-porter.dts | 1 + arch/arm/boot/dts/renesas/r8a7792-blanche.dts | 1 + arch/arm/boot/dts/renesas/r8a7793-gose.dts | 1 + arch/arm/boot/dts/renesas/r8a7794-alt.dts | 1 + arch/arm/boot/dts/renesas/r8a7794-silk.dts | 1 + 8 files changed, 8 insertions(+) diff --git a/arch/arm/boot/dts/renesas/r8a7790-lager.dts b/arch/arm/boot/dt= s/renesas/r8a7790-lager.dts index 5ad5349a50dc9..ab7e9fa90b9fe 100644 --- a/arch/arm/boot/dts/renesas/r8a7790-lager.dts +++ b/arch/arm/boot/dts/renesas/r8a7790-lager.dts @@ -437,6 +437,7 @@ pmic@58 { interrupt-parent =3D <&irqc0>; interrupts =3D <2 IRQ_TYPE_LEVEL_LOW>; interrupt-controller; + #interrupt-cells =3D <2>; =20 rtc { compatible =3D "dlg,da9063-rtc"; diff --git a/arch/arm/boot/dts/renesas/r8a7790-stout.dts b/arch/arm/boot/dt= s/renesas/r8a7790-stout.dts index fe14727eefe1e..25956661a8754 100644 --- a/arch/arm/boot/dts/renesas/r8a7790-stout.dts +++ b/arch/arm/boot/dts/renesas/r8a7790-stout.dts @@ -332,6 +332,7 @@ pmic@58 { interrupt-parent =3D <&irqc0>; interrupts =3D <2 IRQ_TYPE_LEVEL_LOW>; interrupt-controller; + #interrupt-cells =3D <2>; =20 onkey { compatible =3D "dlg,da9063-onkey"; diff --git a/arch/arm/boot/dts/renesas/r8a7791-koelsch.dts b/arch/arm/boot/= dts/renesas/r8a7791-koelsch.dts index 26a40782cc899..4a76be68887b4 100644 --- a/arch/arm/boot/dts/renesas/r8a7791-koelsch.dts +++ b/arch/arm/boot/dts/renesas/r8a7791-koelsch.dts @@ -800,6 +800,7 @@ pmic@58 { interrupt-parent =3D <&irqc0>; interrupts =3D <2 IRQ_TYPE_LEVEL_LOW>; interrupt-controller; + #interrupt-cells =3D <2>; =20 rtc { compatible =3D "dlg,da9063-rtc"; diff --git a/arch/arm/boot/dts/renesas/r8a7791-porter.dts b/arch/arm/boot/d= ts/renesas/r8a7791-porter.dts index ec0a20d5130d6..fcc9a2313e1df 100644 --- a/arch/arm/boot/dts/renesas/r8a7791-porter.dts +++ b/arch/arm/boot/dts/renesas/r8a7791-porter.dts @@ -389,6 +389,7 @@ pmic@5a { interrupt-parent =3D <&irqc0>; interrupts =3D <2 IRQ_TYPE_LEVEL_LOW>; interrupt-controller; + #interrupt-cells =3D <2>; =20 watchdog { compatible =3D "dlg,da9063-watchdog"; diff --git a/arch/arm/boot/dts/renesas/r8a7792-blanche.dts b/arch/arm/boot/= dts/renesas/r8a7792-blanche.dts index 6a83923aa4612..20963c9bbf0ad 100644 --- a/arch/arm/boot/dts/renesas/r8a7792-blanche.dts +++ b/arch/arm/boot/dts/renesas/r8a7792-blanche.dts @@ -330,6 +330,7 @@ pmic@58 { interrupt-parent =3D <&irqc>; interrupts =3D <2 IRQ_TYPE_LEVEL_LOW>; interrupt-controller; + #interrupt-cells =3D <2>; =20 rtc { compatible =3D "dlg,da9063-rtc"; diff --git a/arch/arm/boot/dts/renesas/r8a7793-gose.dts b/arch/arm/boot/dts= /renesas/r8a7793-gose.dts index 79b537b246426..9358fc7d0e9f6 100644 --- a/arch/arm/boot/dts/renesas/r8a7793-gose.dts +++ b/arch/arm/boot/dts/renesas/r8a7793-gose.dts @@ -735,6 +735,7 @@ pmic@58 { interrupt-parent =3D <&irqc0>; interrupts =3D <2 IRQ_TYPE_LEVEL_LOW>; interrupt-controller; + #interrupt-cells =3D <2>; =20 rtc { compatible =3D "dlg,da9063-rtc"; diff --git a/arch/arm/boot/dts/renesas/r8a7794-alt.dts b/arch/arm/boot/dts/= renesas/r8a7794-alt.dts index 4d93319674c6e..3a9db455ddec9 100644 --- a/arch/arm/boot/dts/renesas/r8a7794-alt.dts +++ b/arch/arm/boot/dts/renesas/r8a7794-alt.dts @@ -458,6 +458,7 @@ pmic@58 { interrupt-parent =3D <&gpio3>; interrupts =3D <31 IRQ_TYPE_LEVEL_LOW>; interrupt-controller; + #interrupt-cells =3D <2>; =20 rtc { compatible =3D "dlg,da9063-rtc"; diff --git a/arch/arm/boot/dts/renesas/r8a7794-silk.dts b/arch/arm/boot/dts= /renesas/r8a7794-silk.dts index b7af1befa126b..b825f2e25dd06 100644 --- a/arch/arm/boot/dts/renesas/r8a7794-silk.dts +++ b/arch/arm/boot/dts/renesas/r8a7794-silk.dts @@ -424,6 +424,7 @@ pmic@58 { interrupt-parent =3D <&gpio3>; interrupts =3D <31 IRQ_TYPE_LEVEL_LOW>; interrupt-controller; + #interrupt-cells =3D <2>; =20 onkey { compatible =3D "dlg,da9063-onkey"; --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 19AC714EC43; Sun, 24 Mar 2024 23:01: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=1711321320; cv=none; b=QoR1ClPlveyYyOYJsQA7QiBTCmcxSIXWl/3lt3bJRVRm2D1m2OrdG+4t7o4QOKcxZrWWfRdm4ZXY7okePCNDjv6cjN5U+6QBvC8cEADOLpnifnNhuPPqDChJZQnUHm8WoKmpoyPM93VXd0PMBF6Fqo5SCR9or3sJejdu0OaEqE4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321320; c=relaxed/simple; bh=dvp3JZnerkFLlEWRHHtB5NZ0FgULvDL+8ioxJBeGMeg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MDVT7w07bYRepmze5Okn0z4Pf3SNco3vJ8MEWUu9pAekbsOMFn29waglqlttF+ppcGt1mIHnRQPyL6kHusrFsV92rFPJWjg6znB9mmi8c64FycA799dVFhBo6hsrsZJisXQnVrVIVn66/IxheRlsl7xrZNqcvedN+dpW/DvYnsk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=nBVUibvZ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="nBVUibvZ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0C42AC433C7; Sun, 24 Mar 2024 23:01:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321319; bh=dvp3JZnerkFLlEWRHHtB5NZ0FgULvDL+8ioxJBeGMeg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nBVUibvZ6ei60oT41deCfGvnTSJCkxtHm9vxvTMuDMqlDUTYYXHUoafaMCn2U8NdN 5yMWCiaQgwQbAPU0LqYG+uEsPBwUM2mTwyj4010n2WvcsQcrwwrbg8wEXcZDE7vFLp gGmidAEqZ48SwcWP9dfNaj0KhHlsqLgUmwtvsRHfFpHTc+knGwYRYNoWPKfYoMp0vg 1Qv1pOzshaMFV4qQ5/bbD09sOvox8ZGQe9wCRsVA8cccgQmaBQbvPNQNIPUDURAoM7 UQ4Z0diNSEN+D2H46Ri/3Yfy0fG9OHi+Rgm+WZgSWL57mrqtqdKVBrRgzXi9yu/tgk FPr7ctz8vQylw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Naresh Solanki , Mark Brown , Sasha Levin Subject: [PATCH 6.6 042/638] regulator: max5970: Fix regulator child node name Date: Sun, 24 Mar 2024 18:51:19 -0400 Message-ID: <20240324230116.1348576-43-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Naresh Solanki [ Upstream commit e5d40e9afd84cec01cdbbbfe62d52f89959ab3ee ] Update regulator child node name to lower case i.e., sw0 & sw1 as descibed in max5970 dt binding. Signed-off-by: Naresh Solanki Link: https://msgid.link/r/20240213145801.2564518-1-naresh.solanki@9element= s.com Signed-off-by: Mark Brown Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/regulator/max5970-regulator.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/regulator/max5970-regulator.c b/drivers/regulator/max5= 970-regulator.c index 5c2d49ae332fb..4362f332f746b 100644 --- a/drivers/regulator/max5970-regulator.c +++ b/drivers/regulator/max5970-regulator.c @@ -28,8 +28,8 @@ struct max5970_regulator { }; =20 enum max597x_regulator_id { - MAX597X_SW0, - MAX597X_SW1, + MAX597X_sw0, + MAX597X_sw1, }; =20 static int max597x_uvp_ovp_check_mode(struct regulator_dev *rdev, int seve= rity) @@ -251,8 +251,8 @@ static int max597x_dt_parse(struct device_node *np, } =20 static const struct regulator_desc regulators[] =3D { - MAX597X_SWITCH(SW0, MAX5970_REG_CHXEN, 0, "vss1"), - MAX597X_SWITCH(SW1, MAX5970_REG_CHXEN, 1, "vss2"), + MAX597X_SWITCH(sw0, MAX5970_REG_CHXEN, 0, "vss1"), + MAX597X_SWITCH(sw1, MAX5970_REG_CHXEN, 1, "vss2"), }; =20 static int max597x_regmap_read_clear(struct regmap *map, unsigned int reg, --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 00B5514EC55; Sun, 24 Mar 2024 23:02: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=1711321322; cv=none; b=VimhvElY90I+lJYIX6OIghhghvzTJpk+fgLrSEEB7cEZAHsYsjBM+KWFCioDLGQox7Pmzgnw4jz5goev95frJfQLNG8U38CU0XcEnHTTU9Mn5T2WLTUASsgR8NsFgwSWJ6Ipu3VzBfdAF/F9ht8wbU97Pnz8o9UOezkvIdJe+uw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321322; c=relaxed/simple; bh=Ci9riVZbxJ14AJQUWZVd75cjZHMBm4hSSB/4WuT7fmw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=QD2YvMcGNW6u35P9P0WoHHjz5dAskHNDageHUX8fQ6BU4WFksD1II6xWITC27JiFh3OLwLNVLhmjZiXs0pF9c+pnGXaj/+7Sl0/72xLKChVni5KqxoHPssnB+2Up80B4dbeXaFMqfS7kpP+y+iJZOHVFNJVPVWNzjKqxBQuYLw4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=KcsUsNiU; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="KcsUsNiU" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E57A7C433F1; Sun, 24 Mar 2024 23:01:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321320; bh=Ci9riVZbxJ14AJQUWZVd75cjZHMBm4hSSB/4WuT7fmw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=KcsUsNiUg3XmMlwMtNvMAQp4hbhWQ23Ei1BTSN+j5KX0nyRhZTo87yD7xf9XSLzob ovtMOV5RKgvIEfYOFc2/FLso0rE4xxShjBoCGonbnuOgUiFZeD71UfvG/t/kJ7Umvk +UBBawPBIXR5eICh1yESgrv5GjNXOWnhRAlsT9kW+4yc6WSzNnTEk7idcmdtosMAlK OZbR7/AN8CwoJnaUuYyda1kQdLE/lUd8Fk+B/0SIDNN6O3uWtKV/0fMrvSS5PTIulO iZF4ggRXxkik974mq+0wZO6BSK5k3+h5UyzH5XPq9nOyMLscEVa+qtLa63aAScyQfm CRcYkMvWniMvQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Filipe Manana , David Sterba , Sasha Levin Subject: [PATCH 6.6 043/638] btrfs: fix data races when accessing the reserved amount of block reserves Date: Sun, 24 Mar 2024 18:51:20 -0400 Message-ID: <20240324230116.1348576-44-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 e06cc89475eddc1f3a7a4d471524256152c68166 ] At space_info.c we have several places where we access the ->reserved field of a block reserve without taking the block reserve's spinlock first, which makes KCSAN warn about a data race since that field is always updated while holding the spinlock. The reports from KCSAN are like the following: [117.193526] BUG: KCSAN: data-race in btrfs_block_rsv_release [btrfs] / n= eed_preemptive_reclaim [btrfs] [117.195148] read to 0x000000017f587190 of 8 bytes by task 6303 on cpu 3: [117.195172] need_preemptive_reclaim+0x222/0x2f0 [btrfs] [117.195992] __reserve_bytes+0xbb0/0xdc8 [btrfs] [117.196807] btrfs_reserve_metadata_bytes+0x4c/0x120 [btrfs] [117.197620] btrfs_block_rsv_add+0x78/0xa8 [btrfs] [117.198434] btrfs_delayed_update_inode+0x154/0x368 [btrfs] [117.199300] btrfs_update_inode+0x108/0x1c8 [btrfs] [117.200122] btrfs_dirty_inode+0xb4/0x140 [btrfs] [117.200937] btrfs_update_time+0x8c/0xb0 [btrfs] [117.201754] touch_atime+0x16c/0x1e0 [117.201789] filemap_read+0x674/0x728 [117.201823] btrfs_file_read_iter+0xf8/0x410 [btrfs] [117.202653] vfs_read+0x2b6/0x498 [117.203454] ksys_read+0xa2/0x150 [117.203473] __s390x_sys_read+0x68/0x88 [117.203495] do_syscall+0x1c6/0x210 [117.203517] __do_syscall+0xc8/0xf0 [117.203539] system_call+0x70/0x98 [117.203579] write to 0x000000017f587190 of 8 bytes by task 11 on cpu 0: [117.203604] btrfs_block_rsv_release+0x2e8/0x578 [btrfs] [117.204432] btrfs_delayed_inode_release_metadata+0x7c/0x1d0 [btrfs] [117.205259] __btrfs_update_delayed_inode+0x37c/0x5e0 [btrfs] [117.206093] btrfs_async_run_delayed_root+0x356/0x498 [btrfs] [117.206917] btrfs_work_helper+0x160/0x7a0 [btrfs] [117.207738] process_one_work+0x3b6/0x838 [117.207768] worker_thread+0x75e/0xb10 [117.207797] kthread+0x21a/0x230 [117.207830] __ret_from_fork+0x6c/0xb8 [117.207861] ret_from_fork+0xa/0x30 So add a helper to get the reserved amount of a block reserve while holding the lock. The value may be not be up to date anymore when used by need_preemptive_reclaim() and btrfs_preempt_reclaim_metadata_space(), but that's ok since the worst it can do is cause more reclaim work do be done sooner rather than later. Reading the field while holding the lock instead of using the data_race() annotation is used in order to prevent load tearing. 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 Tested-by: Takeshi Ogasawara --- fs/btrfs/block-rsv.h | 16 ++++++++++++++++ fs/btrfs/space-info.c | 26 +++++++++++++------------- 2 files changed, 29 insertions(+), 13 deletions(-) diff --git a/fs/btrfs/block-rsv.h b/fs/btrfs/block-rsv.h index b0bd12b8652f4..fb440a074700a 100644 --- a/fs/btrfs/block-rsv.h +++ b/fs/btrfs/block-rsv.h @@ -101,4 +101,20 @@ static inline bool btrfs_block_rsv_full(const struct b= trfs_block_rsv *rsv) return data_race(rsv->full); } =20 +/* + * Get the reserved mount of a block reserve in a context where getting a = stale + * value is acceptable, instead of accessing it directly and trigger data = race + * warning from KCSAN. + */ +static inline u64 btrfs_block_rsv_reserved(struct btrfs_block_rsv *rsv) +{ + u64 ret; + + spin_lock(&rsv->lock); + ret =3D rsv->reserved; + spin_unlock(&rsv->lock); + + return ret; +} + #endif /* BTRFS_BLOCK_RSV_H */ diff --git a/fs/btrfs/space-info.c b/fs/btrfs/space-info.c index d7e8cd4f140cf..3f7a9605e2d3a 100644 --- a/fs/btrfs/space-info.c +++ b/fs/btrfs/space-info.c @@ -837,7 +837,7 @@ btrfs_calc_reclaim_metadata_size(struct btrfs_fs_info *= fs_info, static bool need_preemptive_reclaim(struct btrfs_fs_info *fs_info, struct btrfs_space_info *space_info) { - u64 global_rsv_size =3D fs_info->global_block_rsv.reserved; + const u64 global_rsv_size =3D btrfs_block_rsv_reserved(&fs_info->global_b= lock_rsv); u64 ordered, delalloc; u64 thresh; u64 used; @@ -937,8 +937,8 @@ static bool need_preemptive_reclaim(struct btrfs_fs_inf= o *fs_info, ordered =3D percpu_counter_read_positive(&fs_info->ordered_bytes) >> 1; delalloc =3D percpu_counter_read_positive(&fs_info->delalloc_bytes); if (ordered >=3D delalloc) - used +=3D fs_info->delayed_refs_rsv.reserved + - fs_info->delayed_block_rsv.reserved; + used +=3D btrfs_block_rsv_reserved(&fs_info->delayed_refs_rsv) + + btrfs_block_rsv_reserved(&fs_info->delayed_block_rsv); else used +=3D space_info->bytes_may_use - global_rsv_size; =20 @@ -1153,7 +1153,7 @@ static void btrfs_preempt_reclaim_metadata_space(stru= ct work_struct *work) enum btrfs_flush_state flush; u64 delalloc_size =3D 0; u64 to_reclaim, block_rsv_size; - u64 global_rsv_size =3D global_rsv->reserved; + const u64 global_rsv_size =3D btrfs_block_rsv_reserved(global_rsv); =20 loops++; =20 @@ -1165,9 +1165,9 @@ static void btrfs_preempt_reclaim_metadata_space(stru= ct work_struct *work) * assume it's tied up in delalloc reservations. */ block_rsv_size =3D global_rsv_size + - delayed_block_rsv->reserved + - delayed_refs_rsv->reserved + - trans_rsv->reserved; + btrfs_block_rsv_reserved(delayed_block_rsv) + + btrfs_block_rsv_reserved(delayed_refs_rsv) + + btrfs_block_rsv_reserved(trans_rsv); if (block_rsv_size < space_info->bytes_may_use) delalloc_size =3D space_info->bytes_may_use - block_rsv_size; =20 @@ -1187,16 +1187,16 @@ static void btrfs_preempt_reclaim_metadata_space(st= ruct work_struct *work) to_reclaim =3D delalloc_size; flush =3D FLUSH_DELALLOC; } else if (space_info->bytes_pinned > - (delayed_block_rsv->reserved + - delayed_refs_rsv->reserved)) { + (btrfs_block_rsv_reserved(delayed_block_rsv) + + btrfs_block_rsv_reserved(delayed_refs_rsv))) { to_reclaim =3D space_info->bytes_pinned; flush =3D COMMIT_TRANS; - } else if (delayed_block_rsv->reserved > - delayed_refs_rsv->reserved) { - to_reclaim =3D delayed_block_rsv->reserved; + } else if (btrfs_block_rsv_reserved(delayed_block_rsv) > + btrfs_block_rsv_reserved(delayed_refs_rsv)) { + to_reclaim =3D btrfs_block_rsv_reserved(delayed_block_rsv); flush =3D FLUSH_DELAYED_ITEMS_NR; } else { - to_reclaim =3D delayed_refs_rsv->reserved; + to_reclaim =3D btrfs_block_rsv_reserved(delayed_refs_rsv); flush =3D FLUSH_DELAYED_REFS_NR; } =20 --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8F4AF14EC61; Sun, 24 Mar 2024 23:02: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=1711321322; cv=none; b=EGsj+mls+2/eDhjwOmKzsh/0QSJU7Tlws0BRKoJD+pGDvTQH+OJf9wqKMwdQl6WQhWfsBuFqdV3fdpwJs5JctuHHFOYPIXsKKTQMFUf+ThpTYBljrX3mQ19ERw46JK6zRwg72GHiFpL1Y36H0+A2Cw62/BAFfoaIuMzaVcZ77Fc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321322; c=relaxed/simple; bh=qOGeOiK4ClElyfszjmQKYlD69NhrO+v312Y/ZK8a4Iw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=I68SFyICkKeQmbAim8UA9VXFineSq/fmFVN20AKvGyiZx1twbgHj4z/prqhvmeDIKtTwzh6TZcccpLlrfYhre/PG+iVyXVlTAPAaSi5tOtPTLWc7f8knVF9VtAO19lkAiGuUtwGFxVCa2086t//vVR50FcpkMcnDfYMF87ZK3Cs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Wmv+j9mc; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Wmv+j9mc" Received: by smtp.kernel.org (Postfix) with ESMTPSA id CE7FAC43390; Sun, 24 Mar 2024 23:02:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321321; bh=qOGeOiK4ClElyfszjmQKYlD69NhrO+v312Y/ZK8a4Iw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Wmv+j9mcfncsXhnXz+bByTQ+O3E/Ap0ImwzLs+iMLumOZdvpefvBtTLv/MaHkQGIQ 38x+/S9N36xs1Mh77c6CXKSPlCliaG56fEs/OSVMMfDei5GfUY+kluSWadVpmjP45w N6X7Hnkoibuy2n7IS6y8PtBVhVkpJsaO7kTLrYNNysxlFMTcwvTxvHOCGqZVlN9zLV O6xMB2FMEBmHqnTpug4OvlPeKLiAZehZ5wappXmoW2uailwa49F1V2B4ZVPlZRoi58 rohCi6XF6Y4nlp91Ad9OVJ3PYUwOosBT6rqbHZBOKaH91WMd2x4uq+uJP25ZfhiEaI GPJjKZd2U/TCQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Filipe Manana , David Sterba , Sasha Levin Subject: [PATCH 6.6 044/638] btrfs: fix data race at btrfs_use_block_rsv() when accessing block reserve Date: Sun, 24 Mar 2024 18:51:21 -0400 Message-ID: <20240324230116.1348576-45-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 c7bb26b847e5b97814f522686068c5628e2b3646 ] At btrfs_use_block_rsv() we read the size of a block reserve without locking its spinlock, which makes KCSAN complain because the size of a block reserve is always updated while holding its spinlock. The report from KCSAN is the following: [653.313148] BUG: KCSAN: data-race in btrfs_update_delayed_refs_rsv [btrf= s] / btrfs_use_block_rsv [btrfs] [653.314755] read to 0x000000017f5871b8 of 8 bytes by task 7519 on cpu 0: [653.314779] btrfs_use_block_rsv+0xe4/0x2f8 [btrfs] [653.315606] btrfs_alloc_tree_block+0xdc/0x998 [btrfs] [653.316421] btrfs_force_cow_block+0x220/0xe38 [btrfs] [653.317242] btrfs_cow_block+0x1ac/0x568 [btrfs] [653.318060] btrfs_search_slot+0xda2/0x19b8 [btrfs] [653.318879] btrfs_del_csums+0x1dc/0x798 [btrfs] [653.319702] __btrfs_free_extent.isra.0+0xc24/0x2028 [btrfs] [653.320538] __btrfs_run_delayed_refs+0xd3c/0x2390 [btrfs] [653.321340] btrfs_run_delayed_refs+0xae/0x290 [btrfs] [653.322140] flush_space+0x5e4/0x718 [btrfs] [653.322958] btrfs_preempt_reclaim_metadata_space+0x102/0x2f8 [btrfs] [653.323781] process_one_work+0x3b6/0x838 [653.323800] worker_thread+0x75e/0xb10 [653.323817] kthread+0x21a/0x230 [653.323836] __ret_from_fork+0x6c/0xb8 [653.323855] ret_from_fork+0xa/0x30 [653.323887] write to 0x000000017f5871b8 of 8 bytes by task 576 on cpu 3: [653.323906] btrfs_update_delayed_refs_rsv+0x1a4/0x250 [btrfs] [653.324699] btrfs_add_delayed_data_ref+0x468/0x6d8 [btrfs] [653.325494] btrfs_free_extent+0x76/0x120 [btrfs] [653.326280] __btrfs_mod_ref+0x6a8/0x6b8 [btrfs] [653.327064] btrfs_dec_ref+0x50/0x70 [btrfs] [653.327849] walk_up_proc+0x236/0xa50 [btrfs] [653.328633] walk_up_tree+0x21c/0x448 [btrfs] [653.329418] btrfs_drop_snapshot+0x802/0x1328 [btrfs] [653.330205] btrfs_clean_one_deleted_snapshot+0x184/0x238 [btrfs] [653.330995] cleaner_kthread+0x2b0/0x2f0 [btrfs] [653.331781] kthread+0x21a/0x230 [653.331800] __ret_from_fork+0x6c/0xb8 [653.331818] ret_from_fork+0xa/0x30 So add a helper to get the size of a block reserve while holding the lock. Reading the field while holding the lock instead of using the data_race() annotation is used in order to prevent load tearing. 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 Tested-by: Takeshi Ogasawara --- fs/btrfs/block-rsv.c | 2 +- fs/btrfs/block-rsv.h | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/fs/btrfs/block-rsv.c b/fs/btrfs/block-rsv.c index 77684c5e0c8ba..db8da4e7b2289 100644 --- a/fs/btrfs/block-rsv.c +++ b/fs/btrfs/block-rsv.c @@ -486,7 +486,7 @@ struct btrfs_block_rsv *btrfs_use_block_rsv(struct btrf= s_trans_handle *trans, =20 block_rsv =3D get_block_rsv(trans, root); =20 - if (unlikely(block_rsv->size =3D=3D 0)) + if (unlikely(btrfs_block_rsv_size(block_rsv) =3D=3D 0)) goto try_reserve; again: ret =3D btrfs_block_rsv_use_bytes(block_rsv, blocksize); diff --git a/fs/btrfs/block-rsv.h b/fs/btrfs/block-rsv.h index fb440a074700a..43a9a6b5a79f4 100644 --- a/fs/btrfs/block-rsv.h +++ b/fs/btrfs/block-rsv.h @@ -117,4 +117,20 @@ static inline u64 btrfs_block_rsv_reserved(struct btrf= s_block_rsv *rsv) return ret; } =20 +/* + * Get the size of a block reserve in a context where getting a stale valu= e is + * acceptable, instead of accessing it directly and trigger data race warn= ing + * from KCSAN. + */ +static inline u64 btrfs_block_rsv_size(struct btrfs_block_rsv *rsv) +{ + u64 ret; + + spin_lock(&rsv->lock); + ret =3D rsv->size; + spin_unlock(&rsv->lock); + + return ret; +} + #endif /* BTRFS_BLOCK_RSV_H */ --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 76D6D14EC5F; Sun, 24 Mar 2024 23:02: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=1711321322; cv=none; b=Z7ye4JjwZqXbFdzlIDnnZ+V030l86ZzCxBlLucpAs2Ng1I88xJi9RlKYBr6dhoF+9RQ6VqMy66VJzk6IcbJqHLkx2a9q03hDdloDD+wOY37Y6g35glVlDAHygXEo1VupjryfZFfrpWoVLDW2e8FLxdFOBVFMy+Yz0bQFoPpK3dg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321322; c=relaxed/simple; bh=d+U/DMyqrJmz9isk37XQbdH4HzIhR5FvXPZ0QF5sqY0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=DRquVIpLwOtb7b/WeGGjO2w9h3++n1PmNYegxu42QSrnbX4EG9zoL4EnXe2Je/fA15yWexXEjIIjVBG4ASTKyTeRCLOKNWHEW3MGoZRx711o3msHEiHtaOKeZIn/v2NDyNi3QY9Hfyq7iAud/KCrzSWVrXxqcg8a+tFSiFoK25o= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Twzad9vg; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Twzad9vg" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B1C18C433C7; Sun, 24 Mar 2024 23:02:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321322; bh=d+U/DMyqrJmz9isk37XQbdH4HzIhR5FvXPZ0QF5sqY0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Twzad9vgCpbn4B4tDnjfnu3Dm3gbsZWpdo/APy2dduYh4YxKwnHNtKgAFsKXletYW ukTJEp3TBIUNzGFwzRzlVHe0teEFJb2PxEQ6t4CAmfMUoN+BM2zRwrOnwC8fQQuAaS ZYYf2ZW3XiAUIMS4E2ZPdzx9Izjgoy7AcuMiCyGd9ZxU6KEGhruFCuuJK1AtHqHnQ/ M4+DQeM/U84youIkK5mMFXZumNqMwGYS5zXQ3MANrxC3qqXz4jYFxqLizFtdOakeYS MsQUcDIedAfN6/LEDPmf0POfPDUKf5vGhJe7FBNGkKGWhbh6MJ8Hs4mg7yY03sb7I6 jwdkyjQkh7b6w== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Andre Werner , Jakub Kicinski , Sasha Levin Subject: [PATCH 6.6 045/638] net: smsc95xx: add support for SYS TEC USB-SPEmodule1 Date: Sun, 24 Mar 2024 18:51:22 -0400 Message-ID: <20240324230116.1348576-46-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Andre Werner [ Upstream commit 45532b21dc2a692444b6ad5f71c253cca53e8103 ] This patch adds support for the SYS TEC USB-SPEmodule1 10Base-T1L ethernet device to the existing smsc95xx driver by adding the new USB VID/PID pair. Signed-off-by: Andre Werner Link: https://lore.kernel.org/r/20240219053413.4732-1-andre.werner@systec-e= lectronic.com Signed-off-by: Jakub Kicinski Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/net/usb/smsc95xx.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c index a530f20ee2575..2fa46baa589e5 100644 --- a/drivers/net/usb/smsc95xx.c +++ b/drivers/net/usb/smsc95xx.c @@ -2104,6 +2104,11 @@ static const struct usb_device_id products[] =3D { USB_DEVICE(0x0424, 0x9E08), .driver_info =3D (unsigned long) &smsc95xx_info, }, + { + /* SYSTEC USB-SPEmodule1 10BASE-T1L Ethernet Device */ + USB_DEVICE(0x0878, 0x1400), + .driver_info =3D (unsigned long)&smsc95xx_info, + }, { /* Microchip's EVB-LAN8670-USB 10BASE-T1S Ethernet Device */ USB_DEVICE(0x184F, 0x0051), --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5953B14EC6E; Sun, 24 Mar 2024 23:02: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=1711321324; cv=none; b=FyBcKeAsq8LREPANyB5WJSyJUKwzr1lYvpY3vd1AcEGVnfrc5ciYuALuiqo7Sa+7gjE6eelxcgkazI8S3RLqXjN/PZqaRuzGTpapP1x+XRwDC5IuZWyOYEU//fbfYKkuhrTdAAQygPE/ukTxmj3t+C7x8JkPKiDoYlJz3z2PI1Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321324; c=relaxed/simple; bh=S9i6rVDTLrc92ZdyKfg4Ixk7H6eGpB3PH6E05e+MPh0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=m9V5ERgnMijAd9vB4prs9mllnDYQC+SjJstWjz0WO4wysPV1NJ5zq/V1aKOUlAUtmVD4A6Pv6JoMZZrdUvTKonvtB59lMNwz8cEpGB64wG/FrF09EauNBBHjuMKmsJOQqLS+tiuiSYSS2LI+xP7SlMoS4BrxgBmCdoyWygzZKHQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=SXjzIX/i; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="SXjzIX/i" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9A3D4C43394; Sun, 24 Mar 2024 23:02:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321323; bh=S9i6rVDTLrc92ZdyKfg4Ixk7H6eGpB3PH6E05e+MPh0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=SXjzIX/iH6QFscj9a1f9+LtfwqGB/fwcUqRBJIGZravSle0gLegkGHzFqfn9rZ7Qc T/k+r7vm+9wOgsJekqivTXUHhGB99SMTwCB4WJ2LB0+6oHbOz5BOGsQSImikE5UGTO 54o/45L2TssKziCLToJ3tNHWlBpAdin7H0Nlutk9bzOqXh1zE9TxZUYww9BpvQy+GA RoTZVrKO578aW3CeaBQKLZUQ21Q3v8Cmul4U6UkarpQ5srTxsY95VnWaRow6ty2c5b h2kMqMX1G1Y31f6SehJWYmQFAmaz1/6Q1RrNe2jp8mDHtGmJALjbAVB3OCdRksdFQF pzQgJHEUsc2jw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Felix Fietkau , Johannes Berg , Sasha Levin Subject: [PATCH 6.6 046/638] wifi: mac80211: only call drv_sta_rc_update for uploaded stations Date: Sun, 24 Mar 2024 18:51:23 -0400 Message-ID: <20240324230116.1348576-47-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Fietkau [ Upstream commit 413dafc8170fcb925fb17af8842f06af305f8e0b ] When a station has not been uploaded yet, receiving SMPS or channel width notification action frames can lead to rate_control_rate_update calling drv_sta_rc_update with uninitialized driver private data. Fix this by adding a missing check for sta->uploaded. Signed-off-by: Felix Fietkau Link: https://msgid.link/20240221140535.16102-1-nbd@nbd.name Signed-off-by: Johannes Berg Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- net/mac80211/rate.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/net/mac80211/rate.c b/net/mac80211/rate.c index d5ea5f5bcf3a0..9d33fd2377c88 100644 --- a/net/mac80211/rate.c +++ b/net/mac80211/rate.c @@ -119,7 +119,8 @@ void rate_control_rate_update(struct ieee80211_local *l= ocal, rcu_read_unlock(); } =20 - drv_sta_rc_update(local, sta->sdata, &sta->sta, changed); + if (sta->uploaded) + drv_sta_rc_update(local, sta->sdata, &sta->sta, changed); } =20 int ieee80211_rate_control_register(const struct rate_control_ops *ops) --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4128F14EC77; Sun, 24 Mar 2024 23:02: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=1711321325; cv=none; b=PRQngbX28afKO7vU2dO5L/0ihmXzLX/N4Df1iy9pvikt9N0+6u62nbIvLq9Oz3XQRuCeSg7dpL4fv6Q9spwJppeW6rL7LuFXJM2Xho5H15tvobeUMTYGtm9vhYrwaktVtS7Cbq2vi6HNzQGdNvkWFRSzsz4Uue4bjqwB8NDPwNs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321325; c=relaxed/simple; bh=DnBTn8M9ECog35VLJPBV08nJCttgdumjnhsnix40o/U=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=CEDawQThyWXi7s+Krra24874NORFqQ6pGmxZKn70yGpGq4iDWwFHGw3Cx5Z+1T5zFvs8kRE70G1nrnyXsWBgoS3EY1Vhj6nGLuh9L9wmYnC2R0boVmWRFP7Uiiu/WJRLtaIU5zCnMVyTJaIhx7sq7FpbaTAFmah3E9kiYuAw13c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=dc8kF34V; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="dc8kF34V" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7C3A5C433F1; Sun, 24 Mar 2024 23:02:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321324; bh=DnBTn8M9ECog35VLJPBV08nJCttgdumjnhsnix40o/U=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=dc8kF34V1fYgDjHGPa9qJ3HnjWIMF1snem8ixnJXIJEKKqtHvIUPR1xM0YxzQ2ZRN GHHOB07nYgjICyraqtPW6kSJZvvSNxk8R/huarlZCclU3A8u0p6UQeiGrT/XNxvthR hlFf+JN1Gel+8bjWwBiLPCfnHEedMrZX6FZylLN2aVGKk1golZQhQLtkkwbREUfDYg mYjv8ZzJa96lykzXtwBRC8AUK7zp2AbOWCmdPT2s5A4QRFa08l8n7ePAigqVfCP9nQ 4p3OtEIyOpfXmVyxKE9Wgdo9JmVa5pToSTcVbmN5QelzOw64yj5niZjttiti7dJcdb TbMyVXBfpfENA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?Christian=20K=C3=B6nig?= , Alex Deucher , Sasha Levin Subject: [PATCH 6.6 047/638] drm/ttm/tests: depend on UML || COMPILE_TEST Date: Sun, 24 Mar 2024 18:51:24 -0400 Message-ID: <20240324230116.1348576-48-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-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 9d3f8a723c7950e56e0b95ab84b572caee29e065 ] At least the device test requires that no other driver using TTM is loaded. So make those unit tests depend on UML || COMPILE_TEST to prevent people from trying them on bare metal. Signed-off-by: Christian K=C3=B6nig Acked-by: Alex Deucher Link: https://lore.kernel.org/all/20240219230116.77b8ad68@yea/ Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/gpu/drm/Kconfig | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig index 3caa020391c75..ec4abf9ff47b5 100644 --- a/drivers/gpu/drm/Kconfig +++ b/drivers/gpu/drm/Kconfig @@ -198,7 +198,7 @@ config DRM_TTM config DRM_TTM_KUNIT_TEST tristate "KUnit tests for TTM" if !KUNIT_ALL_TESTS default n - depends on DRM && KUNIT && MMU + depends on DRM && KUNIT && MMU && (UML || COMPILE_TEST) select DRM_TTM select DRM_EXPORT_FOR_TESTS if m select DRM_KUNIT_TEST_HELPERS @@ -206,7 +206,8 @@ config DRM_TTM_KUNIT_TEST help Enables unit tests for TTM, a GPU memory manager subsystem used to manage memory buffers. This option is mostly useful for kernel - developers. + developers. It depends on (UML || COMPILE_TEST) since no other d= river + which uses TTM can be loaded while running the tests. =20 If in doubt, say "N". =20 --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3FB2C128810; Sun, 24 Mar 2024 23:02: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=1711321326; cv=none; b=R6ui6FP+8sUGC3lXOav2bJlROXlRPklEnlBVA6sU8xbZsdBYjKa9Sa+g6UYHVrIEphJaEIOcZ9gV3ILHI/uG/1ukLcE8lhIUt2c/V6FTJLw+r7qXFNaRCSCwTp6iM265dw/YmFot06wtGJwfVpqazP1sODM1r7TzVw/g3XPd9UI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321326; c=relaxed/simple; bh=oZM8KMIQOEe1NkhuP82yx6UpYRUZXW+a3NEGlch/gKM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Z6c4vH1grCWAMqRoUXskVPH6ROvQC5In2R3N8kESdCSqpvxvAUsWn5C49e4/12Zge2V8AM/1+zCq76H2QC0Uj1f665T0UiZDrCWJ9sMk1a+onPG3v3ZjVRyE1FxkH5pT0fO49SdMQ3YGYIQQUJU05m7CBKwJI/xPfghlOavcPmE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Jq2qDmAJ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Jq2qDmAJ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 637B5C43399; Sun, 24 Mar 2024 23:02:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321325; bh=oZM8KMIQOEe1NkhuP82yx6UpYRUZXW+a3NEGlch/gKM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Jq2qDmAJAtt0KGKnWJSvo63HvXpTHAye559qGfyR06Jb5muLCVikOL05+GCLZRBFX izkLeSy3QnHqqNUOjnqPYfb3cr5a0tz+zZ49RUt8fjZueQdmcZM/uwCHoAra2Vc6zp YD36AF4P99PYN8ZBUnuKs1RopHtVupwQ2CU9rPwZusA9WSh/i9xwqgWBGx5QWeTWJO hWVQ9+40qUJ086bmRCMUeu1mh7MMb8yLEOo6B7BvNYGaAths7m3Fh31Zg+AswD9UWU fM7yLZEksVStCC68IAT7pF6pmxcPgmJGSSvz1INdtpzfGv7dDSlGXVcgMZGwjphHmA eX6mRnOPxWGkg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Johnny Hsieh , linux-sound@vger.kernel.org, Mark Brown , Sasha Levin Subject: [PATCH 6.6 048/638] ASoC: amd: yc: Add Lenovo ThinkBook 21J0 into DMI quirk table Date: Sun, 24 Mar 2024 18:51:25 -0400 Message-ID: <20240324230116.1348576-49-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Johnny Hsieh [ Upstream commit 50ee641643dd0f46702e9a99354398196e1734c2 ] This patch adds Lenovo 21J0 (ThinkBook 16 G5+ ARP) to the DMI quirks table to enable internal microphone array. Cc: linux-sound@vger.kernel.org Signed-off-by: Johnny Hsieh Link: https://msgid.link/r/TYSPR04MB8429D62DFDB6727866ECF1DEC55A2@TYSPR04MB= 8429.apcprd04.prod.outlook.com Signed-off-by: Mark Brown Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- sound/soc/amd/yc/acp6x-mach.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sound/soc/amd/yc/acp6x-mach.c b/sound/soc/amd/yc/acp6x-mach.c index cc231185d72c3..5587198751daa 100644 --- a/sound/soc/amd/yc/acp6x-mach.c +++ b/sound/soc/amd/yc/acp6x-mach.c @@ -199,6 +199,13 @@ static const struct dmi_system_id yc_acp_quirk_table[]= =3D { DMI_MATCH(DMI_PRODUCT_NAME, "21HY"), } }, + { + .driver_data =3D &acp6x_card, + .matches =3D { + DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_NAME, "21J0"), + } + }, { .driver_data =3D &acp6x_card, .matches =3D { --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 21A9E12FF7F; Sun, 24 Mar 2024 23:02: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=1711321327; cv=none; b=FvadXKV/N0N1mMfGAmAU0ZLlFAEHQcPjfKGuk9RlvPu7iK0FLr6CvnwJ2UJB3ZlCA0s5HWP7pGACEPM9iDZPHxpo5BLb7Uj59eAZf8CJqHoPCHAjb4kOtduwISFBLdZcz3I5KuWWcayXNR6N51GBniurWX241S8CNBt6oH0MCYM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321327; c=relaxed/simple; bh=fcYzSLOFq5sMLBWQn8a4zJLsYwI3TPCX+aV1ze6z2EI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=BYNR0GUsBzPCikkEYHnV3mMXLukor+gu7hZaFpwjrRDEa8dCyzOVkEGjKRfaTxUEfU7OT2UtUPW4J/UeS17BinLwnAspHg5L8QhSGsyxqxthg39xPARcEHrmWHG7sqBBAtMdVnEzgTcz8ueF/lb1oFyRp73f8bkFTYb1oTYryJQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ZJK+x1oC; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ZJK+x1oC" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6117AC43390; Sun, 24 Mar 2024 23:02:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321326; bh=fcYzSLOFq5sMLBWQn8a4zJLsYwI3TPCX+aV1ze6z2EI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ZJK+x1oC7CEezlg9py5FyNwuUIFFheHfPzzwY/CuqtkISqZDlkCHWI/+iVEtrdKXE 7P7jqkvdhkzExluMPUyj4pfeoAnQ9kayEQcZSHz8y70Gsm6hev2IVIaQL3uVNXkOtM S2rW1uAq7SKl3CDPPMvUSgDX6DHFKP8OqlOSa7UMGIY4pa7QO0sfMsgvbQFna/j3wB SPPYX0s5WX9Gk1q/KMntVBZoRwEhb9nBtKfTcxspQlMH9T3A9SP9Ha2OoC43Qn0pSu nagKNFs7RqRBv754/lg0FPsIwKN/o3UOPHA2V2z8YROqIUSZpnYuvYTB5MfS2uYETl p7u7ipWXLxsPQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Ranjan Kumar , "Martin K . Petersen" , Sasha Levin Subject: [PATCH 6.6 049/638] scsi: mpt3sas: Prevent sending diag_reset when the controller is ready Date: Sun, 24 Mar 2024 18:51:26 -0400 Message-ID: <20240324230116.1348576-50-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 a75f670bf5519..aa29e250cf15f 100644 --- a/drivers/scsi/mpt3sas/mpt3sas_base.c +++ b/drivers/scsi/mpt3sas/mpt3sas_base.c @@ -7387,7 +7387,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 Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 074C61FD102; Sun, 24 Mar 2024 23:02: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=1711321328; cv=none; b=bhiSiUvBhIbIt/Yq5YhIferbOz9omeU+CGTKLWTA/han7genQLMKaF5BoQgcY0l3OjZNjGnX4YRjVs+Kc2zG4a/1wiqiKE0XGT/QNcc9QaG5ZI4jV2dBUGo1q5wjBPqYqx9fuhoC99m34Gs56MqKDYhU73RFWrJVICBxSCAKM9A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321328; c=relaxed/simple; bh=/LhJIP8T8+p/zwAyQer+F/R9x5sOpEcp3+Z1eGMIylE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=YyvLow9TvXULDpxSRyBx9L1bsCXmziYdGngHBEWkOyHG4Y70Abge9lqyz5Ged1nZ0ofza9aNUCLxuqp3OpolfsvXNReu16QRcAk/oB37eJIKQil21N1tsOWQ2UOkFJ4Gott0hycLDX7xh3Ya80P0lxWXhQgbw2zivMJ1DDHyciY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=hEbXUUla; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="hEbXUUla" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4591FC433C7; Sun, 24 Mar 2024 23:02:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321326; bh=/LhJIP8T8+p/zwAyQer+F/R9x5sOpEcp3+Z1eGMIylE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=hEbXUUlayrwm6RkBvu5cNx8Whqma8AP4537pdqUdqXPtLRyJD6ee3cBAjnoKMicuK fCq79IDWArB7polBstdD+4Nw7gZALuDsWyxYavplKHePyqBLRm7Dw2NXiuh6otnkHA SGpVfFmnaA2jyImB/qMoDvvdLLFLdI/b7in9pxP0AaRNS6y7jngbr8xWyhswv50Smk 5SVtAcdBiUUsIpaNgPhtAxn3V8IA9Mcr+S9s/F/OtIDOjWxb0bJGk7eW9QHWH8YT/A 1J+FMojH0K9Phjg4M4lHHftchTBMiGEOkG3HwEywDfY5qPR1QduSdreLYu0apZjRQe 9RzDISfLouJgw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Kailang Yang , Takashi Iwai , Sasha Levin Subject: [PATCH 6.6 050/638] ALSA: hda/realtek - ALC285 reduce pop noise from Headphone port Date: Sun, 24 Mar 2024 18:51:27 -0400 Message-ID: <20240324230116.1348576-51-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 88d006ac9568c..234c8b46d9254 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -3683,6 +3683,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 Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E76B21FD10E; Sun, 24 Mar 2024 23:02: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=1711321329; cv=none; b=PA4b1BcFvD1/qJedS21khZCZsXOwDnsb6Hln4ldyRpCKBHC9UJpmPxEdkTn1spQBHA1orQ3IFVP1Zg4phJ+w4LpV+XSyYF7uosuDMMDh8xBS5QQDKg5JmKAKuTAw3qmvUGFjaFUOlurTTJJkX/Xxwi8bxfyBi5qjyWXEMkc99r0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321329; c=relaxed/simple; bh=Em+y3OczuTBhg6IrRilmQsX+jlGDdnBmeK0jNqSWFp8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=KHSwRTJowe5NElVxmRIB70r744b3O4vba3gU91eWHKEy5ogrDAvZy46dW2fIJZkuOxN8FgybOfKgZxstRuFaQe2cn0jlTR1iiqZ+D1nLF+ER2Zs2rINM3SurDXyl7is5/Yq3ftr44lxvdOkEoSx0bAAMDYtdcZtvPJGtfd2Z50s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=nEyofUal; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="nEyofUal" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2DA2FC433F1; Sun, 24 Mar 2024 23:02:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321327; bh=Em+y3OczuTBhg6IrRilmQsX+jlGDdnBmeK0jNqSWFp8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nEyofUalN9WyVaZfWmBCFJ6dwvG2nJ+ShT0OU59r28SmMk0hmQtLig0d+vTr9eARa 54kcb8xdAOkFZWxvhwPmywB27MNmYT+DPsLatw7Vs9TZXrVGBkTKfaUkZdKiiaktTm RCAMd/ote7Nx8IDnExUagtgQvqrW1dtTGIAiNx0drNLAAs4dPmHNg6HfqzCmjEsJ2E bNnw/wKJPlLRpHhoTQF/U/bJvOS67Q91+FLjsB/JBH7GPkKd170R+hJBPOIiJP34+y kTdfJoHlm4GE+/LwWHQjc1/8H6IexDr2XVi4jb9UfzEMjjdL3Bbh48inqOp8kGAs/G XW31IJb9yfJNw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Prike Liang , Alex Deucher , Sasha Levin Subject: [PATCH 6.6 051/638] drm/amdgpu: Enable gpu reset for S3 abort cases on Raven series Date: Sun, 24 Mar 2024 18:51:28 -0400 Message-ID: <20240324230116.1348576-52-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 2a7c606d1d191..a41ed67ea9fea 100644 --- a/drivers/gpu/drm/amd/amdgpu/soc15.c +++ b/drivers/gpu/drm/amd/amdgpu/soc15.c @@ -574,11 +574,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)) { @@ -1296,24 +1319,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 Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CEC291FD116; Sun, 24 Mar 2024 23:02: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=1711321329; cv=none; b=am5k7Aqm54RLWgJBMsZjVE+NVDN0oSDU9IagHtnZy265Bc29+YviAdMeiGozQbLZOZ7Xb/5g6U0gmaqQuumTgHgtpcfC3lrTb9TeXJ7JFkoUgvoAhxTo1ROnI0U9j8dQ9Ej1aqXq3sQFz02VJ0UJnFCR+OpZBipZcvcuq2Iodiw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321329; c=relaxed/simple; bh=hznCVND+HknEJDdeppqPpocutl/j4K2q3jGl5en2yYQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=RAVbzBpieiK4CQ8asj/VeuFNpaZERAo6bq/Uhjjb70ELzXfOmDyFb55EG5Ro+ScuNSWO1Kv238PQl/b4jTFX6ikFkNHHUXD+L5Z5Q641UiktzAvoQ/a8FTV/tVmfvSw30VlYuJNVhKcZq3I7wG1LFLQcNbfT0w47a8Pzf6T+sf4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=E9RfObhH; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="E9RfObhH" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 156AAC43390; Sun, 24 Mar 2024 23:02:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321328; bh=hznCVND+HknEJDdeppqPpocutl/j4K2q3jGl5en2yYQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=E9RfObhHyxelmqY+sA6Ouj+3lVn7ktUZdIjoxfRtTaVwsDDPxhG29XMIurR02ELJ9 daDGrDc1sOmQWzk7IOFDfUmvDxLsziO15XO8XT6lkvcuAhCHHCP0OF7p2z8fSCp/nE sZdoCwy3kqXOJ7FGMn4AkRhQ7kLSOlJ2oZFF9YxDQauqhFxUiwYzybBezpa/Hg3rgk dy4O6UOUHOksM+Mtz7NSIaCXFujRO/MpBvZtdQ7k+CAvrFMZZSfP/V9Zbh9SOLgCJG RjVfPt1IaKNvsNvtdVpchAes9wzQ1Fle2d/edJzAiQJ/jRJC98sxU7JjCL8N2ajhOV +ZqfOQo+btkNQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jiawei Wang , Mark Brown , Sasha Levin Subject: [PATCH 6.6 052/638] ASoC: amd: yc: Fix non-functional mic on Lenovo 21J2 Date: Sun, 24 Mar 2024 18:51:29 -0400 Message-ID: <20240324230116.1348576-53-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Jiawei Wang [ Upstream commit ed00a6945dc32462c2d3744a3518d2316da66fcc ] Like many other models, the Lenovo 21J2 (ThinkBook 16 G5+ APO) needs a quirk entry for the internal microphone to function. Signed-off-by: Jiawei Wang Link: https://msgid.link/r/20240228073914.232204-2-me@jwang.link Signed-off-by: Mark Brown Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- sound/soc/amd/yc/acp6x-mach.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sound/soc/amd/yc/acp6x-mach.c b/sound/soc/amd/yc/acp6x-mach.c index 5587198751daa..abb9589b8477c 100644 --- a/sound/soc/amd/yc/acp6x-mach.c +++ b/sound/soc/amd/yc/acp6x-mach.c @@ -199,6 +199,13 @@ static const struct dmi_system_id yc_acp_quirk_table[]= =3D { DMI_MATCH(DMI_PRODUCT_NAME, "21HY"), } }, + { + .driver_data =3D &acp6x_card, + .matches =3D { + DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_NAME, "21J2"), + } + }, { .driver_data =3D &acp6x_card, .matches =3D { --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B93DE1FD114; Sun, 24 Mar 2024 23:02: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=1711321329; cv=none; b=pT7mARhiJV0Kw+50SR5UYOpwY0XnWoE9KF6eEdAnWcMlM+WaE/awW0pQmMr65QU8BEYh4JvaiKAWid2tg2KT1B62l7wo/YJ7sLlPJ37lquC074S2Pcv4kWMSmALiYhylzVCUseL9CELBeYsXNF7hXbIz24k3KOQtcLx6YUw9oCo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321329; c=relaxed/simple; bh=rd9CTn5d36v+u366AsJVE1eQgwQIsnkSjg/Q6MfoA3Y=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=AvQvUpICJWf8l9uu09+BKYkWtlIHXs6rUGm0WR3JzMibRkb050y+g+jR9srd/xDsQwKvifeJ9FvhX6yKCFfBcjG9e+1uPnInyrGMXhHUfB9VLuk/4GRDSygnGaHCRdQgYsgOhI9sEkw5gfmQTlynHZp0+op+dL2AjVMBiM9TVQQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=NHOBafGx; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="NHOBafGx" Received: by smtp.kernel.org (Postfix) with ESMTPSA id F41BAC433C7; Sun, 24 Mar 2024 23:02:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321329; bh=rd9CTn5d36v+u366AsJVE1eQgwQIsnkSjg/Q6MfoA3Y=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=NHOBafGxoE1Gieh1NTYOr6CIJu0suovL3o0t8kE2GkDR7OkVYt/4bJMemYyIdqpx4 IIoO48zPA5BBYHtbjwotTkl5AfeYgLnLR6+4fvU3kcjccggxI3QhgO43LU2l7jk0OW UWDe1gHmwBZw4ivWQ7tlsdBtjnwmCc39dKnoaGKwfNLTi93xkj7dD6d3a9KOENYJta ecO6EnQpZ7XoPqjGUukglZ3sWCxVjj7FVd1NZVAbQoueqQLlfseSnk7TpHiN+RwEFU hNz/5TQQ4JTyoyFppQnroB+LXbXBQT685mfQESzrWiGESkJQdNyKHlSPa/DTryivub RhaMN6I0DoBhA== 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 6.6 053/638] Bluetooth: rfcomm: Fix null-ptr-deref in rfcomm_check_security Date: Sun, 24 Mar 2024 18:51:30 -0400 Message-ID: <20240324230116.1348576-54-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 053ef8f25fae4..1d34d84970332 100644 --- a/net/bluetooth/rfcomm/core.c +++ b/net/bluetooth/rfcomm/core.c @@ -1941,7 +1941,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 Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A25441FD12A; Sun, 24 Mar 2024 23:02: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=1711321331; cv=none; b=eiSCxOHr7u5ixB6am2tBDCMjWRRGfUOztsZHY+DoTl6t5V6yejxp4JbMi3ktAQTz8433CqYH8grPvgGUMp1HeHNPBONDa8/k/NE0JmmVhxKKy279n9EcjXQTXx2svl2HS60faNHCQBe+4pJ8v3UAuxaL6t/Yo0O6ETPio6bz1ls= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321331; c=relaxed/simple; bh=ee4JVX+b0jEgqSk/X+DrWDhtXvtITEYxbWllb2TfOyI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=oQC3qCkYHaIGIhHauwX+e611l6GuaotsRTx87ZamqcYVIMAgyTu2ikPI0IXfTZChXUuHs96rUC1D0Uag2S8qw2yQlH0DUMn8Chh6bfHUpPJ5ESRw7rVsJN/saVgKRLEKvWHyA+6tuUBbf3PxzZecFaE8BLgWPvyg4utiqSlBDwI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=SwKKtf4H; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="SwKKtf4H" Received: by smtp.kernel.org (Postfix) with ESMTPSA id DCAD3C433F1; Sun, 24 Mar 2024 23:02:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321330; bh=ee4JVX+b0jEgqSk/X+DrWDhtXvtITEYxbWllb2TfOyI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=SwKKtf4HdpKbp4HrjrPwXWQhA/XKFkijugYajkdMmBWHBUgKMegGMfUZnN6FPU+sd 31sz3Y/b8oh24ma9Lr/MLD+Cr897ttdusoqxC3rvBBHcNMJSZAEjFbSuZzInwYsAyz 532XZDEibnizEvlXaRalTfKmrx7O4JlHhQ1mpiYVH25B92yRU7qf7krHIKahBA8gK5 Z4umELK9N2bhigkmp3QhS6KLk1UBFC5sNVdqCk9OiSMjx29A3fSVFYUnFl1X2WMRAb ErEyrvx4srNUbo8LzVU66CU3vGSck23fr/oC5DGQJR8+rLTFrLCc7KMmbZthONjdha L25Nm8sVZ9GZQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Danis?= , Luiz Augusto von Dentz , Sasha Levin Subject: [PATCH 6.6 054/638] Bluetooth: mgmt: Fix limited discoverable off timeout Date: Sun, 24 Mar 2024 18:51:31 -0400 Message-ID: <20240324230116.1348576-55-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-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: Fr=C3=A9d=C3=A9ric Danis [ Upstream commit 0bd1fb586235224048c726922db048d1bce6354a ] LIMITED_DISCOVERABLE flag is not reset from Class of Device and advertisement on limited discoverable timeout. This prevents to pass PTS test GAP/DISC/LIMM/BV-02-C Calling set_discoverable_sync as when the limited discovery is set correctly update the Class of Device and advertisement. Signed-off-by: Fr=C3=A9d=C3=A9ric Danis Signed-off-by: Luiz Augusto von Dentz Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- net/bluetooth/mgmt.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c index 9dd815b6603fe..2448a154a4069 100644 --- a/net/bluetooth/mgmt.c +++ b/net/bluetooth/mgmt.c @@ -1045,6 +1045,8 @@ static void rpa_expired(struct work_struct *work) hci_cmd_sync_queue(hdev, rpa_expired_sync, NULL, NULL); } =20 +static int set_discoverable_sync(struct hci_dev *hdev, void *data); + static void discov_off(struct work_struct *work) { struct hci_dev *hdev =3D container_of(work, struct hci_dev, @@ -1063,7 +1065,7 @@ static void discov_off(struct work_struct *work) hci_dev_clear_flag(hdev, HCI_DISCOVERABLE); hdev->discov_timeout =3D 0; =20 - hci_update_discoverable(hdev); + hci_cmd_sync_queue(hdev, set_discoverable_sync, NULL, NULL); =20 mgmt_new_settings(hdev); =20 --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 896C31FD134; Sun, 24 Mar 2024 23:02: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=1711321332; cv=none; b=esRDhjbvMjWfn4WMpiM28qypGhFgTkjWZZ4F307phyA2z8vNp6dKtqo+D1nhEH82O6cXOGl6kBEPU5pYomZbFXnr4rFU0g5bXfVc2C3BTPmeLvQ2GXtlj0xEdNXrm+am+GCukIwVQzFIYitr/Ksad+ZgGYMC8z1YANs3QlU5FVY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321332; c=relaxed/simple; bh=CIckCfCvElbP7qNZyEFS868bjqgWhDCd+IzI7ldl7Hg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=oHIU5YXcXP81VHOQIFVYx5/0VIwNkDIWCt5yD2lNdrU7dpnP7n2jGDByING24TtkKl9A6Y/Y4MiPZD5gKbbK/R4I+uwtvYxTofQO7GmWbczBZ1Uf8q9grgSDxzk6K32yHWwdgeTUEEOe63pnRnazVhMM+8J0S9SMv5HXSxrVA2o= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Lz1eJjT+; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Lz1eJjT+" Received: by smtp.kernel.org (Postfix) with ESMTPSA id C2E41C43390; Sun, 24 Mar 2024 23:02:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321331; bh=CIckCfCvElbP7qNZyEFS868bjqgWhDCd+IzI7ldl7Hg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Lz1eJjT+akX3Nv5LQ3p/ylfN6StkGhc32jRUHmApfP2q9l0aaKgWIIB3g3Q86Rma1 b0cEdmktD/xmWm8fUH4ArFvMiw4bR/7X62l5iRCY6qaA/rdkyRbjXm0ux+ai3FWadJ ClbWPDcRHFC0utBcTFus+3JJt95rk89NqnTg1v860l/A9+EZBbNWOB9L8OhEGXuXyy hB5wDz2o9uAIg4Ju6WwhaYtnOIpOqiBpnS/hr+hs3CV1HIVL/cCqoX0xgVRXANL0lT mdTLufquPQqintLHcUuLkgoKsAmoZyw29WVF+LPTkXYaledYceZV7ckhUogXCJFhR1 Kf/bLcgeAKodA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Takashi Sakamoto , Adam Goldman , Sasha Levin Subject: [PATCH 6.6 055/638] firewire: core: use long bus reset on gap count error Date: Sun, 24 Mar 2024 18:51:32 -0400 Message-ID: <20240324230116.1348576-56-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 8aaa7fcb2630d..401a77e3b5fa8 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 Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E43FE12FF8C; Sun, 24 Mar 2024 23:02: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=1711321334; cv=none; b=gF10x/JM4Gv25jrXwmLGJMZ0Sd4NZLjxLg8I3Kfm68f9oXfZKb+AkjLJdD9WNmcsrca50StojTfjGsv9qBPNxKN8y8HjbD//oXEk/dmgzqEW3enUm//7mE8M7KNihL5TTzdTDHjFDLRl6oyk7ojbMYKLZIC0T3imXEGeTkJN/50= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321334; c=relaxed/simple; bh=AsxC7B+GPHNTX2xciWRGMv74b90S2K8qA2lh8E+xwjI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=tN4A6VektDiRpnWtjyvNoIHGQP2wqop4T/YZnmzvBXitlNamY8+7djiKOzZRdP4hy6t3hfII3Ol2e7OVfZDLGEwuyTuc5QdNPfMYby+nmKqk55U00ly+mEq8VLVeBIAQAgidhZTy18NsTDsAFsiNxgXuplTRYMhv3JMwXg41FRI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=R1YXT89R; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="R1YXT89R" Received: by smtp.kernel.org (Postfix) with ESMTPSA id AD798C433A6; Sun, 24 Mar 2024 23:02:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321332; bh=AsxC7B+GPHNTX2xciWRGMv74b90S2K8qA2lh8E+xwjI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=R1YXT89REjo8C2R2O5oFoTvjlb1i8Qb3uxlRKSJYS3ousb4j0+DhiHcYUe2MFjWXm dlTLEzrfIgQ/GGOiSmBh8SI0UCYomBf8zKmuwCMe3kIfGkLkoPy80bdFUxwy1CMza3 EO7HrFDu9XGwQ6Ooc+1BsuQC6e/GAcqLbAsUCTTWO5BXCoRErRo3ghLvVie68PYU+q KWpvLZlfK0Iw6suZBK3xELBeofv3sd6vqQ8YgOk9K8wdLAmqlOmqfXaBNl2Vyd5HV8 ONc9sYjREoRe5kUekqctXTDQkBi9vyR+BQVpX41evlUy3DnjJOBoq/oSOnD7Ojl85F iBy56SOQ73/nw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Fei Wu , Alexandre Ghiti , Atish Patra , Palmer Dabbelt , Sasha Levin Subject: [PATCH 6.6 056/638] perf: RISCV: Fix panic on pmu overflow handler Date: Sun, 24 Mar 2024 18:51:33 -0400 Message-ID: <20240324230116.1348576-57-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Wu [ Upstream commit 34b567868777e9fd39ec5333969728a7f0cf179c ] (1 << idx) of int is not desired when setting bits in unsigned long overflowed_ctrs, use BIT() instead. This panic happens when running 'perf record -e branches' on sophgo sg2042. [ 273.311852] Unable to handle kernel NULL pointer dereference at virtual = address 0000000000000098 [ 273.320851] Oops [#1] [ 273.323179] Modules linked in: [ 273.326303] CPU: 0 PID: 1475 Comm: perf Not tainted 6.6.0-rc3+ #9 [ 273.332521] Hardware name: Sophgo Mango (DT) [ 273.336878] epc : riscv_pmu_ctr_get_width_mask+0x8/0x62 [ 273.342291] ra : pmu_sbi_ovf_handler+0x2e0/0x34e [ 273.347091] epc : ffffffff80aecd98 ra : ffffffff80aee056 sp : fffffff6e3= 6928b0 [ 273.354454] gp : ffffffff821f82d0 tp : ffffffd90c353200 t0 : 0000002ade= 4f9978 [ 273.361815] t1 : 0000000000504d55 t2 : ffffffff8016cd8c s0 : fffffff6e3= 692a70 [ 273.369180] s1 : 0000000000000020 a0 : 0000000000000000 a1 : 00001a8e81= 800000 [ 273.376540] a2 : 0000003c00070198 a3 : 0000003c00db75a4 a4 : 0000000000= 000015 [ 273.383901] a5 : ffffffd7ff8804b0 a6 : 0000000000000015 a7 : 0000000000= 00002a [ 273.391327] s2 : 000000000000ffff s3 : 0000000000000000 s4 : ffffffd7ff= 8803b0 [ 273.398773] s5 : 0000000000504d55 s6 : ffffffd905069800 s7 : ffffffff82= 1fe210 [ 273.406139] s8 : 000000007fffffff s9 : ffffffd7ff8803b0 s10: ffffffd903= f29098 [ 273.413660] s11: 0000000080000000 t3 : 0000000000000003 t4 : ffffffff80= 17a0ca [ 273.421022] t5 : ffffffff8023cfc2 t6 : ffffffd9040780e8 [ 273.426437] status: 0000000200000100 badaddr: 0000000000000098 cause: 00= 0000000000000d [ 273.434512] [] riscv_pmu_ctr_get_width_mask+0x8/0x62 [ 273.441169] [] handle_percpu_devid_irq+0x98/0x1ee [ 273.447562] [] generic_handle_domain_irq+0x28/0x36 [ 273.454151] [] riscv_intc_irq+0x36/0x4e [ 273.459659] [] handle_riscv_irq+0x4a/0x74 [ 273.465442] [] do_irq+0x62/0x92 [ 273.470360] Code: 0420 60a2 6402 5529 0141 8082 0013 0000 0013 0000 (6d5= c) b783 [ 273.477921] ---[ end trace 0000000000000000 ]--- [ 273.482630] Kernel panic - not syncing: Fatal exception in interrupt Reviewed-by: Alexandre Ghiti Reviewed-by: Atish Patra Signed-off-by: Fei Wu Link: https://lore.kernel.org/r/20240228115425.2613856-1-fei2.wu@intel.com Signed-off-by: Palmer Dabbelt Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/perf/riscv_pmu_sbi.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/perf/riscv_pmu_sbi.c b/drivers/perf/riscv_pmu_sbi.c index cd8a2b9efd787..d80b4b09152df 100644 --- a/drivers/perf/riscv_pmu_sbi.c +++ b/drivers/perf/riscv_pmu_sbi.c @@ -512,7 +512,7 @@ static void pmu_sbi_set_scounteren(void *arg) =20 if (event->hw.idx !=3D -1) csr_write(CSR_SCOUNTEREN, - csr_read(CSR_SCOUNTEREN) | (1 << pmu_sbi_csr_index(event))); + csr_read(CSR_SCOUNTEREN) | BIT(pmu_sbi_csr_index(event))); } =20 static void pmu_sbi_reset_scounteren(void *arg) @@ -521,7 +521,7 @@ static void pmu_sbi_reset_scounteren(void *arg) =20 if (event->hw.idx !=3D -1) csr_write(CSR_SCOUNTEREN, - csr_read(CSR_SCOUNTEREN) & ~(1 << pmu_sbi_csr_index(event))); + csr_read(CSR_SCOUNTEREN) & ~BIT(pmu_sbi_csr_index(event))); } =20 static void pmu_sbi_ctr_start(struct perf_event *event, u64 ival) @@ -731,14 +731,14 @@ static irqreturn_t pmu_sbi_ovf_handler(int irq, void = *dev) /* compute hardware counter index */ hidx =3D info->csr - CSR_CYCLE; /* check if the corresponding bit is set in sscountovf */ - if (!(overflow & (1 << hidx))) + if (!(overflow & BIT(hidx))) continue; =20 /* * Keep a track of overflowed counters so that they can be started * with updated initial value. */ - overflowed_ctrs |=3D 1 << lidx; + overflowed_ctrs |=3D BIT(lidx); hw_evt =3D &event->hw; riscv_pmu_event_update(event); perf_sample_data_init(&data, 0, hw_evt->last_period); --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8A28C12FF96; Sun, 24 Mar 2024 23:02: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=1711321334; cv=none; b=I2lvx3i/2kuhUQ68lrQwj70ImzHuns5akNPi7EPQUAQh1xdqoVRNRw60OkwuxuM3CnF7hQVUx0ROYWBRabiV/BrV2JfLuil52IjA6hLIJja+BAB7UEfM0393czpkEfedCOOklsC/Jwo54u87bnA5CKtIrjkl2+K7P4CJSsaP5uA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321334; c=relaxed/simple; bh=sBKfeRf+SOb4Z0NMMrTDerZGmhl2+28QErjJRkaV8bw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=cJo95VU10estb9SN+OFSds1QAr9pVUbWrU7G6m2WUt5sP86PKwstuXm8tHPaUzq6P517xqMOfcARuj1SQ9/XWoN2R3TJbqPQ2xN9x0Vqx2yGz2+BqQiafOa9f6aHOJbAToaqdspnWU4tyjfefBZzexKa6FUE3w5tWimyVbI5lYw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=rm5f8bdI; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="rm5f8bdI" Received: by smtp.kernel.org (Postfix) with ESMTPSA id C4360C433C7; Sun, 24 Mar 2024 23:02:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321333; bh=sBKfeRf+SOb4Z0NMMrTDerZGmhl2+28QErjJRkaV8bw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=rm5f8bdIb8WmClf191EjOB5lsVxFEDiI+INcpYuAKRcOX84ijmz1WDFLFhbR9krL5 ODwUpSgPnbVWkmBaMOSZ/wKRQXT8zlVjGzeNDdb7TirTVbU7AYNTogo6XaLYrgKJ+f urE6efotI0YWfQATM7fHTeNnox6oZdFsVL3tBe2+ETcn7EAuCx94KrLTNOJHIzwMi9 YqWjd2TJbgqO7XDBE9y4eGigI89t4oFhFJhYTkYeX34jMb++u2pZO/uq2TdyXGudLq UCklQa8RKdONiAMVIu0PexkdTzc+QfKuDplB+zKhUSEAlwvkPMVadj6pNxG3S/w2Ee bhxbqPcUo98/A== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Thierry Reding , Jon Hunter , Sasha Levin Subject: [PATCH 6.6 057/638] arm64: tegra: Set the correct PHY mode for MGBE Date: Sun, 24 Mar 2024 18:51:34 -0400 Message-ID: <20240324230116.1348576-58-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 4c892121d43bc2b45896ca207b54f39a8fa6b852 ] The PHY is configured in 10GBASE-R, so make sure to reflect that in DT. Reviewed-by: Jon Hunter Tested-by: Jon Hunter Signed-off-by: Thierry Reding Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/nvidia/tegra234-p3737-0000+p3701-0000.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/nvidia/tegra234-p3737-0000+p3701-0000.dts = b/arch/arm64/boot/dts/nvidia/tegra234-p3737-0000+p3701-0000.dts index 4413a9b6da87a..bf2ccc8ff93c4 100644 --- a/arch/arm64/boot/dts/nvidia/tegra234-p3737-0000+p3701-0000.dts +++ b/arch/arm64/boot/dts/nvidia/tegra234-p3737-0000+p3701-0000.dts @@ -174,7 +174,7 @@ ethernet@6800000 { status =3D "okay"; =20 phy-handle =3D <&mgbe0_phy>; - phy-mode =3D "usxgmii"; + phy-mode =3D "10gbase-r"; =20 mdio { #address-cells =3D <1>; --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A19761FDB2A; Sun, 24 Mar 2024 23:02: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=1711321335; cv=none; b=UA9lnDpE7lsXQzp1cWlCt+qbbib7jHBim9rf4vf4/2RBM3lZSqxYC2RHO4jB4odIi3QmyJDTfmrs1us7FhaFmga/pT8I4VsLpNUVapuvMEVcYa9N+3bWscSmA79s+Mm+7viV38CaFoGmqIGzrnDnDsE04d+xJBxCSZiasNzzBQk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321335; c=relaxed/simple; bh=1ouJInfzn8Wkga2sZUbe8fHxCeLq7Rz28xEegVMpTCM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=nyZefLtw+u03cA4CQET8+NUCtySqARy7iziPtuB0AtGqZs2aPwSk9JhrhOQXgUnDpIGQS1j8FnenhSXDqrBFAtoEuPcvdynTS5QuIRDDdqXVfJ/SaxmvF+8b7SDQDa0qHv/+McPWcNDqXnjosTN+93lnL7GmWJTdLIvAetqIHCY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=H5WTASLS; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="H5WTASLS" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B0AB2C433F1; Sun, 24 Mar 2024 23:02:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321334; bh=1ouJInfzn8Wkga2sZUbe8fHxCeLq7Rz28xEegVMpTCM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=H5WTASLS3vHWGUyfU/xK93Mb1ZsYXTTN4dyOmdvVlqW/X7pArloSesgxeQrdm5j+g JduxfsCfwWpJYQkyvxg0ZpTliOHsY8o/Jw/GTNl5eH25TRakmbb7ivX9gqRJDkQVq1 KadcEigWBhTajM93+lnMPSSoi3z69eb8JIcImHpKG1D7IRTf+HtsY5+g9Cb2Xr8Wkk OWdMUwTdpeaef9bNQlw4t8Y32wnSjoGNPLX/TPnmKtrzwPZhC1AiXy1s5k5gjAPYOF oz/6ZV59ecdNm2DSKjn1rUVodpm3i3WrrgqP+bbzouRFU7TUJXAo61MLBxyzdPDrX0 QqI8Kd87tPRfQ== 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 6.6 058/638] ASoC: Intel: bytcr_rt5640: Add an extra entry for the Chuwi Vi8 tablet Date: Sun, 24 Mar 2024 18:51:35 -0400 Message-ID: <20240324230116.1348576-59-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-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 Tested-by: Takeshi Ogasawara --- 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 6b631a608ae8f..e609249cc38d5 100644 --- a/sound/soc/intel/boards/bytcr_rt5640.c +++ b/sound/soc/intel/boards/bytcr_rt5640.c @@ -685,6 +685,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 Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A19731FDB33; Sun, 24 Mar 2024 23:02: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=1711321336; cv=none; b=VUjnYmie0vTUL1qVvnb2XD3x7vnm7DhMKK2p12nGwx/e0uPNfawwRhgw7pXD6P1EMlvem98xrOQHjDrq69qVfelmvelx3yKIG+9Or+XdzqUe1+KR54TV6hQQ+iQcM63CrC8G2wKuHg2e+VKnuo5egX5BHyVvb6iJKqZoKPbZ3YE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321336; c=relaxed/simple; bh=nhPGpmoDAeeDi2S+ayEK3AhjJxr2UCqdWzDa0/q9ix0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=IgOplHpLI5nYTMTvEkI0QcdNi+QHxhH6OFnocO6MtCPMVsWH8ffl5WWoo7LeU+lExFLHUeNPwuvnUfo+K4rzsdUqrM3dqu12aRve9BE/qBq3daZ5vl9qy7f8LbXZTQ6kaQDBtDkp+uLagXgEjbOTdrd5akiWViWsNyfMfxqtwLM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=knkLqnCr; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="knkLqnCr" Received: by smtp.kernel.org (Postfix) with ESMTPSA id C84B4C433C7; Sun, 24 Mar 2024 23:02:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321335; bh=nhPGpmoDAeeDi2S+ayEK3AhjJxr2UCqdWzDa0/q9ix0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=knkLqnCrXSfUG1OM7iHBgTcGcyrSLIgyXhy9lYqyKF2dJ8Ef24WhkcJYvodvsId+m fqQvjRtbU3MRyHZXm7036IK5AXKZbG6hCgZfEFwfh6mlju4b2MJmWbA+6a5moN12Pl wmJRGfD1RItPNWEC3WA4JvWsZ6CK9emchC9HgfQCjpFr9H6XxDQCri/ybbQW0LVvfi RPwoT/zJ7W2AK1mjO56HRI4z2AnY9p/514vMR0IHYn5KuOj4BlQQd9aVGMZISbJ5Jl 2IllQ4YEbLQbMOyKP1H+HGJHkPrssWyNGXhBfgClnVz0eEt/SSrkUaxHIRGlHJjeG5 e+D8S9+2LY9JA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Saurabh Sengar , Michael Kelley , Wei Liu , Sasha Levin Subject: [PATCH 6.6 059/638] x86/hyperv: Allow 15-bit APIC IDs for VTL platforms Date: Sun, 24 Mar 2024 18:51:36 -0400 Message-ID: <20240324230116.1348576-60-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Saurabh Sengar [ Upstream commit 0d63e4c0ebc2b5c329babde44fd61d3f08db814d ] The current method for signaling the compatibility of a Hyper-V host with MSIs featuring 15-bit APIC IDs relies on a synthetic cpuid leaf. However, for higher VTLs, this leaf is not reported, due to the absence of an IO-APIC. As an alternative, assume that when running at a high VTL, the host supports 15-bit APIC IDs. This assumption is safe, as Hyper-V does not employ any architectural MSIs at higher VTLs This unblocks startup of VTL2 environments with more than 256 CPUs. Signed-off-by: Saurabh Sengar Reviewed-by: Michael Kelley Link: https://lore.kernel.org/r/1705341460-18394-1-git-send-email-ssengar@l= inux.microsoft.com Signed-off-by: Wei Liu Message-ID: <1705341460-18394-1-git-send-email-ssengar@linux.microsoft.com> Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/x86/hyperv/hv_vtl.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/arch/x86/hyperv/hv_vtl.c b/arch/x86/hyperv/hv_vtl.c index 999f5ac82fe90..53b309d41b3b9 100644 --- a/arch/x86/hyperv/hv_vtl.c +++ b/arch/x86/hyperv/hv_vtl.c @@ -16,6 +16,11 @@ extern struct boot_params boot_params; static struct real_mode_header hv_vtl_real_mode_header; =20 +static bool __init hv_vtl_msi_ext_dest_id(void) +{ + return true; +} + void __init hv_vtl_init_platform(void) { pr_info("Linux runs in Hyper-V Virtual Trust Level\n"); @@ -38,6 +43,8 @@ void __init hv_vtl_init_platform(void) x86_platform.legacy.warm_reset =3D 0; x86_platform.legacy.reserve_bios_regions =3D 0; x86_platform.legacy.devices.pnpbios =3D 0; + + x86_init.hyper.msi_ext_dest_id =3D hv_vtl_msi_ext_dest_id; } =20 static inline u64 hv_vtl_system_desc_base(struct ldttss_desc *desc) --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A11DA1FDB39; Sun, 24 Mar 2024 23:02: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=1711321337; cv=none; b=K2tlUaX0zwDRG3wUYoLuCA1EUmnKZ8+Zjui3SHPZIh4HCyE1fYdZZ/Si/BV019NligLmr3EAQ6NPMymmkOovt9yG51RIVBJi7+PFSY/tsiifu535mFIP2qP+GpEOyagFkuUpOu4M76OK4YeI0c0vhM8LG8a4djbNA9+aOLEMHAo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321337; c=relaxed/simple; bh=aDa8LlvKm/2ZXeeUmHNzrvWDnXaqmsLoBFx0k0dXmCk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=UTJ/j228Y8hWg89rB5OpTEEsGhn+J1X8K3Syf8ilvwvViknf0w42gbun8kZp7Pl23lpZzjAHX1A7gbc+vDbcJxDBFlKdWwXywFSdLEGmmeeMhUknzmtbKC3dziWv6V8nYQ4rtXFjQ2wotizw6HPtPPv2Y1sXR76MG17SDVuhDNY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=EPW25/jv; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="EPW25/jv" Received: by smtp.kernel.org (Postfix) with ESMTPSA id C69E1C433F1; Sun, 24 Mar 2024 23:02:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321336; bh=aDa8LlvKm/2ZXeeUmHNzrvWDnXaqmsLoBFx0k0dXmCk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=EPW25/jvkQjdBnEPAGS00Erb39CMfwnG0CHBX6hCqjiaLoFxkEFPrH+Lbsi6qOodt TtfqqnwXJGEuB/Y40Qvu7YGpIWOW7ZvKlhcf9XnmVhYgdRxZahHOGg4yA9GOdm/8VK OYU7qtc+QQhyIqphBlA8bP/euOhVSnCdzP6CBBzz5Yq8hxfLt/8YL+jc2d/1mwvIeR isBoJ1cfpJBZ/I0CvH+0ONZ32VCNaD2DofTZO1pYGJOkzAPFRn/hfRY3W1tNq1bpEn Y7NXIlLJgCgqBfpyFfpy2iaxmD7fzAdlWxrdUmTFzZQsTec4X4+PDt2o5aIyvC3yGa dlIwuQ9/dBdWg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Al Raj Hassain , Mario Limonciello , Mark Brown , Sasha Levin Subject: [PATCH 6.6 060/638] ASoC: amd: yc: Add HP Pavilion Aero Laptop 13-be2xxx(8BD6) into DMI quirk table Date: Sun, 24 Mar 2024 18:51:37 -0400 Message-ID: <20240324230116.1348576-61-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Al Raj Hassain [ Upstream commit b3a51137607cee7c814cd3a75d96f78b9ee1dc1f ] The HP Pavilion Aero Laptop 13-be2xxx(8BD6) requires a quirk entry for its = internal microphone to function. Signed-off-by: Al Raj Hassain Reviewed-by: Mario Limonciello Link: https://msgid.link/r/20240304103924.13673-1-alrajhassain@gmail.com Signed-off-by: Mark Brown Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- sound/soc/amd/yc/acp6x-mach.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sound/soc/amd/yc/acp6x-mach.c b/sound/soc/amd/yc/acp6x-mach.c index abb9589b8477c..90360f8b3e81b 100644 --- a/sound/soc/amd/yc/acp6x-mach.c +++ b/sound/soc/amd/yc/acp6x-mach.c @@ -416,6 +416,13 @@ static const struct dmi_system_id yc_acp_quirk_table[]= =3D { DMI_MATCH(DMI_BOARD_NAME, "8B2F"), } }, + { + .driver_data =3D &acp6x_card, + .matches =3D { + DMI_MATCH(DMI_BOARD_VENDOR, "HP"), + DMI_MATCH(DMI_BOARD_NAME, "8BD6"), + } + }, { .driver_data =3D &acp6x_card, .matches =3D { --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8257D130AC0; Sun, 24 Mar 2024 23:02: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=1711321338; cv=none; b=m2i/D4HuN5S1yEB3tpoz4yqq1oD2s4erZbcZDEO1bm53qcxh1S4p8UMVW3acOP0VCmj2ppSZO+vF47rndl20rah1tyq2vN1VXHsjncDebZ3cYDizbRCKv2+aao8gZA1DL/gi/Z2pCdxxaYsc4a8VM48fpDaXsvSlMdWXAsd5nPc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321338; c=relaxed/simple; bh=5CPxsw81z44H+28IB3BVZsy+NDRz7gWFJc1ZSn5OheM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MzCDOC+DSq2aUfecQVOeLy060awTytsNjYdvJ0ILvz6TlU7X3ld9pPczT3MBNl1XZEyFZqOonii60E3S+lcmYaB81WgPAKnf7Hmb3Tdwd7nlWvExaF7sGHc8a5avQ1T4RwLl3L8+X7ikur25cIjn8NuQ554aLePZHzedYw84svE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=jvZ4u0c5; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="jvZ4u0c5" Received: by smtp.kernel.org (Postfix) with ESMTPSA id C4D53C43390; Sun, 24 Mar 2024 23:02:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321337; bh=5CPxsw81z44H+28IB3BVZsy+NDRz7gWFJc1ZSn5OheM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jvZ4u0c5a7jDdsHJrTPR54bpTjmnNIdspeo9W7BiF8rfSIpN7y+Yu4M2WA3vr8rbL de2UKwhWTY5FZ6lREdOzYwNJwwFD4l2dNKAbkc+BpsZxYAbl+GZ0LsRQ0/q1fjwfBK c3Dd1+WPTngpphNfFxKvy2YL1NYVKVZiwgFWZIJP2PuEjUgsAcOT/u8RRXIVm3vH2g z1HnOp6M0CvKnAJ+zPVomqGRJYdUF8pQ+9pDAunyPBNOuQy0gsGjDzXIf5F2qjCHJ2 T6P0MrEbCE1e2v2io7NuRRpG9nvQZPKWrUk37qIniBQEFnXHxM1OiAyO9kX/we2JMi if+buaBOE+MRg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Mike Yu , Steffen Klassert , Sasha Levin Subject: [PATCH 6.6 061/638] xfrm: fix xfrm child route lookup for packet offload Date: Sun, 24 Mar 2024 18:51:38 -0400 Message-ID: <20240324230116.1348576-62-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Mike Yu [ Upstream commit d4872d70fc6feabfc8e897edad993a81096ade9f ] In current code, xfrm_bundle_create() always uses the matched SA's family type to look up a xfrm child route for the skb. The route returned by xfrm_dst_lookup() will eventually be used in xfrm_output_resume() (skb_dst(skb)->ops->local_out()). If packet offload is used, the above behavior can lead to calling ip_local_out() for an IPv6 packet or calling ip6_local_out() for an IPv4 packet, which is likely to fail. This change fixes the behavior by checking if the matched SA has packet offload enabled. If not, keep the same behavior; if yes, use the matched SP's family type for the lookup. Test: verified IPv6-in-IPv4 packets on Android device with IPsec packet offload enabled Signed-off-by: Mike Yu Signed-off-by: Steffen Klassert Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- net/xfrm/xfrm_policy.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c index d24b4d4f620ea..97d69ec54ff9c 100644 --- a/net/xfrm/xfrm_policy.c +++ b/net/xfrm/xfrm_policy.c @@ -2679,7 +2679,9 @@ static struct dst_entry *xfrm_bundle_create(struct xf= rm_policy *policy, if (xfrm[i]->props.smark.v || xfrm[i]->props.smark.m) mark =3D xfrm_smark_get(fl->flowi_mark, xfrm[i]); =20 - family =3D xfrm[i]->props.family; + if (xfrm[i]->xso.type !=3D XFRM_DEV_OFFLOAD_PACKET) + family =3D xfrm[i]->props.family; + oif =3D fl->flowi_oif ? : fl->flowi_l3mdev; dst =3D xfrm_dst_lookup(xfrm[i], tos, oif, &saddr, &daddr, family, mark); --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6B65C1FDB45; Sun, 24 Mar 2024 23:02: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=1711321339; cv=none; b=NWpv8/+GpaRPs70B1huFf+7NRfC77SoqcSMb50wxyyYcAsYkx2NEYdaiyQykD3v7Vf7TnQEw4xl42ZxSrImAX73ZZMaw2vT+ZtF/mBDS8SCehY7yLPzX88IWY1mtd5LcuWkl9RS8mlUL7Q7gKUD/I2xKco9ox06Gtg+mOWpKKrM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321339; c=relaxed/simple; bh=KLNv6IZ5yEeP9+TzZ7XNfvS9hm4MRpt6kWqrQ9+/B+s=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=GavvZIjll9m4aPqSd5Yn94OWaQogLJS+BZ9OR5Nj8MsJVZV5k9J1kAD0ZUUkGiQrQ39ovVAfKaTEh2iFz1Nx6Krk5FFLkR0c0Kr94EBhjE0t9DTIaLS8TwPlQIUPfW9nXbNQvmScRGluRkdKBz+f98hBKnxUlIR2h6PRfkK2Y4Q= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=DbNv6opR; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="DbNv6opR" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A9DFAC433C7; Sun, 24 Mar 2024 23:02:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321338; bh=KLNv6IZ5yEeP9+TzZ7XNfvS9hm4MRpt6kWqrQ9+/B+s=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=DbNv6opRGY9SYDI2ou+V7R3NKyAzQK+61wLizAKxE5fPZzt3oP/GFTPBWG2EgMcpI hKvQ+Vy33icCirlFt/5a9u4EkMW8EkpqaXg3V5x/RrkCOFK95+xlo8UYWT/d16yt43 c6tRRc6PsKuMOcQZkhODgs4PFenLOTaK6AQ+Qp0kz5Nd9jsrmokXSzu9qtciVNVDL7 0lDF4IHcH6wjQivYggtzHZKuNePQk+2UUXxalJaEU9VHgetXC610IkbGTI2DkbGWsj 2hKPcJko6yhgxzObKt1KVb9+kttMmzqEmfrPm1mM9f/gRl/fLRvw2RIGxqQ5oB9lgt AjQp+OP45KpOQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Mike Yu , Steffen Klassert , Sasha Levin Subject: [PATCH 6.6 062/638] xfrm: set skb control buffer based on packet offload as well Date: Sun, 24 Mar 2024 18:51:39 -0400 Message-ID: <20240324230116.1348576-63-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Mike Yu [ Upstream commit 8688ab2170a5be0bc922195f7091c38b506bab2e ] In packet offload, packets are not encrypted in XFRM stack, so the next network layer which the packets will be forwarded to should depend on where the packet came from (either xfrm4_output or xfrm6_output) rather than the matched SA's family type. Test: verified IPv6-in-IPv4 packets on Android device with IPsec packet offload enabled Signed-off-by: Mike Yu Signed-off-by: Steffen Klassert Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- net/xfrm/xfrm_output.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/net/xfrm/xfrm_output.c b/net/xfrm/xfrm_output.c index 662c83beb345e..e5722c95b8bb3 100644 --- a/net/xfrm/xfrm_output.c +++ b/net/xfrm/xfrm_output.c @@ -704,9 +704,13 @@ int xfrm_output(struct sock *sk, struct sk_buff *skb) { struct net *net =3D dev_net(skb_dst(skb)->dev); struct xfrm_state *x =3D skb_dst(skb)->xfrm; + int family; int err; =20 - switch (x->outer_mode.family) { + family =3D (x->xso.type !=3D XFRM_DEV_OFFLOAD_PACKET) ? x->outer_mode.fam= ily + : skb_dst(skb)->ops->family; + + switch (family) { case AF_INET: memset(IPCB(skb), 0, sizeof(*IPCB(skb))); IPCB(skb)->flags |=3D IPSKB_XFRM_TRANSFORMED; --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 13FEA1FDB5C; Sun, 24 Mar 2024 23:02: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=1711321341; cv=none; b=h2BrAy02HO+EvkTH0/6vmUHJZ7N0m4LC0fXb4AmArv/0GEuev3mL8EvEZIaQDC2MyGsU9wGXu7dk/T/cpHcKhTSjjnFMKEfZXWY4kt23rvOa9KouG/UoGLOChzNjPw6g7ed1Y1YIyNm90Fz8lpV0jxFmW0K+R4LzJqYo6caGRcI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321341; c=relaxed/simple; bh=a90TlNcd55CuvJI7AGBcJt7/5SipQJTr/jE8uvYuenY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Byy7xkDaoIcWLnw9rJ6T01CdWgWaOlFxBobKE0gUyzj79NaNwHkpRZz6Hm95LY2GC4VqAYnyTHYi6CQpL62C2kC2CSSe3BW8cU/ZKdJyPW05cJl3oEqDZINrU3+oYZceLKN3uVEf7u0HCt9LC1zKIXTJMyHUFOaBuH9oGXsV0gU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=h4r3XgGi; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="h4r3XgGi" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9B191C433A6; Sun, 24 Mar 2024 23:02:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321339; bh=a90TlNcd55CuvJI7AGBcJt7/5SipQJTr/jE8uvYuenY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=h4r3XgGieelOL5DuBBYVJISeeh6tWecDijYB//90d5dAIGqAySJfWPXcJlt5b7/U0 F41/6u5q2q5v0v/LE9qhZ4DDGr3Jruq8+Z18pOhWOvujSTFG9Jpp3YlZa+eQ3KRsO8 W1C7M3SWOjAAffJd7eemdpzGrh9zPA8wuxlxpnQPNBOs0obl1M1NdVwVRhuqCwc8GK 0ol0602rfWXIde1YEc0XJSEXv3KVE9xBCPiiEUDL6XR3amVzFB2geLmNrsH408yANt 46Tpa8cvJYG2/afm+bRzRKwZU4X6ZQmeu+lm6lStKCBTxAYp7kvYx3oQmWDCrmcmrs tpl4bOi7ujBLw== 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 6.6 063/638] Input: gpio_keys_polled - suppress deferred probe error for gpio Date: Sun, 24 Mar 2024 18:51:40 -0400 Message-ID: <20240324230116.1348576-64-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-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 Tested-by: Takeshi Ogasawara --- 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 ba00ecfbd343b..b41fd1240f431 100644 --- a/drivers/input/keyboard/gpio_keys_polled.c +++ b/drivers/input/keyboard/gpio_keys_polled.c @@ -315,12 +315,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 Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AB5CB130AC3; Sun, 24 Mar 2024 23:02: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=1711321341; cv=none; b=txs6RiukfeisG0PRpbcR/nPPZGCUrXZNEAlS6cU7Xw85HVN13yoCjfohRXA0sZZLNIuHZYj7uqCI9PTYyYJ1g08X8TdqocGxcNkgGc61mFHX9vgxhuNARvPw8p4DU1V/tTA/stxO8tknSu4Qaw4/jcEraUoClDB/XRdEx2RRUgk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321341; c=relaxed/simple; bh=g0bIDGsnLq4XPpGnk9HQAmPP+fiIyU1Ypk3bcF0ztd4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=YSL1JynK5BOCUQtUcPu3kE2LRiteWGxQPt9d77ToZbcATfQwjHjQznqyrZW5gW722eY48OGnXzURVSDW31ndf1OZz40KwJxMGVAsVPtC/h6/YQAXZlNqr1OX6nx7zktSjEVghOkAz3LbU6DhGyOCnBR/PN63BeIiDSXIGRCM88c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=VPjyfK2G; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="VPjyfK2G" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E6DA1C433C7; Sun, 24 Mar 2024 23:02:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321340; bh=g0bIDGsnLq4XPpGnk9HQAmPP+fiIyU1Ypk3bcF0ztd4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=VPjyfK2Gja47pXwH4Gbb/wQhgLhvneFGSDTyyS8lsWRD98er6yr/FrRWZMwom8B+u UN+R6pxXL77afQ+6iqr3WYKKHvJqN8fCbvJVWCZ4Bf/OiM4PsHA+5VBsyJMsPx1DME iooSbHeD3TsDgBaVZGgAE+lOO5DepiQsTyksWHji3Z9gJEYh+5udeSS/8qc5mBcjB8 GOkf75GqYAcj+cArw/I0ld4RJN2lL9B/sixUJuNn4plBBcf4m5KsyqNypcWC8PDcmG ivv5roVSsQKbxr3k2bDeSscaO/u+vM4vJG/u/s/xIQH0fuynCYiVzi5kZsOeejPM3V /y2biPaPbmsoA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Stuart Henderson , Mark Brown , Sasha Levin Subject: [PATCH 6.6 064/638] ASoC: wm8962: Enable oscillator if selecting WM8962_FLL_OSC Date: Sun, 24 Mar 2024 18:51:41 -0400 Message-ID: <20240324230116.1348576-65-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 83ce5dbecc45d..d444b7776ece1 100644 --- a/sound/soc/codecs/wm8962.c +++ b/sound/soc/codecs/wm8962.c @@ -2914,8 +2914,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 Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CF7B6130AC7; Sun, 24 Mar 2024 23:02: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=1711321341; cv=none; b=IfxpfbMOFkuyIk9t3M88rAg18YqaG3jpIPqGbFmZGcKAejY7PZ+kWWwo7n38jfz19j/PHyiXxqqUlfe8YSyUj/j9MHWq7u1N4ZaCm7EMTwfdQMjeWCmR9jK6SHCGAS3tUlysFBpSKqrqUUAThY6kPBhzituUhEOHfgyl6LJD66I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321341; c=relaxed/simple; bh=ArqBZbZhefIxwbraxACefImVik8nTnkU/EWw5Mm15V8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=KfldKy77r16H8aQcFSRbQyTGu7uR2Fb3GUPsUydCB0KNvS/ad9Xx1K4xcBCUZ3H9Xy8Cf598oM8ArqQ8wieSZKzPnU+Gb0xbuoeLY6ZFyUIAAEbZh19f29W7QYEnR8V/DrJjHTpDeOGvgq043/i9/AKMCKCBg70aJ0EJZ+JPcm8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=m7g6Turq; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="m7g6Turq" Received: by smtp.kernel.org (Postfix) with ESMTPSA id CE0F8C43399; Sun, 24 Mar 2024 23:02:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321341; bh=ArqBZbZhefIxwbraxACefImVik8nTnkU/EWw5Mm15V8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=m7g6TurqdFrVrdD1QQiD5z3Mlt5D+HVMXMBLOod0NmQai/tNFM7Ir9ZiM6aeUFZRq QHojEa4jc1hIpcmmxaZXzAW8fYoIn+fQmfQKGYlg9r7IXotCejsrWiS9eslE6DxSjG f7qFJIZdm8/hR7O14aHqfEj0fxkynQP72Jjf34QDKyuPxRCHt3DubAyq3DGHdsSZTS +RybYhzQadRmmdT2daFEzD0kdcvlobu7OfZg7ewRXWSUtSFOlXxuvcDisRn+iQf8A/ j5E0C28vM9c71YyzioF0oNgnKxIr3viVgtm5WEVjxyyvKqo/bmlvG5Nx0b9KM0Agam uVwPSgbSzkwGg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Stuart Henderson , Mark Brown , Sasha Levin Subject: [PATCH 6.6 065/638] ASoC: wm8962: Enable both SPKOUTR_ENA and SPKOUTL_ENA in mono mode Date: Sun, 24 Mar 2024 18:51:42 -0400 Message-ID: <20240324230116.1348576-66-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 d444b7776ece1..914f8eb418357 100644 --- a/sound/soc/codecs/wm8962.c +++ b/sound/soc/codecs/wm8962.c @@ -2229,6 +2229,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= { @@ -2236,7 +2239,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 @@ -2251,9 +2253,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"), }; @@ -2366,12 +2365,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 Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 746DD14F10C; Sun, 24 Mar 2024 23:02: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=1711321343; cv=none; b=PcHrPBsyIQcA9aVNQMNx5sz/HVD9S8uIGZJEbw4LVXDyWn/ySotZ1/TBkkA7WClstslckQ0shPgFM+w0zguzzDslav7+x8xolbShv8D1uiIEQf46LbtCgu/d+fpfMP5iWiGlLw8/mOU0CSJA8Ud47hgejJVgp9+xy8WzdoDevOQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321343; c=relaxed/simple; bh=6i6wxaZzYQIHnPtoUFQzJHucGTNeOHrxMItXv93pAgw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=hTNFIlr9Iy2uwr0NbIUAyy53EB98MFQ4KPB+nLXQ9b1pOG+9+urRcQtir8IrU+axvRfdP1/vxrU/oL8NiXa7sh4dM5ewlwG0fer1mHuMAAbQ5mZcpqZPux3ZD2xSVdZadExsuPPfdfme5/EPeApcllST2cyVcWrZZHVSGNzSAAI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=W3EiC3Yy; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="W3EiC3Yy" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B515CC433F1; Sun, 24 Mar 2024 23:02:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321342; bh=6i6wxaZzYQIHnPtoUFQzJHucGTNeOHrxMItXv93pAgw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=W3EiC3YynrLOMpX7NFZvLh/vCMWmGrGuwvqxxWoP0fYZMPF0AqlFT0na6BHCohE/j tj71hmoDhtkfIqgVGdEe90aBKxmYIH72bDeEVWVfiKwqrvg3Xv8F1ckmVkpLFcuScK wU9s7PmoCFgiQ11UpQns2uR1LT28hFAqBG710WwchJTQhyxukaNNwz/WHXsUou+PBE 1KkNFZUDUReu4HYB7bisYWNW46DhtQxBHm5hxsuYU9OlolZV2Adan7lb9uYUnbG/I9 1GHlxKJZszhtKYz4GRLrANVxREdD0Zeck/Tg5YxaonRyJt2ooM5KrhzbMOu+XBFDw6 oLiHOmuhtKuHg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Stuart Henderson , Mark Brown , Sasha Levin Subject: [PATCH 6.6 066/638] ASoC: wm8962: Fix up incorrect error message in wm8962_set_fll Date: Sun, 24 Mar 2024 18:51:43 -0400 Message-ID: <20240324230116.1348576-67-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 914f8eb418357..4f50b07848fd8 100644 --- a/sound/soc/codecs/wm8962.c +++ b/sound/soc/codecs/wm8962.c @@ -2933,7 +2933,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 Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9DEE414F115; Sun, 24 Mar 2024 23:02: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=1711321344; cv=none; b=P4PUzXZG8dqVnQq804ot7dYxXEeLwpLMPkZU3RCb9DDHjPchD7DWVpHBaks+OnJd6V4u4u8dqqVuXj1lGbK0KEK7i5rS5OTEXqr1p3H7dxKFLGmRRtlTHGe2HxHJDWY4sM0YPaJqJ6TPnIdBDRapMAD8HhkdjN8dkurQ6YSbbj8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321344; c=relaxed/simple; bh=XBHbYPR8C3NkL6EjNIF6UM5IMap2ZDW4fEy/kjUMKuw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=rEZmc4qUJkW6+vUkvYXqQXL+66kxBQHl4IMtkZkcSuUjuuA6Q99khO/l/0I0/VLa0+xjgXKERVkt591Byv0wiNnJA5AxPjlA5XylRm/iNhPB3MuBfL1ISGzdjXE1QnSyUkPrZROazQiC/x06g9g2IiGJ9AETLaaXpws9lZnbfyE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=DFfyMt0I; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="DFfyMt0I" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 98E70C43394; Sun, 24 Mar 2024 23:02:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321343; bh=XBHbYPR8C3NkL6EjNIF6UM5IMap2ZDW4fEy/kjUMKuw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=DFfyMt0I+a9vu1Chct3xFeO59bAma23dypLp6UMyWEHhSOL4HqsqiEkKtJW3QhMT/ 5UvBgSC2i/KaR20gZCfFUJGhHaTparaUHCZ06+mbAvBvDAwWwQwuV/HzfKWIkPrBQR IimnkUJFHKBLAj++IPutZ+gSs03TWExwuOq1uCFEGqaO9QovjW3YxsWoIKoXEgt2/J AwIkYDvFg/p35JaqEqYiFK1ynMHLknHPg24idVRTv0zD2l6n7xJZuvObm3oEZ9SiL1 0H5qXUTf25uQFod0VfQaE6Bq3lo9dOdc+bfAar+dHPqYaD1HX6e5RA4FuJ9d3Y7xnp 3YQVR+jpKcM2w== 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 6.6 067/638] do_sys_name_to_handle(): use kzalloc() to fix kernel-infoleak Date: Sun, 24 Mar 2024 18:51:44 -0400 Message-ID: <20240324230116.1348576-68-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- fs/fhandle.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/fhandle.c b/fs/fhandle.c index 6ea8d35a9382a..99dcf07cfecfe 100644 --- a/fs/fhandle.c +++ b/fs/fhandle.c @@ -40,7 +40,7 @@ static long do_sys_name_to_handle(const 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 Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8353D14F11B; Sun, 24 Mar 2024 23:02: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=1711321345; cv=none; b=ZPQyGcQ1ltS1P2+bhz92cZLJGdksSZ2vJ3B4qWnCcMEmvO5PezpBlJ6o9Eq3XF4RlNw54oBx0oB7EaoF1M7MnrnMhH8ZwUp/0UHa/3YE7EMcBQXOhH3KKUtn6JdKW+WoQHffi/Yscy8XUHgOQzeOVslaemDvXGq7SPWOUaROSCM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321345; c=relaxed/simple; bh=4HzUgQJ1cTA7sevheQM8td4jHmu+l+Xbddni5/4LvTI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=sVs0iIhoF465s/tgcIG9S+YyD81oe+QphXNNdYL26N0nxgiYEwACrEmBP5z1DoQUkNYz4anO33lYbwXw6Cd/4x538z/fBnHyeg6AfNtUZiQR7w+Pzlao8jtgJrp9HVsRn4jaXfebqNfdQ/HIv7or4Au6XxZC/x41TigeV1irw9U= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=JUH/NSS/; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="JUH/NSS/" Received: by smtp.kernel.org (Postfix) with ESMTPSA id C1881C43399; Sun, 24 Mar 2024 23:02:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321344; bh=4HzUgQJ1cTA7sevheQM8td4jHmu+l+Xbddni5/4LvTI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=JUH/NSS/J7M1j6wpT738vrmCCsbt+PGS6WclrGPeq2R/zWVvll4VTOoTvO1rP9QA2 yalpHsx8yuICilS8mxkJFoCATnYgj22hXQ7n3UxV0QajcKvCdy+ARjjiDX49FtYEK6 zcgWxGweSx9AREG7l3/FisNrRTPjM87UxNmveh2yDuplcm3doBxddVLXpkKyFaHCXL nSvtWc+uHPKFM542rCrZtve6vRQhxEbfhoz9Ex4vxZI2wxhvCjQcxm6iAumn6EomZ5 UdxwG0lRo3i6hWLwryYFbPZPAyP2oEw0cG8uj8o1g+6N3wYaGxg0IVcI8pN1wR/o5q K6sR3bMStGpCQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Audra Mitchell , Tejun Heo , Sasha Levin Subject: [PATCH 6.6 068/638] workqueue.c: Increase workqueue name length Date: Sun, 24 Mar 2024 18:51:45 -0400 Message-ID: <20240324230116.1348576-69-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Audra Mitchell [ Upstream commit 31c89007285d365aa36f71d8fb0701581c770a27 ] Currently we limit the size of the workqueue name to 24 characters due to commit ecf6881ff349 ("workqueue: make workqueue->name[] fixed len") Increase the size to 32 characters and print a warning in the event the requested name is larger than the limit of 32 characters. Signed-off-by: Audra Mitchell Signed-off-by: Tejun Heo Stable-dep-of: 5797b1c18919 ("workqueue: Implement system-wide nr_active en= forcement for unbound workqueues") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- kernel/workqueue.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/kernel/workqueue.c b/kernel/workqueue.c index fd7b84b06d926..e004e65ae987e 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -108,7 +108,7 @@ enum { RESCUER_NICE_LEVEL =3D MIN_NICE, HIGHPRI_NICE_LEVEL =3D MIN_NICE, =20 - WQ_NAME_LEN =3D 24, + WQ_NAME_LEN =3D 32, }; =20 /* @@ -4673,6 +4673,7 @@ struct workqueue_struct *alloc_workqueue(const char *= fmt, va_list args; struct workqueue_struct *wq; struct pool_workqueue *pwq; + int len; =20 /* * Unbound && max_active =3D=3D 1 used to imply ordered, which is no long= er @@ -4699,9 +4700,12 @@ struct workqueue_struct *alloc_workqueue(const char = *fmt, } =20 va_start(args, max_active); - vsnprintf(wq->name, sizeof(wq->name), fmt, args); + len =3D vsnprintf(wq->name, sizeof(wq->name), fmt, args); va_end(args); =20 + if (len >=3D WQ_NAME_LEN) + pr_warn_once("workqueue: name exceeds WQ_NAME_LEN. Truncating to: %s\n",= wq->name); + max_active =3D max_active ?: WQ_DFL_ACTIVE; max_active =3D wq_clamp_max_active(max_active, flags, wq->name); =20 --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6BE2814F125; Sun, 24 Mar 2024 23:02: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=1711321346; cv=none; b=JySC/NVZKx8EClFslpm+SZMZF7BnwGL9TDxuorZpu2MPrQAzaLOsp36HIG8Y7BoXB1LDy37+kPOZXKQgnrDhjpWHnVqCTySSRzJY3U1lKW8Pdp1A3z6oGWrlCEPU9KIkSr3BdXcC9EQkoIBh+soSph+xxbSwJqwcM/6TdWAi+Ic= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321346; c=relaxed/simple; bh=2snIHQ3dk6fJiF5ifXw1hysPR1p33cRdFNQ0W/VkD0Q=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Zn5Mfu/SCoFoGWPsfzdsWUIsR6KOL2Lmqecdx4wVABjUOgHLWgfHqkvaml2vEgVnC0ZhDyyrExc5uu1sag7rckcf3NwQu/AgQAgLz+kHDQJNbxW0h8yigoBSi1UpACVrk17kXRWpWNP8wg6zX2l8F+s90tBoVUKgM9OZo5zT2E4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Rqa3j8mu; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Rqa3j8mu" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A47A0C433C7; Sun, 24 Mar 2024 23:02:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321345; bh=2snIHQ3dk6fJiF5ifXw1hysPR1p33cRdFNQ0W/VkD0Q=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Rqa3j8muFA149krbPIkR9wQcl9REUes2p4WsdnlAUpd7kI+RF92hoSUq4UpvwkAI/ FfDZ640mndxMUXYm0xI0ryi9/03164nbV5zeRXZ3KwSkokEBzL3dUp1PPslv7zD1ge 9QPjhZPuf9ZqQlonfeRXsfiGBajHU1TCc7VvYnmOfOqtLj4pBCHocsHJTSlClSy5bl OePk8fwZTD8829Ngk+bmct3qCNcAB8EgsuoBuU8SORxxBX3xP1yPkYCKzfORemulKX lIUK3lJ6eXcLTQxia87MUHjtxG2Z6qkN9Qu8LS0LfJq7TQqwUvrul23NdhdU2cKCmv WSrhcIP1oSVMw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Tejun Heo , Lai Jiangshan , Sasha Levin Subject: [PATCH 6.6 069/638] workqueue: Move pwq->max_active to wq->max_active Date: Sun, 24 Mar 2024 18:51:46 -0400 Message-ID: <20240324230116.1348576-70-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Tejun Heo [ Upstream commit a045a272d887575da17ad86d6573e82871b50c27 ] max_active is a workqueue-wide setting and the configured value is stored in wq->saved_max_active; however, the effective value was stored in pwq->max_active. While this is harmless, it makes max_active update process more complicated and gets in the way of the planned max_active semantic updates for unbound workqueues. This patches moves pwq->max_active to wq->max_active. This simplifies the code and makes freezing and noop max_active updates cheaper too. No user-visible behavior change is intended. As wq->max_active is updated while holding wq mutex but read without any locking, it now uses WRITE/READ_ONCE(). A new locking locking rule WO is added for it. v2: wq->max_active now uses WRITE/READ_ONCE() as suggested by Lai. Signed-off-by: Tejun Heo Reviewed-by: Lai Jiangshan Stable-dep-of: 5797b1c18919 ("workqueue: Implement system-wide nr_active en= forcement for unbound workqueues") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- kernel/workqueue.c | 133 ++++++++++++++++++++++----------------------- 1 file changed, 66 insertions(+), 67 deletions(-) diff --git a/kernel/workqueue.c b/kernel/workqueue.c index e004e65ae987e..3aa48ba8c7175 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -143,6 +143,9 @@ enum { * * WR: wq->mutex protected for writes. RCU protected for reads. * + * WO: wq->mutex protected for writes. Updated with WRITE_ONCE() and can b= e read + * with READ_ONCE() without locking. + * * MD: wq_mayday_lock protected. * * WD: Used internally by the watchdog. @@ -250,7 +253,6 @@ struct pool_workqueue { * is marked with WORK_STRUCT_INACTIVE iff it is in pwq->inactive_works. */ int nr_active; /* L: nr of active works */ - int max_active; /* L: max active works */ struct list_head inactive_works; /* L: inactive works */ struct list_head pwqs_node; /* WR: node on wq->pwqs */ struct list_head mayday_node; /* MD: node on wq->maydays */ @@ -298,7 +300,8 @@ struct workqueue_struct { struct worker *rescuer; /* MD: rescue worker */ =20 int nr_drainers; /* WQ: drain in progress */ - int saved_max_active; /* WQ: saved pwq max_active */ + int max_active; /* WO: max active works */ + int saved_max_active; /* WQ: saved max_active */ =20 struct workqueue_attrs *unbound_attrs; /* PW: only for unbound wqs */ struct pool_workqueue *dfl_pwq; /* PW: only for unbound wqs */ @@ -1486,7 +1489,7 @@ static void pwq_dec_nr_in_flight(struct pool_workqueu= e *pwq, unsigned long work_ pwq->nr_active--; if (!list_empty(&pwq->inactive_works)) { /* one down, submit an inactive one */ - if (pwq->nr_active < pwq->max_active) + if (pwq->nr_active < READ_ONCE(pwq->wq->max_active)) pwq_activate_first_inactive(pwq); } } @@ -1787,7 +1790,13 @@ static void __queue_work(int cpu, struct workqueue_s= truct *wq, pwq->nr_in_flight[pwq->work_color]++; work_flags =3D work_color_to_flags(pwq->work_color); =20 - if (likely(pwq->nr_active < pwq->max_active)) { + /* + * Limit the number of concurrently active work items to max_active. + * @work must also queue behind existing inactive work items to maintain + * ordering when max_active changes. See wq_adjust_max_active(). + */ + if (list_empty(&pwq->inactive_works) && + pwq->nr_active < READ_ONCE(pwq->wq->max_active)) { if (list_empty(&pool->worklist)) pool->watchdog_ts =3D jiffies; =20 @@ -4136,50 +4145,6 @@ static void pwq_release_workfn(struct kthread_work *= work) } } =20 -/** - * pwq_adjust_max_active - update a pwq's max_active to the current setting - * @pwq: target pool_workqueue - * - * If @pwq isn't freezing, set @pwq->max_active to the associated - * workqueue's saved_max_active and activate inactive work items - * accordingly. If @pwq is freezing, clear @pwq->max_active to zero. - */ -static void pwq_adjust_max_active(struct pool_workqueue *pwq) -{ - struct workqueue_struct *wq =3D pwq->wq; - bool freezable =3D wq->flags & WQ_FREEZABLE; - unsigned long flags; - - /* for @wq->saved_max_active */ - lockdep_assert_held(&wq->mutex); - - /* fast exit for non-freezable wqs */ - if (!freezable && pwq->max_active =3D=3D wq->saved_max_active) - return; - - /* this function can be called during early boot w/ irq disabled */ - raw_spin_lock_irqsave(&pwq->pool->lock, flags); - - /* - * During [un]freezing, the caller is responsible for ensuring that - * this function is called at least once after @workqueue_freezing - * is updated and visible. - */ - if (!freezable || !workqueue_freezing) { - pwq->max_active =3D wq->saved_max_active; - - while (!list_empty(&pwq->inactive_works) && - pwq->nr_active < pwq->max_active) - pwq_activate_first_inactive(pwq); - - kick_pool(pwq->pool); - } else { - pwq->max_active =3D 0; - } - - raw_spin_unlock_irqrestore(&pwq->pool->lock, flags); -} - /* initialize newly allocated @pwq which is associated with @wq and @pool = */ static void init_pwq(struct pool_workqueue *pwq, struct workqueue_struct *= wq, struct worker_pool *pool) @@ -4212,9 +4177,6 @@ static void link_pwq(struct pool_workqueue *pwq) /* set the matching work_color */ pwq->work_color =3D wq->work_color; =20 - /* sync max_active to the current setting */ - pwq_adjust_max_active(pwq); - /* link in @pwq */ list_add_rcu(&pwq->pwqs_node, &wq->pwqs); } @@ -4665,6 +4627,52 @@ static int init_rescuer(struct workqueue_struct *wq) return 0; } =20 +/** + * wq_adjust_max_active - update a wq's max_active to the current setting + * @wq: target workqueue + * + * If @wq isn't freezing, set @wq->max_active to the saved_max_active and + * activate inactive work items accordingly. If @wq is freezing, clear + * @wq->max_active to zero. + */ +static void wq_adjust_max_active(struct workqueue_struct *wq) +{ + struct pool_workqueue *pwq; + + lockdep_assert_held(&wq->mutex); + + if ((wq->flags & WQ_FREEZABLE) && workqueue_freezing) { + WRITE_ONCE(wq->max_active, 0); + return; + } + + if (wq->max_active =3D=3D wq->saved_max_active) + return; + + /* + * Update @wq->max_active and then kick inactive work items if more + * active work items are allowed. This doesn't break work item ordering + * because new work items are always queued behind existing inactive + * work items if there are any. + */ + WRITE_ONCE(wq->max_active, wq->saved_max_active); + + for_each_pwq(pwq, wq) { + unsigned long flags; + + /* this function can be called during early boot w/ irq disabled */ + raw_spin_lock_irqsave(&pwq->pool->lock, flags); + + while (!list_empty(&pwq->inactive_works) && + pwq->nr_active < wq->max_active) + pwq_activate_first_inactive(pwq); + + kick_pool(pwq->pool); + + raw_spin_unlock_irqrestore(&pwq->pool->lock, flags); + } +} + __printf(1, 4) struct workqueue_struct *alloc_workqueue(const char *fmt, unsigned int flags, @@ -4672,7 +4680,6 @@ struct workqueue_struct *alloc_workqueue(const char *= fmt, { va_list args; struct workqueue_struct *wq; - struct pool_workqueue *pwq; int len; =20 /* @@ -4711,6 +4718,7 @@ struct workqueue_struct *alloc_workqueue(const char *= fmt, =20 /* init wq */ wq->flags =3D flags; + wq->max_active =3D max_active; wq->saved_max_active =3D max_active; mutex_init(&wq->mutex); atomic_set(&wq->nr_pwqs_to_flush, 0); @@ -4739,8 +4747,7 @@ struct workqueue_struct *alloc_workqueue(const char *= fmt, mutex_lock(&wq_pool_mutex); =20 mutex_lock(&wq->mutex); - for_each_pwq(pwq, wq) - pwq_adjust_max_active(pwq); + wq_adjust_max_active(wq); mutex_unlock(&wq->mutex); =20 list_add_tail_rcu(&wq->list, &workqueues); @@ -4878,8 +4885,6 @@ EXPORT_SYMBOL_GPL(destroy_workqueue); */ void workqueue_set_max_active(struct workqueue_struct *wq, int max_active) { - struct pool_workqueue *pwq; - /* disallow meddling with max_active for ordered workqueues */ if (WARN_ON(wq->flags & __WQ_ORDERED_EXPLICIT)) return; @@ -4890,9 +4895,7 @@ void workqueue_set_max_active(struct workqueue_struct= *wq, int max_active) =20 wq->flags &=3D ~__WQ_ORDERED; wq->saved_max_active =3D max_active; - - for_each_pwq(pwq, wq) - pwq_adjust_max_active(pwq); + wq_adjust_max_active(wq); =20 mutex_unlock(&wq->mutex); } @@ -5139,8 +5142,8 @@ static void show_pwq(struct pool_workqueue *pwq) pr_info(" pwq %d:", pool->id); pr_cont_pool_info(pool); =20 - pr_cont(" active=3D%d/%d refcnt=3D%d%s\n", - pwq->nr_active, pwq->max_active, pwq->refcnt, + pr_cont(" active=3D%d refcnt=3D%d%s\n", + pwq->nr_active, pwq->refcnt, !list_empty(&pwq->mayday_node) ? " MAYDAY" : ""); =20 hash_for_each(pool->busy_hash, bkt, worker, hentry) { @@ -5688,7 +5691,6 @@ EXPORT_SYMBOL_GPL(work_on_cpu_safe_key); void freeze_workqueues_begin(void) { struct workqueue_struct *wq; - struct pool_workqueue *pwq; =20 mutex_lock(&wq_pool_mutex); =20 @@ -5697,8 +5699,7 @@ void freeze_workqueues_begin(void) =20 list_for_each_entry(wq, &workqueues, list) { mutex_lock(&wq->mutex); - for_each_pwq(pwq, wq) - pwq_adjust_max_active(pwq); + wq_adjust_max_active(wq); mutex_unlock(&wq->mutex); } =20 @@ -5763,7 +5764,6 @@ bool freeze_workqueues_busy(void) void thaw_workqueues(void) { struct workqueue_struct *wq; - struct pool_workqueue *pwq; =20 mutex_lock(&wq_pool_mutex); =20 @@ -5775,8 +5775,7 @@ void thaw_workqueues(void) /* restore max_active and repopulate worklist */ list_for_each_entry(wq, &workqueues, list) { mutex_lock(&wq->mutex); - for_each_pwq(pwq, wq) - pwq_adjust_max_active(pwq); + wq_adjust_max_active(wq); mutex_unlock(&wq->mutex); } =20 --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 469EE14F122; Sun, 24 Mar 2024 23:02: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=1711321346; cv=none; b=e10xPxXBbUwTnEg05C7BdgqyNvPJRbUUme85HfYDp5F+/Oz3Fr0GaIXUB+RwNj83/dlE7Lcjis9QRwJsZEC+reTXV+qUn3TUG2O/QxvSgS5SUa3weItRkC0oMrLwht5KSb/G9xGGcCf6eXvRkKaGXsQUtM2seiNcNY0Cl8nfSb4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321346; c=relaxed/simple; bh=SceaZmCpQTkY+KSCgdHN+OVnB1Mmup/sCz2d/q4qxb8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=e4nKMaHl2ZaTspqbFe9wXR4jVP1M+2P1hg0Tpn9K29PZ2vBxKJ99SheQW/NWm5GaHAWgcvanEaaSFfDdV/jvNxPPJTVrnCX3+rdctQEcusmTG6Xf/MHSsfFBfh785kco6US0MROXREngyaUVJxWDv3aXFZGjOM9JJ4X9nb8VWjg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Z76051WE; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Z76051WE" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 871D3C43390; Sun, 24 Mar 2024 23:02:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321346; bh=SceaZmCpQTkY+KSCgdHN+OVnB1Mmup/sCz2d/q4qxb8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Z76051WESXsqAp1J1XjsiYNoQEY1fGhGEksE6LU4a+j2rNa/5B5T30DThhWadBOCV YmXgudLiihaQCCCnFr7D/A90ZJrXyKajqsGDYNYw8eTkL7mWy9ZWnxW/oQYW2DaSc8 pyQuw1tXtDQ4LkJw5UcObv/OBYRlqszCxw/tRCYU9ccOrz5Ftm21p4897Jt6GOEsSy b/yGLPx3VWnD/ot8mM4rjxSEQ9mj7rxkvksWNLNaqbDp12km8S9ucdidu2dBqCzrfw xS9zdpzl5MVoDi4tG4LBKg+2RArFop4WYV7f8hNky9vkG5MvpPtb0c9ItEEXq8/6p/ F0Hyqx6P16upQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Tejun Heo , Lai Jiangshan , Sasha Levin Subject: [PATCH 6.6 070/638] workqueue: Factor out pwq_is_empty() Date: Sun, 24 Mar 2024 18:51:47 -0400 Message-ID: <20240324230116.1348576-71-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Tejun Heo [ Upstream commit afa87ce85379e2d93863fce595afdb5771a84004 ] "!pwq->nr_active && list_empty(&pwq->inactive_works)" test is repeated multiple times. Let's factor it out into pwq_is_empty(). Signed-off-by: Tejun Heo Reviewed-by: Lai Jiangshan Stable-dep-of: 5797b1c18919 ("workqueue: Implement system-wide nr_active en= forcement for unbound workqueues") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- kernel/workqueue.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/kernel/workqueue.c b/kernel/workqueue.c index 3aa48ba8c7175..3eb0408133ada 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -1450,6 +1450,11 @@ static void put_pwq_unlocked(struct pool_workqueue *= pwq) } } =20 +static bool pwq_is_empty(struct pool_workqueue *pwq) +{ + return !pwq->nr_active && list_empty(&pwq->inactive_works); +} + static void pwq_activate_inactive_work(struct work_struct *work) { struct pool_workqueue *pwq =3D get_work_pwq(work); @@ -3319,7 +3324,7 @@ void drain_workqueue(struct workqueue_struct *wq) bool drained; =20 raw_spin_lock_irq(&pwq->pool->lock); - drained =3D !pwq->nr_active && list_empty(&pwq->inactive_works); + drained =3D pwq_is_empty(pwq); raw_spin_unlock_irq(&pwq->pool->lock); =20 if (drained) @@ -4779,7 +4784,7 @@ static bool pwq_busy(struct pool_workqueue *pwq) =20 if ((pwq !=3D pwq->wq->dfl_pwq) && (pwq->refcnt > 1)) return true; - if (pwq->nr_active || !list_empty(&pwq->inactive_works)) + if (!pwq_is_empty(pwq)) return true; =20 return false; @@ -5217,7 +5222,7 @@ void show_one_workqueue(struct workqueue_struct *wq) unsigned long flags; =20 for_each_pwq(pwq, wq) { - if (pwq->nr_active || !list_empty(&pwq->inactive_works)) { + if (!pwq_is_empty(pwq)) { idle =3D false; break; } @@ -5229,7 +5234,7 @@ void show_one_workqueue(struct workqueue_struct *wq) =20 for_each_pwq(pwq, wq) { raw_spin_lock_irqsave(&pwq->pool->lock, flags); - if (pwq->nr_active || !list_empty(&pwq->inactive_works)) { + if (!pwq_is_empty(pwq)) { /* * Defer printing to avoid deadlocks in console * drivers that queue work while holding locks --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2BEA514F131; Sun, 24 Mar 2024 23:02: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=1711321348; cv=none; b=gqhGjgZ1gD8A9Y6XArYPow+kc/h0Gfc8OkbM1dfcLhQ0p/NNVATBSxBTorrEjo3nBp+iJSWdZc14KWfNsF3XotMbTzZ0NR74yyuoDMv4NgwsqfQr+aVB96r9l7YNxnbZ8kL65B4kgSgLdZ0Ylv9B+VbxC/C/7BQpEAYkmuecSJw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321348; c=relaxed/simple; bh=EvH3SPEWqAXMvuGevgVNS69+E2/o6n7RXD3FQR983OI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=SiGpd/XqI2mj8zSwCjLfiVIVZGx1idC7PIAmZV+2k06TssBL15sg09gPDnmxyK+lLtiOgT+b8lK4bvnvBqOm9lBOS2wCrHy5kZm+buewFTmxwRWeWLIk80AgZIdyH0zjiOKIG5NoZrzpp3zxHEaXk1d4I6BLXs/uZwAkhwnf/Xs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=jWjh4A7z; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="jWjh4A7z" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6B128C43394; Sun, 24 Mar 2024 23:02:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321347; bh=EvH3SPEWqAXMvuGevgVNS69+E2/o6n7RXD3FQR983OI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jWjh4A7zkyEisVzWVr0XfLbYsuK611qII6sW/LEPRrZ2HarCZokg2yt3ypB34N0Mc XCEkkJdo30YOefCES3H+F8EzJleFTV/kROAcwfVGWTVCFSrwMr3BdacBV2K3I6jSr3 EDeylfTjuZ060zBQv9mMBLP6qFxtCDbvG9CpAlG7krc5LjB28gWyAT0er7BHhfIlBS eETENioOORau5zF1L0TDobSZnNQI72GRN4OHcq0NSJ/2fJSahgju7oKsHr2XQrv2K/ o/CWKVycTRErBV7V0sgZf/6dD/+8D88SfporYuEXAua063lS+yEiXRKs9qrHQEVNkt o7eCSrNU44l+A== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Tejun Heo , Lai Jiangshan , Sasha Levin Subject: [PATCH 6.6 071/638] workqueue: Replace pwq_activate_inactive_work() with [__]pwq_activate_work() Date: Sun, 24 Mar 2024 18:51:48 -0400 Message-ID: <20240324230116.1348576-72-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Tejun Heo [ Upstream commit 4c6380305d21e36581b451f7337a36c93b64e050 ] To prepare for unbound nr_active handling improvements, move work activation part of pwq_activate_inactive_work() into __pwq_activate_work() and add pwq_activate_work() which tests WORK_STRUCT_INACTIVE and updates nr_active. pwq_activate_first_inactive() and try_to_grab_pending() are updated to use pwq_activate_work(). The latter conversion is functionally identical. For the former, this conversion adds an unnecessary WORK_STRUCT_INACTIVE testing. This is temporary and will be removed by the next patch. Signed-off-by: Tejun Heo Reviewed-by: Lai Jiangshan Stable-dep-of: 5797b1c18919 ("workqueue: Implement system-wide nr_active en= forcement for unbound workqueues") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- kernel/workqueue.c | 31 +++++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/kernel/workqueue.c b/kernel/workqueue.c index 3eb0408133ada..3436fd266cde0 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -1455,16 +1455,36 @@ static bool pwq_is_empty(struct pool_workqueue *pwq) return !pwq->nr_active && list_empty(&pwq->inactive_works); } =20 -static void pwq_activate_inactive_work(struct work_struct *work) +static void __pwq_activate_work(struct pool_workqueue *pwq, + struct work_struct *work) { - struct pool_workqueue *pwq =3D get_work_pwq(work); - trace_workqueue_activate_work(work); if (list_empty(&pwq->pool->worklist)) pwq->pool->watchdog_ts =3D jiffies; move_linked_works(work, &pwq->pool->worklist, NULL); __clear_bit(WORK_STRUCT_INACTIVE_BIT, work_data_bits(work)); +} + +/** + * pwq_activate_work - Activate a work item if inactive + * @pwq: pool_workqueue @work belongs to + * @work: work item to activate + * + * Returns %true if activated. %false if already active. + */ +static bool pwq_activate_work(struct pool_workqueue *pwq, + struct work_struct *work) +{ + struct worker_pool *pool =3D pwq->pool; + + lockdep_assert_held(&pool->lock); + + if (!(*work_data_bits(work) & WORK_STRUCT_INACTIVE)) + return false; + pwq->nr_active++; + __pwq_activate_work(pwq, work); + return true; } =20 static void pwq_activate_first_inactive(struct pool_workqueue *pwq) @@ -1472,7 +1492,7 @@ static void pwq_activate_first_inactive(struct pool_w= orkqueue *pwq) struct work_struct *work =3D list_first_entry(&pwq->inactive_works, struct work_struct, entry); =20 - pwq_activate_inactive_work(work); + pwq_activate_work(pwq, work); } =20 /** @@ -1610,8 +1630,7 @@ static int try_to_grab_pending(struct work_struct *wo= rk, bool is_dwork, * management later on and cause stall. Make sure the work * item is activated before grabbing. */ - if (*work_data_bits(work) & WORK_STRUCT_INACTIVE) - pwq_activate_inactive_work(work); + pwq_activate_work(pwq, work); =20 list_del_init(&work->entry); pwq_dec_nr_in_flight(pwq, *work_data_bits(work)); --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0F5C514F139; Sun, 24 Mar 2024 23:02: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=1711321349; cv=none; b=mBfu/LeACnPm2uspc7lFRWz2+U2BclfH/qGZ4qiaMbanwWQVc4ojFMzmY3ticgMvLfCLjeS1ebbl3z7E3t9yxyWOuhRt6l5+SSzrUidm6G9cAaHSjrC+BVTeU2MK+vz3kigS6e3fRPFXlw0k87UOmKtvATpWw4dNLNxzHKPZjy4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321349; c=relaxed/simple; bh=yCXgsa4q4NyeqaJ3F8dc0OUAUpdMrUoM3XM3Wg3r9OU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=orl202ZrocPCGTXZoY0ms/cVfILBwNuewNPA5ovw1VCsRyklgBuWJMqGDTSbTk3NbsQPjIPzsg5rAhaR2Iap0tVrXBhYcy5IUtuFjQ/Tl62qAxc3oL0ry+S2jr6UnzJ5CXQPirnFl0yVsXd8KiL5ggUYEjT8hbn/YIimiWIAH2c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Iv5nNiA0; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Iv5nNiA0" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 50B68C433C7; Sun, 24 Mar 2024 23:02:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321347; bh=yCXgsa4q4NyeqaJ3F8dc0OUAUpdMrUoM3XM3Wg3r9OU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Iv5nNiA0Ys8VbZyFj1fhKIsHvBC2BGMoe3/Irfp4QBnvMgMhUvlnSB0ujSVWyoT56 vcdVQc7XUhVf5ry0z+INl45jg9KnCRvKJCW54QjceMiHsEOnpCN8TFK6/APdDAndwk bwnc3yR+dT+EsXpSA926JRGnCUck8L/yrQkV2NiPnoCfG1BaEw7LCXqPv9tY4pbpO6 5ofO3KoxcBiXdkBG6uAvCBKk1KzTRIrur3gNbeFN3L4w2/OKMUDkBpqBb8STlzKZkL 0En0ckfh8F1cAyu9CJsoBdg8qEenuvNcRpdEXiKObZlaU3B9zNYv7yJM4CE9Q7C7Yn FgYfR1ntc5hfQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Tejun Heo , Lai Jiangshan , Sasha Levin Subject: [PATCH 6.6 072/638] workqueue: Move nr_active handling into helpers Date: Sun, 24 Mar 2024 18:51:49 -0400 Message-ID: <20240324230116.1348576-73-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Tejun Heo [ Upstream commit 1c270b79ce0b8290f146255ea9057243f6dd3c17 ] __queue_work(), pwq_dec_nr_in_flight() and wq_adjust_max_active() were open-coding nr_active handling, which is fine given that the operations are trivial. However, the planned unbound nr_active update will make them more complicated, so let's move them into helpers. - pwq_tryinc_nr_active() is added. It increments nr_active if under max_active limit and return a boolean indicating whether inc was successful. Note that the function is structured to accommodate future changes. __queue_work() is updated to use the new helper. - pwq_activate_first_inactive() is updated to use pwq_tryinc_nr_active() and thus no longer assumes that nr_active is under max_active and returns a boolean to indicate whether a work item has been activated. - wq_adjust_max_active() no longer tests directly whether a work item can be activated. Instead, it's updated to use the return value of pwq_activate_first_inactive() to tell whether a work item has been activated. - nr_active decrement and activating the first inactive work item is factored into pwq_dec_nr_active(). v3: - WARN_ON_ONCE(!WORK_STRUCT_INACTIVE) added to __pwq_activate_work() as now we're calling the function unconditionally from pwq_activate_first_inactive(). v2: - wq->max_active now uses WRITE/READ_ONCE() as suggested by Lai. Signed-off-by: Tejun Heo Reviewed-by: Lai Jiangshan Stable-dep-of: 5797b1c18919 ("workqueue: Implement system-wide nr_active en= forcement for unbound workqueues") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- kernel/workqueue.c | 86 ++++++++++++++++++++++++++++++++++++---------- 1 file changed, 67 insertions(+), 19 deletions(-) diff --git a/kernel/workqueue.c b/kernel/workqueue.c index 3436fd266cde0..51dc508ac35b5 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -1458,11 +1458,14 @@ static bool pwq_is_empty(struct pool_workqueue *pwq) static void __pwq_activate_work(struct pool_workqueue *pwq, struct work_struct *work) { + unsigned long *wdb =3D work_data_bits(work); + + WARN_ON_ONCE(!(*wdb & WORK_STRUCT_INACTIVE)); trace_workqueue_activate_work(work); if (list_empty(&pwq->pool->worklist)) pwq->pool->watchdog_ts =3D jiffies; move_linked_works(work, &pwq->pool->worklist, NULL); - __clear_bit(WORK_STRUCT_INACTIVE_BIT, work_data_bits(work)); + __clear_bit(WORK_STRUCT_INACTIVE_BIT, wdb); } =20 /** @@ -1487,12 +1490,66 @@ static bool pwq_activate_work(struct pool_workqueue= *pwq, return true; } =20 -static void pwq_activate_first_inactive(struct pool_workqueue *pwq) +/** + * pwq_tryinc_nr_active - Try to increment nr_active for a pwq + * @pwq: pool_workqueue of interest + * + * Try to increment nr_active for @pwq. Returns %true if an nr_active coun= t is + * successfully obtained. %false otherwise. + */ +static bool pwq_tryinc_nr_active(struct pool_workqueue *pwq) +{ + struct workqueue_struct *wq =3D pwq->wq; + struct worker_pool *pool =3D pwq->pool; + bool obtained; + + lockdep_assert_held(&pool->lock); + + obtained =3D pwq->nr_active < READ_ONCE(wq->max_active); + + if (obtained) + pwq->nr_active++; + return obtained; +} + +/** + * pwq_activate_first_inactive - Activate the first inactive work item on = a pwq + * @pwq: pool_workqueue of interest + * + * Activate the first inactive work item of @pwq if available and allowed = by + * max_active limit. + * + * Returns %true if an inactive work item has been activated. %false if no + * inactive work item is found or max_active limit is reached. + */ +static bool pwq_activate_first_inactive(struct pool_workqueue *pwq) +{ + struct work_struct *work =3D + list_first_entry_or_null(&pwq->inactive_works, + struct work_struct, entry); + + if (work && pwq_tryinc_nr_active(pwq)) { + __pwq_activate_work(pwq, work); + return true; + } else { + return false; + } +} + +/** + * pwq_dec_nr_active - Retire an active count + * @pwq: pool_workqueue of interest + * + * Decrement @pwq's nr_active and try to activate the first inactive work = item. + */ +static void pwq_dec_nr_active(struct pool_workqueue *pwq) { - struct work_struct *work =3D list_first_entry(&pwq->inactive_works, - struct work_struct, entry); + struct worker_pool *pool =3D pwq->pool; =20 - pwq_activate_work(pwq, work); + lockdep_assert_held(&pool->lock); + + pwq->nr_active--; + pwq_activate_first_inactive(pwq); } =20 /** @@ -1510,14 +1567,8 @@ static void pwq_dec_nr_in_flight(struct pool_workque= ue *pwq, unsigned long work_ { int color =3D get_work_color(work_data); =20 - if (!(work_data & WORK_STRUCT_INACTIVE)) { - pwq->nr_active--; - if (!list_empty(&pwq->inactive_works)) { - /* one down, submit an inactive one */ - if (pwq->nr_active < READ_ONCE(pwq->wq->max_active)) - pwq_activate_first_inactive(pwq); - } - } + if (!(work_data & WORK_STRUCT_INACTIVE)) + pwq_dec_nr_active(pwq); =20 pwq->nr_in_flight[color]--; =20 @@ -1819,13 +1870,11 @@ static void __queue_work(int cpu, struct workqueue_= struct *wq, * @work must also queue behind existing inactive work items to maintain * ordering when max_active changes. See wq_adjust_max_active(). */ - if (list_empty(&pwq->inactive_works) && - pwq->nr_active < READ_ONCE(pwq->wq->max_active)) { + if (list_empty(&pwq->inactive_works) && pwq_tryinc_nr_active(pwq)) { if (list_empty(&pool->worklist)) pool->watchdog_ts =3D jiffies; =20 trace_workqueue_activate_work(work); - pwq->nr_active++; insert_work(pwq, work, &pool->worklist, work_flags); kick_pool(pool); } else { @@ -4687,9 +4736,8 @@ static void wq_adjust_max_active(struct workqueue_str= uct *wq) /* this function can be called during early boot w/ irq disabled */ raw_spin_lock_irqsave(&pwq->pool->lock, flags); =20 - while (!list_empty(&pwq->inactive_works) && - pwq->nr_active < wq->max_active) - pwq_activate_first_inactive(pwq); + while (pwq_activate_first_inactive(pwq)) + ; =20 kick_pool(pwq->pool); =20 --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4540C14F13B; Sun, 24 Mar 2024 23:02: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=1711321349; cv=none; b=GZOmDMtXI8qT/FtpJ1BjaOx89pM5aTnqkz2uXyFMD+jsN5aXlqejCzw/JJttJeo2W0ARhzyQGajS8DTDKMoub6lNB1iQYwhYRhGvYZwtX9li8oDTCtNE+E+dKxbg6LwV09nPeTrb5UceEFGrrOTonIpvQE1XP63b0U/ssSOZDAM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321349; c=relaxed/simple; bh=nX02O78A6Qiaz42VVWFCjsQTRlEgLaaJFDu/xHs+waA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mmbvMoF8Zmhrdr0sxyUTnoWC3icjEuj6c95N74YOVCqO4iBVEbjKS81iXbQ3OWA6BfZfad5cBFxIxokIdmQKXYC53DvCHgQPKdWgP6MP299AdHcFJNSrg1v1Crv2nEFawJ82Kr+/z8IO1LXQPlFY91SWoqQhtqd7NpiAJcxbMqg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=aHBUdMnr; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="aHBUdMnr" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 32921C43390; Sun, 24 Mar 2024 23:02:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321348; bh=nX02O78A6Qiaz42VVWFCjsQTRlEgLaaJFDu/xHs+waA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=aHBUdMnrZHirndjVhzUaLX2wh4G3W4pVJLkFj/qqnUDgHWf6MwjD22hg5CrmX1/vW 0w+9P3yZGR2Y+U9/1Kjg5j+6HwM9NdDzej0dGmDHD82N3mnEnoU71CC3CiHIaDyomF 3glgQGVHWqe/8bwYg08rVUcsB3QBUx/0zx5Mg1U/Uk49nqgAdJHl2szKpmBVRVMUK2 N6QJJLsSe0XWrqX1aQfmtTLDdb9gueGVMzHmzU57jNZ/V6iwQv5dxD8ymxsFrQw6WY U/9DsCKXO2vh6LsCYtlwxC9Sxifnyc+kQzSyCVX62HmVb+lPW4RK3N/vBYGe8nyuUc vPbyYJryAv3LQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Tejun Heo , Lai Jiangshan , Sasha Levin Subject: [PATCH 6.6 073/638] workqueue: Make wq_adjust_max_active() round-robin pwqs while activating Date: Sun, 24 Mar 2024 18:51:50 -0400 Message-ID: <20240324230116.1348576-74-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Tejun Heo [ Upstream commit c5404d4e6df6faba1007544b5f4e62c7c14416dd ] wq_adjust_max_active() needs to activate work items after max_active is increased. Previously, it did that by visiting each pwq once activating all that could be activated. While this makes sense with per-pwq nr_active, nr_active will be shared across multiple pwqs for unbound wqs. Then, we'd want to round-robin through pwqs to be fairer. In preparation, this patch makes wq_adjust_max_active() round-robin pwqs while activating. While the activation ordering changes, this shouldn't cause user-noticeable behavior changes. Signed-off-by: Tejun Heo Reviewed-by: Lai Jiangshan Stable-dep-of: 5797b1c18919 ("workqueue: Implement system-wide nr_active en= forcement for unbound workqueues") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- kernel/workqueue.c | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/kernel/workqueue.c b/kernel/workqueue.c index 51dc508ac35b5..76559b63ee1fc 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -4710,7 +4710,7 @@ static int init_rescuer(struct workqueue_struct *wq) */ static void wq_adjust_max_active(struct workqueue_struct *wq) { - struct pool_workqueue *pwq; + bool activated; =20 lockdep_assert_held(&wq->mutex); =20 @@ -4730,19 +4730,26 @@ static void wq_adjust_max_active(struct workqueue_s= truct *wq) */ WRITE_ONCE(wq->max_active, wq->saved_max_active); =20 - for_each_pwq(pwq, wq) { - unsigned long flags; - - /* this function can be called during early boot w/ irq disabled */ - raw_spin_lock_irqsave(&pwq->pool->lock, flags); - - while (pwq_activate_first_inactive(pwq)) - ; + /* + * Round-robin through pwq's activating the first inactive work item + * until max_active is filled. + */ + do { + struct pool_workqueue *pwq; =20 - kick_pool(pwq->pool); + activated =3D false; + for_each_pwq(pwq, wq) { + unsigned long flags; =20 - raw_spin_unlock_irqrestore(&pwq->pool->lock, flags); - } + /* can be called during early boot w/ irq disabled */ + raw_spin_lock_irqsave(&pwq->pool->lock, flags); + if (pwq_activate_first_inactive(pwq)) { + activated =3D true; + kick_pool(pwq->pool); + } + raw_spin_unlock_irqrestore(&pwq->pool->lock, flags); + } + } while (activated); } =20 __printf(1, 4) --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D486F14F135; Sun, 24 Mar 2024 23:02: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=1711321350; cv=none; b=nvonlNJU+mLG1OwxR1ZQixNiLqxG6HbCchscNX2blU6Wx+vHmd0NpeyhljbWsb721Jdvkz6QdRIdR/HNQubdFthGYOMV4bxjsJJgnPZBO1eRRD3LuQxuoEKR+VyWBphPKuP94Syu13VK7VdNxHwa146vY3d0ut3EqDJLNfGH2hk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321350; c=relaxed/simple; bh=qUzMCMqZojpp+6BUqihnoQb4WhssGLDksLNvi3ePeyE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=L3/dolO07TEycHA4rnZ2mFOWyg0le4ASyO+9F5hn9d0QUPYYwiM3U4KnVS6UaWYHF2v3YUxHHo4jIFFBWfHEBqix7YldlNLzqzHgLC9SjN2+nUbYx5bAEkyX4dPYLv8pft7p6vEk7C1eHQM5hTYcKerdP7RhOwaNR8u0IpcCqZw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Cqqv0QVb; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Cqqv0QVb" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 16312C433F1; Sun, 24 Mar 2024 23:02:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321349; bh=qUzMCMqZojpp+6BUqihnoQb4WhssGLDksLNvi3ePeyE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Cqqv0QVbCaLSetEIKhVsmvPQBUzbL+So5PAZKrg42nUuBF5nbGxqmHD7ByxZocLJc uwTNsiVUdj7IA1+RUAWetH8b9TJfNQ1srsK0CquD9dQMWpnuBlsSI34wuzv0jcmGVu bIvay1wVf7NdnA3KhvUpsfuKtLTPFdbASi3OPNapuNEU1r/CGy19/RE3VXzkkND5N7 Fk7VcBUaiWqitX1kqwDg/OMzppsAF2nnBYdEY9CWSQD3FNlL2otBwk7ZL2G58ZcBrN VlrwvhPe/igyWr/cUGr6DPYyUWoYaDkpiHSXWCgBcjs1VLKK5+zHweY3MfMS/VYlBJ zg5EWCAPHszhg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Tejun Heo , Lai Jiangshan , Sasha Levin Subject: [PATCH 6.6 074/638] workqueue: RCU protect wq->dfl_pwq and implement accessors for it Date: Sun, 24 Mar 2024 18:51:51 -0400 Message-ID: <20240324230116.1348576-75-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Tejun Heo [ Upstream commit 9f66cff212bb3c1cd25996aaa0dfd0c9e9d8baab ] wq->cpu_pwq is RCU protected but wq->dfl_pwq isn't. This is okay because currently wq->dfl_pwq is used only accessed to install it into wq->cpu_pwq which doesn't require RCU access. However, we want to be able to access wq->dfl_pwq under RCU in the future to access its __pod_cpumask and the code can be made easier to read by making the two pwq fields behave in the same way. - Make wq->dfl_pwq RCU protected. - Add unbound_pwq_slot() and unbound_pwq() which can access both ->dfl_pwq and ->cpu_pwq. The former returns the double pointer that can be used access and update the pwqs. The latter performs locking check and dereferences the double pointer. - pwq accesses and updates are converted to use unbound_pwq[_slot](). Signed-off-by: Tejun Heo Reviewed-by: Lai Jiangshan Stable-dep-of: 5797b1c18919 ("workqueue: Implement system-wide nr_active en= forcement for unbound workqueues") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- kernel/workqueue.c | 64 +++++++++++++++++++++++++++++----------------- 1 file changed, 40 insertions(+), 24 deletions(-) diff --git a/kernel/workqueue.c b/kernel/workqueue.c index 76559b63ee1fc..80c0a84aa147c 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -304,7 +304,7 @@ struct workqueue_struct { int saved_max_active; /* WQ: saved max_active */ =20 struct workqueue_attrs *unbound_attrs; /* PW: only for unbound wqs */ - struct pool_workqueue *dfl_pwq; /* PW: only for unbound wqs */ + struct pool_workqueue __rcu *dfl_pwq; /* PW: only for unbound wqs */ =20 #ifdef CONFIG_SYSFS struct wq_device *wq_dev; /* I: for sysfs interface */ @@ -629,6 +629,23 @@ static int worker_pool_assign_id(struct worker_pool *p= ool) return ret; } =20 +static struct pool_workqueue __rcu ** +unbound_pwq_slot(struct workqueue_struct *wq, int cpu) +{ + if (cpu >=3D 0) + return per_cpu_ptr(wq->cpu_pwq, cpu); + else + return &wq->dfl_pwq; +} + +/* @cpu < 0 for dfl_pwq */ +static struct pool_workqueue *unbound_pwq(struct workqueue_struct *wq, int= cpu) +{ + return rcu_dereference_check(*unbound_pwq_slot(wq, cpu), + lockdep_is_held(&wq_pool_mutex) || + lockdep_is_held(&wq->mutex)); +} + static unsigned int work_color_to_flags(int color) { return color << WORK_STRUCT_COLOR_SHIFT; @@ -4318,10 +4335,11 @@ static void wq_calc_pod_cpumask(struct workqueue_at= trs *attrs, int cpu, "possible intersect\n"); } =20 -/* install @pwq into @wq's cpu_pwq and return the old pwq */ +/* install @pwq into @wq and return the old pwq, @cpu < 0 for dfl_pwq */ static struct pool_workqueue *install_unbound_pwq(struct workqueue_struct = *wq, int cpu, struct pool_workqueue *pwq) { + struct pool_workqueue __rcu **slot =3D unbound_pwq_slot(wq, cpu); struct pool_workqueue *old_pwq; =20 lockdep_assert_held(&wq_pool_mutex); @@ -4330,8 +4348,8 @@ static struct pool_workqueue *install_unbound_pwq(str= uct workqueue_struct *wq, /* link_pwq() can handle duplicate calls */ link_pwq(pwq); =20 - old_pwq =3D rcu_access_pointer(*per_cpu_ptr(wq->cpu_pwq, cpu)); - rcu_assign_pointer(*per_cpu_ptr(wq->cpu_pwq, cpu), pwq); + old_pwq =3D rcu_access_pointer(*slot); + rcu_assign_pointer(*slot, pwq); return old_pwq; } =20 @@ -4431,14 +4449,11 @@ static void apply_wqattrs_commit(struct apply_wqatt= rs_ctx *ctx) =20 copy_workqueue_attrs(ctx->wq->unbound_attrs, ctx->attrs); =20 - /* save the previous pwq and install the new one */ + /* save the previous pwqs and install the new ones */ for_each_possible_cpu(cpu) ctx->pwq_tbl[cpu] =3D install_unbound_pwq(ctx->wq, cpu, ctx->pwq_tbl[cpu]); - - /* @dfl_pwq might not have been used, ensure it's linked */ - link_pwq(ctx->dfl_pwq); - swap(ctx->wq->dfl_pwq, ctx->dfl_pwq); + ctx->dfl_pwq =3D install_unbound_pwq(ctx->wq, -1, ctx->dfl_pwq); =20 mutex_unlock(&ctx->wq->mutex); } @@ -4561,9 +4576,7 @@ static void wq_update_pod(struct workqueue_struct *wq= , int cpu, =20 /* nothing to do if the target cpumask matches the current pwq */ wq_calc_pod_cpumask(target_attrs, cpu, off_cpu); - pwq =3D rcu_dereference_protected(*per_cpu_ptr(wq->cpu_pwq, cpu), - lockdep_is_held(&wq_pool_mutex)); - if (wqattrs_equal(target_attrs, pwq->pool->attrs)) + if (wqattrs_equal(target_attrs, unbound_pwq(wq, cpu)->pool->attrs)) return; =20 /* create a new pwq */ @@ -4581,10 +4594,11 @@ static void wq_update_pod(struct workqueue_struct *= wq, int cpu, =20 use_dfl_pwq: mutex_lock(&wq->mutex); - raw_spin_lock_irq(&wq->dfl_pwq->pool->lock); - get_pwq(wq->dfl_pwq); - raw_spin_unlock_irq(&wq->dfl_pwq->pool->lock); - old_pwq =3D install_unbound_pwq(wq, cpu, wq->dfl_pwq); + pwq =3D unbound_pwq(wq, -1); + raw_spin_lock_irq(&pwq->pool->lock); + get_pwq(pwq); + raw_spin_unlock_irq(&pwq->pool->lock); + old_pwq =3D install_unbound_pwq(wq, cpu, pwq); out_unlock: mutex_unlock(&wq->mutex); put_pwq_unlocked(old_pwq); @@ -4622,10 +4636,13 @@ static int alloc_and_link_pwqs(struct workqueue_str= uct *wq) =20 cpus_read_lock(); if (wq->flags & __WQ_ORDERED) { + struct pool_workqueue *dfl_pwq; + ret =3D apply_workqueue_attrs(wq, ordered_wq_attrs[highpri]); /* there should only be single pwq for ordering guarantee */ - WARN(!ret && (wq->pwqs.next !=3D &wq->dfl_pwq->pwqs_node || - wq->pwqs.prev !=3D &wq->dfl_pwq->pwqs_node), + dfl_pwq =3D rcu_access_pointer(wq->dfl_pwq); + WARN(!ret && (wq->pwqs.next !=3D &dfl_pwq->pwqs_node || + wq->pwqs.prev !=3D &dfl_pwq->pwqs_node), "ordering guarantee broken for workqueue %s\n", wq->name); } else { ret =3D apply_workqueue_attrs(wq, unbound_std_wq_attrs[highpri]); @@ -4856,7 +4873,7 @@ static bool pwq_busy(struct pool_workqueue *pwq) if (pwq->nr_in_flight[i]) return true; =20 - if ((pwq !=3D pwq->wq->dfl_pwq) && (pwq->refcnt > 1)) + if ((pwq !=3D rcu_access_pointer(pwq->wq->dfl_pwq)) && (pwq->refcnt > 1)) return true; if (!pwq_is_empty(pwq)) return true; @@ -4940,13 +4957,12 @@ void destroy_workqueue(struct workqueue_struct *wq) rcu_read_lock(); =20 for_each_possible_cpu(cpu) { - pwq =3D rcu_access_pointer(*per_cpu_ptr(wq->cpu_pwq, cpu)); - RCU_INIT_POINTER(*per_cpu_ptr(wq->cpu_pwq, cpu), NULL); - put_pwq_unlocked(pwq); + put_pwq_unlocked(unbound_pwq(wq, cpu)); + RCU_INIT_POINTER(*unbound_pwq_slot(wq, cpu), NULL); } =20 - put_pwq_unlocked(wq->dfl_pwq); - wq->dfl_pwq =3D NULL; + put_pwq_unlocked(unbound_pwq(wq, -1)); + RCU_INIT_POINTER(*unbound_pwq_slot(wq, -1), NULL); =20 rcu_read_unlock(); } --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AE4AE130AD4; Sun, 24 Mar 2024 23:02: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=1711321351; cv=none; b=ENNRAEKxmVMtXx8eo8sdPTSJIU/gAgVKIvOrEEkLYF0CvBLSfrxsrvwbGDT+m1Rw9vnAGi6lBXlWbXTKvDz5tlJNS0s2FK/4RoPKgTmqxK65l//qujgZboyfTUHAEkjJg0okLNyO2wPKwcbxWQ/Hnsovnr78ruiGFOzVCkpjzN8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321351; c=relaxed/simple; bh=2mQDJzM/xZ4WwqssOFqerV/C2g/6RLaccbKVvaEnS9Y=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=IPRDD6nR/QG45OV91Rwuj0zHUe4++gjRkFJWxOY/qnvjzbZqyfu4wLVSoMr8den+TCWWzXwWyVwKJrKQmgV7bBFmKWnn2YVUrWzaqGnWVn8+tc14I7QrK2eVU0aSPIz+qR+DdCsL9UC/sjNpGFfB+kihaWzulYFfBX/hYBz7Lcg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Zmsh/qxb; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Zmsh/qxb" Received: by smtp.kernel.org (Postfix) with ESMTPSA id ED0F4C43399; Sun, 24 Mar 2024 23:02:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321350; bh=2mQDJzM/xZ4WwqssOFqerV/C2g/6RLaccbKVvaEnS9Y=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Zmsh/qxbEyP6aFJAT2mjLthZhAkDnaAfrQ5/ZHn+fqA75QZHr9li1vWFCY7zhRjpB qZoAI04DPimdQBBc/QZASnHS8jYaUy/wgA5BLntsiFZISYDin64EL7T5dQBVO+ZsF2 3XxCL1Bcc4qJfdHImPAszAtTL3bCgapaPILRKLODXAZJkr+Xz76t4CVqaEzVOr4zEY XKz3ZXgrViPqMvqgaoBfVWaVioxhf5eG76FLmB31cOubbujoWqijoocYNasyX8yeXX AspGY9Cax58sUhc3CPDiVFmrDflIAaMVPneTmB3lMGtiFmfZBdr1PhNxaIH3J1qmd/ ZvTpAmxkQwzCw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Tejun Heo , Lai Jiangshan , Sasha Levin Subject: [PATCH 6.6 075/638] workqueue: Introduce struct wq_node_nr_active Date: Sun, 24 Mar 2024 18:51:52 -0400 Message-ID: <20240324230116.1348576-76-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Tejun Heo [ Upstream commit 91ccc6e7233bb10a9c176aa4cc70d6f432a441a5 ] Currently, for both percpu and unbound workqueues, max_active applies per-cpu, which is a recent change for unbound workqueues. The change for unbound workqueues was a significant departure from the previous behavior of per-node application. It made some use cases create undesirable number of concurrent work items and left no good way of fixing them. To address the problem, workqueue is implementing a NUMA node segmented global nr_active mechanism, which will be explained further in the next patch. As a preparation, this patch introduces struct wq_node_nr_active. It's a data structured allocated for each workqueue and NUMA node pair and currently only tracks the workqueue's number of active work items on the node. This is split out from the next patch to make it easier to understand and review. Note that there is an extra wq_node_nr_active allocated for the invalid node nr_node_ids which is used to track nr_active for pools which don't have NUMA node associated such as the default fallback system-wide pool. This doesn't cause any behavior changes visible to userland yet. The next patch will expand to implement the control mechanism on top. v4: - Fixed out-of-bound access when freeing per-cpu workqueues. v3: - Use flexible array for wq->node_nr_active as suggested by Lai. v2: - wq->max_active now uses WRITE/READ_ONCE() as suggested by Lai. - Lai pointed out that pwq_tryinc_nr_active() incorrectly dropped pwq->max_active check. Restored. As the next patch replaces the max_active enforcement mechanism, this doesn't change the end result. Signed-off-by: Tejun Heo Reviewed-by: Lai Jiangshan Stable-dep-of: 5797b1c18919 ("workqueue: Implement system-wide nr_active en= forcement for unbound workqueues") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- kernel/workqueue.c | 142 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 135 insertions(+), 7 deletions(-) diff --git a/kernel/workqueue.c b/kernel/workqueue.c index 80c0a84aa147c..252ad3bfe7998 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -280,6 +280,16 @@ struct wq_flusher { =20 struct wq_device; =20 +/* + * Unlike in a per-cpu workqueue where max_active limits its concurrency l= evel + * on each CPU, in an unbound workqueue, max_active applies to the whole s= ystem. + * As sharing a single nr_active across multiple sockets can be very expen= sive, + * the counting and enforcement is per NUMA node. + */ +struct wq_node_nr_active { + atomic_t nr; /* per-node nr_active count */ +}; + /* * The externally visible workqueue. It relays the issued work items to * the appropriate worker_pool through its pool_workqueues. @@ -326,6 +336,7 @@ struct workqueue_struct { /* hot fields used during command issue, aligned to cacheline */ unsigned int flags ____cacheline_aligned; /* WQ: WQ_* flags */ struct pool_workqueue __percpu __rcu **cpu_pwq; /* I: per-cpu pwqs */ + struct wq_node_nr_active *node_nr_active[]; /* I: per-node nr_active */ }; =20 static struct kmem_cache *pwq_cache; @@ -1415,6 +1426,31 @@ work_func_t wq_worker_last_func(struct task_struct *= task) return worker->last_func; } =20 +/** + * wq_node_nr_active - Determine wq_node_nr_active to use + * @wq: workqueue of interest + * @node: NUMA node, can be %NUMA_NO_NODE + * + * Determine wq_node_nr_active to use for @wq on @node. Returns: + * + * - %NULL for per-cpu workqueues as they don't need to use shared nr_acti= ve. + * + * - node_nr_active[nr_node_ids] if @node is %NUMA_NO_NODE. + * + * - Otherwise, node_nr_active[@node]. + */ +static struct wq_node_nr_active *wq_node_nr_active(struct workqueue_struct= *wq, + int node) +{ + if (!(wq->flags & WQ_UNBOUND)) + return NULL; + + if (node =3D=3D NUMA_NO_NODE) + node =3D nr_node_ids; + + return wq->node_nr_active[node]; +} + /** * get_pwq - get an extra reference on the specified pool_workqueue * @pwq: pool_workqueue to get @@ -1496,12 +1532,17 @@ static bool pwq_activate_work(struct pool_workqueue= *pwq, struct work_struct *work) { struct worker_pool *pool =3D pwq->pool; + struct wq_node_nr_active *nna; =20 lockdep_assert_held(&pool->lock); =20 if (!(*work_data_bits(work) & WORK_STRUCT_INACTIVE)) return false; =20 + nna =3D wq_node_nr_active(pwq->wq, pool->node); + if (nna) + atomic_inc(&nna->nr); + pwq->nr_active++; __pwq_activate_work(pwq, work); return true; @@ -1518,14 +1559,18 @@ static bool pwq_tryinc_nr_active(struct pool_workqu= eue *pwq) { struct workqueue_struct *wq =3D pwq->wq; struct worker_pool *pool =3D pwq->pool; + struct wq_node_nr_active *nna =3D wq_node_nr_active(wq, pool->node); bool obtained; =20 lockdep_assert_held(&pool->lock); =20 obtained =3D pwq->nr_active < READ_ONCE(wq->max_active); =20 - if (obtained) + if (obtained) { pwq->nr_active++; + if (nna) + atomic_inc(&nna->nr); + } return obtained; } =20 @@ -1562,10 +1607,26 @@ static bool pwq_activate_first_inactive(struct pool= _workqueue *pwq) static void pwq_dec_nr_active(struct pool_workqueue *pwq) { struct worker_pool *pool =3D pwq->pool; + struct wq_node_nr_active *nna =3D wq_node_nr_active(pwq->wq, pool->node); =20 lockdep_assert_held(&pool->lock); =20 + /* + * @pwq->nr_active should be decremented for both percpu and unbound + * workqueues. + */ pwq->nr_active--; + + /* + * For a percpu workqueue, it's simple. Just need to kick the first + * inactive work item on @pwq itself. + */ + if (!nna) { + pwq_activate_first_inactive(pwq); + return; + } + + atomic_dec(&nna->nr); pwq_activate_first_inactive(pwq); } =20 @@ -4020,11 +4081,63 @@ static void wq_free_lockdep(struct workqueue_struct= *wq) } #endif =20 +static void free_node_nr_active(struct wq_node_nr_active **nna_ar) +{ + int node; + + for_each_node(node) { + kfree(nna_ar[node]); + nna_ar[node] =3D NULL; + } + + kfree(nna_ar[nr_node_ids]); + nna_ar[nr_node_ids] =3D NULL; +} + +static void init_node_nr_active(struct wq_node_nr_active *nna) +{ + atomic_set(&nna->nr, 0); +} + +/* + * Each node's nr_active counter will be accessed mostly from its own node= and + * should be allocated in the node. + */ +static int alloc_node_nr_active(struct wq_node_nr_active **nna_ar) +{ + struct wq_node_nr_active *nna; + int node; + + for_each_node(node) { + nna =3D kzalloc_node(sizeof(*nna), GFP_KERNEL, node); + if (!nna) + goto err_free; + init_node_nr_active(nna); + nna_ar[node] =3D nna; + } + + /* [nr_node_ids] is used as the fallback */ + nna =3D kzalloc_node(sizeof(*nna), GFP_KERNEL, NUMA_NO_NODE); + if (!nna) + goto err_free; + init_node_nr_active(nna); + nna_ar[nr_node_ids] =3D nna; + + return 0; + +err_free: + free_node_nr_active(nna_ar); + return -ENOMEM; +} + static void rcu_free_wq(struct rcu_head *rcu) { struct workqueue_struct *wq =3D container_of(rcu, struct workqueue_struct, rcu); =20 + if (wq->flags & WQ_UNBOUND) + free_node_nr_active(wq->node_nr_active); + wq_free_lockdep(wq); free_percpu(wq->cpu_pwq); free_workqueue_attrs(wq->unbound_attrs); @@ -4776,7 +4889,8 @@ struct workqueue_struct *alloc_workqueue(const char *= fmt, { va_list args; struct workqueue_struct *wq; - int len; + size_t wq_size; + int name_len; =20 /* * Unbound && max_active =3D=3D 1 used to imply ordered, which is no long= er @@ -4792,7 +4906,12 @@ struct workqueue_struct *alloc_workqueue(const char = *fmt, flags |=3D WQ_UNBOUND; =20 /* allocate wq and format name */ - wq =3D kzalloc(sizeof(*wq), GFP_KERNEL); + if (flags & WQ_UNBOUND) + wq_size =3D struct_size(wq, node_nr_active, nr_node_ids + 1); + else + wq_size =3D sizeof(*wq); + + wq =3D kzalloc(wq_size, GFP_KERNEL); if (!wq) return NULL; =20 @@ -4803,11 +4922,12 @@ struct workqueue_struct *alloc_workqueue(const char= *fmt, } =20 va_start(args, max_active); - len =3D vsnprintf(wq->name, sizeof(wq->name), fmt, args); + name_len =3D vsnprintf(wq->name, sizeof(wq->name), fmt, args); va_end(args); =20 - if (len >=3D WQ_NAME_LEN) - pr_warn_once("workqueue: name exceeds WQ_NAME_LEN. Truncating to: %s\n",= wq->name); + if (name_len >=3D WQ_NAME_LEN) + pr_warn_once("workqueue: name exceeds WQ_NAME_LEN. Truncating to: %s\n", + wq->name); =20 max_active =3D max_active ?: WQ_DFL_ACTIVE; max_active =3D wq_clamp_max_active(max_active, flags, wq->name); @@ -4826,8 +4946,13 @@ struct workqueue_struct *alloc_workqueue(const char = *fmt, wq_init_lockdep(wq); INIT_LIST_HEAD(&wq->list); =20 + if (flags & WQ_UNBOUND) { + if (alloc_node_nr_active(wq->node_nr_active) < 0) + goto err_unreg_lockdep; + } + if (alloc_and_link_pwqs(wq) < 0) - goto err_unreg_lockdep; + goto err_free_node_nr_active; =20 if (wq_online && init_rescuer(wq) < 0) goto err_destroy; @@ -4852,6 +4977,9 @@ struct workqueue_struct *alloc_workqueue(const char *= fmt, =20 return wq; =20 +err_free_node_nr_active: + if (wq->flags & WQ_UNBOUND) + free_node_nr_active(wq->node_nr_active); err_unreg_lockdep: wq_unregister_lockdep(wq); wq_free_lockdep(wq); --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A9455130AD2; Sun, 24 Mar 2024 23:02: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=1711321351; cv=none; b=tCfzNGJbbbZDY+tb16NtPppLl0Ug4w4GYG/LqRpSOeSYfD6VGQPdgiX6wMR2z4IebL6i91NnMXV9ccFI1JwTXp/ylF7xLwezFScw/gdhW6v8WX86A/7CklO+DoOUiS6+bTP/whhy9JwCGpctAykoAdw27dkAF3XVONJsxXRVFCA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321351; c=relaxed/simple; bh=L4W0X0dkd7zesC/T7jiT43t8UdA8HD3hbGujKcmWbXY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=HcF0NJaOVUoNZY+2zO5qSwigRnZh9o9gsCpiOoL/RYdWSVx03spn0rBTKW+k2/TM4r6tBcQFpm53BwGjR+rN0ncW5qXZ946dm6t4HI/mHegmsDsf0ULc/YxudOxA8jiGQ7/PCsi9feoit2zdgrLVmXtjQL+HLBYpDfl9jFVs/oA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=BwekEMGa; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="BwekEMGa" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D14B7C433A6; Sun, 24 Mar 2024 23:02:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321351; bh=L4W0X0dkd7zesC/T7jiT43t8UdA8HD3hbGujKcmWbXY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=BwekEMGap2z3k66eTngsUFQU//QbDZP0T4oOK4o/XFQmjvN9MVc1YIKEXevHnk3MG Q+64Vu+3mkESaW52XZXaHox1ccXo3rZavdJok98ED1wOB112CusuOlFSx4JnQQmUqA edQ0u5GhEDHG0q52N+yOKGZJ4L4eCHi9L19HFFgyo6ZHQrA5EXgTsNUapHrguEm813 A8I5zHRo/qga2PZXYZndVd/Gad2L7sK/IMa8bV6WDyEVtcSeJl3FHM0XPUtLcsw4DB pzEkXft5eWzB6LwGyxtW1757RzN6KSg6o3sackFYTlWVKHj/yi9tWlEuUe8H14fYKa 3Twp6HzbWJx2A== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Tejun Heo , Naohiro Aota , Lai Jiangshan , Sasha Levin Subject: [PATCH 6.6 076/638] workqueue: Implement system-wide nr_active enforcement for unbound workqueues Date: Sun, 24 Mar 2024 18:51:53 -0400 Message-ID: <20240324230116.1348576-77-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Tejun Heo [ Upstream commit 5797b1c18919cd9c289ded7954383e499f729ce0 ] A pool_workqueue (pwq) represents the connection between a workqueue and a worker_pool. One of the roles that a pwq plays is enforcement of the max_active concurrency limit. Before 636b927eba5b ("workqueue: Make unbound workqueues to use per-cpu pool_workqueues"), there was one pwq per each CPU for per-cpu workqueues and per each NUMA node for unbound workqueues, which was a natural result of per-cpu workqueues being served by per-cpu pools and unbound by per-NUMA pools. In terms of max_active enforcement, this was, while not perfect, workable. For per-cpu workqueues, it was fine. For unbound, it wasn't great in that NUMA machines would get max_active that's multiplied by the number of nodes but didn't cause huge problems because NUMA machines are relatively rare and the node count is usually pretty low. However, cache layouts are more complex now and sharing a worker pool across a whole node didn't really work well for unbound workqueues. Thus, a series of commits culminating on 8639ecebc9b1 ("workqueue: Make unbound workqueues to use per-cpu pool_workqueues") implemented more flexible affinity mechanism for unbound workqueues which enables using e.g. last-level-cache aligned pools. In the process, 636b927eba5b ("workqueue: Make unbound workqueues to use per-cpu pool_workqueues") made unbound workqueues use per-cpu pwqs like per-cpu workqueues. While the change was necessary to enable more flexible affinity scopes, this came with the side effect of blowing up the effective max_active for unbound workqueues. Before, the effective max_active for unbound workqueues was multiplied by the number of nodes. After, by the number of CPUs. 636b927eba5b ("workqueue: Make unbound workqueues to use per-cpu pool_workqueues") claims that this should generally be okay. It is okay for users which self-regulates concurrency level which are the vast majority; however, there are enough use cases which actually depend on max_active to prevent the level of concurrency from going bonkers including several IO handling workqueues that can issue a work item for each in-flight IO. With targeted benchmarks, the misbehavior can easily be exposed as reported in http://lkml.kernel.org/r/dbu6wiwu3sdhmhikb2w6lns7b27gbobfavhjj57kwi2quafgwl= @htjcc5oikcr3. Unfortunately, there is no way to express what these use cases need using per-cpu max_active. A CPU may issue most of in-flight IOs, so we don't want to set max_active too low but as soon as we increase max_active a bit, we can end up with unreasonable number of in-flight work items when many CPUs issue IOs at the same time. ie. The acceptable lowest max_active is higher than the acceptable highest max_active. Ideally, max_active for an unbound workqueue should be system-wide so that the users can regulate the total level of concurrency regardless of node and cache layout. The reasons workqueue hasn't implemented that yet are: - One max_active enforcement decouples from pool boundaires, chaining execution after a work item finishes requires inter-pool operations which would require lock dancing, which is nasty. - Sharing a single nr_active count across the whole system can be pretty expensive on NUMA machines. - Per-pwq enforcement had been more or less okay while we were using per-node pools. It looks like we no longer can avoid decoupling max_active enforcement from pool boundaries. This patch implements system-wide nr_active mechanism with the following design characteristics: - To avoid sharing a single counter across multiple nodes, the configured max_active is split across nodes according to the proportion of each workqueue's online effective CPUs per node. e.g. A node with twice more online effective CPUs will get twice higher portion of max_active. - Workqueue used to be able to process a chain of interdependent work items which is as long as max_active. We can't do this anymore as max_active is distributed across the nodes. Instead, a new parameter min_active is introduced which determines the minimum level of concurrency within a node regardless of how max_active distribution comes out to be. It is set to the smaller of max_active and WQ_DFL_MIN_ACTIVE which is 8. This can lead to higher effective max_weight than configured and also deadlocks if a workqueue was depending on being able to handle chains of interdependent work items that are longer than 8. I believe these should be fine given that the number of CPUs in each NUMA node is usually higher than 8 and work item chain longer than 8 is pretty unlikely. However, if these assumptions turn out to be wrong, we'll need to add an interface to adjust min_active. - Each unbound wq has an array of struct wq_node_nr_active which tracks per-node nr_active. When its pwq wants to run a work item, it has to obtain the matching node's nr_active. If over the node's max_active, the pwq is queued on wq_node_nr_active->pending_pwqs. As work items finish, the completion path round-robins the pending pwqs activating the first inactive work item of each, which involves some pool lock dancing and kicking other pools. It's not the simplest code but doesn't look too bad. v4: - wq_adjust_max_active() updated to invoke wq_update_node_max_active(). - wq_adjust_max_active() is now protected by wq->mutex instead of wq_pool_mutex. v3: - wq_node_max_active() used to calculate per-node max_active on the fly based on system-wide CPU online states. Lai pointed out that this can lead to skewed distributions for workqueues with restricted cpumasks. Update the max_active distribution to use per-workqueue effective online CPU counts instead of system-wide and cache the calculation results in node_nr_active->max. v2: - wq->min/max_active now uses WRITE/READ_ONCE() as suggested by Lai. Signed-off-by: Tejun Heo Reported-by: Naohiro Aota Link: http://lkml.kernel.org/r/dbu6wiwu3sdhmhikb2w6lns7b27gbobfavhjj57kwi2q= uafgwl@htjcc5oikcr3 Fixes: 636b927eba5b ("workqueue: Make unbound workqueues to use per-cpu poo= l_workqueues") Reviewed-by: Lai Jiangshan Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- include/linux/workqueue.h | 35 +++- kernel/workqueue.c | 341 ++++++++++++++++++++++++++++++++++---- 2 files changed, 341 insertions(+), 35 deletions(-) diff --git a/include/linux/workqueue.h b/include/linux/workqueue.h index 24b1e5070f4d4..ad97453e7c3a3 100644 --- a/include/linux/workqueue.h +++ b/include/linux/workqueue.h @@ -405,6 +405,13 @@ enum { WQ_MAX_ACTIVE =3D 512, /* I like 512, better ideas? */ WQ_UNBOUND_MAX_ACTIVE =3D WQ_MAX_ACTIVE, WQ_DFL_ACTIVE =3D WQ_MAX_ACTIVE / 2, + + /* + * Per-node default cap on min_active. Unless explicitly set, min_active + * is set to min(max_active, WQ_DFL_MIN_ACTIVE). For more details, see + * workqueue_struct->min_active definition. + */ + WQ_DFL_MIN_ACTIVE =3D 8, }; =20 /* @@ -447,11 +454,33 @@ extern struct workqueue_struct *system_freezable_powe= r_efficient_wq; * alloc_workqueue - allocate a workqueue * @fmt: printf format for the name of the workqueue * @flags: WQ_* flags - * @max_active: max in-flight work items per CPU, 0 for default + * @max_active: max in-flight work items, 0 for default * remaining args: args for @fmt * - * Allocate a workqueue with the specified parameters. For detailed - * information on WQ_* flags, please refer to + * For a per-cpu workqueue, @max_active limits the number of in-flight work + * items for each CPU. e.g. @max_active of 1 indicates that each CPU can be + * executing at most one work item for the workqueue. + * + * For unbound workqueues, @max_active limits the number of in-flight work= items + * for the whole system. e.g. @max_active of 16 indicates that that there = can be + * at most 16 work items executing for the workqueue in the whole system. + * + * As sharing the same active counter for an unbound workqueue across mult= iple + * NUMA nodes can be expensive, @max_active is distributed to each NUMA no= de + * according to the proportion of the number of online CPUs and enforced + * independently. + * + * Depending on online CPU distribution, a node may end up with per-node + * max_active which is significantly lower than @max_active, which can lea= d to + * deadlocks if the per-node concurrency limit is lower than the maximum n= umber + * of interdependent work items for the workqueue. + * + * To guarantee forward progress regardless of online CPU distribution, the + * concurrency limit on every node is guaranteed to be equal to or greater= than + * min_active which is set to min(@max_active, %WQ_DFL_MIN_ACTIVE). This m= eans + * that the sum of per-node max_active's may be larger than @max_active. + * + * For detailed information on %WQ_* flags, please refer to * Documentation/core-api/workqueue.rst. * * RETURNS: diff --git a/kernel/workqueue.c b/kernel/workqueue.c index 252ad3bfe7998..b2975e44dffa9 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -122,6 +122,9 @@ enum { * * L: pool->lock protected. Access with pool->lock held. * + * LN: pool->lock and wq_node_nr_active->lock protected for writes. Either= for + * reads. + * * K: Only modified by worker while holding pool->lock. Can be safely read= by * self, while holding pool->lock or from IRQ context if %current is the * kworker. @@ -243,17 +246,18 @@ struct pool_workqueue { * pwq->inactive_works instead of pool->worklist and marked with * WORK_STRUCT_INACTIVE. * - * All work items marked with WORK_STRUCT_INACTIVE do not participate - * in pwq->nr_active and all work items in pwq->inactive_works are - * marked with WORK_STRUCT_INACTIVE. But not all WORK_STRUCT_INACTIVE - * work items are in pwq->inactive_works. Some of them are ready to - * run in pool->worklist or worker->scheduled. Those work itmes are - * only struct wq_barrier which is used for flush_work() and should - * not participate in pwq->nr_active. For non-barrier work item, it - * is marked with WORK_STRUCT_INACTIVE iff it is in pwq->inactive_works. + * All work items marked with WORK_STRUCT_INACTIVE do not participate in + * nr_active and all work items in pwq->inactive_works are marked with + * WORK_STRUCT_INACTIVE. But not all WORK_STRUCT_INACTIVE work items are + * in pwq->inactive_works. Some of them are ready to run in + * pool->worklist or worker->scheduled. Those work itmes are only struct + * wq_barrier which is used for flush_work() and should not participate + * in nr_active. For non-barrier work item, it is marked with + * WORK_STRUCT_INACTIVE iff it is in pwq->inactive_works. */ int nr_active; /* L: nr of active works */ struct list_head inactive_works; /* L: inactive works */ + struct list_head pending_node; /* LN: node on wq_node_nr_active->pending_= pwqs */ struct list_head pwqs_node; /* WR: node on wq->pwqs */ struct list_head mayday_node; /* MD: node on wq->maydays */ =20 @@ -285,9 +289,19 @@ struct wq_device; * on each CPU, in an unbound workqueue, max_active applies to the whole s= ystem. * As sharing a single nr_active across multiple sockets can be very expen= sive, * the counting and enforcement is per NUMA node. + * + * The following struct is used to enforce per-node max_active. When a pwq= wants + * to start executing a work item, it should increment ->nr using + * tryinc_node_nr_active(). If acquisition fails due to ->nr already being= over + * ->max, the pwq is queued on ->pending_pwqs. As in-flight work items fin= ish + * and decrement ->nr, node_activate_pending_pwq() activates the pending p= wqs in + * round-robin order. */ struct wq_node_nr_active { - atomic_t nr; /* per-node nr_active count */ + int max; /* per-node max_active */ + atomic_t nr; /* per-node nr_active */ + raw_spinlock_t lock; /* nests inside pool locks */ + struct list_head pending_pwqs; /* LN: pwqs with inactive works */ }; =20 /* @@ -310,8 +324,12 @@ struct workqueue_struct { struct worker *rescuer; /* MD: rescue worker */ =20 int nr_drainers; /* WQ: drain in progress */ + + /* See alloc_workqueue() function comment for info on min/max_active */ int max_active; /* WO: max active works */ + int min_active; /* WO: min active works */ int saved_max_active; /* WQ: saved max_active */ + int saved_min_active; /* WQ: saved min_active */ =20 struct workqueue_attrs *unbound_attrs; /* PW: only for unbound wqs */ struct pool_workqueue __rcu *dfl_pwq; /* PW: only for unbound wqs */ @@ -657,6 +675,19 @@ static struct pool_workqueue *unbound_pwq(struct workq= ueue_struct *wq, int cpu) lockdep_is_held(&wq->mutex)); } =20 +/** + * unbound_effective_cpumask - effective cpumask of an unbound workqueue + * @wq: workqueue of interest + * + * @wq->unbound_attrs->cpumask contains the cpumask requested by the user = which + * is masked with wq_unbound_cpumask to determine the effective cpumask. T= he + * default pwq is always mapped to the pool with the current effective cpu= mask. + */ +static struct cpumask *unbound_effective_cpumask(struct workqueue_struct *= wq) +{ + return unbound_pwq(wq, -1)->pool->attrs->__pod_cpumask; +} + static unsigned int work_color_to_flags(int color) { return color << WORK_STRUCT_COLOR_SHIFT; @@ -1451,6 +1482,46 @@ static struct wq_node_nr_active *wq_node_nr_active(s= truct workqueue_struct *wq, return wq->node_nr_active[node]; } =20 +/** + * wq_update_node_max_active - Update per-node max_actives to use + * @wq: workqueue to update + * @off_cpu: CPU that's going down, -1 if a CPU is not going down + * + * Update @wq->node_nr_active[]->max. @wq must be unbound. max_active is + * distributed among nodes according to the proportions of numbers of onli= ne + * cpus. The result is always between @wq->min_active and max_active. + */ +static void wq_update_node_max_active(struct workqueue_struct *wq, int off= _cpu) +{ + struct cpumask *effective =3D unbound_effective_cpumask(wq); + int min_active =3D READ_ONCE(wq->min_active); + int max_active =3D READ_ONCE(wq->max_active); + int total_cpus, node; + + lockdep_assert_held(&wq->mutex); + + if (!cpumask_test_cpu(off_cpu, effective)) + off_cpu =3D -1; + + total_cpus =3D cpumask_weight_and(effective, cpu_online_mask); + if (off_cpu >=3D 0) + total_cpus--; + + for_each_node(node) { + int node_cpus; + + node_cpus =3D cpumask_weight_and(effective, cpumask_of_node(node)); + if (off_cpu >=3D 0 && cpu_to_node(off_cpu) =3D=3D node) + node_cpus--; + + wq_node_nr_active(wq, node)->max =3D + clamp(DIV_ROUND_UP(max_active * node_cpus, total_cpus), + min_active, max_active); + } + + wq_node_nr_active(wq, NUMA_NO_NODE)->max =3D min_active; +} + /** * get_pwq - get an extra reference on the specified pool_workqueue * @pwq: pool_workqueue to get @@ -1548,35 +1619,98 @@ static bool pwq_activate_work(struct pool_workqueue= *pwq, return true; } =20 +static bool tryinc_node_nr_active(struct wq_node_nr_active *nna) +{ + int max =3D READ_ONCE(nna->max); + + while (true) { + int old, tmp; + + old =3D atomic_read(&nna->nr); + if (old >=3D max) + return false; + tmp =3D atomic_cmpxchg_relaxed(&nna->nr, old, old + 1); + if (tmp =3D=3D old) + return true; + } +} + /** * pwq_tryinc_nr_active - Try to increment nr_active for a pwq * @pwq: pool_workqueue of interest + * @fill: max_active may have increased, try to increase concurrency level * * Try to increment nr_active for @pwq. Returns %true if an nr_active coun= t is * successfully obtained. %false otherwise. */ -static bool pwq_tryinc_nr_active(struct pool_workqueue *pwq) +static bool pwq_tryinc_nr_active(struct pool_workqueue *pwq, bool fill) { struct workqueue_struct *wq =3D pwq->wq; struct worker_pool *pool =3D pwq->pool; struct wq_node_nr_active *nna =3D wq_node_nr_active(wq, pool->node); - bool obtained; + bool obtained =3D false; =20 lockdep_assert_held(&pool->lock); =20 - obtained =3D pwq->nr_active < READ_ONCE(wq->max_active); + if (!nna) { + /* per-cpu workqueue, pwq->nr_active is sufficient */ + obtained =3D pwq->nr_active < READ_ONCE(wq->max_active); + goto out; + } + + /* + * Unbound workqueue uses per-node shared nr_active $nna. If @pwq is + * already waiting on $nna, pwq_dec_nr_active() will maintain the + * concurrency level. Don't jump the line. + * + * We need to ignore the pending test after max_active has increased as + * pwq_dec_nr_active() can only maintain the concurrency level but not + * increase it. This is indicated by @fill. + */ + if (!list_empty(&pwq->pending_node) && likely(!fill)) + goto out; + + obtained =3D tryinc_node_nr_active(nna); + if (obtained) + goto out; + + /* + * Lockless acquisition failed. Lock, add ourself to $nna->pending_pwqs + * and try again. The smp_mb() is paired with the implied memory barrier + * of atomic_dec_return() in pwq_dec_nr_active() to ensure that either + * we see the decremented $nna->nr or they see non-empty + * $nna->pending_pwqs. + */ + raw_spin_lock(&nna->lock); + + if (list_empty(&pwq->pending_node)) + list_add_tail(&pwq->pending_node, &nna->pending_pwqs); + else if (likely(!fill)) + goto out_unlock; + + smp_mb(); + + obtained =3D tryinc_node_nr_active(nna); =20 - if (obtained) { + /* + * If @fill, @pwq might have already been pending. Being spuriously + * pending in cold paths doesn't affect anything. Let's leave it be. + */ + if (obtained && likely(!fill)) + list_del_init(&pwq->pending_node); + +out_unlock: + raw_spin_unlock(&nna->lock); +out: + if (obtained) pwq->nr_active++; - if (nna) - atomic_inc(&nna->nr); - } return obtained; } =20 /** * pwq_activate_first_inactive - Activate the first inactive work item on = a pwq * @pwq: pool_workqueue of interest + * @fill: max_active may have increased, try to increase concurrency level * * Activate the first inactive work item of @pwq if available and allowed = by * max_active limit. @@ -1584,13 +1718,13 @@ static bool pwq_tryinc_nr_active(struct pool_workqu= eue *pwq) * Returns %true if an inactive work item has been activated. %false if no * inactive work item is found or max_active limit is reached. */ -static bool pwq_activate_first_inactive(struct pool_workqueue *pwq) +static bool pwq_activate_first_inactive(struct pool_workqueue *pwq, bool f= ill) { struct work_struct *work =3D list_first_entry_or_null(&pwq->inactive_works, struct work_struct, entry); =20 - if (work && pwq_tryinc_nr_active(pwq)) { + if (work && pwq_tryinc_nr_active(pwq, fill)) { __pwq_activate_work(pwq, work); return true; } else { @@ -1598,11 +1732,93 @@ static bool pwq_activate_first_inactive(struct pool= _workqueue *pwq) } } =20 +/** + * node_activate_pending_pwq - Activate a pending pwq on a wq_node_nr_acti= ve + * @nna: wq_node_nr_active to activate a pending pwq for + * @caller_pool: worker_pool the caller is locking + * + * Activate a pwq in @nna->pending_pwqs. Called with @caller_pool locked. + * @caller_pool may be unlocked and relocked to lock other worker_pools. + */ +static void node_activate_pending_pwq(struct wq_node_nr_active *nna, + struct worker_pool *caller_pool) +{ + struct worker_pool *locked_pool =3D caller_pool; + struct pool_workqueue *pwq; + struct work_struct *work; + + lockdep_assert_held(&caller_pool->lock); + + raw_spin_lock(&nna->lock); +retry: + pwq =3D list_first_entry_or_null(&nna->pending_pwqs, + struct pool_workqueue, pending_node); + if (!pwq) + goto out_unlock; + + /* + * If @pwq is for a different pool than @locked_pool, we need to lock + * @pwq->pool->lock. Let's trylock first. If unsuccessful, do the unlock + * / lock dance. For that, we also need to release @nna->lock as it's + * nested inside pool locks. + */ + if (pwq->pool !=3D locked_pool) { + raw_spin_unlock(&locked_pool->lock); + locked_pool =3D pwq->pool; + if (!raw_spin_trylock(&locked_pool->lock)) { + raw_spin_unlock(&nna->lock); + raw_spin_lock(&locked_pool->lock); + raw_spin_lock(&nna->lock); + goto retry; + } + } + + /* + * $pwq may not have any inactive work items due to e.g. cancellations. + * Drop it from pending_pwqs and see if there's another one. + */ + work =3D list_first_entry_or_null(&pwq->inactive_works, + struct work_struct, entry); + if (!work) { + list_del_init(&pwq->pending_node); + goto retry; + } + + /* + * Acquire an nr_active count and activate the inactive work item. If + * $pwq still has inactive work items, rotate it to the end of the + * pending_pwqs so that we round-robin through them. This means that + * inactive work items are not activated in queueing order which is fine + * given that there has never been any ordering across different pwqs. + */ + if (likely(tryinc_node_nr_active(nna))) { + pwq->nr_active++; + __pwq_activate_work(pwq, work); + + if (list_empty(&pwq->inactive_works)) + list_del_init(&pwq->pending_node); + else + list_move_tail(&pwq->pending_node, &nna->pending_pwqs); + + /* if activating a foreign pool, make sure it's running */ + if (pwq->pool !=3D caller_pool) + kick_pool(pwq->pool); + } + +out_unlock: + raw_spin_unlock(&nna->lock); + if (locked_pool !=3D caller_pool) { + raw_spin_unlock(&locked_pool->lock); + raw_spin_lock(&caller_pool->lock); + } +} + /** * pwq_dec_nr_active - Retire an active count * @pwq: pool_workqueue of interest * * Decrement @pwq's nr_active and try to activate the first inactive work = item. + * For unbound workqueues, this function may temporarily drop @pwq->pool->= lock. */ static void pwq_dec_nr_active(struct pool_workqueue *pwq) { @@ -1622,12 +1838,29 @@ static void pwq_dec_nr_active(struct pool_workqueue= *pwq) * inactive work item on @pwq itself. */ if (!nna) { - pwq_activate_first_inactive(pwq); + pwq_activate_first_inactive(pwq, false); return; } =20 - atomic_dec(&nna->nr); - pwq_activate_first_inactive(pwq); + /* + * If @pwq is for an unbound workqueue, it's more complicated because + * multiple pwqs and pools may be sharing the nr_active count. When a + * pwq needs to wait for an nr_active count, it puts itself on + * $nna->pending_pwqs. The following atomic_dec_return()'s implied + * memory barrier is paired with smp_mb() in pwq_tryinc_nr_active() to + * guarantee that either we see non-empty pending_pwqs or they see + * decremented $nna->nr. + * + * $nna->max may change as CPUs come online/offline and @pwq->wq's + * max_active gets updated. However, it is guaranteed to be equal to or + * larger than @pwq->wq->min_active which is above zero unless freezing. + * This maintains the forward progress guarantee. + */ + if (atomic_dec_return(&nna->nr) >=3D READ_ONCE(nna->max)) + return; + + if (!list_empty(&nna->pending_pwqs)) + node_activate_pending_pwq(nna, pool); } =20 /** @@ -1948,7 +2181,7 @@ static void __queue_work(int cpu, struct workqueue_st= ruct *wq, * @work must also queue behind existing inactive work items to maintain * ordering when max_active changes. See wq_adjust_max_active(). */ - if (list_empty(&pwq->inactive_works) && pwq_tryinc_nr_active(pwq)) { + if (list_empty(&pwq->inactive_works) && pwq_tryinc_nr_active(pwq, false))= { if (list_empty(&pool->worklist)) pool->watchdog_ts =3D jiffies; =20 @@ -3181,7 +3414,7 @@ static void insert_wq_barrier(struct pool_workqueue *= pwq, =20 barr->task =3D current; =20 - /* The barrier work item does not participate in pwq->nr_active. */ + /* The barrier work item does not participate in nr_active. */ work_flags |=3D WORK_STRUCT_INACTIVE; =20 /* @@ -4097,6 +4330,8 @@ static void free_node_nr_active(struct wq_node_nr_act= ive **nna_ar) static void init_node_nr_active(struct wq_node_nr_active *nna) { atomic_set(&nna->nr, 0); + raw_spin_lock_init(&nna->lock); + INIT_LIST_HEAD(&nna->pending_pwqs); } =20 /* @@ -4336,6 +4571,15 @@ static void pwq_release_workfn(struct kthread_work *= work) mutex_unlock(&wq_pool_mutex); } =20 + if (!list_empty(&pwq->pending_node)) { + struct wq_node_nr_active *nna =3D + wq_node_nr_active(pwq->wq, pwq->pool->node); + + raw_spin_lock_irq(&nna->lock); + list_del_init(&pwq->pending_node); + raw_spin_unlock_irq(&nna->lock); + } + call_rcu(&pwq->rcu, rcu_free_pwq); =20 /* @@ -4361,6 +4605,7 @@ static void init_pwq(struct pool_workqueue *pwq, stru= ct workqueue_struct *wq, pwq->flush_color =3D -1; pwq->refcnt =3D 1; INIT_LIST_HEAD(&pwq->inactive_works); + INIT_LIST_HEAD(&pwq->pending_node); INIT_LIST_HEAD(&pwq->pwqs_node); INIT_LIST_HEAD(&pwq->mayday_node); kthread_init_work(&pwq->release_work, pwq_release_workfn); @@ -4568,6 +4813,9 @@ static void apply_wqattrs_commit(struct apply_wqattrs= _ctx *ctx) ctx->pwq_tbl[cpu]); ctx->dfl_pwq =3D install_unbound_pwq(ctx->wq, -1, ctx->dfl_pwq); =20 + /* update node_nr_active->max */ + wq_update_node_max_active(ctx->wq, -1); + mutex_unlock(&ctx->wq->mutex); } =20 @@ -4841,24 +5089,35 @@ static int init_rescuer(struct workqueue_struct *wq) static void wq_adjust_max_active(struct workqueue_struct *wq) { bool activated; + int new_max, new_min; =20 lockdep_assert_held(&wq->mutex); =20 if ((wq->flags & WQ_FREEZABLE) && workqueue_freezing) { - WRITE_ONCE(wq->max_active, 0); - return; + new_max =3D 0; + new_min =3D 0; + } else { + new_max =3D wq->saved_max_active; + new_min =3D wq->saved_min_active; } =20 - if (wq->max_active =3D=3D wq->saved_max_active) + if (wq->max_active =3D=3D new_max && wq->min_active =3D=3D new_min) return; =20 /* - * Update @wq->max_active and then kick inactive work items if more + * Update @wq->max/min_active and then kick inactive work items if more * active work items are allowed. This doesn't break work item ordering * because new work items are always queued behind existing inactive * work items if there are any. */ - WRITE_ONCE(wq->max_active, wq->saved_max_active); + WRITE_ONCE(wq->max_active, new_max); + WRITE_ONCE(wq->min_active, new_min); + + if (wq->flags & WQ_UNBOUND) + wq_update_node_max_active(wq, -1); + + if (new_max =3D=3D 0) + return; =20 /* * Round-robin through pwq's activating the first inactive work item @@ -4873,7 +5132,7 @@ static void wq_adjust_max_active(struct workqueue_str= uct *wq) =20 /* can be called during early boot w/ irq disabled */ raw_spin_lock_irqsave(&pwq->pool->lock, flags); - if (pwq_activate_first_inactive(pwq)) { + if (pwq_activate_first_inactive(pwq, true)) { activated =3D true; kick_pool(pwq->pool); } @@ -4935,7 +5194,9 @@ struct workqueue_struct *alloc_workqueue(const char *= fmt, /* init wq */ wq->flags =3D flags; wq->max_active =3D max_active; - wq->saved_max_active =3D max_active; + wq->min_active =3D min(max_active, WQ_DFL_MIN_ACTIVE); + wq->saved_max_active =3D wq->max_active; + wq->saved_min_active =3D wq->min_active; mutex_init(&wq->mutex); atomic_set(&wq->nr_pwqs_to_flush, 0); INIT_LIST_HEAD(&wq->pwqs); @@ -5101,7 +5362,8 @@ EXPORT_SYMBOL_GPL(destroy_workqueue); * @wq: target workqueue * @max_active: new max_active value. * - * Set max_active of @wq to @max_active. + * Set max_active of @wq to @max_active. See the alloc_workqueue() function + * comment. * * CONTEXT: * Don't call from IRQ context. @@ -5118,6 +5380,9 @@ void workqueue_set_max_active(struct workqueue_struct= *wq, int max_active) =20 wq->flags &=3D ~__WQ_ORDERED; wq->saved_max_active =3D max_active; + if (wq->flags & WQ_UNBOUND) + wq->saved_min_active =3D min(wq->saved_min_active, max_active); + wq_adjust_max_active(wq); =20 mutex_unlock(&wq->mutex); @@ -5799,6 +6064,10 @@ int workqueue_online_cpu(unsigned int cpu) =20 for_each_cpu(tcpu, pt->pod_cpus[pt->cpu_pod[cpu]]) wq_update_pod(wq, tcpu, cpu, true); + + mutex_lock(&wq->mutex); + wq_update_node_max_active(wq, -1); + mutex_unlock(&wq->mutex); } } =20 @@ -5827,6 +6096,10 @@ int workqueue_offline_cpu(unsigned int cpu) =20 for_each_cpu(tcpu, pt->pod_cpus[pt->cpu_pod[cpu]]) wq_update_pod(wq, tcpu, cpu, false); + + mutex_lock(&wq->mutex); + wq_update_node_max_active(wq, cpu); + mutex_unlock(&wq->mutex); } } mutex_unlock(&wq_pool_mutex); @@ -7023,8 +7296,12 @@ void __init workqueue_init_topology(void) * combinations to apply per-pod sharing. */ list_for_each_entry(wq, &workqueues, list) { - for_each_online_cpu(cpu) { + for_each_online_cpu(cpu) wq_update_pod(wq, cpu, cpu, true); + if (wq->flags & WQ_UNBOUND) { + mutex_lock(&wq->mutex); + wq_update_node_max_active(wq, -1); + mutex_unlock(&wq->mutex); } } =20 --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A63BE1E6F5A; Sun, 24 Mar 2024 23:02: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=1711321353; cv=none; b=UhshCNo1hYSCiJ+AivorL9mKrRsNaxfoa0oPBnULUBgC0XWjlg3ZIMSlKxTDtDrNToQ4OtTHpPV+QRs2U03ZUgMzmdmOmE4UFqtOAIwK6mbgTX+MwhKlvY6G29u0jV3dFs4y4pvCo4Te8DTww/L3NICMTFEtW1l3vv9CiOHZsHg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321353; c=relaxed/simple; bh=kM8YQXp6o/qYORoiPGCKnGbBby/uVMwI8X/vAzgwhGU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=LkDgO8D5dK6wW7ujXnGnQEbs6fy5qvyjhs7pWZImwlmbjY0XxRcZYubuddycOFUPM65NT4VPT5EhFZJtOr4w4ZTKyp3r+JRPiNparQyB5PijR0kBCUgl8pIKKLwujD3BKSGMthoYAAqPW233UQXlpmqZNhS4xM7/NpkCGzDiHLc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=AWJkyCvf; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="AWJkyCvf" Received: by smtp.kernel.org (Postfix) with ESMTPSA id CB6CAC433F1; Sun, 24 Mar 2024 23:02:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321352; bh=kM8YQXp6o/qYORoiPGCKnGbBby/uVMwI8X/vAzgwhGU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=AWJkyCvftkYW4R6Z1rCp6UlvqTadMTP1x2BABH+8IJvAZUlkQSNjVlABaqNZp8Z1X vRGDnTzL25r8CNCODe6ACprHCCZIZOh5WORzSpeZRj0uRhGUmQYrIYk2xyYzZ0IaXZ qByUQX5CtSNRFGH0/jwheos75NW8lLiYwmvpj9MsSO8Zf25chNxyQiMOeOoz/43MPd kadirSTnB0v6lfTgd4CY6WBCf27q6qOg/ocBmd9KcwqZJBmyRhHHQPog4OCUBXPSDf SvLaos89dgg7fWschiybJ9BC4YPeKCZwau1U+M9ocrv9C1xzZ5wpVLJEewiCnmBGS5 CmYAj0w9fqB3w== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Tejun Heo , Marek Szyprowski , Nathan Chancellor , Sasha Levin Subject: [PATCH 6.6 077/638] workqueue: Don't call cpumask_test_cpu() with -1 CPU in wq_update_node_max_active() Date: Sun, 24 Mar 2024 18:51:54 -0400 Message-ID: <20240324230116.1348576-78-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Tejun Heo [ Upstream commit 15930da42f8981dc42c19038042947b475b19f47 ] For wq_update_node_max_active(), @off_cpu of -1 indicates that no CPU is going down. The function was incorrectly calling cpumask_test_cpu() with -1 CPU leading to oopses like the following on some archs: Unable to handle kernel paging request at virtual address ffff0002100296e0 .. pc : wq_update_node_max_active+0x50/0x1fc lr : wq_update_node_max_active+0x1f0/0x1fc ... Call trace: wq_update_node_max_active+0x50/0x1fc apply_wqattrs_commit+0xf0/0x114 apply_workqueue_attrs_locked+0x58/0xa0 alloc_workqueue+0x5ac/0x774 workqueue_init_early+0x460/0x540 start_kernel+0x258/0x684 __primary_switched+0xb8/0xc0 Code: 9100a273 35000d01 53067f00 d0016dc1 (f8607a60) ---[ end trace 0000000000000000 ]--- Kernel panic - not syncing: Attempted to kill the idle task! ---[ end Kernel panic - not syncing: Attempted to kill the idle task! ]--- Fix it. Signed-off-by: Tejun Heo Reported-by: Marek Szyprowski Reported-by: Nathan Chancellor Tested-by: Nathan Chancellor Link: http://lkml.kernel.org/r/91eacde0-df99-4d5c-a980-91046f66e612@samsung= .com Fixes: 5797b1c18919 ("workqueue: Implement system-wide nr_active enforcemen= t for unbound workqueues") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- kernel/workqueue.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/workqueue.c b/kernel/workqueue.c index b2975e44dffa9..7d231bbd16593 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -1500,7 +1500,7 @@ static void wq_update_node_max_active(struct workqueu= e_struct *wq, int off_cpu) =20 lockdep_assert_held(&wq->mutex); =20 - if (!cpumask_test_cpu(off_cpu, effective)) + if (off_cpu >=3D 0 && !cpumask_test_cpu(off_cpu, effective)) off_cpu =3D -1; =20 total_cpus =3D cpumask_weight_and(effective, cpu_online_mask); --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8E96E130AD6; Sun, 24 Mar 2024 23:02: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=1711321354; cv=none; b=DzIsVTI9q1UhnPaoP95sX//jXv/gDR9uX8tgOzBqnx34+jJ502rBZkVNaSlzppnFtStclcV4AyrmXW9YO3GNSb3FCzUVjPP7Ak2Bh/BzB5DIGqjk60PXm+/UFtSE1h90DNM1ZTCtOGmAC8bnSCf1s678WsPpsZtHhRpbNMlVd9Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321354; c=relaxed/simple; bh=jtxf9O/jwcbFCCjmh74DlbdpYuDebk1mTbL4kpKOfUM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MXtfhoNiV8WP0bI6s/CgC8bkeP4IAwiTX5Imyds2TyF3FwPHyTD2hRUGA6GepS2v3oiqwNckLuxPwv6zVs0QmutGaTx81HTmxeAwQlWWIUw6vHAaLWvdXIxaB+LHKyUaeOuipeuLLeqhhg9/4ZFR6ejoj5sGMtG6rg04Yffg2Q4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=RUZI2hqU; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="RUZI2hqU" Received: by smtp.kernel.org (Postfix) with ESMTPSA id C8B45C43390; Sun, 24 Mar 2024 23:02:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321353; bh=jtxf9O/jwcbFCCjmh74DlbdpYuDebk1mTbL4kpKOfUM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=RUZI2hqUONZUinqUSfBHl2R1pY3xEzgXGsxZChry6q1T3I4F6OzzdQKedZAF5lkej gInDjMNvOGCG/K282Fgl+uUnDziCmx55e5+Wtx+oBigp01yf9BfBe2w8t6wAc6FP89 xk82vhXT3uqYy5q6b1iuVlWjiaZZlxfc/xFFmxSlP0kimTShN8RNqJQOhuuv9iVnLf m7NiOYa2bsfUiCJvmzEaP05hnvWDFmv6MmhOoFgS3OT22C6i7axqYcN87cJbInvPqN owPD977icRCL0d4moawCulcldAyfEQ0ffQiKbzlueJ3k/R+joEU2HvW1rNRMxcjnfy s+0GydgOC82uQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Christoph Hellwig , Christian Brauner , Sasha Levin Subject: [PATCH 6.6 078/638] iomap: clear the per-folio dirty bits on all writeback failures Date: Sun, 24 Mar 2024 18:51:55 -0400 Message-ID: <20240324230116.1348576-79-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Christoph Hellwig [ Upstream commit 7ea1d9b4a840c2dd01d1234663d4a8ef256cfe39 ] write_cache_pages always clear the page dirty bit before calling into the file systems, and leaves folios with a writeback failure without the dirty bit after return. We also clear the per-block writeback bits for writeback failures unless no I/O has submitted, which will leave the folio in an inconsistent state where it doesn't have the folio dirty, but one or more per-block dirty bits. This seems to be due the place where the iomap_clear_range_dirty call was inserted into the existing not very clearly structured code when adding per-block dirty bit support and not actually intentional. Switch to always clearing the dirty on writeback failure. Fixes: 4ce02c679722 ("iomap: Add per-block dirty state tracking to improve = performance") Signed-off-by: Christoph Hellwig Link: https://lore.kernel.org/r/20231207072710.176093-2-hch@lst.de Signed-off-by: Christian Brauner Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- fs/iomap/buffered-io.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/fs/iomap/buffered-io.c b/fs/iomap/buffered-io.c index 2bc0aa23fde3b..1c63e48230aed 100644 --- a/fs/iomap/buffered-io.c +++ b/fs/iomap/buffered-io.c @@ -1830,16 +1830,10 @@ iomap_writepage_map(struct iomap_writepage_ctx *wpc, if (unlikely(error)) { /* * Let the filesystem know what portion of the current page - * failed to map. If the page hasn't been added to ioend, it - * won't be affected by I/O completion and we must unlock it - * now. + * failed to map. */ if (wpc->ops->discard_folio) wpc->ops->discard_folio(folio, pos); - if (!count) { - folio_unlock(folio); - goto done; - } } =20 /* @@ -1848,6 +1842,16 @@ iomap_writepage_map(struct iomap_writepage_ctx *wpc, * all the dirty bits in the folio here. */ iomap_clear_range_dirty(folio, 0, folio_size(folio)); + + /* + * If the page hasn't been added to the ioend, it won't be affected by + * I/O completion and we must unlock it now. + */ + if (error && !count) { + folio_unlock(folio); + goto done; + } + folio_start_writeback(folio); folio_unlock(folio); =20 --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4BE901FEC4C; Sun, 24 Mar 2024 23:02: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=1711321356; cv=none; b=e5+w6s+oox1DL5EvOdxn+EnByQh+Jv5UK3CC6nzJhjTBxM5hb9JngiXJDxDAhTsgr34/VdfBBoMIwXss0y1P3DJ2I9N+iZTFt+ThJa0OFF4PlLW6l6arZUYY+E8BawiRrbsVjbin5PFkPjZSiRxWXtUniLT8vH/HapniG7pRLH0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321356; c=relaxed/simple; bh=onkvyguq4HFdPtigEVPnPbofRG4g4WsxNdnGYH6yWSI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=uhiUSztAHFXcbBhwBMdBmHq6cSs5cujUMOTFwfc+IbxcF3IoTV/EJD8vmE40byvN63QOn0pjnGhjbONX9YNI+CGfnIZ81nodRHSuLbCIv1BQG3W5caMVFXLdnQDmQP/7yhEYgrmxm/9InxSWD/gv4cleQbSDFA440g9sby4gvmA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=deCH9EC8; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="deCH9EC8" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B2407C433A6; Sun, 24 Mar 2024 23:02:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321354; bh=onkvyguq4HFdPtigEVPnPbofRG4g4WsxNdnGYH6yWSI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=deCH9EC8/2r3bZH56nxV6fBCbWeqtLX2Lk6IFsUK5IECz6PtvYwexwsbnOFfFAVcT FzWNlVqg20Gko6PQe1cI0dIETzlhuWTvYCnaMqPA+lO2gyS5/GFHYZv6jXBRRCRs2r s+z5M32zTwb8LmYR7QrCvPoJl/RWI5sVA7ZFxn36XwDUKkzAGYoqchmOSkHlQQQ+WT MzjVAeTk/LX9A+VUj9zw8yXDl3DHvtjdGVjgYP4sYIfVnYg++4ij9bFS0izncJ4nHh /TKtk2nUWbiCUcly/dOm1oIZzB5lv+/8EFMR+ztU2nJZ5R/D2ES6YujRP/L0LekFgn jrmIaPJzcpMoA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Bart Van Assche , Christoph Hellwig , Kanchan Joshi , Jeff Layton , Chuck Lever , Jens Axboe , Stephen Rothwell , Christian Brauner , Sasha Levin Subject: [PATCH 6.6 079/638] fs: Fix rw_hint validation Date: Sun, 24 Mar 2024 18:51:56 -0400 Message-ID: <20240324230116.1348576-80-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Bart Van Assche [ Upstream commit ec16b147a55bfa14e858234eb7b1a7c8e7cd5021 ] Reject values that are valid rw_hints after truncation but not before truncation by passing an untruncated value to rw_hint_valid(). Reviewed-by: Christoph Hellwig Reviewed-by: Kanchan Joshi Cc: Jeff Layton Cc: Chuck Lever Cc: Jens Axboe Cc: Stephen Rothwell Fixes: 5657cb0797c4 ("fs/fcntl: use copy_to/from_user() for u64 types") Signed-off-by: Bart Van Assche Link: https://lore.kernel.org/r/20240202203926.2478590-2-bvanassche@acm.org Signed-off-by: Christian Brauner Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- fs/fcntl.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/fs/fcntl.c b/fs/fcntl.c index e871009f6c889..9f606714d081b 100644 --- a/fs/fcntl.c +++ b/fs/fcntl.c @@ -268,7 +268,7 @@ static int f_getowner_uids(struct file *filp, unsigned = long arg) } #endif =20 -static bool rw_hint_valid(enum rw_hint hint) +static bool rw_hint_valid(u64 hint) { switch (hint) { case RWH_WRITE_LIFE_NOT_SET: @@ -288,19 +288,17 @@ static long fcntl_rw_hint(struct file *file, unsigned= int cmd, { struct inode *inode =3D file_inode(file); u64 __user *argp =3D (u64 __user *)arg; - enum rw_hint hint; - u64 h; + u64 hint; =20 switch (cmd) { case F_GET_RW_HINT: - h =3D inode->i_write_hint; - if (copy_to_user(argp, &h, sizeof(*argp))) + hint =3D inode->i_write_hint; + if (copy_to_user(argp, &hint, sizeof(*argp))) return -EFAULT; return 0; case F_SET_RW_HINT: - if (copy_from_user(&h, argp, sizeof(h))) + if (copy_from_user(&hint, argp, sizeof(hint))) return -EFAULT; - hint =3D (enum rw_hint) h; if (!rw_hint_valid(hint)) return -EINVAL; =20 --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CCCF11FEC4E; Sun, 24 Mar 2024 23:02: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=1711321356; cv=none; b=XdBbcOMsFx3hlJMpPaxJfYOfQbo4Kknjcyv1ebM5gBWKyLE4BbGf5i6w69TBRVTRi4K5gu+NwIZ2tPzQLG63eFg4UHVet2sa/omJA77e8h7/fiPQAf40Z7kg3wM5/Ac306wHMVbQ+hoO44iFpFcw1nIrrg5x450OZgRDlzDCkbs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321356; c=relaxed/simple; bh=WWGno4u/ko4ud8l+2nYlDUuKalDfim/YmxwwaIa58dg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=cdznUV+2JwhuyiZAfBbePXlz8Q00u4FAbjDL8yiw41k7NE19Oek/bh8pUTQUVNWBlvlyV8KcQXQvDaaB7SYgtMKGin6TjoG3OoCz/UvgRTAUnIwf20TVWBp9i4oWl5v4vS3+nI/CGK6WsHomukZ8hVq1W0ki9eg+BNt34DZofO0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=bNvrv+Ix; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="bNvrv+Ix" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2C397C433C7; Sun, 24 Mar 2024 23:02:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321355; bh=WWGno4u/ko4ud8l+2nYlDUuKalDfim/YmxwwaIa58dg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=bNvrv+Ix/HHqL4c/Ze3a/OBR9dQHW4p2JDeHN8tIx+FSYgWdO+arR+XUPGozAs8Zm PCGtU6peuUij/WJUaTtxUro90U0gNE8QzqaNH1RNZn77ikbAYH+lJ3Mj8LFzG6I5CK GpxUIgQHXepwI6flGyhpp4X4bxgWVfzVCMm8HJXzpupQMAui7QDQPLZP+xI4+FNrSF bBnZi3tjA7Ydv1ohXb0upG+apWDuYH25rva3wP7jUfkSg++8lSF1PCCnLvFBWG3RfE UnsQW/vfFUjM17DOiFkZuLcORuVMFrPwdvYxsYz+XCRv6c6cF7G4tTsU4+4hjNgslB wzBdEYxPz5ESw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jens Axboe , Sasha Levin Subject: [PATCH 6.6 080/638] io_uring: remove looping around handling traditional task_work Date: Sun, 24 Mar 2024 18:51:57 -0400 Message-ID: <20240324230116.1348576-81-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 592b4805432af075468876771c0f7d41273ccb3c ] A previous commit added looping around handling traditional task_work as an optimization, and while that may seem like a good idea, it's also possible to run into application starvation doing so. If the task_work generation is bursty, we can get very deep task_work queues, and we can end up looping in here for a very long time. One immediately observable problem with that is handling network traffic using provided buffers, where flooding incoming traffic and looping task_work handling will very quickly lead to buffer starvation as we keep running task_work rather than returning to the application so it can handle the associated CQEs and also provide buffers back. Fixes: 3a0c037b0e16 ("io_uring: batch task_work") Signed-off-by: Jens Axboe Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- io_uring/io_uring.c | 45 +++++++-------------------------------------- 1 file changed, 7 insertions(+), 38 deletions(-) diff --git a/io_uring/io_uring.c b/io_uring/io_uring.c index 2744d72f10858..e22f6bf837f9d 100644 --- a/io_uring/io_uring.c +++ b/io_uring/io_uring.c @@ -1167,12 +1167,11 @@ static void ctx_flush_and_put(struct io_ring_ctx *c= tx, struct io_tw_state *ts) =20 static unsigned int handle_tw_list(struct llist_node *node, struct io_ring_ctx **ctx, - struct io_tw_state *ts, - struct llist_node *last) + struct io_tw_state *ts) { unsigned int count =3D 0; =20 - while (node && node !=3D last) { + do { struct llist_node *next =3D node->next; struct io_kiocb *req =3D container_of(node, struct io_kiocb, io_task_work.node); @@ -1196,7 +1195,7 @@ static unsigned int handle_tw_list(struct llist_node = *node, *ctx =3D NULL; cond_resched(); } - } + } while (node); =20 return count; } @@ -1215,22 +1214,6 @@ static inline struct llist_node *io_llist_xchg(struc= t llist_head *head, return xchg(&head->first, new); } =20 -/** - * io_llist_cmpxchg - possibly swap all entries in a lock-less list - * @head: the head of lock-less list to delete all entries - * @old: expected old value of the first entry of the list - * @new: new entry as the head of the list - * - * perform a cmpxchg on the first entry of the list. - */ - -static inline struct llist_node *io_llist_cmpxchg(struct llist_head *head, - struct llist_node *old, - struct llist_node *new) -{ - return cmpxchg(&head->first, old, new); -} - static __cold void io_fallback_tw(struct io_uring_task *tctx, bool sync) { struct llist_node *node =3D llist_del_all(&tctx->task_list); @@ -1265,9 +1248,7 @@ void tctx_task_work(struct callback_head *cb) struct io_ring_ctx *ctx =3D NULL; struct io_uring_task *tctx =3D container_of(cb, struct io_uring_task, task_work); - struct llist_node fake =3D {}; struct llist_node *node; - unsigned int loops =3D 0; unsigned int count =3D 0; =20 if (unlikely(current->flags & PF_EXITING)) { @@ -1275,21 +1256,9 @@ void tctx_task_work(struct callback_head *cb) return; } =20 - do { - loops++; - node =3D io_llist_xchg(&tctx->task_list, &fake); - count +=3D handle_tw_list(node, &ctx, &ts, &fake); - - /* skip expensive cmpxchg if there are items in the list */ - if (READ_ONCE(tctx->task_list.first) !=3D &fake) - continue; - if (ts.locked && !wq_list_empty(&ctx->submit_state.compl_reqs)) { - io_submit_flush_completions(ctx); - if (READ_ONCE(tctx->task_list.first) !=3D &fake) - continue; - } - node =3D io_llist_cmpxchg(&tctx->task_list, &fake, NULL); - } while (node !=3D &fake); + node =3D llist_del_all(&tctx->task_list); + if (node) + count =3D handle_tw_list(node, &ctx, &ts); =20 ctx_flush_and_put(ctx, &ts); =20 @@ -1297,7 +1266,7 @@ void tctx_task_work(struct callback_head *cb) if (unlikely(atomic_read(&tctx->in_cancel))) io_uring_drop_tctx_refs(current); =20 - trace_io_uring_task_work_run(tctx, count, loops); + trace_io_uring_task_work_run(tctx, count, 1); } =20 static inline void io_req_local_work_add(struct io_kiocb *req, unsigned fl= ags) --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 97A621FEC57; Sun, 24 Mar 2024 23:02: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=1711321357; cv=none; b=BT0jtAUN/DHjlUlNQasVLS3JQxTH+9GZm7v2KE6kSYaEhwr7Gvrq7KaTe19unsy0GCVI2jxkWsfS0PMIbYlb/MD5zq7DrvihfJS/CM1jjJXwN2I+KKisvm1Va1tSkhM8HKerQ2eCoRGVZWD/rfOuCgM0CRChEZwaA5vZP7VxSvw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321357; c=relaxed/simple; bh=d27Wlxo7LW/OPlWiQL7BRxlIURlkj4LhLWUZy3m8rOE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=dMUN8mRsF/5XuqsyZ7Y66HQPtmAtTH3wFQVLnEdnWbO2XN7Tj3jTdhOQISE3QIkzdVq75K+dNc1rPgn0AHq0ttdDTNTHFYEkKa1uGTb8qNCf2CjbkSGFtyvDLC84r5TjJJkCD0VkAoHT2/HWrKi8+MlTpzVfjflaVvgNwjEu780= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=j7yrMtyz; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="j7yrMtyz" Received: by smtp.kernel.org (Postfix) with ESMTPSA id EDAB5C433F1; Sun, 24 Mar 2024 23:02:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321356; bh=d27Wlxo7LW/OPlWiQL7BRxlIURlkj4LhLWUZy3m8rOE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=j7yrMtyzXMT6rYsP/bwgx720MOMjUq2h6nbUvdtDQ/q+Q+6jRzqkPJQ6WWzOwlM30 GuAr1d7WRp4apED2DUUpCJcrxS/jEVOhJZXlfgef1R4YxjeI+VjaKgONEXMaZD/ukr HkxdQrFE0AwL0c3Lu63oTitpk5BBlm7EabakqGkV94hDNAZI5fL5oMeUNxQ73xz9Mc MWLxu10KE67OgC/0MnHNiwHutFUh6jGMCqpzvw1Wm/Fg2MOeBwpyhCHAlf+xA0V2eW JPJ3/BDktO67Jn+rvZtnohGnoj650pmOQyfxeNWN1HbMbek2+oIyfCMWx2yrh50+6t tt1DjTANo/dJA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jens Axboe , Sasha Levin Subject: [PATCH 6.6 081/638] io_uring: remove unconditional looping in local task_work handling Date: Sun, 24 Mar 2024 18:51:58 -0400 Message-ID: <20240324230116.1348576-82-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 9fe3eaea4a3530ca34a8d8ff00b1848c528789ca ] If we have a ton of notifications coming in, we can be looping in here for a long time. This can be problematic for various reasons, mostly because we can starve userspace. If the application is waiting on N events, then only re-run if we need more events. Fixes: c0e0d6ba25f1 ("io_uring: add IORING_SETUP_DEFER_TASKRUN") Signed-off-by: Jens Axboe Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- io_uring/io_uring.c | 44 +++++++++++++++++++++++++++++--------------- 1 file changed, 29 insertions(+), 15 deletions(-) diff --git a/io_uring/io_uring.c b/io_uring/io_uring.c index e22f6bf837f9d..049a163d0fdd0 100644 --- a/io_uring/io_uring.c +++ b/io_uring/io_uring.c @@ -1363,7 +1363,20 @@ static void __cold io_move_task_work_from_local(stru= ct io_ring_ctx *ctx) } } =20 -static int __io_run_local_work(struct io_ring_ctx *ctx, struct io_tw_state= *ts) +static bool io_run_local_work_continue(struct io_ring_ctx *ctx, int events, + int min_events) +{ + if (llist_empty(&ctx->work_llist)) + return false; + if (events < min_events) + return true; + if (ctx->flags & IORING_SETUP_TASKRUN_FLAG) + atomic_or(IORING_SQ_TASKRUN, &ctx->rings->sq_flags); + return false; +} + +static int __io_run_local_work(struct io_ring_ctx *ctx, struct io_tw_state= *ts, + int min_events) { struct llist_node *node; unsigned int loops =3D 0; @@ -1392,18 +1405,20 @@ static int __io_run_local_work(struct io_ring_ctx *= ctx, struct io_tw_state *ts) } loops++; =20 - if (!llist_empty(&ctx->work_llist)) + if (io_run_local_work_continue(ctx, ret, min_events)) goto again; if (ts->locked) { io_submit_flush_completions(ctx); - if (!llist_empty(&ctx->work_llist)) + if (io_run_local_work_continue(ctx, ret, min_events)) goto again; } + trace_io_uring_local_work_run(ctx, ret, loops); return ret; } =20 -static inline int io_run_local_work_locked(struct io_ring_ctx *ctx) +static inline int io_run_local_work_locked(struct io_ring_ctx *ctx, + int min_events) { struct io_tw_state ts =3D { .locked =3D true, }; int ret; @@ -1411,20 +1426,20 @@ static inline int io_run_local_work_locked(struct i= o_ring_ctx *ctx) if (llist_empty(&ctx->work_llist)) return 0; =20 - ret =3D __io_run_local_work(ctx, &ts); + ret =3D __io_run_local_work(ctx, &ts, min_events); /* shouldn't happen! */ if (WARN_ON_ONCE(!ts.locked)) mutex_lock(&ctx->uring_lock); return ret; } =20 -static int io_run_local_work(struct io_ring_ctx *ctx) +static int io_run_local_work(struct io_ring_ctx *ctx, int min_events) { struct io_tw_state ts =3D {}; int ret; =20 ts.locked =3D mutex_trylock(&ctx->uring_lock); - ret =3D __io_run_local_work(ctx, &ts); + ret =3D __io_run_local_work(ctx, &ts, min_events); if (ts.locked) mutex_unlock(&ctx->uring_lock); =20 @@ -1620,7 +1635,7 @@ static int io_iopoll_check(struct io_ring_ctx *ctx, l= ong min) io_task_work_pending(ctx)) { u32 tail =3D ctx->cached_cq_tail; =20 - (void) io_run_local_work_locked(ctx); + (void) io_run_local_work_locked(ctx, min); =20 if (task_work_pending(current) || wq_list_empty(&ctx->iopoll_list)) { @@ -2463,7 +2478,7 @@ int io_run_task_work_sig(struct io_ring_ctx *ctx) { if (!llist_empty(&ctx->work_llist)) { __set_current_state(TASK_RUNNING); - if (io_run_local_work(ctx) > 0) + if (io_run_local_work(ctx, INT_MAX) > 0) return 0; } if (io_run_task_work() > 0) @@ -2531,7 +2546,7 @@ static int io_cqring_wait(struct io_ring_ctx *ctx, in= t min_events, if (!io_allowed_run_tw(ctx)) return -EEXIST; if (!llist_empty(&ctx->work_llist)) - io_run_local_work(ctx); + io_run_local_work(ctx, min_events); io_run_task_work(); io_cqring_overflow_flush(ctx); /* if user messes with these they will just get an early return */ @@ -2569,11 +2584,10 @@ static int io_cqring_wait(struct io_ring_ctx *ctx, = int min_events, =20 trace_io_uring_cqring_wait(ctx, min_events); do { + int nr_wait =3D (int) iowq.cq_tail - READ_ONCE(ctx->rings->cq.tail); unsigned long check_cq; =20 if (ctx->flags & IORING_SETUP_DEFER_TASKRUN) { - int nr_wait =3D (int) iowq.cq_tail - READ_ONCE(ctx->rings->cq.tail); - atomic_set(&ctx->cq_wait_nr, nr_wait); set_current_state(TASK_INTERRUPTIBLE); } else { @@ -2592,7 +2606,7 @@ static int io_cqring_wait(struct io_ring_ctx *ctx, in= t min_events, */ io_run_task_work(); if (!llist_empty(&ctx->work_llist)) - io_run_local_work(ctx); + io_run_local_work(ctx, nr_wait); =20 /* * Non-local task_work will be run on exit to userspace, but @@ -3283,7 +3297,7 @@ static __cold bool io_uring_try_cancel_requests(struc= t io_ring_ctx *ctx, =20 if ((ctx->flags & IORING_SETUP_DEFER_TASKRUN) && io_allowed_defer_tw_run(ctx)) - ret |=3D io_run_local_work(ctx) > 0; + ret |=3D io_run_local_work(ctx, INT_MAX) > 0; ret |=3D io_cancel_defer_files(ctx, task, cancel_all); mutex_lock(&ctx->uring_lock); ret |=3D io_poll_remove_all(ctx, task, cancel_all); @@ -3642,7 +3656,7 @@ SYSCALL_DEFINE6(io_uring_enter, unsigned int, fd, u32= , to_submit, * it should handle ownership problems if any. */ if (ctx->flags & IORING_SETUP_DEFER_TASKRUN) - (void)io_run_local_work_locked(ctx); + (void)io_run_local_work_locked(ctx, min_complete); } mutex_unlock(&ctx->uring_lock); } --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E6EE11FEC63; Sun, 24 Mar 2024 23:02: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=1711321359; cv=none; b=N0naq1vYtBzk23q0EcFa7srpntU33HH1ko/rZygcZZdORdBxjxpxI2LO8EHTGv2nb0Q7jWukiAOfk/O/haONXQCelGBMEuwVl3yb4a6yv9aM92SPcbtWUeA/2mq0LphtH6mda9aBJitTtJBZkfysdchyD/SGqlIw8KR5BxMBdM0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321359; c=relaxed/simple; bh=iH8ah7eXZyotmaETHj9KsAjfEUDrdDwPbT1nWVVgCc0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=cw6zCDJJ4Fm90LRoAcJrCxY8+KXK0GcxmnzyAfsHDV0hfq+lSZ+q066j7RbgrRLaZpJYDlIQwSLF/JSvS//bqraJpUh9Uy5kAjgZZYiPXc2YlojNdh69PkemFtz7L5j2mUUiKzbg1IHh/0QnI4t3PhoCvHJ8TIRrbzzmSJGA06A= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=jsXzgGh0; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="jsXzgGh0" Received: by smtp.kernel.org (Postfix) with ESMTPSA id BE17FC43394; Sun, 24 Mar 2024 23:02:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321357; bh=iH8ah7eXZyotmaETHj9KsAjfEUDrdDwPbT1nWVVgCc0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jsXzgGh0dOJGhVwNEXCHxbIuZMW6guyWIZqc2iyT+ANbdTV8AqK/IIKcxs3fT7CXE ymeVHPijaLQNTrsjc2NVN2piSeZ1JjdKfGnGcKwW015iTYxhW6jjBOzcSREUXphllg qEkZgzpCR9Mn3iGWY3qCIo7jCqMy9ZWoGi2PaNQjSHksDs6fAmtjTRtBEjYeg50nmc 1V+hcJJQzFcKIDDUO9RI015OJEUFP/wNHI/i8al1obvAhL1BsZxvc9bNJ39lLsKqgA bRG7+Y47q8B/rUPa3h6hokgkcP29HoS2iq9jSZ7c01ZFDusxqznJsQQ3J6PYqV2uz9 Zl7v8xWiFfjLw== 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 6.6 082/638] s390/dasd: Use dev_*() for device log messages Date: Sun, 24 Mar 2024 18:51:59 -0400 Message-ID: <20240324230116.1348576-83-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-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 Tested-by: Takeshi Ogasawara --- 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 5b11ee9234573..96f4c94865846 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 @@ -3406,8 +3403,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 /* @@ -3494,8 +3490,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); @@ -3508,11 +3507,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; } @@ -3520,8 +3518,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; } @@ -3542,8 +3539,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); @@ -3552,16 +3549,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 @@ -3572,10 +3568,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); @@ -3596,11 +3595,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; } @@ -3960,8 +3958,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 Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A7B251FEC6B; Sun, 24 Mar 2024 23:02: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=1711321359; cv=none; b=lbAEBNF1biCCV7ACM72SlQHhoN6aXXWk4jy9Vq2grYPSsb1IpAwlvCe20BrsBHZFSc8fb+AG5MNvDdFasleZdGjP1E8170K/GOUybKPhmjSKFAhh3LOjZ/PYzOcrdx0TtbYk7bYL/Q9AFLCGmOhZ8HoYXsTcX76eGHN9wBz+ErA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321359; c=relaxed/simple; bh=aArt0ecVKv1x3uKidFVlDH6gZHaPAKnhEVj+hI42SJU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=BS7cyl9k4uk/l+FbT5dqlrvKlPtkOJEIzXX10b4xj9Y/BMNfRi+DHODdYiVCVBGRXuzZxgVk3JKRC+83uGo1+zgn9bLnWgiNnhhjjXrngnWjUhNV0HTKhpm6limviRUE92dGzRCAqgBICFGGkZHN8PndKA+POcTO2SM7fELfqvY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=desb2Z4D; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="desb2Z4D" Received: by smtp.kernel.org (Postfix) with ESMTPSA id BB2E2C433F1; Sun, 24 Mar 2024 23:02:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321358; bh=aArt0ecVKv1x3uKidFVlDH6gZHaPAKnhEVj+hI42SJU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=desb2Z4D+n08KZ5yEuE49wRBZ3D0d4ic1zW8srWRoc1JLog0+qDcip6LDpNaQ2Tso pgvxuVCgWzr1gLUJ/kai6jBRFbSrcL7qUvtw8OVhx+uJbAM4KduWtcZgdLdNOblDHq AKMqMra1Mw9CaevsnRaPiAHzMzqH+oNvLVn0rCeoba3THQudkiLpy16Nn5DV0lHgA4 DLiwXkSfLwJtlgIQ+sFWvQ8Px9WBSfR4TcukH6MhhTK1Blf0di2ae/VEAyCgeQvxNc lDEPABvonfFj1FAnuOtX2JrO9/PlyoNLu7U7ErGo86XwBN6cncKga2LX62nFX2yre6 lGUYwDIkxRnSA== 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 6.6 083/638] s390/dasd: fix double module refcount decrement Date: Sun, 24 Mar 2024 18:52:00 -0400 Message-ID: <20240324230116.1348576-84-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-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 Tested-by: Takeshi Ogasawara --- 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 96f4c94865846..6f97456798917 100644 --- a/drivers/s390/block/dasd.c +++ b/drivers/s390/block/dasd.c @@ -3528,12 +3528,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 */ @@ -3541,8 +3540,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 Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BEE4D1FEC72; Sun, 24 Mar 2024 23:02: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=1711321360; cv=none; b=R/67ZbPzXpmFzwlLUOmpLyQ8Ffld2mYhvZK8jzHP2ob6dZLjVjYl//XAHLUAv1qJZ6Pz1ZuESMX/8a19ehudDqUOoahRKckZxAJ8eSZoBy9L5DXnvuJ1xrwX3NFUOxl1W7QNmhIYhsndV5ywvNxV6/647ZK1fcnU0EGZyNmX9qg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321360; c=relaxed/simple; bh=07OLBcZWNFpd2dvobb1dW1Ge/9r10M08MOnow2/sVFo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=bXPdwBV+0PkTsidDDESMyUPYlY16LNh58r638gaDX2RWd5ID3tZ0wqoBhPKwAqS0M4Fi1PkKBmSTRK7dfgR5xymBH3ZdHBsxcaiBuhwJJXl/nB553yHU8ABwvgphKLEGmtf9FE7fxQHAM3GZqaTZMS9O0HEiJ7Od5v4f4upd9nY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=HFyXFX1E; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="HFyXFX1E" Received: by smtp.kernel.org (Postfix) with ESMTPSA id CF0AAC43399; Sun, 24 Mar 2024 23:02:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321359; bh=07OLBcZWNFpd2dvobb1dW1Ge/9r10M08MOnow2/sVFo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=HFyXFX1ESLIrgEVQBuZByfxl47MlcKh8P99mK0TARAmDrds1MNhcwaBLuGM/1DRf3 F7OpDEKXRRspkWql2pHm2BFL9hKmzwsddM3ieS8lm041T2w3CDOU51JQ67V3w81vyl Oq/MLNQ02Gebn7RCWs63z7R/tttuu61qok5xt2Rz1aUdvHuxL2dG8DaD77DIq9ebt9 r/NwLTe64QeUUT9UvFkodKyCVj2IUEGFYMUko9JBzOfmuJXGTe/EGjsJrPguLMSQ4R ymFmtI/h+2a7HN4FjLgWo//lWfjdHPJvDgGkKXfcUgzmt8a8nG5HttoOOTwGedAH1n RSr/SiS99Pgjw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Frederic Weisbecker , Kalesh Singh , "Paul E . McKenney" , Boqun Feng , Sasha Levin Subject: [PATCH 6.6 084/638] rcu/exp: Fix RCU expedited parallel grace period kworker allocation failure recovery Date: Sun, 24 Mar 2024 18:52:01 -0400 Message-ID: <20240324230116.1348576-85-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Frederic Weisbecker [ Upstream commit a636c5e6f8fc34be520277e69c7c6ee1d4fc1d17 ] Under CONFIG_RCU_EXP_KTHREAD=3Dy, the nodes initialization for expedited grace periods is queued to a kworker. However if the allocation of that kworker failed, the nodes initialization is performed synchronously by the caller instead. Now the check for kworker initialization failure relies on the kworker pointer to be NULL while its value might actually encapsulate an allocation failure error. Make sure to handle this case. Reviewed-by: Kalesh Singh Fixes: 9621fbee44df ("rcu: Move expedited grace period (GP) work to RT kthr= ead_worker") Signed-off-by: Frederic Weisbecker Reviewed-by: Paul E. McKenney Signed-off-by: Boqun Feng Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- kernel/rcu/tree.c | 1 + 1 file changed, 1 insertion(+) diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index 4fe47ed95eebc..2e8d4572e8620 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -4677,6 +4677,7 @@ static void __init rcu_start_exp_gp_kworkers(void) rcu_exp_par_gp_kworker =3D kthread_create_worker(0, par_gp_kworker_name); if (IS_ERR_OR_NULL(rcu_exp_par_gp_kworker)) { pr_err("Failed to create %s!\n", par_gp_kworker_name); + rcu_exp_par_gp_kworker =3D NULL; kthread_destroy_worker(rcu_exp_gp_kworker); return; } --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D55BC1FEC77; Sun, 24 Mar 2024 23:02: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=1711321361; cv=none; b=bbXqD54qd20Mv3fgnGHOIuivhWj2jfV9X5TZXEdcT9B7HnGpc1DGIzcU9400bQMWZjLoRcK9UCdtQJ3ojXrqIfjPB37a0V3A32V/Tvk2I++YpqNgOy4QRw7SguNEL0Nri1WehaGsYT68NnYjnMt8H4JrHuyy69Q8BZBYjRmBxFY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321361; c=relaxed/simple; bh=LI6vEUK9JAbeco/CKxsnuzWccc8g9vABQTvNLTvFBRQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=TrcW1YlwZtz7KdPlKIcv5/+5yALtfWEBEY5RtJXbJCXfSnqyt5lVo6FPum1nYT2qfs840RMQHFzpShUyqxeAlzMf5d2MEHdEUx2Ow29yHZ6fKnV8s3P9S9VypSk4UKZgI8mlEGvRfzzZWmMk3fSfk9opC4PDY64z1DXTSs0qCDc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=FhmgTXAP; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="FhmgTXAP" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E4F15C43390; Sun, 24 Mar 2024 23:02:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321360; bh=LI6vEUK9JAbeco/CKxsnuzWccc8g9vABQTvNLTvFBRQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=FhmgTXAPURSfopCduNfGBGgNRpRi9pSDTHI+i6bBmh83lXTa56ekmWZZ4iM42OfYk tg74fV1/6kcn37QpD+T8x0hUuxFmJ9tvsaN86z/QHsQ3MvnyU9qu2EqOqTroET5KTu m2IhcN7s0faLbAJPcs84adVAvtjxCkenYz/40vG+wM8KwBSFdNC8l5IHZg/zYqy/G+ 2y1xBejL8ZGkl5vHzmzv47CXHCgcSGkbQvQIERVIe8KMK3bMSCK9DxsccHZfOJAuwZ syQzbjsd6880LHA+6GX+V+8bA3YXCerL/AAEQHc5f56rvVq48qfa1lGx+nX3rXmxLD 8FDD34BSu/svQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Frederic Weisbecker , Kalesh Singh , "Paul E . McKenney" , Boqun Feng , Sasha Levin Subject: [PATCH 6.6 085/638] rcu/exp: Handle RCU expedited grace period kworker allocation failure Date: Sun, 24 Mar 2024 18:52:02 -0400 Message-ID: <20240324230116.1348576-86-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Frederic Weisbecker [ Upstream commit e7539ffc9a770f36bacedcf0fbfb4bf2f244f4a5 ] Just like is done for the kworker performing nodes initialization, gracefully handle the possible allocation failure of the RCU expedited grace period main kworker. While at it perform a rename of the related checking functions to better reflect the expedited specifics. Reviewed-by: Kalesh Singh Fixes: 9621fbee44df ("rcu: Move expedited grace period (GP) work to RT kthr= ead_worker") Signed-off-by: Frederic Weisbecker Reviewed-by: Paul E. McKenney Signed-off-by: Boqun Feng Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- kernel/rcu/tree.c | 2 ++ kernel/rcu/tree_exp.h | 25 +++++++++++++++++++------ 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index 2e8d4572e8620..8cf6a6fef7965 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -4671,6 +4671,7 @@ static void __init rcu_start_exp_gp_kworkers(void) rcu_exp_gp_kworker =3D kthread_create_worker(0, gp_kworker_name); if (IS_ERR_OR_NULL(rcu_exp_gp_kworker)) { pr_err("Failed to create %s!\n", gp_kworker_name); + rcu_exp_gp_kworker =3D NULL; return; } =20 @@ -4679,6 +4680,7 @@ static void __init rcu_start_exp_gp_kworkers(void) pr_err("Failed to create %s!\n", par_gp_kworker_name); rcu_exp_par_gp_kworker =3D NULL; kthread_destroy_worker(rcu_exp_gp_kworker); + rcu_exp_gp_kworker =3D NULL; return; } =20 diff --git a/kernel/rcu/tree_exp.h b/kernel/rcu/tree_exp.h index 6e87dc764f471..733b18077f5a0 100644 --- a/kernel/rcu/tree_exp.h +++ b/kernel/rcu/tree_exp.h @@ -428,7 +428,12 @@ static void sync_rcu_exp_select_node_cpus(struct kthre= ad_work *wp) __sync_rcu_exp_select_node_cpus(rewp); } =20 -static inline bool rcu_gp_par_worker_started(void) +static inline bool rcu_exp_worker_started(void) +{ + return !!READ_ONCE(rcu_exp_gp_kworker); +} + +static inline bool rcu_exp_par_worker_started(void) { return !!READ_ONCE(rcu_exp_par_gp_kworker); } @@ -478,7 +483,12 @@ static void sync_rcu_exp_select_node_cpus(struct work_= struct *wp) __sync_rcu_exp_select_node_cpus(rewp); } =20 -static inline bool rcu_gp_par_worker_started(void) +static inline bool rcu_exp_worker_started(void) +{ + return !!READ_ONCE(rcu_gp_wq); +} + +static inline bool rcu_exp_par_worker_started(void) { return !!READ_ONCE(rcu_par_gp_wq); } @@ -541,7 +551,7 @@ static void sync_rcu_exp_select_cpus(void) rnp->exp_need_flush =3D false; if (!READ_ONCE(rnp->expmask)) continue; /* Avoid early boot non-existent wq. */ - if (!rcu_gp_par_worker_started() || + if (!rcu_exp_par_worker_started() || rcu_scheduler_active !=3D RCU_SCHEDULER_RUNNING || rcu_is_last_leaf_node(rnp)) { /* No worker started yet or last leaf, do direct call. */ @@ -952,7 +962,7 @@ static void rcu_exp_print_detail_task_stall_rnp(struct = rcu_node *rnp) */ void synchronize_rcu_expedited(void) { - bool boottime =3D (rcu_scheduler_active =3D=3D RCU_SCHEDULER_INIT); + bool use_worker; unsigned long flags; struct rcu_exp_work rew; struct rcu_node *rnp; @@ -963,6 +973,9 @@ void synchronize_rcu_expedited(void) lock_is_held(&rcu_sched_lock_map), "Illegal synchronize_rcu_expedited() in RCU read-side critical section= "); =20 + use_worker =3D (rcu_scheduler_active !=3D RCU_SCHEDULER_INIT) && + rcu_exp_worker_started(); + /* Is the state is such that the call is a grace period? */ if (rcu_blocking_is_gp()) { // Note well that this code runs with !PREEMPT && !SMP. @@ -992,7 +1005,7 @@ void synchronize_rcu_expedited(void) return; /* Someone else did our work for us. */ =20 /* Ensure that load happens before action based on it. */ - if (unlikely(boottime)) { + if (unlikely(!use_worker)) { /* Direct call during scheduler init and early_initcalls(). */ rcu_exp_sel_wait_wake(s); } else { @@ -1010,7 +1023,7 @@ void synchronize_rcu_expedited(void) /* Let the next expedited grace period start. */ mutex_unlock(&rcu_state.exp_mutex); =20 - if (likely(!boottime)) + if (likely(use_worker)) synchronize_rcu_expedited_destroy_work(&rew); } EXPORT_SYMBOL_GPL(synchronize_rcu_expedited); --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E7AA41FEC6E; Sun, 24 Mar 2024 23:02: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=1711321363; cv=none; b=bouD3EjiUQsK2Yrow0QSqW6hT3ei8jyIgou2zpIJ+hOBY7cUJ249nJ8sm+bXuKfvieu//HXEBOY143Sw/MWLCBr9I7rKu1mm3ENU7jw269jYgRXcblKI+siNJbmCR34HKGyjZsSRPUlMYWY8nZSjft8GqDrgkgE6pQEG1c60taY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321363; c=relaxed/simple; bh=iuDJNO0DaCTOuSrMMwWIo+ZzkIKJPWt7rbgvtIBljgg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=OKN8wfC0kdPUoZWIFQliLaHELCoRrmlHvMJ9o4Qmec+JvcpFszRdcgnhQ/IcMts4u16lR/5U7291htHCzGLWF3Ad8Gxh6wOdQGhTQm0nPZcYQB2OyYpjtQagttSMmML1Sdg9pANjhA6TTQ+E0Qhdg/odKVgnsjYqw4abBmfQOXM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=fvNzhyW3; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="fvNzhyW3" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 06592C43399; Sun, 24 Mar 2024 23:02:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321361; bh=iuDJNO0DaCTOuSrMMwWIo+ZzkIKJPWt7rbgvtIBljgg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=fvNzhyW3Dabwe7mtNNOidqXioHiYbFttaaet5xV7DdLkKz7DdDN8azGbJ/DJLdoJ1 AJp8O+bP+s8ohvVM8TaInKG+aD/w5Dta8y993sFIcrKqfOQ6xFQKzgyf9KV5v8lZBA w23b4rauwrc+jNIJkieOInKm05xDFKmz/e5WwpakYkMVBPZpgE8Va43+02NtUmIqmC PWkj/jI57bSllzdO1/PIJ1LNc0v+3/RPcOGUahsT3+LJIimknX3H4xlsASwQ4754tg RnBwZQMGKF0Yn7+FjELjbVsqdV4URYTbj61lym9HtYWBYOxgJKtEJlcCxjCAZ79Qjz SRFUDKGNa34oA== 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 6.6 086/638] nbd: null check for nla_nest_start Date: Sun, 24 Mar 2024 18:52:03 -0400 Message-ID: <20240324230116.1348576-87-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- drivers/block/nbd.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c index aa65313aabb8d..df738eab02433 100644 --- a/drivers/block/nbd.c +++ b/drivers/block/nbd.c @@ -2437,6 +2437,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 Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 21451130ADF; Sun, 24 Mar 2024 23:02: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=1711321363; cv=none; b=RfhRVOK2iuccOdANeYA4TKE2LX2KaW36sx8pM8BjNWgTfO+0KzzUfAc5EEgcwaBmHzxZTOhCgQ6yWj75/5mus3xRRHx17dqZKm+SJYMUIPehfyUoqDrmMeLsabzDyQBdRKMzIWDrT8Xx3V8ROMkKLH8ZwW3fTi5r3U/7QzAm8Tg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321363; c=relaxed/simple; bh=c/8ThzkfXePMKSUnih7WKsu2s/C2H5smRXIfTXnLdnc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ThObZ3uG8ZWvWtWxhP9mfTDi3Oq3AhUsxL74p+EPwZoiU6eV3r30KKfO3cAFOHjFBgyn7MXg/IOxo7/fOXhhxmnYNS7f4cLM2lKSs00E6SAiB35yyldKH2xqXJwmAb47OrEPXpWTedh8L6ljoIWDnfzAOxY0mEoXtb0QW2fGBrg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Zb41B6uA; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Zb41B6uA" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1B833C43390; Sun, 24 Mar 2024 23:02:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321363; bh=c/8ThzkfXePMKSUnih7WKsu2s/C2H5smRXIfTXnLdnc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Zb41B6uAK6C1XBuDd1hkSpBmJWuj35/ib6KfaaRUMcuk3+9yBA7zs1eTnZae6H9tM 8l/HzJxyT4MuEf8/ZDrBdW0OJ5R2EU2gVUEIjMPEQTHZTeFqaFj4B2rSRSlYrRvJf1 ZgRvMi386Fx7P7dJRk0sY+A5keQPbx20xiYlZ73wdoFJzN0HAvT/O0GOibuZuIw+IO DWPDmGv8OyYGdaMRwLMdZMmCeP0PX9zpd1DMLiLzew+x/YYI+tHzlUytc5GhSeecMP ZNYBivpyo+3LpoYkCg+Q2KJqUCH5YXBjQaTCFYBFtkKQuOXmYxkIjgzzWcajP/n28z bs92YtfukuVWw== 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 6.6 087/638] fs/select: rework stack allocation hack for clang Date: Sun, 24 Mar 2024 18:52:04 -0400 Message-ID: <20240324230116.1348576-88-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 0ee55af1a55c2..d4d881d439dcd 100644 --- a/fs/select.c +++ b/fs/select.c @@ -476,7 +476,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 a9e0e1c2d1f2f..d1ea4f3714a84 100644 --- a/include/linux/poll.h +++ b/include/linux/poll.h @@ -14,11 +14,7 @@ =20 /* ~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 Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6A8C9130AEC; Sun, 24 Mar 2024 23:02: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=1711321364; cv=none; b=pNpyRvgA4fqEnr/WFXLg22//p/PZH2RHTtfU64DaZndlovSt+YD56QAfZHG7W3kRgHRz9W8bKhMeUluLqw2bG15ydkuhfgkEBWPRsIxPghKBwKNcv+fvhAeeNFO5ZmlPEjvraonnHVb17dJxzOt5MP9eV1gNvwxBuXaNx+8MC8A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321364; c=relaxed/simple; bh=p5w55eVFyFulSbPkGv3FAEMmKTTzx6FUbDJaKQt2Dlg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=q+maFjapPAycolpzX0QsOwC+1dcAgvEvjkruchO/Edk9PnYGWeWi++1nZZ5p1XKv3/jyPNsUTVu8SOohkmmY8a4ieTqIYk2uB32Uu5yTrlbUCBJU++dXYWMm1cL3Ik29eh+ehMv2m1ypovCeSBKdsdhaV/UrcOcT2A95XDm2Kzs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Xma6jhBl; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Xma6jhBl" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 474ABC433F1; Sun, 24 Mar 2024 23:02:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321364; bh=p5w55eVFyFulSbPkGv3FAEMmKTTzx6FUbDJaKQt2Dlg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Xma6jhBl+M0ZjcTsJ5sMK6AJm2taLpd3NIZdx5Uo3x4zUFQDufIL7pK8rPJZwZD5I 3PgqKOQ1DK0y+EV9OyP8cY9v/Dt+b2TrFgUKj0+LlQfrmqeXjk3mZNlb8w02uNyNUg /PtARway1fU18vwXb74WW/cJ+Hap3wQqXVTQzn/jhfKLOPDi5mXY/cljmJwHAc22z2 CBlvumpqiA2Ft+0NO2uxX+s2NesY7usexsi23hMCAuHUfGVCkOkSJ4tSPUGqcLnL7D SLPiwkrNnEmvwXfvvWvDoq7B1Kbj6YX5VvZ8JwZW0Cw3W4JrqsNhJZw6d5WsZAmlQy 61kd8eJkOjUBA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Li Nan , Yu Kuai , Song Liu , Sasha Levin Subject: [PATCH 6.6 088/638] md: Don't clear MD_CLOSING when the raid is about to stop Date: Sun, 24 Mar 2024 18:52:05 -0400 Message-ID: <20240324230116.1348576-89-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 ce0516bdf8fa8..624259f79337f 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c @@ -6235,7 +6235,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; @@ -7609,7 +7617,6 @@ static int md_ioctl(struct block_device *bdev, blk_mo= de_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; @@ -7693,7 +7700,6 @@ static int md_ioctl(struct block_device *bdev, blk_mo= de_t mode, err =3D -EBUSY; goto out; } - did_set_md_closing =3D true; mutex_unlock(&mddev->open_mutex); sync_blockdev(bdev); } @@ -7827,7 +7833,7 @@ static int md_ioctl(struct block_device *bdev, blk_mo= de_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 Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5CC07130AEB; Sun, 24 Mar 2024 23:02: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=1711321366; cv=none; b=Zyvu84Elh8WAHtvWVHrpju0D0/+hwVCpehtDdK4Nmlxe54qWgK5w/O0ofCem22p2kTXDmEXhZ8wD5aJNzfEzbYD14vlMwc9FGzCBFAFGXTFP0VENd4PDEwLAaPlTeaAEx3X+hR6wJ0fMg1yHbDk32EARI03wMlqdI46619aRNoE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321366; c=relaxed/simple; bh=i0oQUREjAqNwxGyvagSKI/3J+uyjgN2fidxYHn5b9EM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=AakM9PWDyUi8pRwLtWZXvsTeVMmDQvEO9RKs48AUxrQgOxiJpMRLmtjT3Wlf5iTRsgxQVQ2JjBWnrhjTw8eLUq+yXJ0LzUurT9JTpyacAIZi675fsMVHoL8k8MGHP2X/2t4hFO7TQ9svkfkO8LrAV1c+nhmRsI0f74Z1zrAawjY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=B6Rz501K; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="B6Rz501K" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 52775C433C7; Sun, 24 Mar 2024 23:02:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321365; bh=i0oQUREjAqNwxGyvagSKI/3J+uyjgN2fidxYHn5b9EM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=B6Rz501KoCtNIxUtLGE0TmzUs2ogElHSbL9e6FpQHiD1nLFZnkYnXM2URSEGfbHAu jxZxg0XRLbo9fOCSmxsOfKdY+Iv73VqGyf6H5l28qQsFVX+PT4EU5JjQQKY86NigRx yix/Ly8uz6q9U753De63lTogFvIed4wGXe9cbS4KmcS4kbEKlNcTQwDa4QiUA0pZ66 ZPIybxw8GuLq8fZ5MyXD2obt5P5AoSuvN5hlUfLhZLdb4KvFMQiYa49asy60q0fZtR a7OtsHYTQhJHpPGfYrXKVnhkiHw801lEKUNVNOeW7DLiybP3mLamBfxJCzfZm92m6B fGLLGHh9vILPA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Amir Goldstein , Sasha Levin Subject: [PATCH 6.6 089/638] ovl: remove unused code in lowerdir param parsing Date: Sun, 24 Mar 2024 18:52:06 -0400 Message-ID: <20240324230116.1348576-90-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Amir Goldstein [ Upstream commit c835110b588a750650988ca5000913c3c60d246b ] Commit beae836e9c61 ("ovl: temporarily disable appending lowedirs") removed the ability to append lowerdirs with syntax lowerdir=3D":". Remove leftover code and comments that are irrelevant with lowerdir append mode disabled. Signed-off-by: Amir Goldstein Stable-dep-of: 2824083db76c ("ovl: Always reject mounting over case-insensi= tive directories") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- fs/overlayfs/params.c | 95 ++++++++----------------------------------- 1 file changed, 16 insertions(+), 79 deletions(-) diff --git a/fs/overlayfs/params.c b/fs/overlayfs/params.c index f6ff23fd101c8..0059cc405159e 100644 --- a/fs/overlayfs/params.c +++ b/fs/overlayfs/params.c @@ -346,7 +346,7 @@ static void ovl_parse_param_drop_lowerdir(struct ovl_fs= _context *ctx) /* * Parse lowerdir=3D mount option: * - * (1) lowerdir=3D/lower1:/lower2:/lower3::/data1::/data2 + * e.g.: lowerdir=3D/lower1:/lower2:/lower3::/data1::/data2 * Set "/lower1", "/lower2", and "/lower3" as lower layers and * "/data1" and "/data2" as data lower layers. Any existing lower * layers are replaced. @@ -356,9 +356,9 @@ static int ovl_parse_param_lowerdir(const char *name, s= truct fs_context *fc) int err; struct ovl_fs_context *ctx =3D fc->fs_private; struct ovl_fs_context_layer *l; - char *dup =3D NULL, *dup_iter; + char *dup =3D NULL, *iter; ssize_t nr_lower =3D 0, nr =3D 0, nr_data =3D 0; - bool append =3D false, data_layer =3D false; + bool data_layer =3D false; =20 /* * Ensure we're backwards compatible with mount(2) @@ -366,10 +366,10 @@ static int ovl_parse_param_lowerdir(const char *name,= struct fs_context *fc) */ =20 /* drop all existing lower layers */ - if (!*name) { - ovl_parse_param_drop_lowerdir(ctx); + ovl_parse_param_drop_lowerdir(ctx); + + if (!*name) return 0; - } =20 if (*name =3D=3D ':') { pr_err("cannot append lower layer"); @@ -385,36 +385,11 @@ static int ovl_parse_param_lowerdir(const char *name,= struct fs_context *fc) if (nr_lower < 0) goto out_err; =20 - if ((nr_lower > OVL_MAX_STACK) || - (append && (size_add(ctx->nr, nr_lower) > OVL_MAX_STACK))) { + if (nr_lower > OVL_MAX_STACK) { pr_err("too many lower directories, limit is %d\n", OVL_MAX_STACK); goto out_err; } =20 - if (!append) - ovl_parse_param_drop_lowerdir(ctx); - - /* - * (1) append - * - * We want nr <=3D nr_lower <=3D capacity We know nr > 0 and nr <=3D - * capacity. If nr =3D=3D 0 this wouldn't be append. If nr + - * nr_lower is <=3D capacity then nr <=3D nr_lower <=3D capacity - * already holds. If nr + nr_lower exceeds capacity, we realloc. - * - * (2) replace - * - * Ensure we're backwards compatible with mount(2) which allows - * "lowerdir=3D/a:/b:/c,lowerdir=3D/d:/e:/f" causing the last - * specified lowerdir mount option to win. - * - * We want nr <=3D nr_lower <=3D capacity We know either (i) nr =3D=3D 0 - * or (ii) nr > 0. We also know nr_lower > 0. The capacity - * could've been changed multiple times already so we only know - * nr <=3D capacity. If nr + nr_lower > capacity we realloc, - * otherwise nr <=3D nr_lower <=3D capacity holds already. - */ - nr_lower +=3D ctx->nr; if (nr_lower > ctx->capacity) { err =3D -ENOMEM; l =3D krealloc_array(ctx->lower, nr_lower, sizeof(*ctx->lower), @@ -426,41 +401,17 @@ static int ovl_parse_param_lowerdir(const char *name,= struct fs_context *fc) ctx->capacity =3D nr_lower; } =20 - /* - * (3) By (1) and (2) we know nr <=3D nr_lower <=3D capacity. - * (4) If ctx->nr =3D=3D 0 =3D> replace - * We have verified above that the lowerdir mount option - * isn't an append, i.e., the lowerdir mount option - * doesn't start with ":" or "::". - * (4.1) The lowerdir mount options only contains regular lower - * layers ":". - * =3D> Nothing to verify. - * (4.2) The lowerdir mount options contains regular ":" and - * data "::" layers. - * =3D> We need to verify that data lower layers "::" aren't - * followed by regular ":" lower layers - * (5) If ctx->nr > 0 =3D> append - * We know that there's at least one regular layer - * otherwise we would've failed when parsing the previous - * lowerdir mount option. - * (5.1) The lowerdir mount option is a regular layer ":" append - * =3D> We need to verify that no data layers have been - * specified before. - * (5.2) The lowerdir mount option is a data layer "::" append - * We know that there's at least one regular layer or - * other data layers. =3D> There's nothing to verify. - */ - dup_iter =3D dup; - for (nr =3D ctx->nr; nr < nr_lower; nr++) { - l =3D &ctx->lower[nr]; + iter =3D dup; + l =3D ctx->lower; + for (nr =3D 0; nr < nr_lower; nr++, l++) { memset(l, 0, sizeof(*l)); =20 - err =3D ovl_mount_dir(dup_iter, &l->path, false); + err =3D ovl_mount_dir(iter, &l->path, false); if (err) goto out_put; =20 err =3D -ENOMEM; - l->name =3D kstrdup(dup_iter, GFP_KERNEL_ACCOUNT); + l->name =3D kstrdup(iter, GFP_KERNEL_ACCOUNT); if (!l->name) goto out_put; =20 @@ -472,8 +423,8 @@ static int ovl_parse_param_lowerdir(const char *name, s= truct fs_context *fc) break; =20 err =3D -EINVAL; - dup_iter =3D strchr(dup_iter, '\0') + 1; - if (*dup_iter) { + iter =3D strchr(iter, '\0') + 1; + if (*iter) { /* * This is a regular layer so we require that * there are no data layers. @@ -489,7 +440,7 @@ static int ovl_parse_param_lowerdir(const char *name, s= truct fs_context *fc) =20 /* This is a data lower layer. */ data_layer =3D true; - dup_iter++; + iter++; } ctx->nr =3D nr_lower; ctx->nr_data +=3D nr_data; @@ -497,21 +448,7 @@ static int ovl_parse_param_lowerdir(const char *name, = struct fs_context *fc) return 0; =20 out_put: - /* - * We know nr >=3D ctx->nr < nr_lower. If we failed somewhere - * we want to undo until nr =3D=3D ctx->nr. This is correct for - * both ctx->nr =3D=3D 0 and ctx->nr > 0. - */ - for (; nr >=3D ctx->nr; nr--) { - l =3D &ctx->lower[nr]; - kfree(l->name); - l->name =3D NULL; - path_put(&l->path); - - /* don't overflow */ - if (nr =3D=3D 0) - break; - } + ovl_parse_param_drop_lowerdir(ctx); =20 out_err: kfree(dup); --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2C2B3130AF2; Sun, 24 Mar 2024 23:02: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=1711321367; cv=none; b=piKbJzpu9FX3FFiKOLNYZ88gHAoT4LXLjuRkB5541nGKQI7Y6sFtOs5XciQfxhdKY8rQ8j/E+7FtgRVSpLOm1AX7cc1GUcJhBQzZlZzRtjNm89U/E2+je/m8iIkQuTvGDDvsBCOP6N4eb+5x4XK3W1Lt0mt+PoCJcJMYQ7EAVSo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321367; c=relaxed/simple; bh=jOC1QaG75pxY/4EBQxqMHFvdTzj7nAouj7c7sRrQpQs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=GUTYQnMQNu9iWys95wzjXDLI6cpSkgwE/zbZEkG7QEZsPpaY83pNF4EXQq5muk36m88kWCdKj9q29ccLvTFqlh+9CTfmNvS5xQIZKNjSdbNx8O9yMEOyKt5dGqPgyEpgEy4eSksUaXZNKvv7K8CKd9VBS/fCs9HqCjtq4l+Iop8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=qrfziV1O; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="qrfziV1O" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7FB24C43390; Sun, 24 Mar 2024 23:02:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321366; bh=jOC1QaG75pxY/4EBQxqMHFvdTzj7nAouj7c7sRrQpQs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qrfziV1O19TwDC5Q6xHmpAqYr5/QLKNPArN+QL9JCKf4SMtMr5cpxJ6CyVXM9yoLh LnNbR5SIlrcyRJ9WVOZRJGvGJNyZ9Q1V+F+nFAaV3k8sKav2VuLdm1qqeMFMZE8syD 4yBa7TRCZsGjVHuawZenFYSGL6xklDxR9iEp6T7ijBD9zjcN+ETIraOWCvu+aF+tqF 1TiVS2FEQXK0IiVKH5D3ksdql2DZ5b2wgFq84ffn0dYNrbckDEDHBJ2uAYXTa8nBc8 xKnqrmSpkaZgknna8ja+ajKmtwYvCaAZzyra7eOCv45u6PMjklVbJgrmfcWjBmXjC4 4cmyiaVHWnhmA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Amir Goldstein , Sasha Levin Subject: [PATCH 6.6 090/638] ovl: store and show the user provided lowerdir mount option Date: Sun, 24 Mar 2024 18:52:07 -0400 Message-ID: <20240324230116.1348576-91-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Amir Goldstein [ Upstream commit 0cea4c097d97fdc89de488bd4202d0b087ccec58 ] We are about to add new mount options for adding lowerdir one by one, but those mount options will not support escaping. For the existing case, where lowerdir mount option is provided as a colon separated list, store the user provided (possibly escaped) string and display it as is when showing the lowerdir mount option. Signed-off-by: Amir Goldstein Stable-dep-of: 2824083db76c ("ovl: Always reject mounting over case-insensi= tive directories") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- fs/overlayfs/params.c | 46 +++++++++++++++++++++---------------------- fs/overlayfs/params.h | 1 + fs/overlayfs/super.c | 5 ++++- 3 files changed, 28 insertions(+), 24 deletions(-) diff --git a/fs/overlayfs/params.c b/fs/overlayfs/params.c index 0059cc405159e..0bf754a69e919 100644 --- a/fs/overlayfs/params.c +++ b/fs/overlayfs/params.c @@ -332,12 +332,18 @@ static int ovl_parse_param_upperdir(const char *name,= struct fs_context *fc, return 0; } =20 -static void ovl_parse_param_drop_lowerdir(struct ovl_fs_context *ctx) +static void ovl_reset_lowerdirs(struct ovl_fs_context *ctx) { - for (size_t nr =3D 0; nr < ctx->nr; nr++) { - path_put(&ctx->lower[nr].path); - kfree(ctx->lower[nr].name); - ctx->lower[nr].name =3D NULL; + struct ovl_fs_context_layer *l =3D ctx->lower; + + // Reset old user provided lowerdir string + kfree(ctx->lowerdir_all); + ctx->lowerdir_all =3D NULL; + + for (size_t nr =3D 0; nr < ctx->nr; nr++, l++) { + path_put(&l->path); + kfree(l->name); + l->name =3D NULL; } ctx->nr =3D 0; ctx->nr_data =3D 0; @@ -366,7 +372,7 @@ static int ovl_parse_param_lowerdir(const char *name, s= truct fs_context *fc) */ =20 /* drop all existing lower layers */ - ovl_parse_param_drop_lowerdir(ctx); + ovl_reset_lowerdirs(ctx); =20 if (!*name) return 0; @@ -376,6 +382,11 @@ static int ovl_parse_param_lowerdir(const char *name, = struct fs_context *fc) return -EINVAL; } =20 + // Store user provided lowerdir string to show in mount options + ctx->lowerdir_all =3D kstrdup(name, GFP_KERNEL); + if (!ctx->lowerdir_all) + return -ENOMEM; + dup =3D kstrdup(name, GFP_KERNEL); if (!dup) return -ENOMEM; @@ -448,7 +459,7 @@ static int ovl_parse_param_lowerdir(const char *name, s= truct fs_context *fc) return 0; =20 out_put: - ovl_parse_param_drop_lowerdir(ctx); + ovl_reset_lowerdirs(ctx); =20 out_err: kfree(dup); @@ -554,7 +565,7 @@ static int ovl_get_tree(struct fs_context *fc) =20 static inline void ovl_fs_context_free(struct ovl_fs_context *ctx) { - ovl_parse_param_drop_lowerdir(ctx); + ovl_reset_lowerdirs(ctx); path_put(&ctx->upper); path_put(&ctx->work); kfree(ctx->lower); @@ -870,24 +881,13 @@ int ovl_show_options(struct seq_file *m, struct dentr= y *dentry) { struct super_block *sb =3D dentry->d_sb; struct ovl_fs *ofs =3D OVL_FS(sb); - size_t nr, nr_merged_lower =3D ofs->numlayer - ofs->numdatalayer; + char **lowerdirs =3D ofs->config.lowerdirs; =20 /* - * lowerdirs[] starts from offset 1, then - * >=3D 0 regular lower layers prefixed with : and - * >=3D 0 data-only lower layers prefixed with :: - * - * we need to escase comma and space like seq_show_option() does and - * we also need to escape the colon separator from lowerdir paths. + * lowerdirs[0] holds the colon separated list that user provided + * with lowerdir mount option. */ - seq_puts(m, ",lowerdir=3D"); - for (nr =3D 1; nr < ofs->numlayer; nr++) { - if (nr > 1) - seq_putc(m, ':'); - if (nr >=3D nr_merged_lower) - seq_putc(m, ':'); - seq_escape(m, ofs->config.lowerdirs[nr], ":, \t\n\\"); - } + seq_show_option(m, "lowerdir", lowerdirs[0]); if (ofs->config.upperdir) { seq_show_option(m, "upperdir", ofs->config.upperdir); seq_show_option(m, "workdir", ofs->config.workdir); diff --git a/fs/overlayfs/params.h b/fs/overlayfs/params.h index 8750da68ab2a4..c96d939820211 100644 --- a/fs/overlayfs/params.h +++ b/fs/overlayfs/params.h @@ -32,6 +32,7 @@ struct ovl_fs_context { size_t nr_data; struct ovl_opt_set set; struct ovl_fs_context_layer *lower; + char *lowerdir_all; /* user provided lowerdir string */ }; =20 int ovl_init_fs_context(struct fs_context *fc); diff --git a/fs/overlayfs/super.c b/fs/overlayfs/super.c index c71d185980c08..2c056d737c27c 100644 --- a/fs/overlayfs/super.c +++ b/fs/overlayfs/super.c @@ -1374,8 +1374,11 @@ int ovl_fill_super(struct super_block *sb, struct fs= _context *fc) ofs->layers =3D layers; /* * Layer 0 is reserved for upper even if there's no upper. - * For consistency, config.lowerdirs[0] is NULL. + * config.lowerdirs[0] is used for storing the user provided colon + * separated lowerdir string. */ + ofs->config.lowerdirs[0] =3D ctx->lowerdir_all; + ctx->lowerdir_all =3D NULL; ofs->numlayer =3D 1; =20 sb->s_stack_depth =3D 0; --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 51303130AFA; Sun, 24 Mar 2024 23:02: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=1711321367; cv=none; b=ZyPt7l4sOWxXq6oUoYlxT8aVQ7bjeyWo5jzhXmNk9UDEFUKf8YjqzSPwaApTE1Pu+02H1QAU9nS+asOxCJSRDcm8by81m/BQTm/RLMjqkz0aYxt2DxnJKvgVaCn7mVMU/v/gO10/hEQBN46QXYp+gTfRXe73gJ2df4Zbz4EEovY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321367; c=relaxed/simple; bh=+qbaCAofjncVFu4+vwJQ5PxTT816Cw4fc9hpPcujUto=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Toi1Gfnfq8QpVu0arX2Sdr1Lzj/ldYqQPcUV7Xn8bhR2peEuniFStAflQTaGNpN3FN1GMS+rMDniaaaNEujn58eUZTAAUAplgFLRa7yS0fIOIY9CCCGMDuBSjrammXlfLsKViYrb59EUE+xdaa5yz1iQA0+6vZSQ6SrDv1RFNIY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=j6nUrM4T; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="j6nUrM4T" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4D786C43399; Sun, 24 Mar 2024 23:02:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321366; bh=+qbaCAofjncVFu4+vwJQ5PxTT816Cw4fc9hpPcujUto=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=j6nUrM4TixKJfqyL3tJ+UwVDWQy4BZvxsHh0SvgrDu0Nk9H125VubcM0W7nOLeLsB YgHym2ml/lhfY9lccxma1cFqN8Op4fY18sJIHPNFQmSxAaZ1QN/4JvuQPOV8TBlwsf nugvgiid19SSAIk1O4AIdrC43bmILipZijnCi8nvbg42xhwXrlOYaocPf6xcxktbb/ aVSZei7SCX9+uwaRf5vn3QNrMgUM7oJcILyYzEh5m2sowS4UiLaBNe5QTPX/7VnuSE CF7d03fGSTk03r/d5GOYeyvRdvyR7jTXV+58iZDW1dFDTZkHp5XZJJRhY/E+c06ffm MgruhU27gi+lA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Amir Goldstein , Miklos Szeredi , Sasha Levin Subject: [PATCH 6.6 091/638] ovl: refactor layer parsing helpers Date: Sun, 24 Mar 2024 18:52:08 -0400 Message-ID: <20240324230116.1348576-92-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Amir Goldstein [ Upstream commit 819829f0319a759e8a6ccb7e4f1113f3f9f07aa3 ] In preparation for new mount options to add lowerdirs one by one, generalize ovl_parse_param_upperdir() into helper ovl_parse_layer() that will be used for parsing a single lower layers. Suggested-by: Miklos Szeredi Link: https://lore.kernel.org/r/CAJfpegt7VC94KkRtb1dfHG8+4OzwPBLYqhtc8=3DQF= UxpFJE+=3DRQ@mail.gmail.com/ Signed-off-by: Amir Goldstein Stable-dep-of: 2824083db76c ("ovl: Always reject mounting over case-insensi= tive directories") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- fs/overlayfs/params.c | 121 +++++++++++++++++++++++------------------- 1 file changed, 67 insertions(+), 54 deletions(-) diff --git a/fs/overlayfs/params.c b/fs/overlayfs/params.c index 0bf754a69e919..88725982b6dd3 100644 --- a/fs/overlayfs/params.c +++ b/fs/overlayfs/params.c @@ -43,7 +43,7 @@ module_param_named(metacopy, ovl_metacopy_def, bool, 0644= ); MODULE_PARM_DESC(metacopy, "Default to on or off for the metadata only copy up feature"); =20 -enum { +enum ovl_opt { Opt_lowerdir, Opt_upperdir, Opt_workdir, @@ -238,19 +238,8 @@ static int ovl_mount_dir_noesc(const char *name, struc= t path *path) pr_err("failed to resolve '%s': %i\n", name, err); goto out; } - err =3D -EINVAL; - if (ovl_dentry_weird(path->dentry)) { - pr_err("filesystem on '%s' not supported\n", name); - goto out_put; - } - if (!d_is_dir(path->dentry)) { - pr_err("'%s' not a directory\n", name); - goto out_put; - } return 0; =20 -out_put: - path_put_init(path); out: return err; } @@ -268,7 +257,7 @@ static void ovl_unescape(char *s) } } =20 -static int ovl_mount_dir(const char *name, struct path *path, bool upper) +static int ovl_mount_dir(const char *name, struct path *path) { int err =3D -ENOMEM; char *tmp =3D kstrdup(name, GFP_KERNEL); @@ -276,60 +265,82 @@ static int ovl_mount_dir(const char *name, struct pat= h *path, bool upper) if (tmp) { ovl_unescape(tmp); err =3D ovl_mount_dir_noesc(tmp, path); - - if (!err && upper && path->dentry->d_flags & DCACHE_OP_REAL) { - pr_err("filesystem on '%s' not supported as upperdir\n", - tmp); - path_put_init(path); - err =3D -EINVAL; - } kfree(tmp); } return err; } =20 -static int ovl_parse_param_upperdir(const char *name, struct fs_context *f= c, - bool workdir) +static int ovl_mount_dir_check(struct fs_context *fc, const struct path *p= ath, + enum ovl_opt layer, const char *name, bool upper) { - int err; - struct ovl_fs *ofs =3D fc->s_fs_info; - struct ovl_config *config =3D &ofs->config; - struct ovl_fs_context *ctx =3D fc->fs_private; - struct path path; - char *dup; + if (ovl_dentry_weird(path->dentry)) + return invalfc(fc, "filesystem on %s not supported", name); =20 - err =3D ovl_mount_dir(name, &path, true); - if (err) - return err; + if (!d_is_dir(path->dentry)) + return invalfc(fc, "%s is not a directory", name); =20 /* * Check whether upper path is read-only here to report failures * early. Don't forget to recheck when the superblock is created * as the mount attributes could change. */ - if (__mnt_is_readonly(path.mnt)) { - path_put(&path); - return -EINVAL; + if (upper) { + if (path->dentry->d_flags & DCACHE_OP_REAL) + return invalfc(fc, "filesystem on %s not supported as upperdir", name); + if (__mnt_is_readonly(path->mnt)) + return invalfc(fc, "filesystem on %s is read-only", name); } + return 0; +} =20 - dup =3D kstrdup(name, GFP_KERNEL); - if (!dup) { - path_put(&path); - return -ENOMEM; - } +static void ovl_add_layer(struct fs_context *fc, enum ovl_opt layer, + struct path *path, char **pname) +{ + struct ovl_fs *ofs =3D fc->s_fs_info; + struct ovl_config *config =3D &ofs->config; + struct ovl_fs_context *ctx =3D fc->fs_private; =20 - if (workdir) { - kfree(config->workdir); - config->workdir =3D dup; - path_put(&ctx->work); - ctx->work =3D path; - } else { - kfree(config->upperdir); - config->upperdir =3D dup; - path_put(&ctx->upper); - ctx->upper =3D path; + switch (layer) { + case Opt_workdir: + swap(config->workdir, *pname); + swap(ctx->work, *path); + break; + case Opt_upperdir: + swap(config->upperdir, *pname); + swap(ctx->upper, *path); + break; + default: + WARN_ON(1); } - return 0; +} + +static int ovl_parse_layer(struct fs_context *fc, struct fs_parameter *par= am, + enum ovl_opt layer) +{ + char *name =3D kstrdup(param->string, GFP_KERNEL); + bool upper =3D (layer =3D=3D Opt_upperdir || layer =3D=3D Opt_workdir); + struct path path; + int err; + + if (!name) + return -ENOMEM; + + err =3D ovl_mount_dir(name, &path); + if (err) + goto out_free; + + err =3D ovl_mount_dir_check(fc, &path, layer, name, upper); + if (err) + goto out_put; + + /* Store the user provided path string in ctx to show in mountinfo */ + ovl_add_layer(fc, layer, &path, &name); + +out_put: + path_put(&path); +out_free: + kfree(name); + return err; } =20 static void ovl_reset_lowerdirs(struct ovl_fs_context *ctx) @@ -417,7 +428,11 @@ static int ovl_parse_param_lowerdir(const char *name, = struct fs_context *fc) for (nr =3D 0; nr < nr_lower; nr++, l++) { memset(l, 0, sizeof(*l)); =20 - err =3D ovl_mount_dir(iter, &l->path, false); + err =3D ovl_mount_dir(iter, &l->path); + if (err) + goto out_put; + + err =3D ovl_mount_dir_check(fc, &l->path, Opt_lowerdir, iter, false); if (err) goto out_put; =20 @@ -505,10 +520,8 @@ static int ovl_parse_param(struct fs_context *fc, stru= ct fs_parameter *param) err =3D ovl_parse_param_lowerdir(param->string, fc); break; case Opt_upperdir: - fallthrough; case Opt_workdir: - err =3D ovl_parse_param_upperdir(param->string, fc, - (Opt_workdir =3D=3D opt)); + err =3D ovl_parse_layer(fc, param, opt); break; case Opt_default_permissions: config->default_permissions =3D true; --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E3B7D1E621F; Sun, 24 Mar 2024 23:02: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=1711321368; cv=none; b=Z7UrzbvOwk9zUXvc04dXM8nrGIBczWOYtiyvb6/0N1lk32cVW/W58ZJhRH0IBlctJs1rimY1p7SDiE/xe0rIaAyRrLKGMaUm0jPwtlftFiVVSDqoSN5eMBb+04GhjDIQIh8DAPEl7obmCbzMN+hQDW+AGi1d1WS28w6CpZZIVkM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321368; c=relaxed/simple; bh=D9hvlI8xNbzDqTCCYkI+M/PgsdZQvS9mRrsdkd4mV3A=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=haXbEaWBR6U9vcGEctqEpPxlDcoGZ43NxDiOv5QinhjBj4Cm9IUq5Dj4vpxrl0ht5jDGk/gK+GVBCwcaddZTjYOWQ51UKzYENCqXmIH99gWu9f1EXRkC/mlkE10e2AHET9BObsqq2CvaPW8axkIuaRSOI3G/GnoBiv5KvGXmTYM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=XeV2rNR8; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="XeV2rNR8" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 30402C433A6; Sun, 24 Mar 2024 23:02:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321367; bh=D9hvlI8xNbzDqTCCYkI+M/PgsdZQvS9mRrsdkd4mV3A=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=XeV2rNR8gEBHWgfuT08Dm2qG13CxQ02u+r2MasNrQUKL1kAOQuMzTm+L6sWUkHfcw Q+UzLmc1W90NUFhBCM7MDG8/8hT7dEmX6144iJZ7kbklWMe6k19O/MqFRIFdK+IFE/ +1bXQyYeGJNp80RratJaeNGiZNS7ln1D6chwVJ0orB3FKhUZTGxepoRrwvP+2MR5zW yJPsXZ7ORa0OyB66PvR7NNBpBV7Fp1DXqtRTWVO4P+3eOE1nG09H35aL9hUGhyy/JN IraP1BJ/z64oD1LLAbPMEr80H1xo0udUDgn7RaSXjHfsdGncuyO+iQtfBcg46CcpF9 A12l1OTZU0/oQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Amir Goldstein , Miklos Szeredi , Sasha Levin Subject: [PATCH 6.6 092/638] ovl: add support for appending lowerdirs one by one Date: Sun, 24 Mar 2024 18:52:09 -0400 Message-ID: <20240324230116.1348576-93-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Amir Goldstein [ Upstream commit 24e16e385f2272b1a9df51337a5c32d28a29c7ad ] Add new mount options lowerdir+ and datadir+ that can be used to add layers to lower layers stack one by one. Unlike the legacy lowerdir mount option, special characters (i.e. colons and cammas) are not unescaped with these new mount options. The new mount options can be repeated to compose a large stack of lower layers, but they may not be mixed with the lagacy lowerdir mount option, because for displaying lower layers in mountinfo, we do not want to mix escaped with unescaped lower layers path syntax. Similar to data-only layer rules with the lowerdir mount option, the datadir+ option must follow at least one lowerdir+ option and the lowerdir+ option must not follow the datadir+ option. If the legacy lowerdir mount option follows lowerdir+ and datadir+ mount options, it overrides them. Sepcifically, calling: fsconfig(FSCONFIG_SET_STRING, "lowerdir", "", 0); can be used to reset previously setup lower layers. Suggested-by: Miklos Szeredi Link: https://lore.kernel.org/r/CAJfpegt7VC94KkRtb1dfHG8+4OzwPBLYqhtc8=3DQF= UxpFJE+=3DRQ@mail.gmail.com/ Signed-off-by: Amir Goldstein Stable-dep-of: 2824083db76c ("ovl: Always reject mounting over case-insensi= tive directories") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- Documentation/filesystems/overlayfs.rst | 17 +++++- fs/overlayfs/params.c | 78 ++++++++++++++++++++++++- 2 files changed, 90 insertions(+), 5 deletions(-) diff --git a/Documentation/filesystems/overlayfs.rst b/Documentation/filesy= stems/overlayfs.rst index 5b93268e400f4..56a5ad7a4fbd2 100644 --- a/Documentation/filesystems/overlayfs.rst +++ b/Documentation/filesystems/overlayfs.rst @@ -344,10 +344,11 @@ escaping the colons with a single backslash. For exa= mple: =20 mount -t overlay overlay -olowerdir=3D/a\:lower\:\:dir /merged =20 -Since kernel version v6.5, directory names containing colons can also -be provided as lower layer using the fsconfig syscall from new mount api: +Since kernel version v6.8, directory names containing colons can also +be configured as lower layer using the "lowerdir+" mount options and the +fsconfig syscall from new mount api. For example: =20 - fsconfig(fs_fd, FSCONFIG_SET_STRING, "lowerdir", "/a:lower::dir", 0); + fsconfig(fs_fd, FSCONFIG_SET_STRING, "lowerdir+", "/a:lower::dir", 0); =20 In the latter case, colons in lower layer directory names will be escaped as an octal characters (\072) when displayed in /proc/self/mountinfo. @@ -416,6 +417,16 @@ Only the data of the files in the "data-only" lower la= yers may be visible when a "metacopy" file in one of the lower layers above it, has a "redirec= t" to the absolute path of the "lower data" file in the "data-only" lower lay= er. =20 +Since kernel version v6.8, "data-only" lower layers can also be added using +the "datadir+" mount options and the fsconfig syscall from new mount api. +For example: + + fsconfig(fs_fd, FSCONFIG_SET_STRING, "lowerdir+", "/l1", 0); + fsconfig(fs_fd, FSCONFIG_SET_STRING, "lowerdir+", "/l2", 0); + fsconfig(fs_fd, FSCONFIG_SET_STRING, "lowerdir+", "/l3", 0); + fsconfig(fs_fd, FSCONFIG_SET_STRING, "datadir+", "/do1", 0); + fsconfig(fs_fd, FSCONFIG_SET_STRING, "datadir+", "/do2", 0); + =20 fs-verity support ---------------------- diff --git a/fs/overlayfs/params.c b/fs/overlayfs/params.c index 88725982b6dd3..ddab9ea267d12 100644 --- a/fs/overlayfs/params.c +++ b/fs/overlayfs/params.c @@ -45,6 +45,8 @@ MODULE_PARM_DESC(metacopy, =20 enum ovl_opt { Opt_lowerdir, + Opt_lowerdir_add, + Opt_datadir_add, Opt_upperdir, Opt_workdir, Opt_default_permissions, @@ -140,8 +142,11 @@ static int ovl_verity_mode_def(void) #define fsparam_string_empty(NAME, OPT) \ __fsparam(fs_param_is_string, NAME, OPT, fs_param_can_be_empty, NULL) =20 + const struct fs_parameter_spec ovl_parameter_spec[] =3D { fsparam_string_empty("lowerdir", Opt_lowerdir), + fsparam_string("lowerdir+", Opt_lowerdir_add), + fsparam_string("datadir+", Opt_datadir_add), fsparam_string("upperdir", Opt_upperdir), fsparam_string("workdir", Opt_workdir), fsparam_flag("default_permissions", Opt_default_permissions), @@ -273,12 +278,15 @@ static int ovl_mount_dir(const char *name, struct pat= h *path) static int ovl_mount_dir_check(struct fs_context *fc, const struct path *p= ath, enum ovl_opt layer, const char *name, bool upper) { + struct ovl_fs_context *ctx =3D fc->fs_private; + if (ovl_dentry_weird(path->dentry)) return invalfc(fc, "filesystem on %s not supported", name); =20 if (!d_is_dir(path->dentry)) return invalfc(fc, "%s is not a directory", name); =20 + /* * Check whether upper path is read-only here to report failures * early. Don't forget to recheck when the superblock is created @@ -289,16 +297,45 @@ static int ovl_mount_dir_check(struct fs_context *fc,= const struct path *path, return invalfc(fc, "filesystem on %s not supported as upperdir", name); if (__mnt_is_readonly(path->mnt)) return invalfc(fc, "filesystem on %s is read-only", name); + } else { + if (ctx->lowerdir_all && layer !=3D Opt_lowerdir) + return invalfc(fc, "lowerdir+ and datadir+ cannot follow lowerdir"); + if (ctx->nr_data && layer =3D=3D Opt_lowerdir_add) + return invalfc(fc, "regular lower layers cannot follow data layers"); + if (ctx->nr =3D=3D OVL_MAX_STACK) + return invalfc(fc, "too many lower directories, limit is %d", + OVL_MAX_STACK); } return 0; } =20 +static int ovl_ctx_realloc_lower(struct fs_context *fc) +{ + struct ovl_fs_context *ctx =3D fc->fs_private; + struct ovl_fs_context_layer *l; + size_t nr; + + if (ctx->nr < ctx->capacity) + return 0; + + nr =3D min_t(size_t, max(4096 / sizeof(*l), ctx->capacity * 2), + OVL_MAX_STACK); + l =3D krealloc_array(ctx->lower, nr, sizeof(*l), GFP_KERNEL_ACCOUNT); + if (!l) + return -ENOMEM; + + ctx->lower =3D l; + ctx->capacity =3D nr; + return 0; +} + static void ovl_add_layer(struct fs_context *fc, enum ovl_opt layer, struct path *path, char **pname) { struct ovl_fs *ofs =3D fc->s_fs_info; struct ovl_config *config =3D &ofs->config; struct ovl_fs_context *ctx =3D fc->fs_private; + struct ovl_fs_context_layer *l; =20 switch (layer) { case Opt_workdir: @@ -309,6 +346,16 @@ static void ovl_add_layer(struct fs_context *fc, enum = ovl_opt layer, swap(config->upperdir, *pname); swap(ctx->upper, *path); break; + case Opt_datadir_add: + ctx->nr_data++; + fallthrough; + case Opt_lowerdir_add: + WARN_ON(ctx->nr >=3D ctx->capacity); + l =3D &ctx->lower[ctx->nr++]; + memset(l, 0, sizeof(*l)); + swap(l->name, *pname); + swap(l->path, *path); + break; default: WARN_ON(1); } @@ -325,7 +372,10 @@ static int ovl_parse_layer(struct fs_context *fc, stru= ct fs_parameter *param, if (!name) return -ENOMEM; =20 - err =3D ovl_mount_dir(name, &path); + if (upper) + err =3D ovl_mount_dir(name, &path); + else + err =3D ovl_mount_dir_noesc(name, &path); if (err) goto out_free; =20 @@ -333,6 +383,12 @@ static int ovl_parse_layer(struct fs_context *fc, stru= ct fs_parameter *param, if (err) goto out_put; =20 + if (!upper) { + err =3D ovl_ctx_realloc_lower(fc); + if (err) + goto out_put; + } + /* Store the user provided path string in ctx to show in mountinfo */ ovl_add_layer(fc, layer, &path, &name); =20 @@ -519,6 +575,8 @@ static int ovl_parse_param(struct fs_context *fc, struc= t fs_parameter *param) case Opt_lowerdir: err =3D ovl_parse_param_lowerdir(param->string, fc); break; + case Opt_lowerdir_add: + case Opt_datadir_add: case Opt_upperdir: case Opt_workdir: err =3D ovl_parse_layer(fc, param, opt); @@ -894,13 +952,29 @@ int ovl_show_options(struct seq_file *m, struct dentr= y *dentry) { struct super_block *sb =3D dentry->d_sb; struct ovl_fs *ofs =3D OVL_FS(sb); + size_t nr, nr_merged_lower, nr_lower =3D 0; char **lowerdirs =3D ofs->config.lowerdirs; =20 /* * lowerdirs[0] holds the colon separated list that user provided * with lowerdir mount option. + * lowerdirs[1..numlayer] hold the lowerdir paths that were added + * using the lowerdir+ and datadir+ mount options. + * For now, we do not allow mixing the legacy lowerdir mount option + * with the new lowerdir+ and datadir+ mount options. */ - seq_show_option(m, "lowerdir", lowerdirs[0]); + if (lowerdirs[0]) { + seq_show_option(m, "lowerdir", lowerdirs[0]); + } else { + nr_lower =3D ofs->numlayer; + nr_merged_lower =3D nr_lower - ofs->numdatalayer; + } + for (nr =3D 1; nr < nr_lower; nr++) { + if (nr < nr_merged_lower) + seq_show_option(m, "lowerdir+", lowerdirs[nr]); + else + seq_show_option(m, "datadir+", lowerdirs[nr]); + } if (ofs->config.upperdir) { seq_show_option(m, "upperdir", ofs->config.upperdir); seq_show_option(m, "workdir", ofs->config.workdir); --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DCAD91FF5AD; Sun, 24 Mar 2024 23:02: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=1711321370; cv=none; b=Byga18L6CmBm2yLst8SQmKaU9BKWvkrBbjMUIe2CTJHUf9QcskMga3QYNP6wY+kwr7p3S+AkTjgrEG+itEHRv72CdcKy+ZEQ9yYZ62iOEgXMTWPNbrtWxG3WUZt6VkoK5xYDVEn2xRTEJFyFXVSFB+FViNQWXBzAGyyhOzMSl2k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321370; c=relaxed/simple; bh=8fU73GsXD4fyKBYelWUK+JkQu+e2BAW/YaOrm/gOTQs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=KsAfiPgBJ4xA2PMsKa5BIVnqYNGdqrVjE4caMefrX2/vfNwec8c4K90tlinoJPfA4b34Xi99ax3l10jelb1uZjMFoOb05KZbzdgsXWIDrQZe3oVk+F7nMP/G51FzJkc5ZaMfaOH3oPTxw43cvuv0Bct9+YSP1kv1KLyptgnb/F8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=abaxcmqG; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="abaxcmqG" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 12DDCC433F1; Sun, 24 Mar 2024 23:02:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321368; bh=8fU73GsXD4fyKBYelWUK+JkQu+e2BAW/YaOrm/gOTQs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=abaxcmqGdm7AZiy5FVJJhxCxz/BhMLnSlakOmZeb1eGOLCDZcc+2Guek0w20U7elk tcSG3W3W1zDsq0iBxttTK0kDt4h9OJtAoJP3FZpnb2O8EHASGUmVO/xIHLv8Zi7sTN SxsdT6WUBLYRmFQTSlDdyxWpwtHeF29U7Qrb57psH2f7OIIu45EyFMrLa6b+IdWGTR yHE9qkiPBwLo3MMpvvwJpoW/adL66Zx5NmSWOH72U0eoE5Z8koMPTA2eGi4qwAtr+K Tsfab37+cYW1m4/QEYGRYZgdLOHXDOLhD2oI32dpXOUwZCPIt3UjNpHMM7zflVWW2f H8D/k869Fz/qg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Gabriel Krisman Bertazi , Amir Goldstein , Eric Biggers , Sasha Levin Subject: [PATCH 6.6 093/638] ovl: Always reject mounting over case-insensitive directories Date: Sun, 24 Mar 2024 18:52:10 -0400 Message-ID: <20240324230116.1348576-94-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Gabriel Krisman Bertazi [ Upstream commit 2824083db76cb9d4b7910607b367e93b02912865 ] overlayfs relies on the filesystem setting DCACHE_OP_HASH or DCACHE_OP_COMPARE to reject mounting over case-insensitive directories. Since commit bb9cd9106b22 ("fscrypt: Have filesystems handle their d_ops"), we set ->d_op through a hook in ->d_lookup, which means the root dentry won't have them, causing the mount to accidentally succeed. In v6.7-rc7, the following sequence will succeed to mount, but any dentry other than the root dentry will be a "weird" dentry to ovl and fail with EREMOTE. mkfs.ext4 -O casefold lower.img mount -O loop lower.img lower mount -t overlay -o lowerdir=3Dlower,upperdir=3Dupper,workdir=3Dwork ovl = /mnt Mounting on a subdirectory fails, as expected, because DCACHE_OP_HASH and DCACHE_OP_COMPARE are properly set by ->lookup. Fix by explicitly rejecting superblocks that allow case-insensitive dentries. Yes, this will be solved when we move d_op configuration back to ->s_d_op. Yet, we better have an explicit fix to avoid messing up again. While there, re-sort the entries to have more descriptive error messages first. Fixes: bb9cd9106b22 ("fscrypt: Have filesystems handle their d_ops") Acked-by: Amir Goldstein Reviewed-by: Eric Biggers Link: https://lore.kernel.org/r/20240221171412.10710-2-krisman@suse.de Signed-off-by: Gabriel Krisman Bertazi Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- fs/overlayfs/params.c | 14 +++++++++++--- include/linux/fs.h | 9 +++++++++ 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/fs/overlayfs/params.c b/fs/overlayfs/params.c index ddab9ea267d12..ad3593a41fb5f 100644 --- a/fs/overlayfs/params.c +++ b/fs/overlayfs/params.c @@ -280,12 +280,20 @@ static int ovl_mount_dir_check(struct fs_context *fc,= const struct path *path, { struct ovl_fs_context *ctx =3D fc->fs_private; =20 - if (ovl_dentry_weird(path->dentry)) - return invalfc(fc, "filesystem on %s not supported", name); - if (!d_is_dir(path->dentry)) return invalfc(fc, "%s is not a directory", name); =20 + /* + * Root dentries of case-insensitive capable filesystems might + * not have the dentry operations set, but still be incompatible + * with overlayfs. Check explicitly to prevent post-mount + * failures. + */ + if (sb_has_encoding(path->mnt->mnt_sb)) + return invalfc(fc, "case-insensitive capable filesystem on %s not suppor= ted", name); + + if (ovl_dentry_weird(path->dentry)) + return invalfc(fc, "filesystem on %s not supported", name); =20 /* * Check whether upper path is read-only here to report failures diff --git a/include/linux/fs.h b/include/linux/fs.h index 6e558264b4ab1..62102f8697946 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -3195,6 +3195,15 @@ extern int generic_check_addressable(unsigned, u64); =20 extern void generic_set_encrypted_ci_d_ops(struct dentry *dentry); =20 +static inline bool sb_has_encoding(const struct super_block *sb) +{ +#if IS_ENABLED(CONFIG_UNICODE) + return !!sb->s_encoding; +#else + return false; +#endif +} + int may_setattr(struct mnt_idmap *idmap, struct inode *inode, unsigned int ia_valid); int setattr_prepare(struct mnt_idmap *, struct dentry *, struct iattr *); --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2B6D81FF5B3; Sun, 24 Mar 2024 23:02: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=1711321371; cv=none; b=XGI4uKylNKwG6f3fKCe1XBWvSI6ManNQkE6La33O1ysltCmhq4ldiRpnpmIbCIOjDgje73sX9vOTfNQYF+bdaK5RXKxj0TWtNH0HkriJzfeX7iAQsJQWlLUX0EHERe0igoJ5loPAW5hUfqDf8QSJyScA95uCesOurq/5DPK3XcE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321371; c=relaxed/simple; bh=kcjCwDbEJD49FCkn7bWPsxt2uts52PTkJf8FWlS/DAE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=m93+Z/v0z7fuvC4C1hK3+/6ugcTY3j5RWhHLPTpmLQ6Y5cXhlZlQ6E0Kje5ulxCbXIpqfg7mDez4b/x1/WKJuyhpEc1pWp6D6YjT7JhOOSD+FbnDNq1ZWswjq8Rev935/argV5W8fyhsTGgh0jSSKHD+J763mCcIlFiEOsYCKos= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=iVy6i3dq; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="iVy6i3dq" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0F125C433C7; Sun, 24 Mar 2024 23:02:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321370; bh=kcjCwDbEJD49FCkn7bWPsxt2uts52PTkJf8FWlS/DAE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=iVy6i3dqkFrQmQPJ9eji195d9W6D7eFv+2LT+jaCUGztjsrqm7e16/RtRpxVBUhrV yOFu5OAfqLHtqCwmZhnnCDAHaLrRLI/YVRIcNkyBORxPVzrOciGD4LqhQ7qZ8HjP18 07D0xKUYs/e11Gt43QHyIh7dqEvcrkV051+79MBsEXa/UfVAuqjPYjPaZl1YU+9W9v /aCw24G2KpjihA2A+81wa8uuxLh3RvgsXteuf9Q7nBJCRWLLRcv6Jcz4FdAZIQfBRs VZSF9Th3hCKgtXZuX/41aB8tpEMUtN5cRpmEFSP0MrA90uWCne9O5ZlSNtNsNOTP0N jmD0qyLgY06pw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: David Gow , Guenter Roeck , Justin Stitt , Daniel Latypov , Rae Moar , Shuah Khan , Sasha Levin Subject: [PATCH 6.6 094/638] kunit: test: Log the correct filter string in executor_test Date: Sun, 24 Mar 2024 18:52:11 -0400 Message-ID: <20240324230116.1348576-95-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 6f2f793fba78eb4a0d5a34a71bc781118ed923d3 ] KUnit's executor_test logs the filter string in KUNIT_ASSERT_EQ_MSG(), but passed a random character from the filter, rather than the whole string. This was found by annotating KUNIT_ASSERT_EQ_MSG() to let gcc validate the format string. Fixes: 76066f93f1df ("kunit: add tests for filtering attributes") Signed-off-by: David Gow Tested-by: Guenter Roeck Reviewed-by: Justin Stitt Reviewed-by: Daniel Latypov Reviewed-by: Rae Moar Signed-off-by: Shuah Khan Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- lib/kunit/executor_test.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/kunit/executor_test.c b/lib/kunit/executor_test.c index 22d4ee86dbedd..3f7f967e3688e 100644 --- a/lib/kunit/executor_test.c +++ b/lib/kunit/executor_test.c @@ -129,7 +129,7 @@ static void parse_filter_attr_test(struct kunit *test) GFP_KERNEL); for (j =3D 0; j < filter_count; j++) { parsed_filters[j] =3D kunit_next_attr_filter(&filter, &err); - KUNIT_ASSERT_EQ_MSG(test, err, 0, "failed to parse filter '%s'", filters= [j]); + KUNIT_ASSERT_EQ_MSG(test, err, 0, "failed to parse filter from '%s'", fi= lters); } =20 KUNIT_EXPECT_STREQ(test, kunit_attr_filter_name(parsed_filters[0]), "spee= d"); --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3B4CB1FF5BC; Sun, 24 Mar 2024 23:02: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=1711321372; cv=none; b=jFKMar00oAAQZCISQBGx3k4WjEFV5ZmQZW6/gckq5xPB4LhyRZdMSQFH6epDzfeWiLgSw9r5cm8YiJaoVSsJ8eD5w3DXW8bIRCKa1ZD259rvtkqhCo1+VCw+cmi1jylmYUKDt9R7cvxhVoZdJPjlcUEtNEG6ZP7yBr2Iu4l3wP8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321372; c=relaxed/simple; bh=UtPbFHo8lwti70qwLux/kF9zRmuI2UztEodfyyPfoCg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=jWNkXmKZP61RPXRVIr20F0LsivrJ2fFeZojEeYkmVUA9WPo9+wX9BE7Aauf4quIfSSGqfJGeyCNywzGXxy/2MaWH1+KWJHO9Q22V1FYsk45kC9dJYufJzqN0fEHrIJlflevHv/l86Yzzwd4THfLDn8AJmvwft3ZZ4+ILrBQQjG0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=azoMfycP; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="azoMfycP" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4EB0EC43394; Sun, 24 Mar 2024 23:02:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321371; bh=UtPbFHo8lwti70qwLux/kF9zRmuI2UztEodfyyPfoCg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=azoMfycPXNz+Z37QfLDbfCLmCJ8PDI9aB/9s70LvmjqlKyez4Gixtp8+QMQYhp90G r47Y3P/Rt+kiVO/qvnYuLbBSHf/vlbFGy3oKjvLuPV3jxeaD3LfdT0oekHts5GEtlf hdOsRpggZWpFOhakLuZFtlBcrNWUmL+FgzOs9CEr+5fb43u9Hi3F46/oUI2NlRWV+0 B3nLBfOBaKhnweS5WTBd9bK3f9wRBDsQsCCa5xTt/EO0ob4MpCyn930lrSaHRC16hl C6d4GMV+M+j3QxsJJ12oHLEZlVEDQbp+yxa1eQuccNX1JaAtpDX1o1l+sW7w61FUHI y7I92lE+8mL8Q== 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 6.6 095/638] lib/cmdline: Fix an invalid format specifier in an assertion msg Date: Sun, 24 Mar 2024 18:52:12 -0400 Message-ID: <20240324230116.1348576-96-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 d4572dbc91453..705b82736be08 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 Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 514591FF5C3; Sun, 24 Mar 2024 23:02: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=1711321373; cv=none; b=eI2k76AhDUl7xlavcF+0Aaf6XdLBuojO4155rgJfxdkg6QRPGQKLYJWqRTZIuCICN1phmFDQi6OrroICUxIExjey4FOZDYDKLG3SNrSmMlfHJK5cgxsvaYtRsVNlLV2k5Yqlbq/q91NSjXjufvGLwy9AYvPnhUyyV46u0bgDyBI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321373; c=relaxed/simple; bh=//otllxWTZARqxoMNJaZWiaXPi8swLKbFrMrfBueuy4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=KElw4IfUhoAODuPELt7lSlmv/P4OYff57GGREPgTjMEVQYazCWtdjHTbSO5uJ1hRKS7JWwoM26C3QxnCZpAiOcHlxv+ItT2JNy9O76XiKC8h7erGkFlUNc1MlAnnA18zxnBDZVgvW3nZqOHGC4HiCTeQXQoDxkbysuuA8r1adLA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=peXKdlXz; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="peXKdlXz" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5F9C2C433F1; Sun, 24 Mar 2024 23:02:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321372; bh=//otllxWTZARqxoMNJaZWiaXPi8swLKbFrMrfBueuy4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=peXKdlXzu+eh2hkq2t7z1OhJydGipYsZB1xasrWWh0flZ61z1tx6HmOjqBu69QTuT EAtuaUZVnhZwBaq6hqR5vXZuQ3B51uEKvu2xGhxnvf/0VQ3DoW/A3jVzEyxXTiv6/K BQMB+RF9pqWylE04nA5TTdrhvj0X9Tb5j8DrWsEX0Hiu88Tqa6/8BMPOUz2u9NAEH0 XcOlEvEXxYgRJYikxgxFWE6k93sKcvnQhyRD1bnQhM9Igwald9AFZLbP03wpsaFIh6 d6DXzy1g7eY9bi4Zo5mWrR+pNRmG3oECGfAdbwTUA0WPU0oRvDorb8Sxvk9GYaAH5M jCku04CgDauag== 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 6.6 096/638] lib: memcpy_kunit: Fix an invalid format specifier in an assertion msg Date: Sun, 24 Mar 2024 18:52:13 -0400 Message-ID: <20240324230116.1348576-97-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 0a549ed22c3c7cc6da5c5f5918efd019944489a5 ] The 'i' passed as an assertion message is a size_t, so should use '%zu', not '%d'. This was found by annotating the _MSG() variants of KUnit's assertions to let gcc validate the format strings. Fixes: bb95ebbe89a7 ("lib: Introduce CONFIG_MEMCPY_KUNIT_TEST") 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 Tested-by: Takeshi Ogasawara --- lib/memcpy_kunit.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/memcpy_kunit.c b/lib/memcpy_kunit.c index 440aee705ccca..30e00ef0bf2e0 100644 --- a/lib/memcpy_kunit.c +++ b/lib/memcpy_kunit.c @@ -32,7 +32,7 @@ struct some_bytes { BUILD_BUG_ON(sizeof(instance.data) !=3D 32); \ for (size_t i =3D 0; i < sizeof(instance.data); i++) { \ KUNIT_ASSERT_EQ_MSG(test, instance.data[i], v, \ - "line %d: '%s' not initialized to 0x%02x @ %d (saw 0x%02x)\n", \ + "line %d: '%s' not initialized to 0x%02x @ %zu (saw 0x%02x)\n", \ __LINE__, #instance, v, i, instance.data[i]); \ } \ } while (0) @@ -41,7 +41,7 @@ struct some_bytes { BUILD_BUG_ON(sizeof(one) !=3D sizeof(two)); \ for (size_t i =3D 0; i < sizeof(one); i++) { \ KUNIT_EXPECT_EQ_MSG(test, one.data[i], two.data[i], \ - "line %d: %s.data[%d] (0x%02x) !=3D %s.data[%d] (0x%02x)\n", \ + "line %d: %s.data[%zu] (0x%02x) !=3D %s.data[%zu] (0x%02x)\n", \ __LINE__, #one, i, one.data[i], #two, i, two.data[i]); \ } \ kunit_info(test, "ok: " TEST_OP "() " name "\n"); \ --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 64CC61FF5CD; Sun, 24 Mar 2024 23:02: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=1711321374; cv=none; b=aG6NOFn+qM6OcwhWk3W2Kb7gFb10HL+uJltmrfPMardZ0EQw3fTXGdGVFFVIpKayZkxQutvwBexdFwUn2Z8Cufu/kYKuWBNEYmHJbRcizA+E17V3+oP4EZJbjevWB6jJQxhws02B0YKCjFXsIWet/ZXdxAdsymYE0IcXZi+I6dk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321374; c=relaxed/simple; bh=5Ds3TB7+/SF9s/aIHH6qhACfJy7hakZs8cM0naRFrrU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ayY+f844/WpYTEN7i1W/PMsXh9BHmFGF6UafWzJ0QXqGwU2PfkztNDTtRhV0HZuLuWGgqYfEHj6r4ssby7bdDe4XfeDpLwF5KIaGkhlMdehzkjyeVZYsJIGtwAjqCAx4/cmvuT9JeEM6vrr5YDXRbLWj6GM1kz2hbU8ToFLqBhY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=FftRTn2S; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="FftRTn2S" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 74B87C433C7; Sun, 24 Mar 2024 23:02:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321373; bh=5Ds3TB7+/SF9s/aIHH6qhACfJy7hakZs8cM0naRFrrU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=FftRTn2SFAynQm8RAagsUmEcCsjJQyKZBt9XVzsNVE7d2Lra9CRjSXveFc+64kyWN tAVKFfFgpRN5nOxyaTty9qdo3dNAgjAXJo015s3zCpAmen701sEFX+4wGmEprDJZyq z59B/CjLsgJemjK7cpDEjAJDjcAA9C53OUV/ykdBwP06P0ZJLKwzPdviU+cPbZxAFM 13dyMd1OL+2nOLvNfWqDzv9V2bHRYx6VV54RuI3pQ6eFz5BdfDTDFnJIr8aWTPncwN XuWVrpM3c2xpMQZ3wsMSFF/oRsl6z7KP0WyOubxbhvUpbfEPDAjtnFmm2zPKbgGAMI I0ZgZ8dGMEAVg== 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 6.6 097/638] time: test: Fix incorrect format specifier Date: Sun, 24 Mar 2024 18:52:14 -0400 Message-ID: <20240324230116.1348576-98-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 ca058c8af6baf..3e5d422dd15cb 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 Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 95E0A1FF5D7; Sun, 24 Mar 2024 23:02: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=1711321375; cv=none; b=Q4luDohRkrKwqrgASi3oezfvX3eGyy0rR69lSg1aGm0HeSvBG2yccN7yv4YXF1TnKqWw5LsuAhtsw+4hSvR4QQqs+HaYxd++evFim6JPJzK6/wvexJgjYQ/3bLiLHRXlT7bNInAOWHl6s7KgKaXue4pZSQGKnrX1Z6Uf43f9UPs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321375; c=relaxed/simple; bh=5C+htp1cj21cUDOBsDFxDwPW3yx1GRI9GjuFvV4teBA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=bqLjy8DH4uPUCFGePpbUB07dC25sVJFvpwoM2NyeTknbR1iYucYzgbNmkZUzb6+fH5EijDyY32jFT2tVuClbbB4drK1uqWEndBBkQdiakRZMFi3ESlLBI9Z06A+uVKHmJL3d2WFu9gD7yX3dPcWYrBEjVsolVsE+Lb00h8+/iaw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=BmR48/hy; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="BmR48/hy" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8946CC433F1; Sun, 24 Mar 2024 23:02:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321374; bh=5C+htp1cj21cUDOBsDFxDwPW3yx1GRI9GjuFvV4teBA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=BmR48/hyUebQR3tds3kNVqqQruJ5xjEjtPneg2K6euUZJ8diRf8g29PDvAaIZ4dWn WDF3McGGRXHKcKyBZmNSfRsorN2Ge+rIfh5YVgbXW70+OXcRREweQguYGQYIroS9rj djXJp35vvGf4WpxsIAqZAo4rGXBvugs3MPchy9Eq2DzCLzKUVfAcjoYZXMpGrpSE8v XHO0J5foj7W7OzDbZbt77XJEynE1ISpTnKKtruUr3okqSiMRouRljmAH2eAB/qRQlq J2hf4XMvNmzwavgKUnC9phEkODYxX4Em+UO8pJ0Otd/b4OZmZOdkakFDcFwmindI6b leuIy+iUoh8QQ== 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 6.6 098/638] rtc: test: Fix invalid format specifier. Date: Sun, 24 Mar 2024 18:52:15 -0400 Message-ID: <20240324230116.1348576-99-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6A8511FF5DD; Sun, 24 Mar 2024 23:02: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=1711321376; cv=none; b=LfkYExzwDUgJ4+xtBoxcskdXwUa8vQsJj24y5w3hS34u6ImzCpC0WXv0xl72Z6GQ4xmY5okwyblge8nA2Ebv3GXqEn0ZzdVdfIh961Le3ygtz9zuxGIng3eWe0go67xL95uD/VQ9gl1tOsp1mkswW3CXekX6TZ2UTerjL7geEEc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321376; c=relaxed/simple; bh=o0P18BDc75hN2CyaedHN48mE5buT5ZzzGqs59ZBu8ls=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=K0nH2M0ox+j+0KeLq/K7OUszLMXQrVNrATHBUJi7UaRdySsiqUU8obZwcShrW4gkrpfu10qfQ4QnUohpDs9wq0Mj3KrKhbinc14sFZXti8n+vO02wlICDbQS+ti3QgAveYpAeC7eSV+jFnfl2qUdkXUTFKIi74YVnjmYs6aA26M= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=bbLfQZQ7; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="bbLfQZQ7" Received: by smtp.kernel.org (Postfix) with ESMTPSA id BC1B3C43394; Sun, 24 Mar 2024 23:02:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321375; bh=o0P18BDc75hN2CyaedHN48mE5buT5ZzzGqs59ZBu8ls=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=bbLfQZQ7l/fLQL0ZP2d99HYYWPrZbH2EZP52JfufYvjkC1qhkZ9GFR/OrwPOLN2rC vGyNw8hl83KalsEd8l7HW6rEvL80hZNSnTrCAiAcqthmX/aNy9N4HqXQdXTa8WgCCS JQkX1ezq6XBA+mM0aD6KxRGJW3RpsZ1Y6nCoURqqEfxSk2pU2yWjlJ0hM0yOXcFfen r3tLfi0Po2GpL7iZqbCkSEKw+zqFEK532mla/to8xgwdoIMuWAmpLPdzXGLN8HYMVX k9xOiGvF7j0a2e2f0PJwYDY3ZhJU0DWQA7fuyt6/dgTbolWsSCrg8IX3S7PT6RKjN4 3RTVxhmSMHbxg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jens Axboe , Sasha Levin Subject: [PATCH 6.6 099/638] io_uring/net: unify how recvmsg and sendmsg copy in the msghdr Date: Sun, 24 Mar 2024 18:52:16 -0400 Message-ID: <20240324230116.1348576-100-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 52307ac4f2b507f60bae6df5be938d35e199c688 ] For recvmsg, we roll our own since we support buffer selections. This isn't the case for sendmsg right now, but in preparation for doing so, make the recvmsg copy helpers generic so we can call them from the sendmsg side as well. Signed-off-by: Jens Axboe Stable-dep-of: 8ede3db5061b ("io_uring/net: fix overflow check in io_recvms= g_mshot_prep()") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- io_uring/net.c | 271 ++++++++++++++++++++++++++----------------------- 1 file changed, 142 insertions(+), 129 deletions(-) diff --git a/io_uring/net.c b/io_uring/net.c index 161622029147c..ef495e2aac2bc 100644 --- a/io_uring/net.c +++ b/io_uring/net.c @@ -204,16 +204,150 @@ static int io_setup_async_msg(struct io_kiocb *req, return -EAGAIN; } =20 +static bool io_recvmsg_multishot_overflow(struct io_async_msghdr *iomsg) +{ + int hdr; + + if (iomsg->namelen < 0) + return true; + if (check_add_overflow((int)sizeof(struct io_uring_recvmsg_out), + iomsg->namelen, &hdr)) + return true; + if (check_add_overflow(hdr, (int)iomsg->controllen, &hdr)) + return true; + + return false; +} + +#ifdef CONFIG_COMPAT +static int __io_compat_msg_copy_hdr(struct io_kiocb *req, + struct io_async_msghdr *iomsg, + struct sockaddr __user **addr, int ddir) +{ + struct io_sr_msg *sr =3D io_kiocb_to_cmd(req, struct io_sr_msg); + struct compat_msghdr msg; + struct compat_iovec __user *uiov; + int ret; + + if (copy_from_user(&msg, sr->umsg_compat, sizeof(msg))) + return -EFAULT; + + ret =3D __get_compat_msghdr(&iomsg->msg, &msg, addr); + if (ret) + return ret; + + uiov =3D compat_ptr(msg.msg_iov); + if (req->flags & REQ_F_BUFFER_SELECT) { + compat_ssize_t clen; + + iomsg->free_iov =3D NULL; + if (msg.msg_iovlen =3D=3D 0) { + sr->len =3D 0; + } else if (msg.msg_iovlen > 1) { + return -EINVAL; + } else { + if (!access_ok(uiov, sizeof(*uiov))) + return -EFAULT; + if (__get_user(clen, &uiov->iov_len)) + return -EFAULT; + if (clen < 0) + return -EINVAL; + sr->len =3D clen; + } + + if (ddir =3D=3D ITER_DEST && req->flags & REQ_F_APOLL_MULTISHOT) { + iomsg->namelen =3D msg.msg_namelen; + iomsg->controllen =3D msg.msg_controllen; + if (io_recvmsg_multishot_overflow(iomsg)) + return -EOVERFLOW; + } + + return 0; + } + + iomsg->free_iov =3D iomsg->fast_iov; + ret =3D __import_iovec(ddir, (struct iovec __user *)uiov, msg.msg_iovlen, + UIO_FASTIOV, &iomsg->free_iov, + &iomsg->msg.msg_iter, true); + if (unlikely(ret < 0)) + return ret; + + return 0; +} +#endif + +static int __io_msg_copy_hdr(struct io_kiocb *req, struct io_async_msghdr = *iomsg, + struct sockaddr __user **addr, int ddir) +{ + struct io_sr_msg *sr =3D io_kiocb_to_cmd(req, struct io_sr_msg); + struct user_msghdr msg; + int ret; + + if (copy_from_user(&msg, sr->umsg, sizeof(*sr->umsg))) + return -EFAULT; + + ret =3D __copy_msghdr(&iomsg->msg, &msg, addr); + if (ret) + return ret; + + if (req->flags & REQ_F_BUFFER_SELECT) { + if (msg.msg_iovlen =3D=3D 0) { + sr->len =3D iomsg->fast_iov[0].iov_len =3D 0; + iomsg->fast_iov[0].iov_base =3D NULL; + iomsg->free_iov =3D NULL; + } else if (msg.msg_iovlen > 1) { + return -EINVAL; + } else { + if (copy_from_user(iomsg->fast_iov, msg.msg_iov, + sizeof(*msg.msg_iov))) + return -EFAULT; + sr->len =3D iomsg->fast_iov[0].iov_len; + iomsg->free_iov =3D NULL; + } + + if (ddir =3D=3D ITER_DEST && req->flags & REQ_F_APOLL_MULTISHOT) { + iomsg->namelen =3D msg.msg_namelen; + iomsg->controllen =3D msg.msg_controllen; + if (io_recvmsg_multishot_overflow(iomsg)) + return -EOVERFLOW; + } + + return 0; + } + + iomsg->free_iov =3D iomsg->fast_iov; + ret =3D __import_iovec(ddir, msg.msg_iov, msg.msg_iovlen, UIO_FASTIOV, + &iomsg->free_iov, &iomsg->msg.msg_iter, false); + if (unlikely(ret < 0)) + return ret; + + return 0; +} + +static int io_msg_copy_hdr(struct io_kiocb *req, struct io_async_msghdr *i= omsg, + struct sockaddr __user **addr, int ddir) +{ + iomsg->msg.msg_name =3D &iomsg->addr; + iomsg->msg.msg_iter.nr_segs =3D 0; + +#ifdef CONFIG_COMPAT + if (req->ctx->compat) + return __io_compat_msg_copy_hdr(req, iomsg, addr, ddir); +#endif + + return __io_msg_copy_hdr(req, iomsg, addr, ddir); +} + static int io_sendmsg_copy_hdr(struct io_kiocb *req, struct io_async_msghdr *iomsg) { struct io_sr_msg *sr =3D io_kiocb_to_cmd(req, struct io_sr_msg); int ret; =20 - iomsg->msg.msg_name =3D &iomsg->addr; - iomsg->free_iov =3D iomsg->fast_iov; - ret =3D sendmsg_copy_msghdr(&iomsg->msg, sr->umsg, sr->msg_flags, - &iomsg->free_iov); + ret =3D io_msg_copy_hdr(req, iomsg, NULL, ITER_SOURCE); + if (ret) + return ret; + /* save msg_control as sys_sendmsg() overwrites it */ sr->msg_control =3D iomsg->msg.msg_control_user; return ret; @@ -435,142 +569,21 @@ int io_send(struct io_kiocb *req, unsigned int issue= _flags) return IOU_OK; } =20 -static bool io_recvmsg_multishot_overflow(struct io_async_msghdr *iomsg) -{ - int hdr; - - if (iomsg->namelen < 0) - return true; - if (check_add_overflow((int)sizeof(struct io_uring_recvmsg_out), - iomsg->namelen, &hdr)) - return true; - if (check_add_overflow(hdr, (int)iomsg->controllen, &hdr)) - return true; - - return false; -} - -static int __io_recvmsg_copy_hdr(struct io_kiocb *req, - struct io_async_msghdr *iomsg) -{ - struct io_sr_msg *sr =3D io_kiocb_to_cmd(req, struct io_sr_msg); - struct user_msghdr msg; - int ret; - - if (copy_from_user(&msg, sr->umsg, sizeof(*sr->umsg))) - return -EFAULT; - - ret =3D __copy_msghdr(&iomsg->msg, &msg, &iomsg->uaddr); - if (ret) - return ret; - - if (req->flags & REQ_F_BUFFER_SELECT) { - if (msg.msg_iovlen =3D=3D 0) { - sr->len =3D iomsg->fast_iov[0].iov_len =3D 0; - iomsg->fast_iov[0].iov_base =3D NULL; - iomsg->free_iov =3D NULL; - } else if (msg.msg_iovlen > 1) { - return -EINVAL; - } else { - if (copy_from_user(iomsg->fast_iov, msg.msg_iov, sizeof(*msg.msg_iov))) - return -EFAULT; - sr->len =3D iomsg->fast_iov[0].iov_len; - iomsg->free_iov =3D NULL; - } - - if (req->flags & REQ_F_APOLL_MULTISHOT) { - iomsg->namelen =3D msg.msg_namelen; - iomsg->controllen =3D msg.msg_controllen; - if (io_recvmsg_multishot_overflow(iomsg)) - return -EOVERFLOW; - } - } else { - iomsg->free_iov =3D iomsg->fast_iov; - ret =3D __import_iovec(ITER_DEST, msg.msg_iov, msg.msg_iovlen, UIO_FASTI= OV, - &iomsg->free_iov, &iomsg->msg.msg_iter, - false); - if (ret > 0) - ret =3D 0; - } - - return ret; -} - -#ifdef CONFIG_COMPAT -static int __io_compat_recvmsg_copy_hdr(struct io_kiocb *req, - struct io_async_msghdr *iomsg) -{ - struct io_sr_msg *sr =3D io_kiocb_to_cmd(req, struct io_sr_msg); - struct compat_msghdr msg; - struct compat_iovec __user *uiov; - int ret; - - if (copy_from_user(&msg, sr->umsg_compat, sizeof(msg))) - return -EFAULT; - - ret =3D __get_compat_msghdr(&iomsg->msg, &msg, &iomsg->uaddr); - if (ret) - return ret; - - uiov =3D compat_ptr(msg.msg_iov); - if (req->flags & REQ_F_BUFFER_SELECT) { - compat_ssize_t clen; - - iomsg->free_iov =3D NULL; - if (msg.msg_iovlen =3D=3D 0) { - sr->len =3D 0; - } else if (msg.msg_iovlen > 1) { - return -EINVAL; - } else { - if (!access_ok(uiov, sizeof(*uiov))) - return -EFAULT; - if (__get_user(clen, &uiov->iov_len)) - return -EFAULT; - if (clen < 0) - return -EINVAL; - sr->len =3D clen; - } - - if (req->flags & REQ_F_APOLL_MULTISHOT) { - iomsg->namelen =3D msg.msg_namelen; - iomsg->controllen =3D msg.msg_controllen; - if (io_recvmsg_multishot_overflow(iomsg)) - return -EOVERFLOW; - } - } else { - iomsg->free_iov =3D iomsg->fast_iov; - ret =3D __import_iovec(ITER_DEST, (struct iovec __user *)uiov, msg.msg_i= ovlen, - UIO_FASTIOV, &iomsg->free_iov, - &iomsg->msg.msg_iter, true); - if (ret < 0) - return ret; - } - - return 0; -} -#endif - static int io_recvmsg_copy_hdr(struct io_kiocb *req, struct io_async_msghdr *iomsg) { - iomsg->msg.msg_name =3D &iomsg->addr; - iomsg->msg.msg_iter.nr_segs =3D 0; - -#ifdef CONFIG_COMPAT - if (req->ctx->compat) - return __io_compat_recvmsg_copy_hdr(req, iomsg); -#endif - - return __io_recvmsg_copy_hdr(req, iomsg); + return io_msg_copy_hdr(req, iomsg, &iomsg->uaddr, ITER_DEST); } =20 int io_recvmsg_prep_async(struct io_kiocb *req) { + struct io_async_msghdr *iomsg; int ret; =20 if (!io_msg_alloc_async_prep(req)) return -ENOMEM; - ret =3D io_recvmsg_copy_hdr(req, req->async_data); + iomsg =3D req->async_data; + ret =3D io_recvmsg_copy_hdr(req, iomsg); if (!ret) req->flags |=3D REQ_F_NEED_CLEANUP; return ret; --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 95A12130E20; Sun, 24 Mar 2024 23:02: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=1711321377; cv=none; b=ZKJA/zAHOJsNOs9QfSIvXI8EuLkKGlVYouSEJf1cmltXA5ouE/GEI39D7+33ERI+FRQXgXxCdYmtgQ0AlOaBSaRjkjgXk8vi/v7vbBsEizKKxmWDyDZqFkiSlsFH0WDOi6HDqW2q8J3bRG85fb5Ax/GRGuijx+y2SjWGDgDKeNs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321377; c=relaxed/simple; bh=gUOyQMOyLGmeWKluDeufXTqUbLq9Ei/WR0Jgx0MLd2w=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=XBgbsAbtxlAXL0JC0qUg+KXDBPiQmKbuZSFdoggUFQxFRijGCOQG8CfmCdC8VoO5UhHbnlYAbkXmfeWP0v1Eo9PiTdUVO1A+i03h0hGkjM7kEL5H8aj1LphhpCU9tLix4XgjVeEvKoF8no0ZnfQUuCjHHc14aHjysDln1Q9y7F8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=nGkgDaQm; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="nGkgDaQm" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 94FD4C433C7; Sun, 24 Mar 2024 23:02:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321376; bh=gUOyQMOyLGmeWKluDeufXTqUbLq9Ei/WR0Jgx0MLd2w=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nGkgDaQmgdtCa3Bfwd7W/fs/hv8EnIblrr7BMV5vD5pops95rmGeMiGrFfWYxbuxs wc/JsFOUV5/tkANW/cUZe/TFMHYP6LfHUkVVMtJkr+J/MBG1hqqeMMJVax3hjEfU93 p7VIu/FwhZL4UK7sU+q9w6PgUKP0yQogTnQtI3LzpCwq98NbR1NUtvyvzPKbc8Cr5+ ngYgvKuFJAzJBl1uj9cshzWj0cdYcgRx6HdFguWytUvsE7v/pFE6YUEA+t7A6w3rVt B4oeyHrxdE8Nw1N4YjsYCV+9pQAacBcvCmJINCo86LbiOQtfdObEs2lUYcnO04VVBP vBK4eN791Cifg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jens Axboe , Sasha Levin Subject: [PATCH 6.6 100/638] io_uring/net: move receive multishot out of the generic msghdr path Date: Sun, 24 Mar 2024 18:52:17 -0400 Message-ID: <20240324230116.1348576-101-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 c55978024d123d43808ab393a0a4ce3ce8568150 ] Move the actual user_msghdr / compat_msghdr into the send and receive sides, respectively, so we can move the uaddr receive handling into its own handler, and ditto the multishot with buffer selection logic. Signed-off-by: Jens Axboe Stable-dep-of: 8ede3db5061b ("io_uring/net: fix overflow check in io_recvms= g_mshot_prep()") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- io_uring/net.c | 161 ++++++++++++++++++++++++++++--------------------- 1 file changed, 91 insertions(+), 70 deletions(-) diff --git a/io_uring/net.c b/io_uring/net.c index ef495e2aac2bc..1d9bfde71809a 100644 --- a/io_uring/net.c +++ b/io_uring/net.c @@ -204,46 +204,26 @@ static int io_setup_async_msg(struct io_kiocb *req, return -EAGAIN; } =20 -static bool io_recvmsg_multishot_overflow(struct io_async_msghdr *iomsg) -{ - int hdr; - - if (iomsg->namelen < 0) - return true; - if (check_add_overflow((int)sizeof(struct io_uring_recvmsg_out), - iomsg->namelen, &hdr)) - return true; - if (check_add_overflow(hdr, (int)iomsg->controllen, &hdr)) - return true; - - return false; -} - #ifdef CONFIG_COMPAT -static int __io_compat_msg_copy_hdr(struct io_kiocb *req, - struct io_async_msghdr *iomsg, - struct sockaddr __user **addr, int ddir) +static int io_compat_msg_copy_hdr(struct io_kiocb *req, + struct io_async_msghdr *iomsg, + struct compat_msghdr *msg, int ddir) { struct io_sr_msg *sr =3D io_kiocb_to_cmd(req, struct io_sr_msg); - struct compat_msghdr msg; struct compat_iovec __user *uiov; int ret; =20 - if (copy_from_user(&msg, sr->umsg_compat, sizeof(msg))) + if (copy_from_user(msg, sr->umsg_compat, sizeof(*msg))) return -EFAULT; =20 - ret =3D __get_compat_msghdr(&iomsg->msg, &msg, addr); - if (ret) - return ret; - - uiov =3D compat_ptr(msg.msg_iov); + uiov =3D compat_ptr(msg->msg_iov); if (req->flags & REQ_F_BUFFER_SELECT) { compat_ssize_t clen; =20 iomsg->free_iov =3D NULL; - if (msg.msg_iovlen =3D=3D 0) { + if (msg->msg_iovlen =3D=3D 0) { sr->len =3D 0; - } else if (msg.msg_iovlen > 1) { + } else if (msg->msg_iovlen > 1) { return -EINVAL; } else { if (!access_ok(uiov, sizeof(*uiov))) @@ -255,18 +235,11 @@ static int __io_compat_msg_copy_hdr(struct io_kiocb *= req, sr->len =3D clen; } =20 - if (ddir =3D=3D ITER_DEST && req->flags & REQ_F_APOLL_MULTISHOT) { - iomsg->namelen =3D msg.msg_namelen; - iomsg->controllen =3D msg.msg_controllen; - if (io_recvmsg_multishot_overflow(iomsg)) - return -EOVERFLOW; - } - return 0; } =20 iomsg->free_iov =3D iomsg->fast_iov; - ret =3D __import_iovec(ddir, (struct iovec __user *)uiov, msg.msg_iovlen, + ret =3D __import_iovec(ddir, (struct iovec __user *)uiov, msg->msg_iovlen, UIO_FASTIOV, &iomsg->free_iov, &iomsg->msg.msg_iter, true); if (unlikely(ret < 0)) @@ -276,47 +249,35 @@ static int __io_compat_msg_copy_hdr(struct io_kiocb *= req, } #endif =20 -static int __io_msg_copy_hdr(struct io_kiocb *req, struct io_async_msghdr = *iomsg, - struct sockaddr __user **addr, int ddir) +static int io_msg_copy_hdr(struct io_kiocb *req, struct io_async_msghdr *i= omsg, + struct user_msghdr *msg, int ddir) { struct io_sr_msg *sr =3D io_kiocb_to_cmd(req, struct io_sr_msg); - struct user_msghdr msg; int ret; =20 - if (copy_from_user(&msg, sr->umsg, sizeof(*sr->umsg))) + if (copy_from_user(msg, sr->umsg, sizeof(*sr->umsg))) return -EFAULT; =20 - ret =3D __copy_msghdr(&iomsg->msg, &msg, addr); - if (ret) - return ret; - if (req->flags & REQ_F_BUFFER_SELECT) { - if (msg.msg_iovlen =3D=3D 0) { + if (msg->msg_iovlen =3D=3D 0) { sr->len =3D iomsg->fast_iov[0].iov_len =3D 0; iomsg->fast_iov[0].iov_base =3D NULL; iomsg->free_iov =3D NULL; - } else if (msg.msg_iovlen > 1) { + } else if (msg->msg_iovlen > 1) { return -EINVAL; } else { - if (copy_from_user(iomsg->fast_iov, msg.msg_iov, - sizeof(*msg.msg_iov))) + if (copy_from_user(iomsg->fast_iov, msg->msg_iov, + sizeof(*msg->msg_iov))) return -EFAULT; sr->len =3D iomsg->fast_iov[0].iov_len; iomsg->free_iov =3D NULL; } =20 - if (ddir =3D=3D ITER_DEST && req->flags & REQ_F_APOLL_MULTISHOT) { - iomsg->namelen =3D msg.msg_namelen; - iomsg->controllen =3D msg.msg_controllen; - if (io_recvmsg_multishot_overflow(iomsg)) - return -EOVERFLOW; - } - return 0; } =20 iomsg->free_iov =3D iomsg->fast_iov; - ret =3D __import_iovec(ddir, msg.msg_iov, msg.msg_iovlen, UIO_FASTIOV, + ret =3D __import_iovec(ddir, msg->msg_iov, msg->msg_iovlen, UIO_FASTIOV, &iomsg->free_iov, &iomsg->msg.msg_iter, false); if (unlikely(ret < 0)) return ret; @@ -324,30 +285,34 @@ static int __io_msg_copy_hdr(struct io_kiocb *req, st= ruct io_async_msghdr *iomsg return 0; } =20 -static int io_msg_copy_hdr(struct io_kiocb *req, struct io_async_msghdr *i= omsg, - struct sockaddr __user **addr, int ddir) +static int io_sendmsg_copy_hdr(struct io_kiocb *req, + struct io_async_msghdr *iomsg) { + struct io_sr_msg *sr =3D io_kiocb_to_cmd(req, struct io_sr_msg); + struct user_msghdr msg; + int ret; + iomsg->msg.msg_name =3D &iomsg->addr; iomsg->msg.msg_iter.nr_segs =3D 0; =20 #ifdef CONFIG_COMPAT - if (req->ctx->compat) - return __io_compat_msg_copy_hdr(req, iomsg, addr, ddir); -#endif + if (unlikely(req->ctx->compat)) { + struct compat_msghdr cmsg; =20 - return __io_msg_copy_hdr(req, iomsg, addr, ddir); -} + ret =3D io_compat_msg_copy_hdr(req, iomsg, &cmsg, ITER_SOURCE); + if (unlikely(ret)) + return ret; =20 -static int io_sendmsg_copy_hdr(struct io_kiocb *req, - struct io_async_msghdr *iomsg) -{ - struct io_sr_msg *sr =3D io_kiocb_to_cmd(req, struct io_sr_msg); - int ret; + return __get_compat_msghdr(&iomsg->msg, &cmsg, NULL); + } +#endif =20 - ret =3D io_msg_copy_hdr(req, iomsg, NULL, ITER_SOURCE); - if (ret) + ret =3D io_msg_copy_hdr(req, iomsg, &msg, ITER_SOURCE); + if (unlikely(ret)) return ret; =20 + ret =3D __copy_msghdr(&iomsg->msg, &msg, NULL); + /* save msg_control as sys_sendmsg() overwrites it */ sr->msg_control =3D iomsg->msg.msg_control_user; return ret; @@ -569,10 +534,66 @@ int io_send(struct io_kiocb *req, unsigned int issue_= flags) return IOU_OK; } =20 +static int io_recvmsg_mshot_prep(struct io_kiocb *req, + struct io_async_msghdr *iomsg, + size_t namelen, size_t controllen) +{ + if ((req->flags & (REQ_F_APOLL_MULTISHOT|REQ_F_BUFFER_SELECT)) =3D=3D + (REQ_F_APOLL_MULTISHOT|REQ_F_BUFFER_SELECT)) { + int hdr; + + if (unlikely(namelen < 0)) + return -EOVERFLOW; + if (check_add_overflow((int)sizeof(struct io_uring_recvmsg_out), + namelen, &hdr)) + return -EOVERFLOW; + if (check_add_overflow(hdr, (int)controllen, &hdr)) + return -EOVERFLOW; + + iomsg->namelen =3D namelen; + iomsg->controllen =3D controllen; + return 0; + } + + return 0; +} + static int io_recvmsg_copy_hdr(struct io_kiocb *req, struct io_async_msghdr *iomsg) { - return io_msg_copy_hdr(req, iomsg, &iomsg->uaddr, ITER_DEST); + struct user_msghdr msg; + int ret; + + iomsg->msg.msg_name =3D &iomsg->addr; + iomsg->msg.msg_iter.nr_segs =3D 0; + +#ifdef CONFIG_COMPAT + if (unlikely(req->ctx->compat)) { + struct compat_msghdr cmsg; + + ret =3D io_compat_msg_copy_hdr(req, iomsg, &cmsg, ITER_DEST); + if (unlikely(ret)) + return ret; + + ret =3D __get_compat_msghdr(&iomsg->msg, &cmsg, &iomsg->uaddr); + if (unlikely(ret)) + return ret; + + return io_recvmsg_mshot_prep(req, iomsg, cmsg.msg_namelen, + cmsg.msg_controllen); + } +#endif + + ret =3D io_msg_copy_hdr(req, iomsg, &msg, ITER_DEST); + if (unlikely(ret)) + return ret; + + ret =3D __copy_msghdr(&iomsg->msg, &msg, &iomsg->uaddr); + if (unlikely(ret)) + return ret; + + return io_recvmsg_mshot_prep(req, iomsg, msg.msg_namelen, + msg.msg_controllen); } =20 int io_recvmsg_prep_async(struct io_kiocb *req) --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 32440130E2F; Sun, 24 Mar 2024 23:02: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=1711321378; cv=none; b=F6jVQiv78XVOCXZVdmzv1D3yqK5KOPAFFdsrGaFLrUqaGk+KKYJ/odvg++B6+H5L4dSneZBeXQPI0Wz+rIbD4a8GdttWkiyZbREEpxS/b7yeb+RiH8GqB7Ezbd4E88Pev7AtHa+8pqG79deeWush2lzPehxCVoAvTMn5CwoAuz8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321378; c=relaxed/simple; bh=+mRypTj2AN+uFrmsMst73xXavbGCXAj069qIzrAjzZE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PTcDxpVu5cL1/zPS4lkI/X60JVQWaSBBFIZgM8cHbS9jTWHxP4vEGTSDllM5mDkCbYiswIWpShc4fFK8y3ISZ/ys1jjVLudwpFy4uqfhdcGCJcqiOiIUDGAS+/qtjTxTcm2Dc1Vtq6clirSniENqltaJ65tvQgtQRpoMkANd0z0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=V9tnF1r1; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="V9tnF1r1" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6B4DCC433F1; Sun, 24 Mar 2024 23:02:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321377; bh=+mRypTj2AN+uFrmsMst73xXavbGCXAj069qIzrAjzZE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=V9tnF1r1584Y1EcuAt4aL7iexq9/ad6hKhe/88OJhjKRpHFsdLEdteAIlBIk8h5xA 09XJqwCkwpa3bPoBnk5ERj25eELiLAF6LOMJHnHbK0WQy+DTyr6cCaPpO2anx4DYig UT0qi2mgh4sUP7Ba747SqVhlERLaIn1JZn0rTI5KdKJOiKK2sJ/CVkeZgso6VUO9Az 6GDGmle2hqbHChgpGw3nYvxBODFkv+bbb+vlOf5Bq7onLYnTyn0+5dEVYOE5eoG04G Ypar0QQQqAHRWvZxIDQ0AjkgmgIYUZfYkx+23NRR2qutwhBD2lNkVTyoxuRGNsh7/f x1pL3FA62wIpw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Dan Carpenter , Jens Axboe , Sasha Levin Subject: [PATCH 6.6 101/638] io_uring/net: fix overflow check in io_recvmsg_mshot_prep() Date: Sun, 24 Mar 2024 18:52:18 -0400 Message-ID: <20240324230116.1348576-102-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 8ede3db5061bb1fe28e2c9683329aafa89d2b1b4 ] The "controllen" variable is type size_t (unsigned long). Casting it to int could lead to an integer underflow. The check_add_overflow() function considers the type of the destination which is type int. If we add two positive values and the result cannot fit in an integer then that's counted as an overflow. However, if we cast "controllen" to an int and it turns negative, then negative values *can* fit into an int type so there is no overflow. Good: 100 + (unsigned long)-4 =3D 96 <-- overflow Bad: 100 + (int)-4 =3D 96 <-- no overflow I deleted the cast of the sizeof() as well. That's not a bug but the cast is unnecessary. Fixes: 9b0fc3c054ff ("io_uring: fix types in io_recvmsg_multishot_overflow") Signed-off-by: Dan Carpenter Link: https://lore.kernel.org/r/138bd2e2-ede8-4bcc-aa7b-f3d9de167a37@moroto= .mountain Signed-off-by: Jens Axboe Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- io_uring/net.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/io_uring/net.c b/io_uring/net.c index 1d9bfde71809a..058e04ea68c04 100644 --- a/io_uring/net.c +++ b/io_uring/net.c @@ -544,10 +544,10 @@ static int io_recvmsg_mshot_prep(struct io_kiocb *req, =20 if (unlikely(namelen < 0)) return -EOVERFLOW; - if (check_add_overflow((int)sizeof(struct io_uring_recvmsg_out), + if (check_add_overflow(sizeof(struct io_uring_recvmsg_out), namelen, &hdr)) return -EOVERFLOW; - if (check_add_overflow(hdr, (int)controllen, &hdr)) + if (check_add_overflow(hdr, controllen, &hdr)) return -EOVERFLOW; =20 iomsg->namelen =3D namelen; --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1C131130E34; Sun, 24 Mar 2024 23:02: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=1711321379; cv=none; b=sb4k6yXYj65vw1u5OohHKZm95NNLCjQtr0qpBmbbEhhmBh8F/LtP2Cqmop2MGN70WFsswHKhwR9iL3qZ+9SpjtRa3xHe6hSHvtATOS0f7O2fsHbiL7HStpG2LVLEvwNSwBYRgAmGq/LgQ/GmDBz6ctCopR1UpCCmyCrVgvV2IU8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321379; c=relaxed/simple; bh=MQ8BlB4JG1jjZwfj5Rva8ULNhjxYa7cmFF0KVqjjOCo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=dumeJvzpA8SYsiJrSVNi4Jou/JmqMnfDlsom062vM9hJQxir5+GmBO+xtM9RsEBFpiOGXJmhIOvWNmXP7F30KiRxMaITc17xG1iL2C9kKklPw3nuwFl3Ltry96tn7dPHPhifDIzkDDkvUjtoBTcPvKyTuFyXMk4l/1DkdP44hPk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=hNU2LyuH; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="hNU2LyuH" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 59200C43399; Sun, 24 Mar 2024 23:02:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321378; bh=MQ8BlB4JG1jjZwfj5Rva8ULNhjxYa7cmFF0KVqjjOCo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=hNU2LyuH4090KT/uXGtuxtjAqdB7OPqX8L4vkQFwgAsCHJIZd2U5d6YVvLGQ0AfjZ jEa5Vf9ujPzsNdFcr5jjwE83HH4LQBkAlbyfrJ0vRMFjVlJNvatyBzqk3ZJ8CRhTqz T1h79F5Da030LM10cluEXGTDX4OuA2naYLp6r7SuludILACxWBwft2l0b2HAhRr+hs uA9gs1vT0DYgTXRA5G+YtKvApP9cIo8v4rr9pDEpemLV1aETYv5DzertRHtfkzCWVq liGkdj/eyigVR5/PlNpdD4Q1Msz94NoSbfa+f/58IVEXDqtPY9PlVWmC8kdTz625GT j3XWNwmt7oMUA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Chun-Yi Lee , Jens Axboe , Sasha Levin Subject: [PATCH 6.6 102/638] aoe: fix the potential use-after-free problem in aoecmd_cfg_pkts Date: Sun, 24 Mar 2024 18:52:19 -0400 Message-ID: <20240324230116.1348576-103-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 d7317425be510..cc9077b588d7e 100644 --- a/drivers/block/aoe/aoecmd.c +++ b/drivers/block/aoe/aoecmd.c @@ -419,13 +419,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; @@ -440,9 +443,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 Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DC6F7200107; Sun, 24 Mar 2024 23:02: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=1711321381; cv=none; b=To4jWL82pRDH2/yKCZiK7ZBGs69OV0O6KSYH4Gl4XXTjOzDxouIft+bI8cGNTbYJ8tZvGZGIseryFe/ni/etDoZT/DfSLnR+VtGX94WFhffJFp4NznrStnLHVNA3vzoKbS1MLvkY1axeNUq4X9AG+qva5kLtJH1PjrWN8cT6ZV0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321381; c=relaxed/simple; bh=vYYFwKto6yg6woV1Hr3fxCR11bex2S34Ri9YamTHIhE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=JTIwG0xuKOCaXghKpkLvlxrisnb0WEswK44TVfe/Q2l34cs34ZAgklqjQi4unrFfK4BEDXYuYpY5Q0Te1C3PsQ66ajUVUyEQvkVEL2J+Y/1PL6PE5+JbcTtNlLgp0EGo423SVNowNVK9hPSDPyJgbzX0cS+qp9+iBcn9AoGsM64= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ttYXBpoq; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ttYXBpoq" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 45515C43390; Sun, 24 Mar 2024 23:02:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321379; bh=vYYFwKto6yg6woV1Hr3fxCR11bex2S34Ri9YamTHIhE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ttYXBpoqRjWDW6tWwo6DeWmQYeEnEzL2oQvOeJzdCbXpPsWf9hy9udskdkAfOU6vK ioD+lHV8smO8KUM62tyX4hgu5RUHcU+OMq8dJ6Q0CWrJcWZoigyJaSuGvc4iYSzY7x Ge5KhQrClMBRTWeeArp1ufnjNxqNvdVMepL7f2i2AIgB0hDnqb9Cmap73ty8hJSSJV kY75m8FIM/qUzL6y8G5EiaYCq9JTZxN6ktunh8s4tGyHmkVwpSGdjvc1epvu7zeJGH oZJKwM0bVRzpYy1UG09MTi9+UAGpCIZLe914Le/apnnsNR8WOk4Tu+rvt3yWhEjnDk nMwcaVc7f4kBw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Michael Roth , Dave Hansen , "H . Peter Anvin" , Ingo Molnar , Andy Lutomirski , Peter Zijlstra , Rik van Riel , Linus Torvalds , Sasha Levin Subject: [PATCH 6.6 103/638] x86/mm: Ensure input to pfn_to_kaddr() is treated as a 64-bit type Date: Sun, 24 Mar 2024 18:52:20 -0400 Message-ID: <20240324230116.1348576-104-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Roth [ Upstream commit 8e5647a723c49d73b9f108a8bb38e8c29d3948ea ] On 64-bit platforms, the pfn_to_kaddr() macro requires that the input value is 64 bits in order to ensure that valid address bits don't get lost when shifting that input by PAGE_SHIFT to calculate the physical address to provide a virtual address for. One such example is in pvalidate_pages() (used by SEV-SNP guests), where the GFN in the struct used for page-state change requests is a 40-bit bit-field, so attempts to pass this GFN field directly into pfn_to_kaddr() ends up causing guest crashes when dealing with addresses above the 1TB range due to the above. Fix this issue with SEV-SNP guests, as well as any similar cases that might cause issues in current/future code, by using an inline function, instead of a macro, so that the input is implicitly cast to the expected 64-bit input type prior to performing the shift operation. While it might be argued that the issue is on the caller side, other archs/macros have taken similar approaches to deal with instances like this, such as ARM explicitly casting the input to phys_addr_t: e48866647b48 ("ARM: 8396/1: use phys_addr_t in pfn_to_kaddr()") A C inline function is even better though. [ mingo: Refined the changelog some more & added __always_inline. ] Fixes: 6c3211796326 ("x86/sev: Add SNP-specific unaccepted memory support") Suggested-by: Dave Hansen Suggested-by: H. Peter Anvin Signed-off-by: Michael Roth Signed-off-by: Ingo Molnar Link: https://lore.kernel.org/r/20231122163700.400507-1-michael.roth@amd.com Cc: Andy Lutomirski Cc: Peter Zijlstra Cc: Rik van Riel Cc: Linus Torvalds Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/x86/include/asm/page.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/arch/x86/include/asm/page.h b/arch/x86/include/asm/page.h index d18e5c332cb9f..1b93ff80b43bc 100644 --- a/arch/x86/include/asm/page.h +++ b/arch/x86/include/asm/page.h @@ -66,10 +66,14 @@ static inline void copy_user_page(void *to, void *from,= unsigned long vaddr, * virt_addr_valid(kaddr) returns true. */ #define virt_to_page(kaddr) pfn_to_page(__pa(kaddr) >> PAGE_SHIFT) -#define pfn_to_kaddr(pfn) __va((pfn) << PAGE_SHIFT) extern bool __virt_addr_valid(unsigned long kaddr); #define virt_addr_valid(kaddr) __virt_addr_valid((unsigned long) (kaddr)) =20 +static __always_inline void *pfn_to_kaddr(unsigned long pfn) +{ + return __va(pfn << PAGE_SHIFT); +} + static __always_inline u64 __canonical_address(u64 vaddr, u8 vaddr_bits) { return ((s64)vaddr << (64 - vaddr_bits)) >> (64 - vaddr_bits); --=20 2.43.0 From nobody Thu Dec 18 23:00:07 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 99162200105; Sun, 24 Mar 2024 23:03: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=1711321380; cv=none; b=BzRLAO1sGX1/uHfmVn/CPDYuaOgZatYKoAcw8EOuzdmUGd7LAbgcE9QJLFBKHBbr5apJciatJwDYSkdMMpP+MUcmY+CMchh3R02+frZ3jHWSICVdTtJBauVrfotBlSbp5waOhLDkpa6JgS0osWHg4kCbYaJRpB805eDhveS9rvA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321380; c=relaxed/simple; bh=KI5KH4AxQUE1A2cmuB3HNpKMVkw2rD88lFeopqCC1vE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=bcg8c/sDrqaNANZlY3SNuIa9nWTtI5TjXSc2gLOA1xxe56cCHGkZ6FHSkRWPs8o6uQc5M/sLWhfGpX1G0yX+JRjloDPgatVQKS7RgGhonbefLxZEOSDVwer0oAWnrtNoiCvba7ul6BT9Fo5kcJhDOSv4cfuI/GEcaZejFfQG4so= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=kvRqE8cS; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="kvRqE8cS" Received: by smtp.kernel.org (Postfix) with ESMTPSA id C15F9C433C7; Sun, 24 Mar 2024 23:02:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321380; bh=KI5KH4AxQUE1A2cmuB3HNpKMVkw2rD88lFeopqCC1vE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=kvRqE8cSTD8IFUm2+RlDU9B3oVJhnnrTFOJaw5hi38KuAgmQlknJxN8mWOtX6x2IQ 4yMiQZzLch/xAYGHxLvwsc7C0ZSHp2scu6vovIeBVcAxfaOOFIy3y+tDgGVH95Nezf vN+SVozynre6HsftcE5t4JPPuy3/HpiPMM0SF9bP7Cx0x47UyD10IRa63I4qrU/dvL Lhsbzgpf/MOMaauQmukSYRhnDGG2gB3lZdCnTsi3RFoD0D+Q93kQyVYlb5Ax/PNvSE q+L3dRPEz/Njxkzf+Oo4MtNJ4dM/OksB3YRJtmb37K/wBQwTvZ3J0Ycb6ALnt5kRW+ xYd2DCqROKcJQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Babu Moger , Borislav Petkov , Reinette Chatre , Sasha Levin Subject: [PATCH 6.6 104/638] x86/resctrl: Remove hard-coded memory bandwidth limit Date: Sun, 24 Mar 2024 18:52:21 -0400 Message-ID: <20240324230116.1348576-105-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Babu Moger [ Upstream commit 0976783bb123f30981bc1e7a14d9626a6f63aeac ] The QOS Memory Bandwidth Enforcement Limit is reported by CPUID_Fn80000020_EAX_x01 and CPUID_Fn80000020_EAX_x02: Bits Description 31:0 BW_LEN: Size of the QOS Memory Bandwidth Enforcement Limit. Newer processors can support higher bandwidth limit than the current hard-coded value. Remove latter and detect using CPUID instead. Also, update the register variables eax and edx to match the AMD CPUID definition. The CPUID details are documented in the Processor Programming Reference (PPR) Vol 1.1 for AMD Family 19h Model 11h B1 - 55901 Rev 0.25 in the Link tag below. Fixes: 4d05bf71f157 ("x86/resctrl: Introduce AMD QOS feature") Signed-off-by: Babu Moger Signed-off-by: Borislav Petkov (AMD) Reviewed-by: Reinette Chatre Link: https://bugzilla.kernel.org/show_bug.cgi?id=3D206537 Link: https://lore.kernel.org/r/c26a8ca79d399ed076cf8bf2e9fbc58048808289.17= 05359148.git.babu.moger@amd.com Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/x86/kernel/cpu/resctrl/core.c | 10 ++++------ arch/x86/kernel/cpu/resctrl/internal.h | 1 - 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/arch/x86/kernel/cpu/resctrl/core.c b/arch/x86/kernel/cpu/resct= rl/core.c index 030d3b409768d..8073fd3042939 100644 --- a/arch/x86/kernel/cpu/resctrl/core.c +++ b/arch/x86/kernel/cpu/resctrl/core.c @@ -230,9 +230,7 @@ static bool __get_mem_config_intel(struct rdt_resource = *r) static bool __rdt_get_mem_config_amd(struct rdt_resource *r) { struct rdt_hw_resource *hw_res =3D resctrl_to_arch_res(r); - union cpuid_0x10_3_eax eax; - union cpuid_0x10_x_edx edx; - u32 ebx, ecx, subleaf; + u32 eax, ebx, ecx, edx, subleaf; =20 /* * Query CPUID_Fn80000020_EDX_x01 for MBA and @@ -240,9 +238,9 @@ static bool __rdt_get_mem_config_amd(struct rdt_resourc= e *r) */ subleaf =3D (r->rid =3D=3D RDT_RESOURCE_SMBA) ? 2 : 1; =20 - cpuid_count(0x80000020, subleaf, &eax.full, &ebx, &ecx, &edx.full); - hw_res->num_closid =3D edx.split.cos_max + 1; - r->default_ctrl =3D MAX_MBA_BW_AMD; + cpuid_count(0x80000020, subleaf, &eax, &ebx, &ecx, &edx); + hw_res->num_closid =3D edx + 1; + r->default_ctrl =3D 1 << eax; =20 /* AMD does not use delay */ r->membw.delay_linear =3D false; diff --git a/arch/x86/kernel/cpu/resctrl/internal.h b/arch/x86/kernel/cpu/r= esctrl/internal.h index 85ceaf9a31ac2..81d90f1a8ce58 100644 --- a/arch/x86/kernel/cpu/resctrl/internal.h +++ b/arch/x86/kernel/cpu/resctrl/internal.h @@ -18,7 +18,6 @@ #define MBM_OVERFLOW_INTERVAL 1000 #define MAX_MBA_BW 100u #define MBA_IS_LINEAR 0x4 -#define MAX_MBA_BW_AMD 0x800 #define MBM_CNTR_WIDTH_OFFSET_AMD 20 =20 #define RMID_VAL_ERROR BIT_ULL(63) --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 91F86200106; Sun, 24 Mar 2024 23:03: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=1711321382; cv=none; b=gxnxaIqpQHYy55y6pjsKIZdQOBHVW56DipCTOL8gXDxHZheWhUDPcawto/bJub+FOgWbNwn/d4f6ifztjdhyJt+f1d1aJ4zh2JV1Pl2Ty5FyUkG4JIt4pPzcmIPBjFT7bKYvQvrIahW5Womhrb/6tVcZpnar/sD4Zk7J2MoWz08= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321382; c=relaxed/simple; bh=8WFkMJpAyJJh18alhu3gt7NmDIWz3XVGh9hR1ILRLMg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=o4EyKt8bay/voflCJQ2qpqD3F4AOg2/gjVTgvIwzxogkZZSRvqxwHtJks3tSY/shCR0Jto5U0nyflm37WknMQQYEEcEpMMU5BtU4Ex8mnD7smRQzC6ZhaX0u8C7nC/b5NqBbKeP3uteE9q/TiWefuLBuvOg/JcDOKA+zoePNxE8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ffQhz5Er; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ffQhz5Er" Received: by smtp.kernel.org (Postfix) with ESMTPSA id BC2C0C433F1; Sun, 24 Mar 2024 23:03:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321381; bh=8WFkMJpAyJJh18alhu3gt7NmDIWz3XVGh9hR1ILRLMg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ffQhz5ErU87vns6R+BDBZb6caDGnioZChG+Ak9vBjOBowdonRYg/jjcJvcWG5fzJj aOMlluduXuB/S5vIXqIxFnpQbbwSDlOmL8zgoSU/zEBh0QNsV20FdoNY4iRFgvFqa6 04yWGjwrsvvJVzNeLA/4nLWNjFC1TuHwGkarStvau3b8OYMVAbcgfZnseKxQYMGrVb 9FfVWx2f6P/TYCsd6B+hDdXDRqqArtVc+X8dz+drpC1u8ypQtsmlXFGi5fSpDFSFKs UqETj8RWXL0zDg5xLRjt+kgYlGHB3CDvAGHhtK+zNWC5BgD9ednM2SIo0w8tlb5c1n vTuovo5n7hf4w== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Babu Moger , Borislav Petkov , Reinette Chatre , Sasha Levin Subject: [PATCH 6.6 105/638] x86/resctrl: Read supported bandwidth sources from CPUID Date: Sun, 24 Mar 2024 18:52:22 -0400 Message-ID: <20240324230116.1348576-106-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Babu Moger [ Upstream commit 54e35eb8611cce5550d3d7689679b1a91c864f28 ] If the BMEC (Bandwidth Monitoring Event Configuration) feature is supported, the bandwidth events can be configured. The maximum supported bandwidth bitmask can be read from CPUID: CPUID_Fn80000020_ECX_x03 [Platform QoS Monitoring Bandwidth Event Configu= ration] Bits Description 31:7 Reserved 6:0 Identifies the bandwidth sources that can be tracked. While at it, move the mask checking to mon_config_write() before iterating over all the domains. Also, print the valid bitmask when the user tries to configure invalid event configuration value. The CPUID details are documented in the Processor Programming Reference (PPR) Vol 1.1 for AMD Family 19h Model 11h B1 - 55901 Rev 0.25 in the Link tag. Fixes: dc2a3e857981 ("x86/resctrl: Add interface to read mbm_total_bytes_co= nfig") Signed-off-by: Babu Moger Signed-off-by: Borislav Petkov (AMD) Reviewed-by: Reinette Chatre Link: https://bugzilla.kernel.org/show_bug.cgi?id=3D206537 Link: https://lore.kernel.org/r/669896fa512c7451319fa5ca2fdb6f7e015b5635.17= 05359148.git.babu.moger@amd.com Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/x86/kernel/cpu/resctrl/internal.h | 3 +++ arch/x86/kernel/cpu/resctrl/monitor.c | 6 ++++++ arch/x86/kernel/cpu/resctrl/rdtgroup.c | 14 ++++++++------ 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/arch/x86/kernel/cpu/resctrl/internal.h b/arch/x86/kernel/cpu/r= esctrl/internal.h index 81d90f1a8ce58..40b69b3fc8728 100644 --- a/arch/x86/kernel/cpu/resctrl/internal.h +++ b/arch/x86/kernel/cpu/resctrl/internal.h @@ -394,6 +394,8 @@ struct rdt_parse_data { * @msr_update: Function pointer to update QOS MSRs * @mon_scale: cqm counter * mon_scale =3D occupancy in bytes * @mbm_width: Monitor width, to detect and correct for overflow. + * @mbm_cfg_mask: Bandwidth sources that can be tracked when Bandwidth + * Monitoring Event Configuration (BMEC) is supported. * @cdp_enabled: CDP state of this resource * * Members of this structure are either private to the architecture @@ -408,6 +410,7 @@ struct rdt_hw_resource { struct rdt_resource *r); unsigned int mon_scale; unsigned int mbm_width; + unsigned int mbm_cfg_mask; bool cdp_enabled; }; =20 diff --git a/arch/x86/kernel/cpu/resctrl/monitor.c b/arch/x86/kernel/cpu/re= sctrl/monitor.c index f136ac046851c..acca577e2b066 100644 --- a/arch/x86/kernel/cpu/resctrl/monitor.c +++ b/arch/x86/kernel/cpu/resctrl/monitor.c @@ -813,6 +813,12 @@ int __init rdt_get_mon_l3_config(struct rdt_resource *= r) return ret; =20 if (rdt_cpu_has(X86_FEATURE_BMEC)) { + u32 eax, ebx, ecx, edx; + + /* Detect list of bandwidth sources that can be tracked */ + cpuid_count(0x80000020, 3, &eax, &ebx, &ecx, &edx); + hw_res->mbm_cfg_mask =3D ecx & MAX_EVT_CONFIG_BITS; + if (rdt_cpu_has(X86_FEATURE_CQM_MBM_TOTAL)) { mbm_total_event.configurable =3D true; mbm_config_rftype_init("mbm_total_bytes_config"); diff --git a/arch/x86/kernel/cpu/resctrl/rdtgroup.c b/arch/x86/kernel/cpu/r= esctrl/rdtgroup.c index 725344048f85d..d82d5de183b10 100644 --- a/arch/x86/kernel/cpu/resctrl/rdtgroup.c +++ b/arch/x86/kernel/cpu/resctrl/rdtgroup.c @@ -1553,12 +1553,6 @@ static int mbm_config_write_domain(struct rdt_resour= ce *r, struct mon_config_info mon_info =3D {0}; int ret =3D 0; =20 - /* mon_config cannot be more than the supported set of events */ - if (val > MAX_EVT_CONFIG_BITS) { - rdt_last_cmd_puts("Invalid event configuration\n"); - return -EINVAL; - } - /* * Read the current config value first. If both are the same then * no need to write it again. @@ -1596,6 +1590,7 @@ static int mbm_config_write_domain(struct rdt_resourc= e *r, =20 static int mon_config_write(struct rdt_resource *r, char *tok, u32 evtid) { + struct rdt_hw_resource *hw_res =3D resctrl_to_arch_res(r); char *dom_str =3D NULL, *id_str; unsigned long dom_id, val; struct rdt_domain *d; @@ -1619,6 +1614,13 @@ static int mon_config_write(struct rdt_resource *r, = char *tok, u32 evtid) return -EINVAL; } =20 + /* Value from user cannot be more than the supported set of events */ + if ((val & hw_res->mbm_cfg_mask) !=3D val) { + rdt_last_cmd_printf("Invalid event configuration: max valid mask is 0x%0= 2x\n", + hw_res->mbm_cfg_mask); + return -EINVAL; + } + list_for_each_entry(d, &r->domains, list) { if (d->id =3D=3D dom_id) { ret =3D mbm_config_write_domain(r, d, evtid, val); --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A4C4A20012C; Sun, 24 Mar 2024 23:03: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=1711321383; cv=none; b=q4SxKcTrTgT96pP0u4V6EMQy/fp2tpdWwMHeR3h+6ZN6RD+APl2SmUgnQ29pZtrBpahlqQLCw+GNxdb5zqUNzbuo/5DT9KykRAWOFdhh1W9p6ZHX0/V66sBaTtCZivmAX4Ccf/aFWHxdJiKj5CGiZ3M9sb4Wc0EN9c7MfYb8ri8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321383; c=relaxed/simple; bh=cgkhm4UNYG9J5WH09YoX845iQMMEDlx7LxlKEATqzDw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=XHQEJVB5yklxXRwDHIF8O0r52Ca+8vzvDOPr8cvHUSi9BipH2VE2ac0YjIGI+WZkQNsNcr2+xsjlrbhFcyv93qU3b64+ZpROl+Nqs3R3zricp+G6ZPUEiDpLPTNlaOevYxI7uVBdlK0b6xZcfG4fxdvbZ1fhV7ZXTJbQZnpkBPw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=HLcvOCZl; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="HLcvOCZl" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B4CD0C433C7; Sun, 24 Mar 2024 23:03:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321382; bh=cgkhm4UNYG9J5WH09YoX845iQMMEDlx7LxlKEATqzDw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=HLcvOCZlAdIBeKIa3Tz/luf/ChdXjEYsAk1lnEIb25g5xN9uoIjYNSdxNqCaFqPhM gCv5JJ8qccOTze9OvdKseQNJuNWZc4av3ngpcdpDfhxSJiu7kUMFDKldvbQNaAln3z IWys16INHB0090wB9j7UiHdvhM5wq7OTyjZbKs0Bnr3Wr7VWpPhR/i7wH9KwMD+9Uv h2pR62PsDdtCQ5t9mi/ElGI0WMSTH7PAoZGD8iv5pSpRNBmSsYhQnqzNMHNY6r6ME8 lf/WT5NLxL8Sll6wfcn6fGKP/EUYcvAv6S/PMERx1sQS9uurNuRpneMkuxRa9WZ5yv vFAEI9u9LmeXg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Tony Luck , Xiaochen Shen , Borislav Petkov , Reinette Chatre , Sasha Levin Subject: [PATCH 6.6 106/638] x86/resctrl: Implement new mba_MBps throttling heuristic Date: Sun, 24 Mar 2024 18:52:23 -0400 Message-ID: <20240324230116.1348576-107-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Tony Luck [ Upstream commit c2427e70c1630d98966375fffc2b713ab9768a94 ] The mba_MBps feedback loop increases throttling when a group is using more bandwidth than the target set by the user in the schemata file, and decreases throttling when below target. To avoid possibly stepping throttling up and down on every poll a flag "delta_comp" is set whenever throttling is changed to indicate that the actual change in bandwidth should be recorded on the next poll in "delta_bw". Throttling is only reduced if the current bandwidth plus delta_bw is below the user target. This algorithm works well if the workload has steady bandwidth needs. But it can go badly wrong if the workload moves to a different phase just as the throttling level changed. E.g. if the workload becomes essentially idle right as throttling level is increased, the value calculated for delta_bw will be more or less the old bandwidth level. If the workload then resumes, Linux may never reduce throttling because current bandwidth plus delta_bw is above the target set by the user. Implement a simpler heuristic by assuming that in the worst case the currently measured bandwidth is being controlled by the current level of throttling. Compute how much it may increase if throttling is relaxed to the next higher level. If that is still below the user target, then it is ok to reduce the amount of throttling. Fixes: ba0f26d8529c ("x86/intel_rdt/mba_sc: Prepare for feedback loop") Reported-by: Xiaochen Shen Signed-off-by: Tony Luck Signed-off-by: Borislav Petkov (AMD) Reviewed-by: Reinette Chatre Tested-by: Xiaochen Shen Link: https://lore.kernel.org/r/20240122180807.70518-1-tony.luck@intel.com Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/x86/kernel/cpu/resctrl/internal.h | 4 --- arch/x86/kernel/cpu/resctrl/monitor.c | 42 ++++++-------------------- 2 files changed, 10 insertions(+), 36 deletions(-) diff --git a/arch/x86/kernel/cpu/resctrl/internal.h b/arch/x86/kernel/cpu/r= esctrl/internal.h index 40b69b3fc8728..566386abb877f 100644 --- a/arch/x86/kernel/cpu/resctrl/internal.h +++ b/arch/x86/kernel/cpu/resctrl/internal.h @@ -295,14 +295,10 @@ struct rftype { * struct mbm_state - status for each MBM counter in each domain * @prev_bw_bytes: Previous bytes value read for bandwidth calculation * @prev_bw: The most recent bandwidth in MBps - * @delta_bw: Difference between the current and previous bandwidth - * @delta_comp: Indicates whether to compute the delta_bw */ struct mbm_state { u64 prev_bw_bytes; u32 prev_bw; - u32 delta_bw; - bool delta_comp; }; =20 /** diff --git a/arch/x86/kernel/cpu/resctrl/monitor.c b/arch/x86/kernel/cpu/re= sctrl/monitor.c index acca577e2b066..3a6c069614eb8 100644 --- a/arch/x86/kernel/cpu/resctrl/monitor.c +++ b/arch/x86/kernel/cpu/resctrl/monitor.c @@ -440,9 +440,6 @@ static void mbm_bw_count(u32 rmid, struct rmid_read *rr) =20 cur_bw =3D bytes / SZ_1M; =20 - if (m->delta_comp) - m->delta_bw =3D abs(cur_bw - m->prev_bw); - m->delta_comp =3D false; m->prev_bw =3D cur_bw; } =20 @@ -520,11 +517,11 @@ static void update_mba_bw(struct rdtgroup *rgrp, stru= ct rdt_domain *dom_mbm) { u32 closid, rmid, cur_msr_val, new_msr_val; struct mbm_state *pmbm_data, *cmbm_data; - u32 cur_bw, delta_bw, user_bw; struct rdt_resource *r_mba; struct rdt_domain *dom_mba; struct list_head *head; struct rdtgroup *entry; + u32 cur_bw, user_bw; =20 if (!is_mbm_local_enabled()) return; @@ -543,7 +540,6 @@ static void update_mba_bw(struct rdtgroup *rgrp, struct= rdt_domain *dom_mbm) =20 cur_bw =3D pmbm_data->prev_bw; user_bw =3D dom_mba->mbps_val[closid]; - delta_bw =3D pmbm_data->delta_bw; =20 /* MBA resource doesn't support CDP */ cur_msr_val =3D resctrl_arch_get_config(r_mba, dom_mba, closid, CDP_NONE); @@ -555,49 +551,31 @@ static void update_mba_bw(struct rdtgroup *rgrp, stru= ct rdt_domain *dom_mbm) list_for_each_entry(entry, head, mon.crdtgrp_list) { cmbm_data =3D &dom_mbm->mbm_local[entry->mon.rmid]; cur_bw +=3D cmbm_data->prev_bw; - delta_bw +=3D cmbm_data->delta_bw; } =20 /* * Scale up/down the bandwidth linearly for the ctrl group. The * bandwidth step is the bandwidth granularity specified by the * hardware. - * - * The delta_bw is used when increasing the bandwidth so that we - * dont alternately increase and decrease the control values - * continuously. - * - * For ex: consider cur_bw =3D 90MBps, user_bw =3D 100MBps and if - * bandwidth step is 20MBps(> user_bw - cur_bw), we would keep - * switching between 90 and 110 continuously if we only check - * cur_bw < user_bw. + * Always increase throttling if current bandwidth is above the + * target set by user. + * But avoid thrashing up and down on every poll by checking + * whether a decrease in throttling is likely to push the group + * back over target. E.g. if currently throttling to 30% of bandwidth + * on a system with 10% granularity steps, check whether moving to + * 40% would go past the limit by multiplying current bandwidth by + * "(30 + 10) / 30". */ if (cur_msr_val > r_mba->membw.min_bw && user_bw < cur_bw) { new_msr_val =3D cur_msr_val - r_mba->membw.bw_gran; } else if (cur_msr_val < MAX_MBA_BW && - (user_bw > (cur_bw + delta_bw))) { + (user_bw > (cur_bw * (cur_msr_val + r_mba->membw.min_bw) / cur_msr_va= l))) { new_msr_val =3D cur_msr_val + r_mba->membw.bw_gran; } else { return; } =20 resctrl_arch_update_one(r_mba, dom_mba, closid, CDP_NONE, new_msr_val); - - /* - * Delta values are updated dynamically package wise for each - * rdtgrp every time the throttle MSR changes value. - * - * This is because (1)the increase in bandwidth is not perfectly - * linear and only "approximately" linear even when the hardware - * says it is linear.(2)Also since MBA is a core specific - * mechanism, the delta values vary based on number of cores used - * by the rdtgrp. - */ - pmbm_data->delta_comp =3D true; - list_for_each_entry(entry, head, mon.crdtgrp_list) { - cmbm_data =3D &dom_mbm->mbm_local[entry->mon.rmid]; - cmbm_data->delta_comp =3D true; - } } =20 static void mbm_update(struct rdt_resource *r, struct rdt_domain *d, int r= mid) --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9EDA920012B; Sun, 24 Mar 2024 23:03: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=1711321383; cv=none; b=EVfq/+wxn0pzBR+uGHZxH3XR3ximQLOdtaS/KEfBXVfPb3PCgW7tZLjer7kmgy2WjoCTLMC5qopl/OSQLAKALvbPQucyOGOK+/uevoCluX/dEx+bCO/My6CE9USVmeyVfMMz7O4OgPRDLz9RWv5lB3XfoPlIbcrrCdbAkoCX4QM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321383; c=relaxed/simple; bh=jdfu/KH7YL1zTK/NxSGJU5Hr4wSQlNuG4dX03k2hbfQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=BwORdkvJFKPJ/P7gNEYy6iRfX1LoKVxEkINtJTuM6XOxfLmWeLnXbmLmkR2LbJN7jY74P3ZlFGFcUG7ReBquPWtPU2s7wt/0DGeL/YDCbAabD5MV+bjHqhRz2BXhSkG82X9+y9fIAAh3uP0L3cfpDWyxipKoIql6mrxO4bQAOgE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=dDXC/tIG; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="dDXC/tIG" Received: by smtp.kernel.org (Postfix) with ESMTPSA id CA8CDC43390; Sun, 24 Mar 2024 23:03:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321383; bh=jdfu/KH7YL1zTK/NxSGJU5Hr4wSQlNuG4dX03k2hbfQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=dDXC/tIGky079L/UosVv4QFeDFDvQJk5hyHNQJ5wz0sQH0u+ZKMrqx7YeQldMk/zA ojKr7vQpK6XvYoCEPcPk+aNPmbj1eg8eUmuDg2U+Z1koKrkfqcdKSdk+iHGbExSrDm m2ORNiNpFTchPhYTe9SACEd9jyQ5Djfh2rHb5QgbRwuRMQyfarmmvqgAnoKqTseiLg nsQXwbkvF55efwV55Rnmq8aWqPa73mPyeem24N8hzBNQHLxtsMBLw2vce2ymUc/zVf 8ZT9hykABIPdc/1HAuG1SqRjnMFbx3ftMvR0ymhlfTu333V5Ssi8qSfz3LTIkr4QNG fa+cLzguE4WBw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Ard Biesheuvel , Borislav Petkov , Tom Lendacky , Sasha Levin Subject: [PATCH 6.6 107/638] x86/sme: Fix memory encryption setting if enabled by default and not overridden Date: Sun, 24 Mar 2024 18:52:24 -0400 Message-ID: <20240324230116.1348576-108-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Ard Biesheuvel [ Upstream commit e814b59e6c2b11f5a3d007b2e61f7d550c354c3a ] Commit cbebd68f59f0 ("x86/mm: Fix use of uninitialized buffer in sme_enable()") 'fixed' an issue in sme_enable() detected by static analysis, and broke the common case in the process. cmdline_find_option() will return < 0 on an error, or when the command line argument does not appear at all. In this particular case, the latter is not an error condition, and so the early exit is wrong. Instead, without mem_encrypt=3D on the command line, the compile time default should be honoured, which could be to enable memory encryption, and this is currently broken. Fix it by setting sme_me_mask to a preliminary value based on the compile time default, and only omitting the command line argument test when cmdline_find_option() returns an error. [ bp: Drop active_by_default while at it. ] Fixes: cbebd68f59f0 ("x86/mm: Fix use of uninitialized buffer in sme_enable= ()") Signed-off-by: Ard Biesheuvel Signed-off-by: Borislav Petkov (AMD) Reviewed-by: Tom Lendacky Link: https://lore.kernel.org/r/20240126163918.2908990-2-ardb+git@google.com Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/x86/mm/mem_encrypt_identity.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/arch/x86/mm/mem_encrypt_identity.c b/arch/x86/mm/mem_encrypt_i= dentity.c index d73aeb16417fc..7f72472a34d6d 100644 --- a/arch/x86/mm/mem_encrypt_identity.c +++ b/arch/x86/mm/mem_encrypt_identity.c @@ -507,7 +507,6 @@ void __init sme_enable(struct boot_params *bp) const char *cmdline_ptr, *cmdline_arg, *cmdline_on, *cmdline_off; unsigned int eax, ebx, ecx, edx; unsigned long feature_mask; - bool active_by_default; unsigned long me_mask; char buffer[16]; bool snp; @@ -593,22 +592,19 @@ void __init sme_enable(struct boot_params *bp) : "p" (sme_cmdline_off)); =20 if (IS_ENABLED(CONFIG_AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT)) - active_by_default =3D true; - else - active_by_default =3D false; + sme_me_mask =3D me_mask; =20 cmdline_ptr =3D (const char *)((u64)bp->hdr.cmd_line_ptr | ((u64)bp->ext_cmd_line_ptr << 32)); =20 if (cmdline_find_option(cmdline_ptr, cmdline_arg, buffer, sizeof(buffer))= < 0) - return; + goto out; =20 if (!strncmp(buffer, cmdline_on, sizeof(buffer))) sme_me_mask =3D me_mask; else if (!strncmp(buffer, cmdline_off, sizeof(buffer))) sme_me_mask =3D 0; - else - sme_me_mask =3D active_by_default ? me_mask : 0; + out: if (sme_me_mask) { physical_mask &=3D ~sme_me_mask; --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 994A520013D; Sun, 24 Mar 2024 23:03: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=1711321385; cv=none; b=mEPwjplk0nsfGVepSyfjmFRPm3O9sZuzoRlIht/TPmkteCu5UeTKBJsMGCMoTZH124alzgn0SuS2/50KmZqsol4kU+/Cpj9ilXK/lMYQ2MdKvME18pSWNuGoKnZoyEaVPlGbvTt4NTr5y46hiOSVH2/WD07alPKOBnyBVxHoXKM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321385; c=relaxed/simple; bh=23eHHuh/DV2k7PZWl6XBVkeG9jJGgENpTKhIC6FWxGs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=j6YcpRMEpWdjAWoJfDSDVj6J1Tn55OPOCeMcrd6z4xLyAcnFVrLbT4vOS0veKBGIDAWhf4lGcTBUnZlIV4AZ7uY6KoNVUmAYuSw4NtdfFzsuIyyLmAUPILiBEnfQxNRzi7KuDF/LqfofIymUmr6VmdOt/UovdX//SGSpFTQF8/c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=XMvgGnGW; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="XMvgGnGW" Received: by smtp.kernel.org (Postfix) with ESMTPSA id C2CFEC43330; Sun, 24 Mar 2024 23:03:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321384; bh=23eHHuh/DV2k7PZWl6XBVkeG9jJGgENpTKhIC6FWxGs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=XMvgGnGWPmN2jdvPTeoI+N7gyhHGLwk63QYPTAmwI7pukCATSty96IWfKaNWufcs+ 3b+YIClyLJdthIsK7qZZzHnqHzJUWgxRfjcLnipzndrx2N8VkAHY+6Tw+SeMsjmWuM 3uVIfRH0pHHTPebcb2mb6QMYP6wLT4NZJQ+r3XL2+ximHFPHeTGIuK33OyIWgyaF9u XMYQ6rlV0T4IAfCv5jAhNr1FAsro+PQgbdBOzDbLtrcfgmBcP+G2TfZ5YxK5nPNpQb wh5y1fRd/FvZba+d80FSvit932U0Nnh4lkFUptWABBXgrsnEEqWlSwXYOY61M69lkR gmT/jkEPFSH7g== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Peter Hilber , Thomas Gleixner , John Stultz , Sasha Levin Subject: [PATCH 6.6 108/638] timekeeping: Fix cross-timestamp interpolation on counter wrap Date: Sun, 24 Mar 2024 18:52:25 -0400 Message-ID: <20240324230116.1348576-109-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 266d02809dbb1..8f35455b62509 100644 --- a/kernel/time/timekeeping.c +++ b/kernel/time/timekeeping.c @@ -1186,7 +1186,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7F2BE130E3F; Sun, 24 Mar 2024 23:03: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=1711321386; cv=none; b=NU0e/OGicQuZZ3LzTJ0dyjW6VOChz3YOUiAtwcDmJuMMlsfXods3JosRRRrW/1PUjDrfqrdFxjsc7HeQS1KS4RDb2xaP84FJfLL/d/De5qfE6VdAdy2cNPK1XtVay5rGNrw9PSEAaROiGSus5SpJOaJYYzQHQ9LPD+cle8OBWlY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321386; c=relaxed/simple; bh=OrTxKuavkmAwp8h1Jo3aMTmD6H5/LjHaoUEWZ+XZ/aQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Ct704qs07dNBUnudzv1MaASDGppHviUbV5MA4SCeK3S1BMe5yjp3L19bWXH9cjklQctlZRMh9DVDtDGeUXzm1jrBfTVqTqH2wm6RovOkMTKy+NGCQmQjkN5E4VK2CFXwO3cd1zQm2OpqmxoRPIhtYLaPoTzoU2bHLFM3m/PzTvM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=qCIYgJtS; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="qCIYgJtS" Received: by smtp.kernel.org (Postfix) with ESMTPSA id BE603C43601; Sun, 24 Mar 2024 23:03:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321385; bh=OrTxKuavkmAwp8h1Jo3aMTmD6H5/LjHaoUEWZ+XZ/aQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qCIYgJtSq6R0MN6X29Xm9uVWEvgBy6rO3z1FxDBM+XijDoHK/xJrvBYPX5lvB2qSz Qf9U4OU60Dyj75lVuMRi30BaWr+o+H2hAm9KynWwKqJU7QK+oJL/tdIwACYXBzGSE1 NJdjmvyTadiS/bCSiIscKQvkruPf8yQcYsWrU81CUqlE/MXU+o0uLjB+DJgXdC52C4 /PA0iCAsv/DeTa9PPVhxs1AYalX01RI+qN4fgYRKSfDlRDVTJCz1oRbUzVGRLiJ3g+ N5cCqsAa8/aPsV9zkzhZJE1A9ZOVdXsA2HaOcbAPuu4Dzwlc5gsRtbcuLxeCh6gnFS nEPLrlw6tCR8Q== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Peter Hilber , Thomas Gleixner , Sasha Levin Subject: [PATCH 6.6 109/638] timekeeping: Fix cross-timestamp interpolation corner case decision Date: Sun, 24 Mar 2024 18:52:26 -0400 Message-ID: <20240324230116.1348576-110-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 8f35455b62509..4e9f2f88c9d6e 100644 --- a/kernel/time/timekeeping.c +++ b/kernel/time/timekeeping.c @@ -1180,13 +1180,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; } @@ -1246,7 +1248,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; @@ -1277,13 +1279,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D2E97130E4F; Sun, 24 Mar 2024 23:03: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=1711321387; cv=none; b=uBsruswLsqu9o6Oie4DdikcMar7NPT7e1jAO5TF696wOp20eQyNo28FdJYyIREJ+Su0jbheiKQ9jMHULK7i0Kkr6g5cyJ5FqiQ8QUr854+MMk7g7I3bEFZsf8TSE9B1CLyTMVJc639F7et2gaAsG9kilC8nCdo7M6Zvh6NcU4a8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321387; c=relaxed/simple; bh=4NV8jozK46/fbyAfW2dcGTbTjJRTkGsTkxZjNikSahs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=YREyFmzZqVl/1M517H1wDy+F1el1qzxKYXY1GgcBahG8keNT0p15Vyqg8WtcxzCYg6E1rQ0CcTqKdBZbxVD1yahmkhf2apN7ERWJBvlRCZ9eQzoYXRAIHkkmiNQm7ifGJ2/Kx92hodPqGI0XdJzPZKx/bBvfzy5Qiw4McJVHbh4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=TBleWQRa; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="TBleWQRa" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A2B84C433C7; Sun, 24 Mar 2024 23:03:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321386; bh=4NV8jozK46/fbyAfW2dcGTbTjJRTkGsTkxZjNikSahs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=TBleWQRaxfS+IKZZMLWOfb0MgXftmX6Ab9bn92Zy9F7Zt5U4KlRZ2Rv0JB6Hjsez7 +nYkL4MdW6Oxr7vWIzXFcuWS7x5NZsTrYTcipa8P8cl4Wh6fKfo1hvR5n8qioj5rKa VQYzyI9UVkde/A3KKYu4grb+sfTaSKPYgafN30qKagV1uTZVaLvuKd9La5cAT1freS CCM1GqT7OLwD8aABX8h6DDniSvSorVHlYS8wXiZXYRchsPvmrw7djTnjyybGcecXyA tqBa/BnULQ9u8weddosq+canon+623Vhxt5LEJpSQjTZYcQdJuaFZohhfMQ58gr3kX H3+gm7TyCp0Sw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Peter Hilber , Thomas Gleixner , John Stultz , Sasha Levin Subject: [PATCH 6.6 110/638] timekeeping: Fix cross-timestamp interpolation for non-x86 Date: Sun, 24 Mar 2024 18:52:27 -0400 Message-ID: <20240324230116.1348576-111-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 4e9f2f88c9d6e..8aab7ed414907 100644 --- a/kernel/time/timekeeping.c +++ b/kernel/time/timekeeping.c @@ -1261,10 +1261,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8D1BB20012F; Sun, 24 Mar 2024 23:03: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=1711321387; cv=none; b=d5RhJC4hJdxtaI/6yDPhngwlEEV435dKfRVKbhIfFI5Tu7znYnz3UyizhzDW8jYiRHKXBMqJncdTGYARxMnj1WyBOg60WDtR7XC6bvEivtUKuCceeTX2yaGO/sWsuhgotOUKPgcciZ9s/4Y8DzexfaBAtOIAwtWaWI73tZQOGQs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321387; c=relaxed/simple; bh=Zi18348681HHYzgRbflhzZPKMScdvghDeS/vYLjkrvw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mwhqSqEY8jt1ptCKuWfAbJ80W+flyTSLooRIf0nRl6mQG1v7N9JdTJo3K5NY0j8E/yctZ0gfLQSNwkA7TyDMQ4rUAeUjdLKUb5urHfLt655gSFIHagIqz/Ari57x5+/P/BaAdAndn36ly3/yPDRP7nGJfcID+aGKhOZKTfKtlxM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ZrcTduna; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ZrcTduna" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9BDAFC43399; Sun, 24 Mar 2024 23:03:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321387; bh=Zi18348681HHYzgRbflhzZPKMScdvghDeS/vYLjkrvw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ZrcTdunac0/KjsCMAYzPLa5kDeilJ3ahckO/yrZykdIjq0z/40DyvrM3S/DKpPcJO TFoMrdZbbsFNMRbeWZbzaz5y68+ElDVpTvGikrsQx5g5I1XDFd6dA8XmG14QPiBW9Y 74oOA1LnCXzq1K2Mbp2CXJKrkuXn57ZobrFLuFxBDoJ18XJgNZPg3rd1OxqWq4SpUv w/9osB9oHXGPyRFTD8vwbKSz7V7Z3lOl7RYYQArVUzI8OF45mUMh4WGZqUDw+kCSQV dRYtOP5tcf2PcGspnaB1vNiZiKBz6uq91lD/sWm0Z7Cd+RAZL2Q+p4VaAhJnEhpgAt eyM6zuP9Umt2w== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Keisuke Nishimura , Julia Lawall , Ingo Molnar , Vincent Guittot , Sasha Levin Subject: [PATCH 6.6 111/638] sched/fair: Take the scheduling domain into account in select_idle_smt() Date: Sun, 24 Mar 2024 18:52:28 -0400 Message-ID: <20240324230116.1348576-112-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 8aeaffef8c6eceab0e1498486fdd4f3dc3b7066c ] When picking a CPU on task wakeup, select_idle_smt() has to take into account the scheduling domain of @target. This is because the "isolcpus" kernel command line option can remove CPUs from the domain to isolate them from other SMT siblings. This fix checks if the candidate CPU is in the target scheduling domain. Commit: df3cb4ea1fb6 ("sched/fair: Fix wrong cpu selecting from isolated domain") ... originally introduced this fix by adding the check of the scheduling domain in the loop. However, commit: 3e6efe87cd5cc ("sched/fair: Remove redundant check in select_idle_smt()") ... accidentally removed the check. Bring it back. Fixes: 3e6efe87cd5c ("sched/fair: Remove redundant check in select_idle_smt= ()") Signed-off-by: Keisuke Nishimura Signed-off-by: Julia Lawall Signed-off-by: Ingo Molnar Reviewed-by: Vincent Guittot Link: https://lore.kernel.org/r/20240110131707.437301-1-keisuke.nishimura@i= nria.fr Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- kernel/sched/fair.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index d336af9cba134..fed669ec72bce 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -7206,13 +7206,19 @@ static int select_idle_core(struct task_struct *p, = int core, struct cpumask *cpu /* * Scan the local SMT mask for idle CPUs. */ -static int select_idle_smt(struct task_struct *p, int target) +static int select_idle_smt(struct task_struct *p, struct sched_domain *sd,= int target) { int cpu; =20 for_each_cpu_and(cpu, cpu_smt_mask(target), p->cpus_ptr) { if (cpu =3D=3D target) continue; + /* + * Check if the CPU is in the LLC scheduling domain of @target. + * Due to isolcpus, there is no guarantee that all the siblings are in t= he domain. + */ + if (!cpumask_test_cpu(cpu, sched_domain_span(sd))) + continue; if (available_idle_cpu(cpu) || sched_idle_cpu(cpu)) return cpu; } @@ -7236,7 +7242,7 @@ static inline int select_idle_core(struct task_struct= *p, int core, struct cpuma return __select_idle_cpu(core, p); } =20 -static inline int select_idle_smt(struct task_struct *p, int target) +static inline int select_idle_smt(struct task_struct *p, struct sched_doma= in *sd, int target) { return -1; } @@ -7498,7 +7504,7 @@ static int select_idle_sibling(struct task_struct *p,= int prev, int target) has_idle_core =3D test_idle_cores(target); =20 if (!has_idle_core && cpus_share_cache(prev, target)) { - i =3D select_idle_smt(p, prev); + i =3D select_idle_smt(p, sd, prev); if ((unsigned int)i < nr_cpumask_bits) return i; } --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 86BEF1E6F7E; Sun, 24 Mar 2024 23:03: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=1711321389; cv=none; b=HYn6zIMOTl/lsoDxvT1V40FyKWs7z4PRdWUytZSTIA7SOqXrnjmKTq1tT2qDUrxrIh4ta4wHkWmfMjgXe/mfYh//q9ew6dZ3DnP79sp7EJgjQAQVDEmLQvsKNTY7lM/c2GZFbUyt0xxVy1FygjchUOg63hui4GO9smhTUEmQ0e4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321389; c=relaxed/simple; bh=kFJjxiqC/e/Tnxf4UKSvVVOgXrGXwDn98yQoBSlLLL8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=gotzBAMUdyzasYeYo6HXp2z2ALjTfSu6tOBMD+poODjibwskaDWX/kj89Gx8zscZUT5Qz9xYJU8FL/MSZVJGzxCCgDcSZ5ltYNkmPtbSk3CN7w0Uu2hGB5/YNFUMmo986Od3kymynHwVj4uYSMVWJwu3ErA9eYT2RX43CISHskk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=lg9PoFm0; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="lg9PoFm0" Received: by smtp.kernel.org (Postfix) with ESMTPSA id AE1F6C433F1; Sun, 24 Mar 2024 23:03:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321388; bh=kFJjxiqC/e/Tnxf4UKSvVVOgXrGXwDn98yQoBSlLLL8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=lg9PoFm01V99AEBoIW7m67DUeeKWq7aPPDlIR9bGuZzLTLw3PjUhPNU84SzZAe6zT dX3ZkHk+22GFi6HP/7IUEAh+FkL13yvvwFE1inCqjwJeCZ4Pm85E9QRGVrzqatnt7q 7oDiq/TLmbkivQWjmvLpfRV4tMHxTMWtMHDJOBm1D/Q0O9bZlUxTooXfvg/pKi0Wzv 0KCTRFv+oYHFH+OL0a9BIYYMFmWIz6DPObCuj9RKWY649XnhPi+ftjXdH3qEguVUaS FO84tfMi9loruOR2tGQrFxgZKrG0R9s1Fo+xTFoS/Hb6kKKiJxEockdw+VaYLIR0I4 bGQv5ed1Y9WCw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Keisuke Nishimura , Julia Lawall , Ingo Molnar , Sasha Levin Subject: [PATCH 6.6 112/638] sched/fair: Take the scheduling domain into account in select_idle_core() Date: Sun, 24 Mar 2024 18:52:29 -0400 Message-ID: <20240324230116.1348576-113-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 fed669ec72bce..69fe62126a28e 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -7184,7 +7184,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; } @@ -7192,7 +7192,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 83523200A29; Sun, 24 Mar 2024 23:03: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=1711321390; cv=none; b=orTQn3qCW8EDCIkv33Lh2rt5562EIVsncNRFWODw01V//3aa71XeHVkA2s1PwUDacELYBDUjAFaD4ttLLtmAyQsOSPRbwLJtA3KRr4kv4ycYrsJOBIw5at5je3jrVksDBfe5Nzbnd4Htu8THKAXbcbQQj1tUDqrd0uEPDJb024M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321390; c=relaxed/simple; bh=oYYvn/6nxGWAVbko5rNqBa3zP6x2dNPOvgw8qbioNx4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=os8M25Fu3GTuz8WFxcYdWo9ADb1VPcNRM4YugfxY5JvdG/Ltgc2nGWwmKFkpYKUGHFm0TNUQxOH3iTRYnGaEk9FEiqmc6EvAi98qGT+zyw39RTdzxAVdQhGFHt5vHJ/UnZjb7Ev3ZjvaXGrbII70nRIT2baFWM/BGTzLzle9Rlg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=mSicI1/l; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="mSicI1/l" Received: by smtp.kernel.org (Postfix) with ESMTPSA id AB778C433C7; Sun, 24 Mar 2024 23:03:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321389; bh=oYYvn/6nxGWAVbko5rNqBa3zP6x2dNPOvgw8qbioNx4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=mSicI1/lBtrDUzUCTrZNI73tYWKXiUUt1bRX2gQodHIljctpmHeAjyzZEneRPcH4l vLBD76DCdrftZraQMVEmB3ZbdvTxOErK2kX/wnHWhVr+JQ6lx/G6R0IEPdu569j9DR tGUcufE+CU1HeuST0bNIhMIK/lqkZdwFTi3kElBo262vz/N/QILt98k0WKpnQLGDS1 5jQfVJgjIOBMm66BKi8VhNrhhT8f4iMeboZzxaMgfnp0dStPONbNXBoIBBHKBKtWLM QnlVzBWL85mixFWxQeg93fM1M44yEMoE6g50quTBGLeq+SRm/Gn69pB24BW7UroAWK Yg/s8H1hQWEZg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Xingyuan Mo , Jeff Johnson , Kalle Valo , Sasha Levin Subject: [PATCH 6.6 113/638] wifi: ath10k: fix NULL pointer dereference in ath10k_wmi_tlv_op_pull_mgmt_tx_compl_ev() Date: Sun, 24 Mar 2024 18:52:30 -0400 Message-ID: <20240324230116.1348576-114-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 6b6aa3c367448..0ce08e9a0a3d2 100644 --- a/drivers/net/wireless/ath/ath10k/wmi-tlv.c +++ b/drivers/net/wireless/ath/ath10k/wmi-tlv.c @@ -851,6 +851,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4C364200A31; Sun, 24 Mar 2024 23:03: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=1711321391; cv=none; b=jonFn/jOpvSe7EY4KZ8qngDGf6qWGTy6x1CwQye5iSMiK5Adhabje2XH1UpK/AC0AuWGZxltJrdCeTXLMLCE4t7Cm95VF8QBZUcv0YUCWUkmFMhRenZEG2kymsoqX8LZ+QE+0qpWlEfuheUBHfUCcS+s4LWUrHlUEzg2sPtpNN0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321391; c=relaxed/simple; bh=b/5s7QGVGOrCuOtXOJt/WL9bT1hmlf6/D8yCh5Oa4Bo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=KzetT25IAyeyb25kMjtt1yY2k0c4CYyB5Zx5dYsHljGbSbI34Rh89eyEATvqHs5CkSicfEgmAbsVJ3wHbahMm6/oGlMD7ZzIW8kwauYBqmD1W9rXyjFMYiNtnYm/uhGBAn2hAHnnQVAMJtOO0nlCjsNuSw3UKc5WBz/UUKzHI+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=FVNb3GJB; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="FVNb3GJB" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B7F98C43394; Sun, 24 Mar 2024 23:03:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321390; bh=b/5s7QGVGOrCuOtXOJt/WL9bT1hmlf6/D8yCh5Oa4Bo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=FVNb3GJB/CQAvXASAWM0vFhFNtwQQrFM+lOxHCq4oSYoCrbpm08i/HXkldpiRhebv /zJIIUSZS/mAt/RV0heU7+AZpJrG0IqR8NAJsIjpJsdelUfgsv1dhnCKcbxfSeXfmZ xp72VbY2Jl8JgZvkq/nLVFpj3vN2bVrbU0k6IQCDPAjE8a0C9bUFg4StcK7eYqoOGf WDnoSuiUNKLkx6m1J8EM7Kg5u2CWBo/C3QHRUzy0UClcr8FJHecJJmJ44SnxO/DprT HrEzyr3LamO284o+Mmd+y4psWTzo/FlMwH/ZvPonESgN55NfqoAgrj/bRKpqam03/n szDcz2UfiDtYw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Rahul Rameshbabu , Julian Calaby , Kalle Valo , Sasha Levin Subject: [PATCH 6.6 114/638] wifi: b43: Stop/wake correct queue in DMA Tx path when QoS is disabled Date: Sun, 24 Mar 2024 18:52:31 -0400 Message-ID: <20240324230116.1348576-115-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D70FF200A3C; Sun, 24 Mar 2024 23:03: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=1711321392; cv=none; b=M8cDIA2VDJoZjhLgHL8S9o4XabPrGMwQb3q7G8u+nIdfvskK5rhDux2nkVLzFUAOG+4H0dmf6BX3SJv3Iib9yrgvwceZaJZTuDquhGoXr2hwEtuHFgpmip4JtgwJhFsG3qUa2mdbQlLc008x8pGV0cza883RslERuZGJJ+MCip4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321392; c=relaxed/simple; bh=KJVDxpizcfGR7aOIB8U3FFHOvETVfc+6GQRhnboy+Eo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PIPLLeFndB5/OISPlIHMsgCecbO3FbkdkFdBUz3wee77hpVXqMqa0Y6MCSsxkcd0vi2E0/QM2HcZkX5Y3oKmou7JS2y+dTMHC+pwP9pKQ9jEyPoDbpcuxU2f2S9kC2thkXYKK8OdVj9Bgs44Qm6cukuKTrBOl1u68fMr1OWgxX8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=LnNDgdjk; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="LnNDgdjk" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0B7C8C433C7; Sun, 24 Mar 2024 23:03:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321391; bh=KJVDxpizcfGR7aOIB8U3FFHOvETVfc+6GQRhnboy+Eo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=LnNDgdjkvHHhuODKJwxEo9Riu9qnwA1BolLKRllrGVy/f675kXfZVh4V7V/RfhIJt Sqpd9DjlblIGLW08EdrIu2/Ff67aoCvW3EFon2rg8HiInM4W8Z0n1gRUVEbs+E27BL fpGsSgGFqTR9B4T1I+ES8cswPqCVwMf4/Rg29aNwM6Pq7TcEpk+69JqFK1F20WdzKY 3/RZIexg21r7FvITDdhHhZ8bDXvjdQV1XvW5MCBBF8DLsmDHBRjGdRWxDAnXuR7RZW bxwGSfztX9CWbfYpRlM1fLVR/5ojbBfV9aBsTboZw2I+iPaU1uZkWM8vaTcyuR35Pm Jq+HFttoue4Cw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Rahul Rameshbabu , Julian Calaby , Kalle Valo , Sasha Levin Subject: [PATCH 6.6 115/638] wifi: b43: Stop/wake correct queue in PIO Tx path when QoS is disabled Date: Sun, 24 Mar 2024 18:52:32 -0400 Message-ID: <20240324230116.1348576-116-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D2D3D200A3A; Sun, 24 Mar 2024 23:03: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=1711321392; cv=none; b=XNB3cOWU+RwZLgM/2tEXdcXaqO1zc7RBbMv2Qr4k278KIY5iZ2xdWdrTd/kh/QjfcbsMoJE/+T4D1qy/qjoMmKIbD8n6gVw8h95ypBLVs6bP1wK7jv3iI7ZnQho1Smb9Gke58ACltE3tyW3ix7+Xsj4jl4dQfaEyBAY0lc4pYaM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321392; c=relaxed/simple; bh=T+ReKdZ9roAuzU/DfsquugIpMTaDIpDuv/0TiIsOPPI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=sFt1ef3hmMWUP92epHKcFJDKjw2wONu2a0S8MpbyCeMNCh0+1A9ENPVqh4avtXA5ylKnF7ESIUTWg6sXxHYJ3wzVhjOzLit7gzH8Yk/qT0v6ZkHsFquEPWBe2eWzJE1DmOAdtmHoupO17z8Znx4pTRBO30ZAwFBpfVejIDLi+/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=YHG6DYwg; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="YHG6DYwg" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 081C8C433F1; Sun, 24 Mar 2024 23:03:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321392; bh=T+ReKdZ9roAuzU/DfsquugIpMTaDIpDuv/0TiIsOPPI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=YHG6DYwg1JjTEOdtmTV4ruC6S92cr45J6WZt6aF7Idxi98wWqu0UnQWvrwGNKcupc UROP1lSIjYGRZNuGhsK5MOjMRiIqHxzBPA+uRJHe49ToLag7LH510hhUVLiSLRjpOV ckSHaBLr9tE+Y9l+3Snm6rkqWVI4klfBeG6nmN962CNliGC0VqaHgrALyrJ2WTrMvn AkIi4Bx6KAjOSbiEOnXKPkQBGr5H8K1GEpwN+URk405jtffVVweLWX2lo1hayguO2Q ilaQ7GLYk9tkH0dm7XW8ybOTPKAZ/6/IoepI/Okgh9VCTNT4TdeAM+QK29IvU9MC8O GHLWKiOHNuzmA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Rahul Rameshbabu , Julian Calaby , Kalle Valo , Sasha Levin Subject: [PATCH 6.6 116/638] wifi: b43: Stop correct queue in DMA worker when QoS is disabled Date: Sun, 24 Mar 2024 18:52:33 -0400 Message-ID: <20240324230116.1348576-117-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 92ca0b2ca286d..97d8bdeaa06cb 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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D1341200A4D; Sun, 24 Mar 2024 23:03: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=1711321394; cv=none; b=c72ufl0xx8qP29iYUn5ocuIjnwrx2+NKHdkM3UXHZq1UGantsFsFnRwEOh20WQzCjdchb9BGN/dLNhdhvAI4GH7SN6SUUXMODZ7TdivuOqxlmfQjE++FVQixL98XePNv9RY6MyzNAW+5FwSTEeW5fCvnJdao9bmgMwtE4SjsfFE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321394; c=relaxed/simple; bh=CsAMiHQAXIh3ppx29hoMWB2i85+/qOx9nZjiv2Urp3o=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PUQHeHmlTF4phANFyZuYWxkZXmH09PLaz9HnJzaXNgFWuJY9uc2fC028r25lYMKHcNd7Iw1U+TjNnqM4T6RB+0bnzSwrsPvFfcUa3bENfWAx7Wdm+SrtiB9t9aMr2tOwEbDePT2zPhhdUjebFng2Ln01hhMaE+HdB4OKuPf4LdU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=TzR/gFtn; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="TzR/gFtn" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 032CBC433A6; Sun, 24 Mar 2024 23:03:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321393; bh=CsAMiHQAXIh3ppx29hoMWB2i85+/qOx9nZjiv2Urp3o=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=TzR/gFtniG4yRREg3bd6fvufnX0JB488DQI4P5robLmFsslQ/Hoo76sw3zXs5r19k HqtEAr4Rf3EX1F3uMoFAoy0fMHAAdfbWdbJxjXNmVg1a3N15gxpKwK1R28UbQNbVcM spa403fh93M8Fo+DFv9xWk5guDSt83o0SIkaK+itdXoP4UqsgyUjbyN5ULHLydI/I5 f5fq61i8XlPGPU0MBK8/z3ToCHzERyocf4AxOKHqZVmEGdLT8ts0ozohdCV1Wz4bu4 s/8gxIgA2g19ZmKVmv+i00nIB1gWo+9BuYjuWhO0HjbJ96f3/PtjlIP78RBsAowtZl 2V67v5QlXvHuA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Rahul Rameshbabu , Julian Calaby , Kalle Valo , Sasha Levin Subject: [PATCH 6.6 117/638] wifi: b43: Disable QoS for bcm4331 Date: Sun, 24 Mar 2024 18:52:34 -0400 Message-ID: <20240324230116.1348576-118-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 97d8bdeaa06cb..effb6c23f8257 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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B7D0D200A58; Sun, 24 Mar 2024 23:03: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=1711321395; cv=none; b=MWkheitlE3C5o+3/Hmlg5foIVkuN1WrqM5xFfqjpmoFGPbrs+TJSQJLWI2/0OzZO0BQ3/QyHa4LOjKjeKk6fn7J9fogx/vBmOw1UJ0Elo9BCWrM25FKNS4s2c+rV3zNLKVBTJt/BfuMn80gQ3Nb/GGK6XsSMay76k3OTpJjE8LI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321395; c=relaxed/simple; bh=G+hduV/IVdxX36FY9MOF6jITJo3Fxej2/2NW473H1lw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=EmK8JvvXgF8H22Uc8fmJAVtK+GI3P7rD8LM2x3MQ7Ppeg9NRSw6c3vuNvd53H9pFXu2Tre4S84rVrdvOvDaymUBfDojFqng6ModH1zov2jR4GZvSM9GM2AUNzYmXxGb/Phfj4NMDpY/ZDp2lCGiDg3lcDAmNGfOnnx/n9rx9mpE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=hFmIRHhq; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="hFmIRHhq" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 00560C43394; Sun, 24 Mar 2024 23:03:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321394; bh=G+hduV/IVdxX36FY9MOF6jITJo3Fxej2/2NW473H1lw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=hFmIRHhq9IypNpoIwRHyEpVG2tGdYTeJgMTdtbVeFLOhrAJWbNZC+OAhYF9HyEjzh bd/ZrKwALiNrTKlBR5Kw2s9fZOy+TOsP5KVsKBLbyIKBFl2DhkhaFUzApj9Y63FJIH ukN25RqAQ3ZPjic2hSHgZV2tgaAPW5f5DLbMuafBxJeH3/hw1wk4ftgKhOPoomoW2f bzhQxxSG0gKqQLdzsdgqyKfoMuem8+6RVR80A5086agFuqF8kK4ZFdy37Pi4l+5xtW 8AITE8Q2YNa9HgyoFSv/kERHeJZjYLf0xDx23jgZpk8FNLd7xZaj/mAI9EwOErs+5l qNJGlQ1CgZFfg== 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 6.6 118/638] wifi: wilc1000: fix declarations ordering Date: Sun, 24 Mar 2024 18:52:35 -0400 Message-ID: <20240324230116.1348576-119-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-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 Tested-by: Takeshi Ogasawara --- 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 a28da59384813..2f8b9e9c393ce 100644 --- a/drivers/net/wireless/microchip/wilc1000/hif.c +++ b/drivers/net/wireless/microchip/wilc1000/hif.c @@ -374,13 +374,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A2934200A5C; Sun, 24 Mar 2024 23:03: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=1711321396; cv=none; b=LJvE8Nk5juZfU75sNGJiFJyQ5bipAv6mul+W+kY9sXi5E4IFTmxMoBe6baUnavBbBOATpWBJpmDHFdxn968zp92xN2Gucn+1BUX+K2X2pDs1Af0EesHrA46YQNI2+N1pKAvSDa7LuaoOj8BTUjEb4fRe1VXMcHmmHIlrz11w1kY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321396; c=relaxed/simple; bh=Y4q1qgBEaDqTjFh+WJkMM/hiX5fJdaY3qDxv1K6DD0M=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=drJ25LFbOqzRIzWnNHHW8gRAzq5Bi22BcUdMoWYRpzizjpg3ArX9qO4IXFQvShfKHzfu6I292gJ5Ok40v4cexAqgT5Rp3qk0/me/6Q523/dHIdhuXhuntX9metWiZWRkA0bGieAEJM+qX3B/+ENOAoEV/7+cuP6ZtvfbqabhlNk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Y+7xck9D; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Y+7xck9D" Received: by smtp.kernel.org (Postfix) with ESMTPSA id DC629C433F1; Sun, 24 Mar 2024 23:03:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321395; bh=Y4q1qgBEaDqTjFh+WJkMM/hiX5fJdaY3qDxv1K6DD0M=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Y+7xck9Dtm0YRCAD44qIoeI7TnLg82NyoLJp7IWZNq4hHwtOZzzZ2iDMbzH5KcWua mMhnq6lp0BDnPghMJ4uE3c/eckzEcS7t/9Rv5Nvn4IRhdNNwLE+NM+7rCnQmJka3Qc ppCUrly78LPckOALTkUBbRFH/bczN0j/gZ3eT/WI855ae1QTO1FLbPr2a75sX7OOyN kPOJaLMLtBDDv0D8VrZCYjiVPvI4qIunczpJe9o/q+/aqakyvbr5DpXtOcbpv+W536 LXoG2TyHNRyFDfe1OCMUwoY2GQMSMIIH4DmdbMINjQK95ta4+8/4RWhb1LWmJSrU43 7GhsK2Q2lkuAA== 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 6.6 119/638] wifi: wilc1000: fix RCU usage in connect path Date: Sun, 24 Mar 2024 18:52:36 -0400 Message-ID: <20240324230116.1348576-120-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-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 Tested-by: Takeshi Ogasawara ----------------------------- 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 2f8b9e9c393ce..e202013e6f2fe 100644 --- a/drivers/net/wireless/microchip/wilc1000/hif.c +++ b/drivers/net/wireless/microchip/wilc1000/hif.c @@ -374,38 +374,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) @@ -416,7 +427,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 @@ -431,11 +442,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) { @@ -459,7 +470,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 @@ -474,13 +485,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; @@ -514,6 +525,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 97D6B130E30; Sun, 24 Mar 2024 23:03: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=1711321397; cv=none; b=t9WK4sGFUx7ToS1RkbOPASau0dk7JmWNMOxmmA1nXAmuU02QV/rvWkh0qvofwq/w1edMTCAnlfjS7Jo6KjVqibz/JcvFSaMfFz/0rUrmlYwlJdsDVSBkx7PZkq7XmjfT60aK2G1qIomlpwOeNULjnD1Tn9h/iKc5CUfXjjI3JwY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321397; c=relaxed/simple; bh=PV95sVDzH0x/NSKCwRKFhOR/8HyXkMLE2m1FQByzsUw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=S7/EBxWJQ2SoRa+XJfYaAp7vKFBkK78wmBjR+b1EhkwNLh7hhw3BpARWF+3GzgxESShN7bR/SiHdUar1TLpPYhm1XCrfKByUjb2sFO6N3z0d4RAuLTeRkl3dXHd7ApQE0FOEMXgf73XBy2tyrVv3ELBFkwsPLm9f7xOq303XxgU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=YgD7aPkG; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="YgD7aPkG" Received: by smtp.kernel.org (Postfix) with ESMTPSA id C4204C43399; Sun, 24 Mar 2024 23:03:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321396; bh=PV95sVDzH0x/NSKCwRKFhOR/8HyXkMLE2m1FQByzsUw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=YgD7aPkGmk4089evKvIM/Ii+aa9TuOTiFRY01zGlBmVVC5FlNJx8BtOFBb2P9jPZT ingHhuvxO2J3VSGf5V1oMDuZTYFI801xz2Dkj6NswRg2oQvx0DLiHQZxnm/yjN6K82 EvgFbQP4kixxmaeQF28z2/cHk5FtNOb7m6hjduVANU0v3YBi73K2T9XpvEbOltq+RR lDtx2ISjg3e8zMDQONPKgAqTKGCeyCu+BsGJChQ9T4n5WqPxk2igfkwjSJijmkBnN5 /FbrFy9/lBTfoksWxDOO9geXV2v2ixo1BUZmypT1PpL1X8ae9acbXFfqeuDzzECMP5 wS97bs4G8Tv3g== 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 6.6 120/638] wifi: rtl8xxxu: add cancel_work_sync() for c2hcmd_work Date: Sun, 24 Mar 2024 18:52:37 -0400 Message-ID: <20240324230116.1348576-121-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 77b356fedd82a..0e74ba630a8e8 100644 --- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c +++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c @@ -7304,6 +7304,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9331D131724; Sun, 24 Mar 2024 23:03: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=1711321398; cv=none; b=JBq3L5ioVVJalq94TjSk0Ev7Lg9zVu43iDSwYtO1+5TB5qJaGjghfv6+wqbQ5wwKDXUgVJfgTBmLXGDSaMDvncfScEbfTrkLtIIolNzyUB0JSg39J2VaYyjIgbrT1zL/eud7ss7RbE8kMM5i4j0xfL5dFmyKAIqkGDHQqm2XSM8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321398; c=relaxed/simple; bh=rM/a6NXuhaaDJxRNqFU+vOj3znGsfhW1ZP19rBQIkT4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=owDInt3wJn0JORvydZ6Dv2egW/2ob7gRDzlI1FyjYv3cjpI//ttBemZTCMgZX7jWAmVrUbh7o/57Sh84NRv41CnISlScQJR98Jxwp97yRtQR9e4yHAYh72UC3meg0CRNOc1bkb7SgWXEGKadD9xE0tq4U3wCoSRYTALsoWJ0YmE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=c1p5DUbZ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="c1p5DUbZ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id BE2EFC433A6; Sun, 24 Mar 2024 23:03:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321397; bh=rM/a6NXuhaaDJxRNqFU+vOj3znGsfhW1ZP19rBQIkT4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=c1p5DUbZtPHFNM/Hade8SlGI21T1MJtgwwJgwNZZxtuRkqoFOMrBvmlbNbHOQbG98 Q6kv9ddueyZ53kO2vVe7wgr8l0nKKMLddr1p2iYSIArH5kQrpUBI57uMI1p7eM6lYC IUQjDsm05NOYPjoAp0SgKgKJlfDz/DdVd+HhnYXbFhqHYyDj0TAU61uhbHvxkWWPx9 4MGH9eKVvnLP3Z2oGO9357FTVftnWuQZwPQQLr6XXQ0pWLYrHH2W0fqS6RgUzc5EVP via4BnNcjRQ2qDF4Pqlo/coeghzIcHBzWVabUzEkMebpMaaBqTj1JkJ9nbeGWerbZf TpNHuPorkwKbQ== 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 6.6 121/638] wifi: wilc1000: do not realloc workqueue everytime an interface is added Date: Sun, 24 Mar 2024 18:52:38 -0400 Message-ID: <20240324230116.1348576-122-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-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 328efda22af81130c2ad981c110518cb29ff2f1d ] Commit 09ed8bfc5215 ("wilc1000: Rename workqueue from "WILC_wq" to "NETDEV-wq"") moved workqueue creation in wilc_netdev_ifc_init in order to set the interface name in the workqueue name. However, while the driver needs only one workqueue, the wilc_netdev_ifc_init is called each time we add an interface over a phy, which in turns overwrite the workqueue with a new one. This can be observed with the following commands: for i in $(seq 0 10) do iw phy phy0 interface add wlan1 type managed iw dev wlan1 del done ps -eo pid,comm|grep wlan 39 kworker/R-wlan0 98 kworker/R-wlan1 102 kworker/R-wlan1 105 kworker/R-wlan1 108 kworker/R-wlan1 111 kworker/R-wlan1 114 kworker/R-wlan1 117 kworker/R-wlan1 120 kworker/R-wlan1 123 kworker/R-wlan1 126 kworker/R-wlan1 129 kworker/R-wlan1 Fix this leakage by putting back hif_workqueue allocation in wilc_cfg80211_init. Regarding the workqueue name, it is indeed relevant to set it lowercase, however it is not attached to a specific netdev, so enforcing netdev name in the name is not so relevant. Still, enrich the name with the wiphy name to make it clear which phy is using the workqueue. Fixes: 09ed8bfc5215 ("wilc1000: Rename workqueue from "WILC_wq" to "NETDEV-= wq"") 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-3-54d29463a738@bootlin= .com Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/net/wireless/microchip/wilc1000/cfg80211.c | 11 ++++++++++- drivers/net/wireless/microchip/wilc1000/netdev.c | 10 +--------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/drivers/net/wireless/microchip/wilc1000/cfg80211.c b/drivers/n= et/wireless/microchip/wilc1000/cfg80211.c index b545d93c6e374..2f75dc4b47975 100644 --- a/drivers/net/wireless/microchip/wilc1000/cfg80211.c +++ b/drivers/net/wireless/microchip/wilc1000/cfg80211.c @@ -1810,15 +1810,24 @@ int wilc_cfg80211_init(struct wilc **wilc, struct d= evice *dev, int io_type, INIT_LIST_HEAD(&wl->rxq_head.list); INIT_LIST_HEAD(&wl->vif_list); =20 + wl->hif_workqueue =3D alloc_ordered_workqueue("%s", WQ_MEM_RECLAIM, + wiphy_name(wl->wiphy)); + if (!wl->hif_workqueue) { + ret =3D -ENOMEM; + goto free_cfg; + } vif =3D wilc_netdev_ifc_init(wl, "wlan%d", WILC_STATION_MODE, NL80211_IFTYPE_STATION, false); if (IS_ERR(vif)) { ret =3D PTR_ERR(vif); - goto free_cfg; + goto free_hq; } =20 return 0; =20 +free_hq: + destroy_workqueue(wl->hif_workqueue); + free_cfg: wilc_wlan_cfg_deinit(wl); =20 diff --git a/drivers/net/wireless/microchip/wilc1000/netdev.c b/drivers/net= /wireless/microchip/wilc1000/netdev.c index e9f59de31b0b9..0e6eeeed2e086 100644 --- a/drivers/net/wireless/microchip/wilc1000/netdev.c +++ b/drivers/net/wireless/microchip/wilc1000/netdev.c @@ -977,13 +977,6 @@ struct wilc_vif *wilc_netdev_ifc_init(struct wilc *wl,= const char *name, goto error; } =20 - wl->hif_workqueue =3D alloc_ordered_workqueue("%s-wq", WQ_MEM_RECLAIM, - ndev->name); - if (!wl->hif_workqueue) { - ret =3D -ENOMEM; - goto unregister_netdev; - } - ndev->needs_free_netdev =3D true; vif->iftype =3D vif_type; vif->idx =3D wilc_get_available_idx(wl); @@ -996,12 +989,11 @@ struct wilc_vif *wilc_netdev_ifc_init(struct wilc *wl= , const char *name, =20 return vif; =20 -unregister_netdev: +error: if (rtnl_locked) cfg80211_unregister_netdevice(ndev); else unregister_netdev(ndev); - error: free_netdev(ndev); return ERR_PTR(ret); } --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 92F28201242; Sun, 24 Mar 2024 23:03: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=1711321399; cv=none; b=WJYqOKhOIaqIERyt7FDa2x8Z6/rbtLZ94oGGR09mlIaesvmB+G/4UQsPGTLAFX5mi5oiYGuBzPvw6HlL33lURVXB1rN0EK+2wRM4egFM1h+DRw1ywDDuRq9PhRH1LV6Fvopz2tfBpWpwuzgPTzNWjDyF0uUqBUHBvaGEPyomo4k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321399; c=relaxed/simple; bh=LOdq1mNqCD1OLC2zN1bxNCWDll0+7fgycknYNHN/tG0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=WgNqTzJ9e54tNSl0EDT0WGGJ6fjqcs5P4fP26E1LNSiRKgMKqNb/BiHxfRbEyXsxOHDdB7LfiMPpRjHekKKuZePDVj9XqHvVIwZGkXsrLWwdB65RMirw+w9KVVlHSDT9MCf25WyLQrNK7HXAkBellBx8G1k+c/XGYH3BlGaLPGk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=bMQjmOpz; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="bMQjmOpz" Received: by smtp.kernel.org (Postfix) with ESMTPSA id BC6F5C433F1; Sun, 24 Mar 2024 23:03:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321398; bh=LOdq1mNqCD1OLC2zN1bxNCWDll0+7fgycknYNHN/tG0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=bMQjmOpzFcZl1pPI8ChfDGP0PWS3LaaZxlN4ao2AToeAG6HPHE/3i+SMUPPsF7Kd/ Y7ZMBLyn71uPGL7x3p2rRQ6HcO/eN2wt4rQdUq/g+Tg03c6PzABFmhtKDsmBYWXtaI Q47huPmo6VezNB3f7QAGADLiTCzjQgLaVXZZIlSw3SWypzlDshDhiNnNleJccAiifv FSF4ID3tyxN96rophRJWb5s85vPqIkz2NJUnWDzJWk6BtKXxIDf2+28bGjwIvx6OJy PNBeqKLZyrII74XdSPUYbxwQT8qhzI+r6ZX2B3dDXdJO17FiNolTWgcxlWF6s8ZvLL H24BVUrIVx3gg== 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 6.6 122/638] wifi: wilc1000: fix multi-vif management when deleting a vif Date: Sun, 24 Mar 2024 18:52:39 -0400 Message-ID: <20240324230116.1348576-123-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-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 Tested-by: Takeshi Ogasawara --- 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 2f75dc4b47975..6f3245a43aef1 100644 --- a/drivers/net/wireless/microchip/wilc1000/cfg80211.c +++ b/drivers/net/wireless/microchip/wilc1000/cfg80211.c @@ -1615,7 +1615,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 90BE920124F; Sun, 24 Mar 2024 23:03: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=1711321400; cv=none; b=elTN+6gSUOJZTmIyjGvAAEKYrTe4O4A+lvqd1MrLYxyPt0OaOnfYhqlUNfEd5KwLefC4zZbNiwEZyytr2p4K3t1y/kfXKL/kA5gDwuQ7z6Iaz9GFuF1+CW6DOnlI9zDpiokOhurb0Qx8frSlcjDUfZfxMQf4bTNmGSAA4tEcPNA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321400; c=relaxed/simple; bh=60vo75mBcZsaaWRfia1pLHWloNQ83WhNjty4gGNM0pg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=RXzWQPWSWg2Ci63wI7Bcgn+ton61QVbpB77eItsdISukwEm+INM3roaAt/246wU+M+P4z2nTGiZwljpm8a8beggSAtFG6SO/c3ub2uU4RXpezF6xFq8xNXNsodIilDobNHZFzWdeFUhKVdbc82r/EPABBtsi+437xwLz/WpR2Ik= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ATCeXs4E; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ATCeXs4E" Received: by smtp.kernel.org (Postfix) with ESMTPSA id BB6CAC43399; Sun, 24 Mar 2024 23:03:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321399; bh=60vo75mBcZsaaWRfia1pLHWloNQ83WhNjty4gGNM0pg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ATCeXs4Ea5v5rMysJmtWoRq6DicMVTx7aH564fdAztM3zbV/Sxthve5b4nkgLvw7l lUyDqYRS5lwkhRe68YmTNyly0qZxxYOn4uxqxS5IpmPGw/MySd3K68LzsiUXkf17cU qUnsT8IuB0FarveKl1iRkihmvsAwbrQZ829v6uYZ/RatMqCPT7x3u5Sv9gks3yYnmo qhuiS4pm5i9j2EWUCELs5R4TF272mryhKwwEWBHImrBXBn0NH1pecBIJKpup+gpavH YmvNvuH+qgEhFWtgFQ6sLXFtkDfk5hvHLaMnv19TaTmGjet6gGwCrXcAQz0ob4szdb RQyOj0I/85Xdg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jinjie Ruan , Russell King , Kalle Valo , Sasha Levin Subject: [PATCH 6.6 123/638] wifi: mwifiex: debugfs: Drop unnecessary error check for debugfs_create_dir() Date: Sun, 24 Mar 2024 18:52:40 -0400 Message-ID: <20240324230116.1348576-124-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 f9c9fec7c792a..d14a0f4c1b6d7 100644 --- a/drivers/net/wireless/marvell/mwifiex/debugfs.c +++ b/drivers/net/wireless/marvell/mwifiex/debugfs.c @@ -970,9 +970,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7AC71201258; Sun, 24 Mar 2024 23:03: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=1711321401; cv=none; b=akHM+8bZwN/r56i37Y7xsBJIvHqjR+OEK2tAUYfrdYPXt8Sd7E5fbQEQO5ZHl1L/wgz1iZ/xsIsdpcCPv1KaEUYFS9etfdXYpDogQKZjYTXgUmtMoXAo2VOBGKFRMSilsnI5cLNxdRc5WVSfxCvntGNzz/o/E2eHdvLdfatDwTg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321401; c=relaxed/simple; bh=TX73+o5Zksy/nU+bttvWqBAKEynL0P+CANS8XUJ5u7g=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=BFPJiDbtx+80nfDiNQ6HNSB4U/2ihtt/MmTJ+Apwy6SQeTl3F+bMhnmdK0PgfQjkKFtwJLwobZvd7XCC8pqUaQnTljo4Y4vG2hz1MYEI38AlWO1lGj6l3M2wApabJy/TCy3uSXgBpz48HCns+z5CxzCfvGjxykw9q5nrsJcRXXo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=K8fUsV88; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="K8fUsV88" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B802DC433C7; Sun, 24 Mar 2024 23:03:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321400; bh=TX73+o5Zksy/nU+bttvWqBAKEynL0P+CANS8XUJ5u7g=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=K8fUsV881lt4fcNfKvaQomFLYGM/GetpCFoFbo33Yt5H/l+91AaYQh1Fn5pzUbQTz 4UzRx4IZHbcfXU25g05W7vEABiK/E/qg+ffxiaVcdukqMQYebYeSDxufEHm/WlKVil GjLKdSTqoddrOuLc6VAjKaCL/lflKxCjQW4hCw0s5oyulln8syr6LFpHhyfOz5oMSc nGruWJ6l8bhoS+YS2qFW2NyG61nPE5CAxbXDY3aKk/eYAVtp58vvvxwRqRA5q1sfNT +3nfwvvuNGM95LF7w7mp1VqqYy+eSU9tDhk2zk8rnD9NZKiq8tN6SbyHJuH3AL1Ahs iOo8UdRyVLXSw== 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 6.6 124/638] ARM: dts: renesas: r8a73a4: Fix external clocks and clock rate Date: Sun, 24 Mar 2024 18:52:41 -0400 Message-ID: <20240324230116.1348576-125-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-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 Tested-by: Takeshi Ogasawara --- arch/arm/boot/dts/renesas/r8a73a4-ape6evm.dts | 12 ++++++++++++ arch/arm/boot/dts/renesas/r8a73a4.dtsi | 9 ++++++--- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/arch/arm/boot/dts/renesas/r8a73a4-ape6evm.dts b/arch/arm/boot/= dts/renesas/r8a73a4-ape6evm.dts index e81a7213d3047..4282bafbb5043 100644 --- a/arch/arm/boot/dts/renesas/r8a73a4-ape6evm.dts +++ b/arch/arm/boot/dts/renesas/r8a73a4-ape6evm.dts @@ -209,6 +209,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/renesas/r8a73a4.dtsi b/arch/arm/boot/dts/ren= esas/r8a73a4.dtsi index c39066967053f..d1f4cbd099efb 100644 --- a/arch/arm/boot/dts/renesas/r8a73a4.dtsi +++ b/arch/arm/boot/dts/renesas/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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5E748201250; Sun, 24 Mar 2024 23:03: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=1711321402; cv=none; b=QjRI5MoJVcLbSsaOIrSpNbavBvKJ0/venCq7xWa2SKXgUD/jGbhH3Sl1qSMOyEmnVdrAPPJmQ9K/0wxbQLGABvV9kO/z/cX+KA+8gntEPURb8p3htF04qPE0TPKbaa6v9N3PdYWYPcksDRALHJtah06cCaM9IbmbhTH/d7DAbdI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321402; c=relaxed/simple; bh=EUnoUEiDef9Ju6ymK0Atfqd4Cd2DW4CQpMJr/UKQeOc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=eYg5E8x0Qaxh/8FNS7MyYkBBGRvckwUCUnbve3/kybv3gTwulgT+yUZBFdbV/vjiE3iHKQEvjMvLy4v4Gw5RxSyxyhfjqAwIxiwFdWKUOAwPPzb8CqX/UCnDh0jiGcEOjriSyAK0KgZw0KPwjg6k+sInyNatS70CL/Urdv0TmMQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=t3OPrSvx; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="t3OPrSvx" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A0719C43390; Sun, 24 Mar 2024 23:03:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321401; bh=EUnoUEiDef9Ju6ymK0Atfqd4Cd2DW4CQpMJr/UKQeOc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=t3OPrSvxpIi1XRnZlj33+v/jpEEAqxU6/Lj+0sTDN2gO9Nt3Mo6OmQKjSVDEU80fd v1TchPueKI+TY/dvGnpZjFTkgL6KLvJLDSdBQYt/HGlZz1DURXkZtnIruxJ+OBdHWp +MknRxyYVl5gpc5WHEQJYJ1xu6IRpYk1bFvyfzv0jQyOc818JO6LR4EhLjGQfs6Pb2 qNAWxPwvu3tvzyDHWV0SeAe42bwHrmgx0xLIh/FLP9v5/Jmm5Q4yvy/jjVq2T8ebqv 6NHGuksEecg8EPpheFK03JoxYSy0pOePfW955KHDQ0eWgdKrRdNewomcCLM2Amsm4D JGfouTEM5OLEA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Konrad Dybcio , Bjorn Andersson , Sasha Levin Subject: [PATCH 6.6 125/638] arm64: dts: qcom: sc8180x: Hook up VDD_CX as GCC parent domain Date: Sun, 24 Mar 2024 18:52:42 -0400 Message-ID: <20240324230116.1348576-126-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 3c58b96df110a80e78fa36ef928f1e6c375008e3 ] Most of GCC is powered by the CX rail. Describe that relationship to let the performance state requests trickle up the chain. Fixes: 8575f197b077 ("arm64: dts: qcom: Introduce the SC8180x platform") Signed-off-by: Konrad Dybcio Link: https://lore.kernel.org/r/20231230-topic-8180_more_fixes-v1-2-93b5c10= 7ed43@linaro.org Signed-off-by: Bjorn Andersson Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/qcom/sc8180x.dtsi | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm64/boot/dts/qcom/sc8180x.dtsi b/arch/arm64/boot/dts/qc= om/sc8180x.dtsi index f9e929bfa5508..97a75678a5169 100644 --- a/arch/arm64/boot/dts/qcom/sc8180x.dtsi +++ b/arch/arm64/boot/dts/qcom/sc8180x.dtsi @@ -781,6 +781,7 @@ gcc: clock-controller@100000 { clock-names =3D "bi_tcxo", "bi_tcxo_ao", "sleep_clk"; + power-domains =3D <&rpmhpd SC8180X_CX>; }; =20 qupv3_id_0: geniqup@8c0000 { --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 45C2A20124D; Sun, 24 Mar 2024 23:03: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=1711321402; cv=none; b=AYhMEroGCPCg89HcoUMgoCVDTpLjT1dC31Y2uX1ISwMenoKOjOpkkd//T/EhLWpfnE9H/yiDfw57wU96a654ro7GwyLWrP4PQGLsgHopjlwqun8yDkkkWNLhtvsuGl5Z6orEvIXSIEMMlanWfRQeRd5DsJ4E2rXFZkl7b6Zg51Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321402; c=relaxed/simple; bh=YmNS55wE/fW15oQTBLiltnRhThre+/zmFP9G4k8G5Rk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=IQFJDa6w+KOTOa1HeYdDA6WpPrlxRYgj11czhbDyGhtIV7Z5b70ONd7zVRmh4fBm8HS+vcYSSMOMTgTYqm8tqdzi/PpgPWyv6GsQwgu/p0nsiZFVW8UIJC9uvpILaQK1ocCyQWehgngy8dG31kODe1Ipi1VhqudlCJ+EcUtYy4s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=BjcdWrGz; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="BjcdWrGz" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8679DC433F1; Sun, 24 Mar 2024 23:03:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321402; bh=YmNS55wE/fW15oQTBLiltnRhThre+/zmFP9G4k8G5Rk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=BjcdWrGzMbpRO02i3kp0QBNVJIr9VYQEc5IEuWxg5eeb+/oykg3HTAW6/E0F5ZfZo 0Ze89e5kWTcu8JS8XLTHPHKv9R3aXK9ZUoXhfc1ExIdB3YZlqHLi+SQJECvDZMsJZp E2eCnK+QDYl7P0VHCIt+N03eI7/3Uac3Jecb6Nx7jFLe440SugUgmFAA3sOd5Sz20m BT1FcOhvRSJTCSjCjK/bKo8USJJeB8LSDvz0rXTDIBdeQ+hwYVC0vjLSWyZxnbV5c/ yM3GzOkDSfbjNisFGRS4eh/15Lcz2PU2VrKHpZNlKdBSKFXhKGs0dWVSMmJdNmQFyN cxN/++QKEVd9A== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Konrad Dybcio , Bjorn Andersson , Sasha Levin Subject: [PATCH 6.6 126/638] arm64: dts: qcom: sc8180x: Fix up big CPU idle state entry latency Date: Sun, 24 Mar 2024 18:52:43 -0400 Message-ID: <20240324230116.1348576-127-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 266a3a92044b89c392b3e9cfcc328d4167c18294 ] The entry latency was oddly low.. Turns out somebody forgot about a second '1'! Fix it. Fixes: 8575f197b077 ("arm64: dts: qcom: Introduce the SC8180x platform") Signed-off-by: Konrad Dybcio Link: https://lore.kernel.org/r/20231230-topic-8180_more_fixes-v1-3-93b5c10= 7ed43@linaro.org Signed-off-by: Bjorn Andersson Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/qcom/sc8180x.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/qcom/sc8180x.dtsi b/arch/arm64/boot/dts/qc= om/sc8180x.dtsi index 97a75678a5169..c8001ccc2b7b1 100644 --- a/arch/arm64/boot/dts/qcom/sc8180x.dtsi +++ b/arch/arm64/boot/dts/qcom/sc8180x.dtsi @@ -289,7 +289,7 @@ LITTLE_CPU_SLEEP_0: cpu-sleep-0-0 { BIG_CPU_SLEEP_0: cpu-sleep-1-0 { compatible =3D "arm,idle-state"; arm,psci-suspend-param =3D <0x40000004>; - entry-latency-us =3D <241>; + entry-latency-us =3D <2411>; exit-latency-us =3D <1461>; min-residency-us =3D <4488>; local-timer-stop; --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 30E9F201263; Sun, 24 Mar 2024 23:03: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=1711321403; cv=none; b=igYOVNAcb9w9hjMz6QwAQ8YTk67p2QECZmIDu4NuDcWBWZl9qhTfg+Av7nnH3f/YLy4/a7UmwBJWtR+yyX9Yq1pwlHnhgKy0sGSA8mvCg/sMGLGScFWCnzTBQhxFst29K5KeZe7D0larcRa1USQZXyiWnpbSLcvfmSldMvoN0Ys= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321403; c=relaxed/simple; bh=6/JF0p4TGpuVIu9EuMBPKr0jbFJ9JTrCi2bvP6CETf4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=VHo6VoZJu0rek9YAxhH8fjrcKtcf6G3olctLh7rYgU3U6gqLyU1sFtVXbAt8+9OiHttKCCUk9Jv+3wN7pzRq4Ez9xXGYcIzbWiXmsyAnmQMsAL8UytkzSaNFiKEriwDY5+DLygGW+rv9ya9GIIx322Ubc1/MTnU4AVucQqeg+7c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ElrWJWrr; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ElrWJWrr" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6EF09C43394; Sun, 24 Mar 2024 23:03:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321403; bh=6/JF0p4TGpuVIu9EuMBPKr0jbFJ9JTrCi2bvP6CETf4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ElrWJWrrYe4WDII77INpNlbwnIGsmEnhbv+cf48JOLJaEbMFZnKF8dkLr2o1H6NcN Jxf5W+V9UB/jvYJ46QFdD5urMmR5wcqIqdyob5ek9pjfoTNdgueOeuVcSdLgJfD7/z KZomv100use54IWT3lHbs/PCx52ekn5KUxhV2u8nYR0AGydHoTuhlWrOy2cG8FuCL2 K+HHoIe0Q7RJ3CSf5OxPhlmLc3NsSJF9D1bW0+k24aNFAFzAq3KdnKEfNih6MX5tjR LqoQ1Ddd6bjFH0ruL4z0qDZWu3OwTdzysX3M6ZvrWiG4M7ZKrS1scR+R1aoJMYdxJY o0lZ4j4Z51DZQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Konrad Dybcio , Bjorn Andersson , Sasha Levin Subject: [PATCH 6.6 127/638] arm64: dts: qcom: sc8180x: Add missing CPU off state Date: Sun, 24 Mar 2024 18:52:44 -0400 Message-ID: <20240324230116.1348576-128-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 07b600dfdfea65d58dd80ea25becd8cff69bfafc ] The CPUs can be powered off without pulling the plug from the rest of the system. Describe the idle state responsible for this. Fixes: 8575f197b077 ("arm64: dts: qcom: Introduce the SC8180x platform") Signed-off-by: Konrad Dybcio Link: https://lore.kernel.org/r/20231230-topic-8180_more_fixes-v1-4-93b5c10= 7ed43@linaro.org Signed-off-by: Bjorn Andersson Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/qcom/sc8180x.dtsi | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/arch/arm64/boot/dts/qcom/sc8180x.dtsi b/arch/arm64/boot/dts/qc= om/sc8180x.dtsi index c8001ccc2b7b1..e15f4facc0021 100644 --- a/arch/arm64/boot/dts/qcom/sc8180x.dtsi +++ b/arch/arm64/boot/dts/qcom/sc8180x.dtsi @@ -297,7 +297,15 @@ BIG_CPU_SLEEP_0: cpu-sleep-1-0 { }; =20 domain-idle-states { - CLUSTER_SLEEP_0: cluster-sleep-0 { + CLUSTER_SLEEP_APSS_OFF: cluster-sleep-0 { + compatible =3D "domain-idle-state"; + arm,psci-suspend-param =3D <0x41000044>; + entry-latency-us =3D <3300>; + exit-latency-us =3D <3300>; + min-residency-us =3D <6000>; + }; + + CLUSTER_SLEEP_AOSS_SLEEP: cluster-sleep-1 { compatible =3D "domain-idle-state"; arm,psci-suspend-param =3D <0x4100a344>; entry-latency-us =3D <3263>; @@ -581,7 +589,7 @@ CPU_PD7: power-domain-cpu7 { =20 CLUSTER_PD: power-domain-cpu-cluster0 { #power-domain-cells =3D <0>; - domain-idle-states =3D <&CLUSTER_SLEEP_0>; + domain-idle-states =3D <&CLUSTER_SLEEP_APSS_OFF &CLUSTER_SLEEP_AOSS_SLE= EP>; }; }; =20 --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 14A5C131738; Sun, 24 Mar 2024 23:03: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=1711321404; cv=none; b=BkAAe01gjCwxhEkjtdGdkPqNvPsO0CXdnRARA8PGfdt4WH7Rvs3+MKzFQikCxxBEeztfZqBA0QqUvW5GtXCE5n8C9N/uXH7HWPauHx6MCljpN1o8v9P8FZ3oPl7r5+o3bLE/gZXdTRGRMWOAm1vBxPR/miSxDaFPlFe2jx1mQ8o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321404; c=relaxed/simple; bh=+PQn2Xt32PVXtxetymmoxToLCcedOoj6FzicUSmW7zE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=fnjtDmqlc69U3jrZsF77bpjFajO5B4FkH3bvl/fTuIYoEuiAhwCPZ0gK2CLtGKkyWLZaKWqNn2g0KVrqUdpKLTICFqxDpkgcsnyLLceosAChNhYnxrAJGVPr6nSxFi6s6azauc0d5PbRpFw63ujdlf+l82abfRYjfrpWfgcYAoU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=CYDXMWod; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="CYDXMWod" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 540BCC433C7; Sun, 24 Mar 2024 23:03:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321403; bh=+PQn2Xt32PVXtxetymmoxToLCcedOoj6FzicUSmW7zE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=CYDXMWodb/CoFGUU67/fY3fERpc18Lv2EqHbK0+5rOqQvPjepvqFnJ1BzpoqK4VRu XptdgrfHOk0yJ9y7fkFtjtRDsbeyjLwCyhlJBYCJhK7nismPhga4o4T/DbOH5ebvOf VWdJB6GksxFTXP4VhT7hQtN93MZw8h3VcTIc8SF/OqqYU6n3s4CgjteHNZrcPWJyuU 6CH/hPBclVMbwlQ7kXqF7E6+AJ/Tivu+mzJkdtiGSAcU7Rhg8MuMu4qfZim4GdgbFk xLdGF8Nd8G+ieAoqm1YSmyfyF460BhOrviwNCBV+hoAwO7qpV8UABQu3plXYDizwlf 34z1fcES0MY1Q== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Konrad Dybcio , Bjorn Andersson , Sasha Levin Subject: [PATCH 6.6 128/638] arm64: dts: qcom: sc8180x: Fix eDP PHY power-domains Date: Sun, 24 Mar 2024 18:52:45 -0400 Message-ID: <20240324230116.1348576-129-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 24e98cb3d5e2c86565680e00008a794b4eac0040 ] The (e)DP PHYs are powered by the MX line, not through the MDSS GDSC. Fix that up. Fixes: 494dec9b6f54 ("arm64: dts: qcom: sc8180x: Add display and gpu nodes") Signed-off-by: Konrad Dybcio Link: https://lore.kernel.org/r/20231230-topic-8180_more_fixes-v1-5-93b5c10= 7ed43@linaro.org Signed-off-by: Bjorn Andersson Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/qcom/sc8180x.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/qcom/sc8180x.dtsi b/arch/arm64/boot/dts/qc= om/sc8180x.dtsi index e15f4facc0021..548dbeaf823e4 100644 --- a/arch/arm64/boot/dts/qcom/sc8180x.dtsi +++ b/arch/arm64/boot/dts/qcom/sc8180x.dtsi @@ -3194,7 +3194,7 @@ edp_phy: phy@aec2a00 { <&dispcc DISP_CC_MDSS_AHB_CLK>; clock-names =3D "aux", "cfg_ahb"; =20 - power-domains =3D <&dispcc MDSS_GDSC>; + power-domains =3D <&rpmhpd SC8180X_MX>; =20 #clock-cells =3D <1>; #phy-cells =3D <0>; --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 01317201269; Sun, 24 Mar 2024 23:03: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=1711321406; cv=none; b=BjGR8eME0GmxNJ55CvOp639TBOPqhE9O0G5rzEGNyZLPcLukvAIyu3/hcnIC1xbZfc1qQ4kSnAzgrGSuXxCgO4XGpuKCMD0enZ/3W7hxCfX9ZxY+EHiv+mSsCokbOye1Vt9jKdnF/WC93A6wcFrbqVh6tsUfCSMR84g58J0zfjs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321406; c=relaxed/simple; bh=e2XEe/34ToubMn1TmZNWy0dLXvUW5KbYYFnCoLGaG/s=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=YAdxYDQqlgX9x6gk5smYnN8FxQA8i8h3hyZsrr8cC4HDGvNujI9xRfOPygOnyZfSHihO34Emw+Uvm+bsuw7LHNPs87vCqMtLTAKcxnywuPsLmiK87ZGMvOVIxvOey1/pZMgPiHNWUx7DXS/Jc21oYq0F+oZrvCs9GNdW53jNmFM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=FZ/1Mf6o; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="FZ/1Mf6o" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 37A1FC43390; Sun, 24 Mar 2024 23:03:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321404; bh=e2XEe/34ToubMn1TmZNWy0dLXvUW5KbYYFnCoLGaG/s=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=FZ/1Mf6oAzOKYniPGtp45HsX4YgoHnivuG8amj70gtUZrEug8klrYNjaJ54nwNeWp 38Ncob9Y5fManhZrp//KJll3qpICMxtCXpW92qHeG9IijBg8lq40sk7BX89tA2+b7n +ncGiVKrU4ltbyebM7njAWL8dh3K3TiPWqvkZKxXxqhFr2jN2ioxIbTPPf0fy8z4cE 6dIVjOQ6qTvcwsIvVA5fNFsxNtg245RWxJ1oh70rABislRibem8vcsiZ03WZYUOYps IqqUMzll0sCijZz4goen4rUnQWu0PxoyLxx8j6y83XrvN1oEwHJWGy558VE6QKNhmX dKbibK7fNk+pw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Konrad Dybcio , Bjorn Andersson , Sasha Levin Subject: [PATCH 6.6 129/638] arm64: dts: qcom: sc8180x: Don't hold MDP core clock at FMAX Date: Sun, 24 Mar 2024 18:52:46 -0400 Message-ID: <20240324230116.1348576-130-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 309b5774f45aafd002efdb2656673542419abd6f ] There's an OPP table to handle this, drop the permanent vote. Fixes: 494dec9b6f54 ("arm64: dts: qcom: sc8180x: Add display and gpu nodes") Signed-off-by: Konrad Dybcio Link: https://lore.kernel.org/r/20231230-topic-8180_more_fixes-v1-6-93b5c10= 7ed43@linaro.org Signed-off-by: Bjorn Andersson Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/qcom/sc8180x.dtsi | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/arch/arm64/boot/dts/qcom/sc8180x.dtsi b/arch/arm64/boot/dts/qc= om/sc8180x.dtsi index 548dbeaf823e4..5ef7500004896 100644 --- a/arch/arm64/boot/dts/qcom/sc8180x.dtsi +++ b/arch/arm64/boot/dts/qcom/sc8180x.dtsi @@ -2731,10 +2731,8 @@ mdss_mdp: mdp@ae01000 { "core", "vsync"; =20 - assigned-clocks =3D <&dispcc DISP_CC_MDSS_MDP_CLK>, - <&dispcc DISP_CC_MDSS_VSYNC_CLK>; - assigned-clock-rates =3D <460000000>, - <19200000>; + assigned-clocks =3D <&dispcc DISP_CC_MDSS_VSYNC_CLK>; + assigned-clock-rates =3D <19200000>; =20 operating-points-v2 =3D <&mdp_opp_table>; power-domains =3D <&rpmhpd SC8180X_MMCX>; --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D51B8201270; Sun, 24 Mar 2024 23:03: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=1711321406; cv=none; b=ErVLzjSqGVss9Tl+0H7ZIuMxgZ2cD9A57q1BBxM3HdfH6AX+41rGwBWw4bo5GcVKVpxZnNsaVC5LonaT7JZxRsgRSiFNbHlFTwWVDlbo7294Xw0oTB66P7z5l8RfozynnuMGBsgoOC5cq29n0XyTH1TsqcU34PdRzjrYaCu3EH0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321406; c=relaxed/simple; bh=nMkkF7C7OnGxkOs0i6pXO9kc1dDogKXge1E9x2XVfRY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=q/LMHJfA13K/36yxH5w09XktpnivgnmdcDTMZPf0Wis0TBYV0sxwkj1Tc8e+d4leXQXospAqTQ9Lwalj6ZuwEL+rcYkpeC74MMTIyrO3Jy5xyRjhpDUnbK5HcQdMeEQKUMv+UKckNtLQmU3O1JOy1Ch7qMkhdTA3uhV4qVUH3I0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=KSFKoOna; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="KSFKoOna" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 22BDAC43399; Sun, 24 Mar 2024 23:03:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321405; bh=nMkkF7C7OnGxkOs0i6pXO9kc1dDogKXge1E9x2XVfRY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=KSFKoOnaO2IX1Iw7W7O3BUBhjK3Pn9fxbV4eyFkShEwzTjU2MGZbWo3PBLn03swcE zkVCtR7YAPNDBxVyY+StnI4AeLSYY17dq2VWEQKSihBanDbMTSW8ZW60Tz72OAg+o1 U4bW+sth4zr2wbIXXEey4nVuKqzR7B0ezEc5JKAwcOH+KnphwLjgI2UNlILNlj0E24 4JHOEt8v/3Nq0Zb0if1JtJkRcgPDHtMPc1wke32nRFyl3KTvTYr3yWHrQiUOSr5Smw 6jI2xQl7iE+mbi4Ti60yDRDgVFWeTUTqKv2kIGT2P/wmfEcpyLP17mvTVQoV2TZODs nRQl7BZPuUr4Q== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Konrad Dybcio , Bjorn Andersson , Sasha Levin Subject: [PATCH 6.6 130/638] arm64: dts: qcom: sc8180x: Require LOW_SVS vote for MMCX if DISPCC is on Date: Sun, 24 Mar 2024 18:52:47 -0400 Message-ID: <20240324230116.1348576-131-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 6d9fb9e4c473cdfd2adca019b46d8e482105cae7 ] To ensure the PLLs are getting enough power, cast a vote with DISPCC so that MMCX is at least at LOW_SVS. Fixes: 494dec9b6f54 ("arm64: dts: qcom: sc8180x: Add display and gpu nodes") Signed-off-by: Konrad Dybcio Link: https://lore.kernel.org/r/20231230-topic-8180_more_fixes-v1-7-93b5c10= 7ed43@linaro.org Signed-off-by: Bjorn Andersson Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/qcom/sc8180x.dtsi | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm64/boot/dts/qcom/sc8180x.dtsi b/arch/arm64/boot/dts/qc= om/sc8180x.dtsi index 5ef7500004896..de53541858420 100644 --- a/arch/arm64/boot/dts/qcom/sc8180x.dtsi +++ b/arch/arm64/boot/dts/qcom/sc8180x.dtsi @@ -3218,6 +3218,7 @@ dispcc: clock-controller@af00000 { "edp_phy_pll_link_clk", "edp_phy_pll_vco_div_clk"; power-domains =3D <&rpmhpd SC8180X_MMCX>; + required-opps =3D <&rpmhpd_opp_low_svs>; #clock-cells =3D <1>; #reset-cells =3D <1>; #power-domain-cells =3D <1>; --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F1EA320127A; Sun, 24 Mar 2024 23:03: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=1711321408; cv=none; b=G04PcXSeOiQc9vlS1SSXp2WFKb5POh4i+q0boYNfeQmKdqMmPVnkDaiaMg2nhcnZFoGYOkLuX8SyidvF9CJRpotISG7fX5ZHDl4ICNsGj6VFYmI55PBm1Z2CGrmx1HOFkMUluVq1PCeos0HUv/HCQCuN79BAaIPmrymgRp+os7E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321408; c=relaxed/simple; bh=n71pM3LvilKHX9PjjzODL+40J/Vl8g0bAl3/erD3ULg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=fuTq54UtS6KsxrF+9dxUecsXfQXnS0Qvo1Qi4DZp5aRyP4/XDs/J5hiFLXIBDvIJbfqd7mxXnknncfBZKNE8ypHWEnRMfUDWUcD7x+dqAZNDysadqsRqXnEQMUT0yQbV4GbmREiag1NTF4bzqATfOPVnz31foLBg35zTXebbZ8Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=lM1Q7Ut7; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="lM1Q7Ut7" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 07E04C43394; Sun, 24 Mar 2024 23:03:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321406; bh=n71pM3LvilKHX9PjjzODL+40J/Vl8g0bAl3/erD3ULg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=lM1Q7Ut7fT+MjDFkhpHm0LHZDUy8IesKplPWSpRW0SWcZurDhiCyEn8B3FuVsLw3c bu45mBPfwCjozMkv25Nd+wAowVr4SRrgmjLjtcxALGEoJhamar6PvXezT1jRI0BDtL vkYkuYjwExCzDAwdJvVSZEVdNYQ1WDVj+6rIjPxH/3+9/hKHhGEiXeiffeYkvqbCfH +qujhubHj0MyjhNcgPm6biEItyzISQ79HhTALlR+Qinyh+Tea/AiIqcu4JY0lpcLIT kPIf2LPNLmS2srYjhZPAnJ3j0JmxIhB02azWUxNabB+KAbJC7bIES5ljhprrrQTaIt A4BmaiyFg07gg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Konrad Dybcio , Bjorn Andersson , Sasha Levin Subject: [PATCH 6.6 131/638] arm64: dts: qcom: sc8180x: Shrink aoss_qmp register space size Date: Sun, 24 Mar 2024 18:52:48 -0400 Message-ID: <20240324230116.1348576-132-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 dcad0590d1ea4278a55c30dd2903611a96111601 ] The AOSS_QMP region is overallocated, bleeding into space that's supposed to be used by other peripherals. Fix it. Fixes: 8575f197b077 ("arm64: dts: qcom: Introduce the SC8180x platform") Signed-off-by: Konrad Dybcio Link: https://lore.kernel.org/r/20231230-topic-8180_more_fixes-v1-9-93b5c10= 7ed43@linaro.org Signed-off-by: Bjorn Andersson Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/qcom/sc8180x.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/qcom/sc8180x.dtsi b/arch/arm64/boot/dts/qc= om/sc8180x.dtsi index de53541858420..6eb4c5eb6bb8c 100644 --- a/arch/arm64/boot/dts/qcom/sc8180x.dtsi +++ b/arch/arm64/boot/dts/qcom/sc8180x.dtsi @@ -3257,7 +3257,7 @@ tsens1: thermal-sensor@c265000 { =20 aoss_qmp: power-controller@c300000 { compatible =3D "qcom,sc8180x-aoss-qmp", "qcom,aoss-qmp"; - reg =3D <0x0 0x0c300000 0x0 0x100000>; + reg =3D <0x0 0x0c300000 0x0 0x400>; interrupts =3D ; mboxes =3D <&apss_shared 0>; =20 --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AE88C4D133; Sun, 24 Mar 2024 23:03: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=1711321408; cv=none; b=mwEq6zctVTnsJ2JvUcRAvUgVgYlp6R0T8N8454l/9dDZtdllxxa9YJRM5nbHlE6EJ/BOqhN+i4QrXrtgzTBAK8ofdNsZeOPuS6qVLpYlPJqFBOoN2YevXF4H8tNeBQR/t9O3q2LTP9Nk7Zp2kKTak1bin+lg6dURrl59PwwwaLU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321408; c=relaxed/simple; bh=RiNJz9zlSFXEx8zYJSB1a4ND7aEOOQrZQdR/XEnpxN4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=YiL4D2K0MU9r1L/YUWkynLncQDVglOKh2HRTBxijNCYYYVPSq8eOhh5LoZHFA2AQgejqH0X1bc57NhT6rzioJMCmjVEbJFB3gAlkajV/uo2gTF/KeA/lup2gkCP4c/Cs6K0PjFa5I4hbb3Hc43elNCxPP9RArISVBuSOflTIsUY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=NR/M3K02; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="NR/M3K02" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E1467C433A6; Sun, 24 Mar 2024 23:03:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321407; bh=RiNJz9zlSFXEx8zYJSB1a4ND7aEOOQrZQdR/XEnpxN4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=NR/M3K022ROrNduZk6O1o2BSTvFVMp7IfX6iqH0tQMpzxgB7AmaC/BCSUpAV6m9GC p6UmugQHv/8HA3h353k71Kl+XgXU1fbYIYRwj2XyTvb5RmPOtrXD1QVeTSj5Ly7hp8 nBgr7rTNYMHOUR+ftUboG0E02/3hXX15PCjlYqhRfJnX7DehmwjQRtYQZs0hF/v0SC rbUnw2+Z6jGQe14pv4uaeTBSynacO1Xl2634+FeqrJKnBhQ1CcO82+LnEnyXvtdffZ NtRrFkVRtpfIdIINBjhr/uieSY4vyKMEfTczbiUNRZvBbzJKs7DasrjzVpMPgvHiNC H9Iqr5Comt0gw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Anastasia Belova , Viresh Kumar , Sasha Levin Subject: [PATCH 6.6 132/638] cpufreq: brcmstb-avs-cpufreq: add check for cpufreq_cpu_get's return value Date: Sun, 24 Mar 2024 18:52:49 -0400 Message-ID: <20240324230116.1348576-133-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 35fb3a559ea97..1a1857b0a6f48 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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B8CBC1E6F50; Sun, 24 Mar 2024 23:03: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=1711321409; cv=none; b=ZKIdT3jAZjuNkU2SwHsUZUyiZZF6gW9aizCzMms3L/LaHTFwIuFKwgUTOLw3c9YxFI8dGTFbupgM7m/R6vBY0FUnpUE4kjOK9n7nl+Fs0Z8ML48DjqYydkBTNvmoHAQyfXj5JUOa8cUmrE+jvpOT8qo+kGdtjkRAqpPyahPD8l4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321409; c=relaxed/simple; bh=yo2Z2RP8nH+NEKT0SUBmtftPM/25colUC9zO2Yovi1w=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=i/3I87akRIfE8ki43xK7ZQQrJPhmi8Km0dldwuJwY+ef5OmA+kGF6e/XRZbgs7qOW/DCvQWlup1MtwIhW6JJjJefER25DEjCxqqivMPYar40BROtPHVZQOQe978ZAq+MwerDWI5qvE2i/nwrO6JOYKSw57q4qH2OiDl1MeJJCdc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=mFtKYZm4; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="mFtKYZm4" Received: by smtp.kernel.org (Postfix) with ESMTPSA id CAF7BC43390; Sun, 24 Mar 2024 23:03:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321408; bh=yo2Z2RP8nH+NEKT0SUBmtftPM/25colUC9zO2Yovi1w=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=mFtKYZm4Mb/iIGSo5f/wldRkU31ZmM7bnDBri9Jw+Nsui4owbDfTuGt6H2QX9Fe/o KCKBX4k7yfiHgdxJTgBp8TIWUWpi7KSFnRflEZz/PZI+Q6dynJWipA/NIkZ1frfsOF ALbI+WfxbaRqCRm4Fq2anYofcZy4Mpdl5nit23jtfF0dFxlm1WnFlZSMzjN9vC6b7V jVXeEg0S0uZ9+DLTg6m3swVqki44Np+1lFgel7B261YLVQW67l7XwPHpVtlP21xsCc ZyogS4nqnuLqxFshuf9gh2AxdX4qyqgMNQDsNjyuNkkWg3zetbNk//HVQeWdm+8vbZ 5g0Qcj3U3HJwQ== 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 6.6 133/638] cpufreq: mediatek-hw: Wait for CPU supplies before probing Date: Sun, 24 Mar 2024 18:52:50 -0400 Message-ID: <20240324230116.1348576-134-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-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 Tested-by: Takeshi Ogasawara --- 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 d46afb3c00923..a1aa9385980ae 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 @@ -300,7 +301,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EA1AB1E7DE5; Sun, 24 Mar 2024 23:03: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=1711321411; cv=none; b=Iy1l/KfxncxrQQUpQaVjVuTFqnEDKQj0ETPvpcBw0Xe72KBrA+0hlKxaLDdsA3td/2dVijO11Z0HpFtrH9TWT+YXUyt0jjmndfklCQGYt/wD0lReE/oAIEOXLLZsrIBLtwaH+dQIrmHHkdnHPA3+USzFBhPVcvil2Dd17tSEsTk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321411; c=relaxed/simple; bh=D57pdJksZDNWerhEQsBg1nHrR5mUgawKpu8fiJ1v6ro=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=K/O5spFvT+4JD1UCUkBU6OJ2m8a230KlD5owkv04DLVote2Pmlc0he7H6HG0i3w+l3JB4SUVDQfJ2emWJqEOVDhcT3RbWUHYUhcsUjZD/XsQJOC4D7W/bppVVqP+33LCOCZwef+Xx4UPifJqE1M+GWnwOWSJdDjdOrG22h207CA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=DGBosb5T; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="DGBosb5T" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E1A7AC43394; Sun, 24 Mar 2024 23:03:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321409; bh=D57pdJksZDNWerhEQsBg1nHrR5mUgawKpu8fiJ1v6ro=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=DGBosb5Tg+CImmbs0+6/lYKAev1F+3qhLQWOY3CI49+p8zOzGeV1l+ECoprFQrI1T kP5kfMZeYwfDftUT/iua2v7sd4fYA7EmY5l2Pbn3b/1NBtl5aAy5Q/j5agGIv14YNK yjjDVQbQ3SJ8ND87a6uFCgDFa/C5yddsqmxKFyOGO6THBkR+fLGpdDy9EDm8BrHnn3 hiewSrBQQm5NLYzgAciYssE+AK+EP+HQhWjEasQdsgrQ9orMu7H29IoaAd9+BrtHTR 6Ot7lkvSPCZBpw4ht2XWnvqP58caSROaQ++uBCahLY3H2HwRQY+GQ83pUlGzm54pMI WxycnagEoROZg== 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 6.6 134/638] sock_diag: annotate data-races around sock_diag_handlers[family] Date: Sun, 24 Mar 2024 18:52:51 -0400 Message-ID: <20240324230116.1348576-135-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 b1e29e18d1d60..c53b731f2d672 100644 --- a/net/core/sock_diag.c +++ b/net/core/sock_diag.c @@ -193,7 +193,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; @@ -209,7 +209,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); @@ -227,7 +227,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); @@ -286,12 +286,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2ECAB1E7DEF; Sun, 24 Mar 2024 23:03: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=1711321412; cv=none; b=UDlnoD6Gsa7qkao+jDdcBosjgWbRTdG44L8T9lWsW3JxO9BpqJfcUbugl4VN5g4aSK08f83PLmxOCjJ5KqPvGrdqC0A/jUTkVNwqe2G/mTYJhEj3baLxNCybhs8/kDb72ELZtbAC/Fmvdb1hWVobNOE2XPhHK+bqCm1iRvIUL48= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321412; c=relaxed/simple; bh=j+locyNu/3KvesEXSJJRLSODxG0kaNpjtj13KX0SZx4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=IO94xJ8bB/8oXmRnmwR59DxrS8J4l4X9HAH6xbQr7Ocf2C74NNix93x7BJXay5lv89DIQFrTZS80ygWh7xF266nC6i4RQI8z2jgOVzqw2kKypIQ5gSBCzcUCC6AF2LHAQzku1+GsDTjysL2F4uLONOYLM3gHd7J83r2OStFn4+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=b/ls2nYx; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="b/ls2nYx" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1A08BC43399; Sun, 24 Mar 2024 23:03:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321411; bh=j+locyNu/3KvesEXSJJRLSODxG0kaNpjtj13KX0SZx4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=b/ls2nYxzdZV4A4vn6apwStTi5YSeEjzCc9oBSX6V/JC3mdEMO+7v5TD0F+7KQkFm 7poNSOlTe/lgxxUHvMBWTjBsOtp9SWlvdx3Az9hghz0QeGWhp/xxzQFXsQY1oR0eZ9 CmrzX2jOq04bNroPdnxCt21DkzdgRrvkaxniIzLxfzLuuoz8PKnLMsvZFkGqobH4+6 QfdFlI+aBDoOq6ZIZnbCXrsvvUKfnV84P5pdzlEM13tH36CrnaeXf4gvcenWKBl3JS syIeM4+tHG2GcSGC36x6f1BlxmEBGTPn8WtgLtbtDQ9nypFHRxIH0i43cyzp6xaSH4 9naQ1vAdqVTNA== 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 6.6 135/638] inet_diag: annotate data-races around inet_diag_table[] Date: Sun, 24 Mar 2024 18:52:52 -0400 Message-ID: <20240324230116.1348576-136-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 e13a84433413e..132b10e23758b 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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3D41C1E7DF9; Sun, 24 Mar 2024 23:03: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=1711321413; cv=none; b=YTgBzfJ6TPthUF1dUG+mWAbb8sAq2+70nvR9C+0NJT31WOyxSKWkTsg9AHxWcru/BY2AdolcMkoiS8bxf3zEUDvG7KyPbCCy2Re36b8yD0Lo1p3ZX31zgpCB3NPCuW+W9QIbfRX4C7V5SjnGsn0aoW69ZKMU0fUKRwjBTSpiZJ4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321413; c=relaxed/simple; bh=SBJsl+c47cwJwfj08dBiX+yFg3l4n9qSHc84TASHw6A=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=t9M4/PBh+JsyKneV9psAJA5hjiBIduKKLVrENTm8q3Tkhp+Vk5p5r0wO1TpLs3ONf3Rn/DQUHTStRIkTk0YNhECRbBoMVll/kPoXBgwJdoH8TAG+AFua7PkEbh82vMIY8VMAMNnQLJy/d/rf7xArFbSQ6JW+jUlSNlKkY1+EL+c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ElpfObrK; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ElpfObrK" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 48DBBC433F1; Sun, 24 Mar 2024 23:03:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321412; bh=SBJsl+c47cwJwfj08dBiX+yFg3l4n9qSHc84TASHw6A=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ElpfObrKYOM8DyqI+iyFMbiy4xlneOlJLFPrrfnw3HtRpBFca32bORgy8Tgv2Ulxy aLTp5cQ/tz+HEb5sFxqu82WCsvytzCVBzD624tGsr0tnZdCPdHoLWPCNCPxJs7FXuW edQQBYU1m3+xxCp4i5idpdFivku3+az3kYa/DCHsSFPSmSTe7jrI5kPzMl0x8dzAdc IVz6VafvaxVdqeZUrE7+UMmvCRXgITPogpG0ZF14N32uY2fytulJa9R1YXPs0nr6k5 hISKjxdLINOrp52IMYpHHfA2z3Z/VZiNNRjis5jLwUh7l6awzxDk/suV+WkfsZV/5o sMKhIhuBJO7uA== 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 6.6 136/638] bpftool: Silence build warning about calloc() Date: Sun, 24 Mar 2024 18:52:53 -0400 Message-ID: <20240324230116.1348576-137-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-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 Tested-by: Takeshi Ogasawara --- 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 8443a149dd17f..f186f1cee465b 100644 --- a/tools/bpf/bpftool/prog.c +++ b/tools/bpf/bpftool/prog.c @@ -2294,7 +2294,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 66EEA1E7DFA; Sun, 24 Mar 2024 23:03: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=1711321413; cv=none; b=Mi87vYeqs6JFSWw0oItQb3XcpkzveHIFXXXbH1rl58GWM1Qo43lGNwolJfSgu53n8vkVLQHTOKAOYCeIMcR2HGxqVT+fQjVlYPxqdXv9UVfnHtYCfKoCF3X1R6mcjdwmk6h/Ob/qEX8AkWJLnJ4R+xYj4BMH+t7qY3WwP1Rk+iE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321413; c=relaxed/simple; bh=7Dr+Ll8d67dEAoULtrMbU5o/YUvZsxpqU78n5IU0YrE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=fSvjKIqQkTmnD14p/IJoMKE+xZrzVF9H1TiusfszE6HFoInv/gDrvR8D1Lo31PVDHeLh3LnjApSY7Sa2GTwSpCLU8No3ysy0pxfnzJ2XfwXDRN0nQy3pN3koqnlVmBvOWqCxL9FbZ55PvH4MyX9BKY9Sw0w0HH/T85tgfKM0FvU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=VZ3BkXPi; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="VZ3BkXPi" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 612C1C43399; Sun, 24 Mar 2024 23:03:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321413; bh=7Dr+Ll8d67dEAoULtrMbU5o/YUvZsxpqU78n5IU0YrE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=VZ3BkXPiVBINi0l9xy5yw4jx4bqywDYOFn5KBWh9lvsIy08kpRTWXrYXYBmZd5zre 8zgL1WqgCCaMgFJLR4UAJBnSTLEqsq1vIJbNrQiq72OQ6Zt3i2GOp9ctyMnXzZLhMM PTP6EfCWSkYqX1uk+0Y1EdUHfIqRQjPpcDtS8mEaXBqE1nmQmGEi+H6HTpDf2ATOgg VtwL2/UR01rAzLAvVfmY3xtLPw3cKIYtNlok78gg/mGVWONSb41uCmGpe5CAduN+aD TAJFdaxGzQlxbXT5acvyu3iz0M8Fhzjt0bcCdBFzOzJBzH3oAmkCQukXU6BMH9se6K r+U0iRf7D2X6w== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Artem Savkov , Daniel Borkmann , Yonghong Song , Jiri Olsa , Alexei Starovoitov , Sasha Levin Subject: [PATCH 6.6 137/638] selftests/bpf: Fix potential premature unload in bpf_testmod Date: Sun, 24 Mar 2024 18:52:54 -0400 Message-ID: <20240324230116.1348576-138-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Artem Savkov [ Upstream commit d177c1be06ce28aa8c8710ac55be1b5ad3f314c6 ] It is possible for bpf_kfunc_call_test_release() to be called from bpf_map_free_deferred() when bpf_testmod is already unloaded and perf_test_stuct.cnt which it tries to decrease is no longer in memory. This patch tries to fix the issue by waiting for all references to be dropped in bpf_testmod_exit(). The issue can be triggered by running 'test_progs -t map_kptr' in 6.5, but is obscured in 6.6 by d119357d07435 ("rcu-tasks: Treat only synchronous grace periods urgently"). Fixes: 65eb006d85a2 ("bpf: Move kernel test kfuncs to bpf_testmod") Signed-off-by: Artem Savkov Signed-off-by: Daniel Borkmann Acked-by: Yonghong Song Cc: Jiri Olsa Link: https://lore.kernel.org/bpf/82f55c0e-0ec8-4fe1-8d8c-b1de07558ad9@linu= x.dev Link: https://lore.kernel.org/bpf/20240110085737.8895-1-asavkov@redhat.com Signed-off-by: Alexei Starovoitov Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.c b/tools/= testing/selftests/bpf/bpf_testmod/bpf_testmod.c index cefc5dd72573c..2e8adf059fa3b 100644 --- a/tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.c +++ b/tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.c @@ -2,6 +2,7 @@ /* Copyright (c) 2020 Facebook */ #include #include +#include #include #include #include @@ -541,6 +542,14 @@ static int bpf_testmod_init(void) =20 static void bpf_testmod_exit(void) { + /* Need to wait for all references to be dropped because + * bpf_kfunc_call_test_release() which currently resides in kernel= can + * be called after bpf_testmod is unloaded. Once release function = is + * moved into the module this wait can be removed. + */ + while (refcount_read(&prog_test_struct.cnt) > 1) + msleep(20); + return sysfs_remove_bin_file(kernel_kobj, &bin_attr_bpf_testmod_file); } =20 --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 95C601E7DF7; Sun, 24 Mar 2024 23:03: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=1711321414; cv=none; b=Pn8fEqIOOHLjeiBkTa3y2sdaJRMXsVL3pn2PVuvv5K/iWM8KhgMkcJoDCN0wbRGh0CRtSSUwVCfcCP7VB0wp1g9ypZOwtPLDybn6OkusbVw1nowE//xz0YI/XFSaoHVi2Uh1PXdFKyme6rnU2GwcI+z0HO3T2VvTXCHnw1Yb1MQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321414; c=relaxed/simple; bh=PlfCxDYpw0F+l+BRPeezDpLk0I8AsZhrEJWzjT0IJjg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=rmsiJP5+5b7wSMSMnxsXrqzTASmGESLFR6fG14iPKffbhnEUmRFUTNFPYIIVm9yln4A2OewR4F84AbUN5WzLpRkzzKGDEagNhkUiXc9s18lnZF0uXvYhNyxU48I1QYnmvn801imEw8kY1YVSf6v5jEJFHfvJuNoC+wEnu7f10mI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ePp24iTw; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ePp24iTw" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8D523C433C7; Sun, 24 Mar 2024 23:03:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321414; bh=PlfCxDYpw0F+l+BRPeezDpLk0I8AsZhrEJWzjT0IJjg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ePp24iTwAn1lu2nyxvyqc3NK+NgqNYmGmwtnMeRDINeF7Rkv3M6peqc5lyt8orakd 8uXdaMFIKE2AS5bDybydsHmpvWJ18/vIafxE3tBdMsjP/y71WmpdsyIPPztm1mKOUK dP5ypE/MM2PVv3/bWFvkqX8gfLJt7d57oE9L4jIb/R713GnbWkvb0YNjMftDCdaRpK FUFxDfFD1UuSFeS952pZle5IEMVsrmFCekwyE8/c/cEuN9B+XXcXDyM8vsl39yfO5u W8DEgdvyBxle4k98dwIoln7PuuC3J+DZba1L2oTHosuo1UFNKxA/g+Dbw0N/8MWFn1 I6xJOkywbIpcQ== 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 6.6 138/638] libbpf: Apply map_set_def_max_entries() for inner_maps on creation Date: Sun, 24 Mar 2024 18:52:55 -0400 Message-ID: <20240324230116.1348576-139-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 de08b920a149d..e238e6b824393 100644 --- a/tools/lib/bpf/libbpf.c +++ b/tools/lib/bpf/libbpf.c @@ -70,6 +70,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 const char * const attach_type_name[] =3D { [BPF_CGROUP_INET_INGRESS] =3D "cgroup_inet_ingress", @@ -5121,6 +5122,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C30E21E7E09; Sun, 24 Mar 2024 23:03: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=1711321416; cv=none; b=isqV8TLU0e0/MtKe+3aCmp0fVGdyk+NnO8VuI8jWvGw77SRNmEmsmQynJZGHQL3NZe4dz2hQKBK2P6wJfjYP2W8FzI1d6LNjxmhFU7rbqj2PQg6Fu1ZrFBTPv7sAizxNQbUde//DAI3aVW6tPyEBLj/MT8xd+BiiC25p+4WH2ps= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321416; c=relaxed/simple; bh=WXJELdjmfhpY9E4BbpJkUyyeE92xfAoPZohF6gyjslc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=r3rVUhoFaut3YScF/jeuFSxU6X9+RRP88u06v6uCQGBfzuM9veuiRR/+EDg0tmP3peBsyaDSfCVQmDUS2cx+g6Rtt7FRf8Z3iqTMj78n73Z6s5XpEwh+8tW1g/BSPAer89ywF3mI7cR7VpvnNzVE2CTgBzKYEiX5nq2amHBUXqw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=uOm/jyu8; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="uOm/jyu8" Received: by smtp.kernel.org (Postfix) with ESMTPSA id BA94EC433A6; Sun, 24 Mar 2024 23:03:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321415; bh=WXJELdjmfhpY9E4BbpJkUyyeE92xfAoPZohF6gyjslc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=uOm/jyu8AhQNzXJVnc8T+z8C5TSBIVbPevrc8vdHONVsLjhk8gnR4t4jDYiqcCP1C 4FcTBd+WNRgIY1ao9Pp1V9bQ0i4QHgTkO6TFGpw1EEGyZFaVM5rjv1UANnjr3vRLWE AeQiFF9OToO9Dp9MbO+OZTDrdR+sqQW3WG731LXByvBjnhKe0MDUI4sVwBvebNitwD 64xS6OeeRp7Q9wzyZsZJEqGgYYv6UFCDXE/bqV1n0t12cZg7Ny53Tb8nkzCzoF0R3f X5OId9PiKIhcViAlp9QG1T5TheHleWK2+2a+vDZeBWbML76FY542ImxE9uTUTIEllR MnunQDFvISt3w== 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 6.6 139/638] selftest/bpf: Add map_in_maps with BPF_MAP_TYPE_PERF_EVENT_ARRAY values Date: Sun, 24 Mar 2024 18:52:56 -0400 Message-ID: <20240324230116.1348576-140-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- .../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 f416032ba858b..b295f9b721bf8 100644 --- a/tools/testing/selftests/bpf/progs/test_map_in_map.c +++ b/tools/testing/selftests/bpf/progs/test_map_in_map.c @@ -21,6 +21,32 @@ struct { __type(value, __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 7fc00e423e4dd..e0dd101c9f2bd 100644 --- a/tools/testing/selftests/bpf/test_maps.c +++ b/tools/testing/selftests/bpf/test_maps.c @@ -1190,7 +1190,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BE2881E7E0C; Sun, 24 Mar 2024 23:03: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=1711321417; cv=none; b=QUel5xtutiShfbm438CbvRmaWgk5AgQxNYqzh+DqSCONaaJ8VsUns33DyrbJiR4JhGszptcaaLLWKV8+WF4ujyWy92j3YB6kODPM89ic/G08OioBV0b4KWlANLsC6/vtL9fRcLKbEuMohmiiP3Hkv1qyfbpZBZ0kjDKSujnU/Zk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321417; c=relaxed/simple; bh=ucO1ROlYGDE8bFvsPrY8PYxu+AoZeDX3F6itb2/x/9Y=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=cnsHGHD6aBX5987J21xm8osopeqFzqMkR0fpbnUhHX70Qgnunm3MxViCGrmgWBqaxJliD0VSlP0opt4QDhe15baxfNuYovhOXK8QIrPTOYZzLRi/OvOHUME8jfPOYQq7UeZloG1+grD9+QiXelH529DWJ6Rx6jMmnpG25F/N5k8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=M14VHoxP; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="M14VHoxP" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E5A68C433C7; Sun, 24 Mar 2024 23:03:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321416; bh=ucO1ROlYGDE8bFvsPrY8PYxu+AoZeDX3F6itb2/x/9Y=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=M14VHoxP29QrDRUgPOhXCZicRZsw5d+oPNBbZ7T8nZgAE+Xe3ioKJi3qz6crZ6t64 3Uy9F+sJUnlx7CBDGGKiuqaD2qS6THAmEi2flWx5HS2Hpb+gCCBTkETHu48dBQ+tO8 c2lPB/hj3ROXXtPpUgy9cK5ii1RmUmKrJa3x3CRiHW7dL5VaNsXehph3A68dekZf1s E4dNObfHQrRhk/aPEgk5GVqvQNjLPnslfnGuXhf8/AC3nfp9KhwZkBKISJB73yzSR5 Mh8nm5L9dmq6vXQgHUQJHY/HEeNxFL/BBGSqrwdYfTv/pYgKbNpFP4HEXLWlGCBqJC iwx951Tzew3qw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Sriram R , Jeff Johnson , Kalle Valo , Sasha Levin Subject: [PATCH 6.6 140/638] wifi: ath12k: Fix issues in channel list update Date: Sun, 24 Mar 2024 18:52:57 -0400 Message-ID: <20240324230116.1348576-141-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Sriram R [ Upstream commit 67a48d937fac917947540c9f89630d472cd61fcb ] Currently, the logic used to select the 6 GHz band is incorrect, which may cause 6 GHz supported channels to not be updated properly. This is because the 6 GHz Max frequency supported by the driver is being compared to the Max frequency supported on the board. If in some cases, the 6 GHz Max frequency supported on the board is less than the defined 6 GHz Max frequency, all 6 GHz channels are disabled. To address this, compare the max frequency supported by the board to the defined 6 GHz Minimum frequency by the driver. Similarly, when a dual mac card supports both 6 GHz and 5 GHz radios, if the 5 GHz radio gets enumerated first before 6 GHz, the checks in ath12k_mac_setup_channels_rates() can cause the 5 GHz channels which were enabled earlier to get disabled when the 6 GHz channel list is updated. This is because the Min 6 GHz frequency defined in the driver is 5945 MHz, which should be 5925 MHz since channel 2 is not considered currently, but the firmware can pass 5925 MHz as the minimum. Hence, update the Min frequency supported by the driver to 5925 MHz. In addition, ensure that the channel list update to firmware updates only the channels that the current radio (ar) supports rather than considering the wiphy support. This would be required when multiple pdevs are supported in a wiphy and they support different ranges of frequencies or bands as in single wiphy support. Fixes: d889913205cf ("wifi: ath12k: driver for Qualcomm Wi-Fi 7 devices") Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.0.1-00029-QCAHKSWPL_SILICONZ-1 Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.1.1-00188-QCAHKSWPL_SILICONZ-1 Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SIL= ICONZ-3 Signed-off-by: Sriram R Acked-by: Jeff Johnson Signed-off-by: Kalle Valo Link: https://msgid.link/20240117062628.8260-1-quic_srirrama@quicinc.com Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/net/wireless/ath/ath12k/core.h | 2 +- drivers/net/wireless/ath/ath12k/mac.c | 2 +- drivers/net/wireless/ath/ath12k/reg.c | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/net/wireless/ath/ath12k/core.h b/drivers/net/wireless/= ath/ath12k/core.h index d873b573dac66..c926952c956ef 100644 --- a/drivers/net/wireless/ath/ath12k/core.h +++ b/drivers/net/wireless/ath/ath12k/core.h @@ -400,7 +400,7 @@ struct ath12k_sta { }; =20 #define ATH12K_MIN_5G_FREQ 4150 -#define ATH12K_MIN_6G_FREQ 5945 +#define ATH12K_MIN_6G_FREQ 5925 #define ATH12K_MAX_6G_FREQ 7115 #define ATH12K_NUM_CHANS 100 #define ATH12K_MAX_5G_CHAN 173 diff --git a/drivers/net/wireless/ath/ath12k/mac.c b/drivers/net/wireless/a= th/ath12k/mac.c index 5434883eaf962..6563772b84307 100644 --- a/drivers/net/wireless/ath/ath12k/mac.c +++ b/drivers/net/wireless/ath/ath12k/mac.c @@ -7004,7 +7004,7 @@ static int ath12k_mac_setup_channels_rates(struct ath= 12k *ar, } =20 if (supported_bands & WMI_HOST_WLAN_5G_CAP) { - if (reg_cap->high_5ghz_chan >=3D ATH12K_MAX_6G_FREQ) { + if (reg_cap->high_5ghz_chan >=3D ATH12K_MIN_6G_FREQ) { channels =3D kmemdup(ath12k_6ghz_channels, sizeof(ath12k_6ghz_channels), GFP_KERNEL); if (!channels) { diff --git a/drivers/net/wireless/ath/ath12k/reg.c b/drivers/net/wireless/a= th/ath12k/reg.c index 6ede91ebc8e16..a2645ccae94aa 100644 --- a/drivers/net/wireless/ath/ath12k/reg.c +++ b/drivers/net/wireless/ath/ath12k/reg.c @@ -103,7 +103,7 @@ int ath12k_reg_update_chan_list(struct ath12k *ar) =20 bands =3D hw->wiphy->bands; for (band =3D 0; band < NUM_NL80211_BANDS; band++) { - if (!bands[band]) + if (!(ar->mac.sbands[band].channels && bands[band])) continue; =20 for (i =3D 0; i < bands[band]->n_channels; i++) { @@ -129,7 +129,7 @@ int ath12k_reg_update_chan_list(struct ath12k *ar) ch =3D arg->channel; =20 for (band =3D 0; band < NUM_NL80211_BANDS; band++) { - if (!bands[band]) + if (!(ar->mac.sbands[band].channels && bands[band])) continue; =20 for (i =3D 0; i < bands[band]->n_channels; i++) { --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D3F6B1E7E18; Sun, 24 Mar 2024 23:03: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=1711321418; cv=none; b=pRrzTEF2M29/IpBESJGTneBWJEPY6dicLnryVRY9XqnPtm5dXA6P0q57ty6SYx/rebgPtHGRgwgPkr6ji203ddKCBT7nr4A4IMBFlvEak/xmHMwdXZdaii7QkOaJgeDmBrXJMKH3mVeZWborGyvu1SxK1v0QDwc3TQo4SPsrC0I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321418; c=relaxed/simple; bh=cOneneQTxDJq0wolhyn4GCWoWHESQBbE/3GBVzu4Z+M=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=YBtJLpPXi+nom9ObZy1swTKXp1yS+87H7oBgX/I1lrUQ9JJbEW8C7H7Mkuu2CzJ12neQHMXTXsVZph5HG8PBjvtEQ3dfASkwGYeDUrQD1cvpNPjTX/fMVkLKmwcATPTziIvETRqiXqoE86MGgFO/mIZNamrzJc/soVh0zGK3mi4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=CxRjZWO3; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="CxRjZWO3" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E39E6C43394; Sun, 24 Mar 2024 23:03:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321417; bh=cOneneQTxDJq0wolhyn4GCWoWHESQBbE/3GBVzu4Z+M=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=CxRjZWO3FOCZXNPgYmzEhwjYt6fOx8JKtoCfOhd5UBQIURyZlMrbBZCYREIDNJZDy JApMENJgeqcJxFeUp9Dj3wWl5tYWMpBJ87896KPz0Xqqemrb08KnSDOC1nMI7WN693 IusckId9K3GvbIQsPRM1bb9xaQhjzvMZBe3dCMwy2drVTZxP8sXTZyuZj0jQIXw7jK Xoeevl4uVySvGOba7OZGSto7hwVxZFVU7Z06RDX94O+/GBOm52DiGJKkE9zY0wf8/a 9vTOohjpHCYUMsxRb3IDtne7Dd218/tQaGf9kmkbsnlCLkoauc0jag1ER/KXqGlmoT zz/S3m8JcmSZw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Daniel Borkmann , Stanislav Fomichev , Nikolay Aleksandrov , Martin KaFai Lau , Sasha Levin Subject: [PATCH 6.6 141/638] selftests/bpf: De-veth-ize the tc_redirect test case Date: Sun, 24 Mar 2024 18:52:58 -0400 Message-ID: <20240324230116.1348576-142-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Borkmann [ Upstream commit eee82da79f036bb49ff80d3088b9530e3c2e57eb ] No functional changes to the test case, but just renaming various functions, variables, etc, to remove veth part of their name for making it more generic and reusable later on (e.g. for netkit). Signed-off-by: Daniel Borkmann Acked-by: Stanislav Fomichev Reviewed-by: Nikolay Aleksandrov Link: https://lore.kernel.org/r/20231114004220.6495-8-daniel@iogearbox.net Signed-off-by: Martin KaFai Lau Stable-dep-of: 177f1d083a19 ("selftests/bpf: Fix the flaky tc_redirect_dtim= e test") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- .../selftests/bpf/prog_tests/tc_redirect.c | 263 +++++++++--------- 1 file changed, 137 insertions(+), 126 deletions(-) diff --git a/tools/testing/selftests/bpf/prog_tests/tc_redirect.c b/tools/t= esting/selftests/bpf/prog_tests/tc_redirect.c index 6ee22c3b251ad..407ff4e9bc788 100644 --- a/tools/testing/selftests/bpf/prog_tests/tc_redirect.c +++ b/tools/testing/selftests/bpf/prog_tests/tc_redirect.c @@ -110,11 +110,16 @@ static void netns_setup_namespaces_nofail(const char = *verb) } } =20 +enum dev_mode { + MODE_VETH, +}; + struct netns_setup_result { - int ifindex_veth_src; - int ifindex_veth_src_fwd; - int ifindex_veth_dst; - int ifindex_veth_dst_fwd; + enum dev_mode dev_mode; + int ifindex_src; + int ifindex_src_fwd; + int ifindex_dst; + int ifindex_dst_fwd; }; =20 static int get_ifaddr(const char *name, char *ifaddr) @@ -140,55 +145,59 @@ static int get_ifaddr(const char *name, char *ifaddr) static int netns_setup_links_and_routes(struct netns_setup_result *result) { struct nstoken *nstoken =3D NULL; - char veth_src_fwd_addr[IFADDR_STR_LEN+1] =3D {}; + char src_fwd_addr[IFADDR_STR_LEN+1] =3D {}; =20 - SYS(fail, "ip link add veth_src type veth peer name veth_src_fwd"); - SYS(fail, "ip link add veth_dst type veth peer name veth_dst_fwd"); + if (result->dev_mode =3D=3D MODE_VETH) { + SYS(fail, "ip link add src type veth peer name src_fwd"); + SYS(fail, "ip link add dst type veth peer name dst_fwd"); =20 - SYS(fail, "ip link set veth_dst_fwd address " MAC_DST_FWD); - SYS(fail, "ip link set veth_dst address " MAC_DST); + SYS(fail, "ip link set dst_fwd address " MAC_DST_FWD); + SYS(fail, "ip link set dst address " MAC_DST); + } =20 - if (get_ifaddr("veth_src_fwd", veth_src_fwd_addr)) + if (get_ifaddr("src_fwd", src_fwd_addr)) goto fail; =20 - result->ifindex_veth_src =3D if_nametoindex("veth_src"); - if (!ASSERT_GT(result->ifindex_veth_src, 0, "ifindex_veth_src")) + result->ifindex_src =3D if_nametoindex("src"); + if (!ASSERT_GT(result->ifindex_src, 0, "ifindex_src")) goto fail; =20 - result->ifindex_veth_src_fwd =3D if_nametoindex("veth_src_fwd"); - if (!ASSERT_GT(result->ifindex_veth_src_fwd, 0, "ifindex_veth_src_fwd")) + result->ifindex_src_fwd =3D if_nametoindex("src_fwd"); + if (!ASSERT_GT(result->ifindex_src_fwd, 0, "ifindex_src_fwd")) goto fail; =20 - result->ifindex_veth_dst =3D if_nametoindex("veth_dst"); - if (!ASSERT_GT(result->ifindex_veth_dst, 0, "ifindex_veth_dst")) + result->ifindex_dst =3D if_nametoindex("dst"); + if (!ASSERT_GT(result->ifindex_dst, 0, "ifindex_dst")) goto fail; =20 - result->ifindex_veth_dst_fwd =3D if_nametoindex("veth_dst_fwd"); - if (!ASSERT_GT(result->ifindex_veth_dst_fwd, 0, "ifindex_veth_dst_fwd")) + result->ifindex_dst_fwd =3D if_nametoindex("dst_fwd"); + if (!ASSERT_GT(result->ifindex_dst_fwd, 0, "ifindex_dst_fwd")) goto fail; =20 - SYS(fail, "ip link set veth_src netns " NS_SRC); - SYS(fail, "ip link set veth_src_fwd netns " NS_FWD); - SYS(fail, "ip link set veth_dst_fwd netns " NS_FWD); - SYS(fail, "ip link set veth_dst netns " NS_DST); + SYS(fail, "ip link set src netns " NS_SRC); + SYS(fail, "ip link set src_fwd netns " NS_FWD); + SYS(fail, "ip link set dst_fwd netns " NS_FWD); + SYS(fail, "ip link set dst netns " NS_DST); =20 /** setup in 'src' namespace */ nstoken =3D open_netns(NS_SRC); if (!ASSERT_OK_PTR(nstoken, "setns src")) goto fail; =20 - SYS(fail, "ip addr add " IP4_SRC "/32 dev veth_src"); - SYS(fail, "ip addr add " IP6_SRC "/128 dev veth_src nodad"); - SYS(fail, "ip link set dev veth_src up"); + SYS(fail, "ip addr add " IP4_SRC "/32 dev src"); + SYS(fail, "ip addr add " IP6_SRC "/128 dev src nodad"); + SYS(fail, "ip link set dev src up"); =20 - SYS(fail, "ip route add " IP4_DST "/32 dev veth_src scope global"); - SYS(fail, "ip route add " IP4_NET "/16 dev veth_src scope global"); - SYS(fail, "ip route add " IP6_DST "/128 dev veth_src scope global"); + SYS(fail, "ip route add " IP4_DST "/32 dev src scope global"); + SYS(fail, "ip route add " IP4_NET "/16 dev src scope global"); + SYS(fail, "ip route add " IP6_DST "/128 dev src scope global"); =20 - SYS(fail, "ip neigh add " IP4_DST " dev veth_src lladdr %s", - veth_src_fwd_addr); - SYS(fail, "ip neigh add " IP6_DST " dev veth_src lladdr %s", - veth_src_fwd_addr); + if (result->dev_mode =3D=3D MODE_VETH) { + SYS(fail, "ip neigh add " IP4_DST " dev src lladdr %s", + src_fwd_addr); + SYS(fail, "ip neigh add " IP6_DST " dev src lladdr %s", + src_fwd_addr); + } =20 close_netns(nstoken); =20 @@ -201,15 +210,15 @@ static int netns_setup_links_and_routes(struct netns_= setup_result *result) * needs v4 one in order to start ARP probing. IP4_NET route is added * to the endpoints so that the ARP processing will reply. */ - SYS(fail, "ip addr add " IP4_SLL "/32 dev veth_src_fwd"); - SYS(fail, "ip addr add " IP4_DLL "/32 dev veth_dst_fwd"); - SYS(fail, "ip link set dev veth_src_fwd up"); - SYS(fail, "ip link set dev veth_dst_fwd up"); + SYS(fail, "ip addr add " IP4_SLL "/32 dev src_fwd"); + SYS(fail, "ip addr add " IP4_DLL "/32 dev dst_fwd"); + SYS(fail, "ip link set dev src_fwd up"); + SYS(fail, "ip link set dev dst_fwd up"); =20 - SYS(fail, "ip route add " IP4_SRC "/32 dev veth_src_fwd scope global"); - SYS(fail, "ip route add " IP6_SRC "/128 dev veth_src_fwd scope global"); - SYS(fail, "ip route add " IP4_DST "/32 dev veth_dst_fwd scope global"); - SYS(fail, "ip route add " IP6_DST "/128 dev veth_dst_fwd scope global"); + SYS(fail, "ip route add " IP4_SRC "/32 dev src_fwd scope global"); + SYS(fail, "ip route add " IP6_SRC "/128 dev src_fwd scope global"); + SYS(fail, "ip route add " IP4_DST "/32 dev dst_fwd scope global"); + SYS(fail, "ip route add " IP6_DST "/128 dev dst_fwd scope global"); =20 close_netns(nstoken); =20 @@ -218,16 +227,18 @@ static int netns_setup_links_and_routes(struct netns_= setup_result *result) if (!ASSERT_OK_PTR(nstoken, "setns dst")) goto fail; =20 - SYS(fail, "ip addr add " IP4_DST "/32 dev veth_dst"); - SYS(fail, "ip addr add " IP6_DST "/128 dev veth_dst nodad"); - SYS(fail, "ip link set dev veth_dst up"); + SYS(fail, "ip addr add " IP4_DST "/32 dev dst"); + SYS(fail, "ip addr add " IP6_DST "/128 dev dst nodad"); + SYS(fail, "ip link set dev dst up"); =20 - SYS(fail, "ip route add " IP4_SRC "/32 dev veth_dst scope global"); - SYS(fail, "ip route add " IP4_NET "/16 dev veth_dst scope global"); - SYS(fail, "ip route add " IP6_SRC "/128 dev veth_dst scope global"); + SYS(fail, "ip route add " IP4_SRC "/32 dev dst scope global"); + SYS(fail, "ip route add " IP4_NET "/16 dev dst scope global"); + SYS(fail, "ip route add " IP6_SRC "/128 dev dst scope global"); =20 - SYS(fail, "ip neigh add " IP4_SRC " dev veth_dst lladdr " MAC_DST_FWD); - SYS(fail, "ip neigh add " IP6_SRC " dev veth_dst lladdr " MAC_DST_FWD); + if (result->dev_mode =3D=3D MODE_VETH) { + SYS(fail, "ip neigh add " IP4_SRC " dev dst lladdr " MAC_DST_FWD); + SYS(fail, "ip neigh add " IP6_SRC " dev dst lladdr " MAC_DST_FWD); + } =20 close_netns(nstoken); =20 @@ -293,23 +304,23 @@ static int netns_load_bpf(const struct bpf_program *s= rc_prog, const struct bpf_program *chk_prog, const struct netns_setup_result *setup_result) { - LIBBPF_OPTS(bpf_tc_hook, qdisc_veth_src_fwd); - LIBBPF_OPTS(bpf_tc_hook, qdisc_veth_dst_fwd); + LIBBPF_OPTS(bpf_tc_hook, qdisc_src_fwd); + LIBBPF_OPTS(bpf_tc_hook, qdisc_dst_fwd); int err; =20 - /* tc qdisc add dev veth_src_fwd clsact */ - QDISC_CLSACT_CREATE(&qdisc_veth_src_fwd, setup_result->ifindex_veth_src_f= wd); - /* tc filter add dev veth_src_fwd ingress bpf da src_prog */ - XGRESS_FILTER_ADD(&qdisc_veth_src_fwd, BPF_TC_INGRESS, src_prog, 0); - /* tc filter add dev veth_src_fwd egress bpf da chk_prog */ - XGRESS_FILTER_ADD(&qdisc_veth_src_fwd, BPF_TC_EGRESS, chk_prog, 0); + /* tc qdisc add dev src_fwd clsact */ + QDISC_CLSACT_CREATE(&qdisc_src_fwd, setup_result->ifindex_src_fwd); + /* tc filter add dev src_fwd ingress bpf da src_prog */ + XGRESS_FILTER_ADD(&qdisc_src_fwd, BPF_TC_INGRESS, src_prog, 0); + /* tc filter add dev src_fwd egress bpf da chk_prog */ + XGRESS_FILTER_ADD(&qdisc_src_fwd, BPF_TC_EGRESS, chk_prog, 0); =20 - /* tc qdisc add dev veth_dst_fwd clsact */ - QDISC_CLSACT_CREATE(&qdisc_veth_dst_fwd, setup_result->ifindex_veth_dst_f= wd); - /* tc filter add dev veth_dst_fwd ingress bpf da dst_prog */ - XGRESS_FILTER_ADD(&qdisc_veth_dst_fwd, BPF_TC_INGRESS, dst_prog, 0); - /* tc filter add dev veth_dst_fwd egress bpf da chk_prog */ - XGRESS_FILTER_ADD(&qdisc_veth_dst_fwd, BPF_TC_EGRESS, chk_prog, 0); + /* tc qdisc add dev dst_fwd clsact */ + QDISC_CLSACT_CREATE(&qdisc_dst_fwd, setup_result->ifindex_dst_fwd); + /* tc filter add dev dst_fwd ingress bpf da dst_prog */ + XGRESS_FILTER_ADD(&qdisc_dst_fwd, BPF_TC_INGRESS, dst_prog, 0); + /* tc filter add dev dst_fwd egress bpf da chk_prog */ + XGRESS_FILTER_ADD(&qdisc_dst_fwd, BPF_TC_EGRESS, chk_prog, 0); =20 return 0; fail: @@ -539,10 +550,10 @@ static void test_inet_dtime(int family, int type, con= st char *addr, __u16 port) static int netns_load_dtime_bpf(struct test_tc_dtime *skel, const struct netns_setup_result *setup_result) { - LIBBPF_OPTS(bpf_tc_hook, qdisc_veth_src_fwd); - LIBBPF_OPTS(bpf_tc_hook, qdisc_veth_dst_fwd); - LIBBPF_OPTS(bpf_tc_hook, qdisc_veth_src); - LIBBPF_OPTS(bpf_tc_hook, qdisc_veth_dst); + LIBBPF_OPTS(bpf_tc_hook, qdisc_src_fwd); + LIBBPF_OPTS(bpf_tc_hook, qdisc_dst_fwd); + LIBBPF_OPTS(bpf_tc_hook, qdisc_src); + LIBBPF_OPTS(bpf_tc_hook, qdisc_dst); struct nstoken *nstoken; int err; =20 @@ -550,58 +561,58 @@ static int netns_load_dtime_bpf(struct test_tc_dtime = *skel, nstoken =3D open_netns(NS_SRC); if (!ASSERT_OK_PTR(nstoken, "setns " NS_SRC)) return -1; - /* tc qdisc add dev veth_src clsact */ - QDISC_CLSACT_CREATE(&qdisc_veth_src, setup_result->ifindex_veth_src); - /* tc filter add dev veth_src ingress bpf da ingress_host */ - XGRESS_FILTER_ADD(&qdisc_veth_src, BPF_TC_INGRESS, skel->progs.ingress_ho= st, 0); - /* tc filter add dev veth_src egress bpf da egress_host */ - XGRESS_FILTER_ADD(&qdisc_veth_src, BPF_TC_EGRESS, skel->progs.egress_host= , 0); + /* tc qdisc add dev src clsact */ + QDISC_CLSACT_CREATE(&qdisc_src, setup_result->ifindex_src); + /* tc filter add dev src ingress bpf da ingress_host */ + XGRESS_FILTER_ADD(&qdisc_src, BPF_TC_INGRESS, skel->progs.ingress_host, 0= ); + /* tc filter add dev src egress bpf da egress_host */ + XGRESS_FILTER_ADD(&qdisc_src, BPF_TC_EGRESS, skel->progs.egress_host, 0); close_netns(nstoken); =20 /* setup ns_dst tc progs */ nstoken =3D open_netns(NS_DST); if (!ASSERT_OK_PTR(nstoken, "setns " NS_DST)) return -1; - /* tc qdisc add dev veth_dst clsact */ - QDISC_CLSACT_CREATE(&qdisc_veth_dst, setup_result->ifindex_veth_dst); - /* tc filter add dev veth_dst ingress bpf da ingress_host */ - XGRESS_FILTER_ADD(&qdisc_veth_dst, BPF_TC_INGRESS, skel->progs.ingress_ho= st, 0); - /* tc filter add dev veth_dst egress bpf da egress_host */ - XGRESS_FILTER_ADD(&qdisc_veth_dst, BPF_TC_EGRESS, skel->progs.egress_host= , 0); + /* tc qdisc add dev dst clsact */ + QDISC_CLSACT_CREATE(&qdisc_dst, setup_result->ifindex_dst); + /* tc filter add dev dst ingress bpf da ingress_host */ + XGRESS_FILTER_ADD(&qdisc_dst, BPF_TC_INGRESS, skel->progs.ingress_host, 0= ); + /* tc filter add dev dst egress bpf da egress_host */ + XGRESS_FILTER_ADD(&qdisc_dst, BPF_TC_EGRESS, skel->progs.egress_host, 0); close_netns(nstoken); =20 /* setup ns_fwd tc progs */ nstoken =3D open_netns(NS_FWD); if (!ASSERT_OK_PTR(nstoken, "setns " NS_FWD)) return -1; - /* tc qdisc add dev veth_dst_fwd clsact */ - QDISC_CLSACT_CREATE(&qdisc_veth_dst_fwd, setup_result->ifindex_veth_dst_f= wd); - /* tc filter add dev veth_dst_fwd ingress prio 100 bpf da ingress_fwdns_p= rio100 */ - XGRESS_FILTER_ADD(&qdisc_veth_dst_fwd, BPF_TC_INGRESS, + /* tc qdisc add dev dst_fwd clsact */ + QDISC_CLSACT_CREATE(&qdisc_dst_fwd, setup_result->ifindex_dst_fwd); + /* tc filter add dev dst_fwd ingress prio 100 bpf da ingress_fwdns_prio10= 0 */ + XGRESS_FILTER_ADD(&qdisc_dst_fwd, BPF_TC_INGRESS, skel->progs.ingress_fwdns_prio100, 100); - /* tc filter add dev veth_dst_fwd ingress prio 101 bpf da ingress_fwdns_p= rio101 */ - XGRESS_FILTER_ADD(&qdisc_veth_dst_fwd, BPF_TC_INGRESS, + /* tc filter add dev dst_fwd ingress prio 101 bpf da ingress_fwdns_prio10= 1 */ + XGRESS_FILTER_ADD(&qdisc_dst_fwd, BPF_TC_INGRESS, skel->progs.ingress_fwdns_prio101, 101); - /* tc filter add dev veth_dst_fwd egress prio 100 bpf da egress_fwdns_pri= o100 */ - XGRESS_FILTER_ADD(&qdisc_veth_dst_fwd, BPF_TC_EGRESS, + /* tc filter add dev dst_fwd egress prio 100 bpf da egress_fwdns_prio100 = */ + XGRESS_FILTER_ADD(&qdisc_dst_fwd, BPF_TC_EGRESS, skel->progs.egress_fwdns_prio100, 100); - /* tc filter add dev veth_dst_fwd egress prio 101 bpf da egress_fwdns_pri= o101 */ - XGRESS_FILTER_ADD(&qdisc_veth_dst_fwd, BPF_TC_EGRESS, + /* tc filter add dev dst_fwd egress prio 101 bpf da egress_fwdns_prio101 = */ + XGRESS_FILTER_ADD(&qdisc_dst_fwd, BPF_TC_EGRESS, skel->progs.egress_fwdns_prio101, 101); =20 - /* tc qdisc add dev veth_src_fwd clsact */ - QDISC_CLSACT_CREATE(&qdisc_veth_src_fwd, setup_result->ifindex_veth_src_f= wd); - /* tc filter add dev veth_src_fwd ingress prio 100 bpf da ingress_fwdns_p= rio100 */ - XGRESS_FILTER_ADD(&qdisc_veth_src_fwd, BPF_TC_INGRESS, + /* tc qdisc add dev src_fwd clsact */ + QDISC_CLSACT_CREATE(&qdisc_src_fwd, setup_result->ifindex_src_fwd); + /* tc filter add dev src_fwd ingress prio 100 bpf da ingress_fwdns_prio10= 0 */ + XGRESS_FILTER_ADD(&qdisc_src_fwd, BPF_TC_INGRESS, skel->progs.ingress_fwdns_prio100, 100); - /* tc filter add dev veth_src_fwd ingress prio 101 bpf da ingress_fwdns_p= rio101 */ - XGRESS_FILTER_ADD(&qdisc_veth_src_fwd, BPF_TC_INGRESS, + /* tc filter add dev src_fwd ingress prio 101 bpf da ingress_fwdns_prio10= 1 */ + XGRESS_FILTER_ADD(&qdisc_src_fwd, BPF_TC_INGRESS, skel->progs.ingress_fwdns_prio101, 101); - /* tc filter add dev veth_src_fwd egress prio 100 bpf da egress_fwdns_pri= o100 */ - XGRESS_FILTER_ADD(&qdisc_veth_src_fwd, BPF_TC_EGRESS, + /* tc filter add dev src_fwd egress prio 100 bpf da egress_fwdns_prio100 = */ + XGRESS_FILTER_ADD(&qdisc_src_fwd, BPF_TC_EGRESS, skel->progs.egress_fwdns_prio100, 100); - /* tc filter add dev veth_src_fwd egress prio 101 bpf da egress_fwdns_pri= o101 */ - XGRESS_FILTER_ADD(&qdisc_veth_src_fwd, BPF_TC_EGRESS, + /* tc filter add dev src_fwd egress prio 101 bpf da egress_fwdns_prio101 = */ + XGRESS_FILTER_ADD(&qdisc_src_fwd, BPF_TC_EGRESS, skel->progs.egress_fwdns_prio101, 101); close_netns(nstoken); return 0; @@ -777,8 +788,8 @@ static void test_tc_redirect_dtime(struct netns_setup_r= esult *setup_result) if (!ASSERT_OK_PTR(skel, "test_tc_dtime__open")) return; =20 - skel->rodata->IFINDEX_SRC =3D setup_result->ifindex_veth_src_fwd; - skel->rodata->IFINDEX_DST =3D setup_result->ifindex_veth_dst_fwd; + skel->rodata->IFINDEX_SRC =3D setup_result->ifindex_src_fwd; + skel->rodata->IFINDEX_DST =3D setup_result->ifindex_dst_fwd; =20 err =3D test_tc_dtime__load(skel); if (!ASSERT_OK(err, "test_tc_dtime__load")) @@ -868,8 +879,8 @@ static void test_tc_redirect_neigh(struct netns_setup_r= esult *setup_result) if (!ASSERT_OK_PTR(skel, "test_tc_neigh__open")) goto done; =20 - skel->rodata->IFINDEX_SRC =3D setup_result->ifindex_veth_src_fwd; - skel->rodata->IFINDEX_DST =3D setup_result->ifindex_veth_dst_fwd; + skel->rodata->IFINDEX_SRC =3D setup_result->ifindex_src_fwd; + skel->rodata->IFINDEX_DST =3D setup_result->ifindex_dst_fwd; =20 err =3D test_tc_neigh__load(skel); if (!ASSERT_OK(err, "test_tc_neigh__load")) @@ -904,8 +915,8 @@ static void test_tc_redirect_peer(struct netns_setup_re= sult *setup_result) if (!ASSERT_OK_PTR(skel, "test_tc_peer__open")) goto done; =20 - skel->rodata->IFINDEX_SRC =3D setup_result->ifindex_veth_src_fwd; - skel->rodata->IFINDEX_DST =3D setup_result->ifindex_veth_dst_fwd; + skel->rodata->IFINDEX_SRC =3D setup_result->ifindex_src_fwd; + skel->rodata->IFINDEX_DST =3D setup_result->ifindex_dst_fwd; =20 err =3D test_tc_peer__load(skel); if (!ASSERT_OK(err, "test_tc_peer__load")) @@ -996,7 +1007,7 @@ static int tun_relay_loop(int src_fd, int target_fd) static void test_tc_redirect_peer_l3(struct netns_setup_result *setup_resu= lt) { LIBBPF_OPTS(bpf_tc_hook, qdisc_tun_fwd); - LIBBPF_OPTS(bpf_tc_hook, qdisc_veth_dst_fwd); + LIBBPF_OPTS(bpf_tc_hook, qdisc_dst_fwd); struct test_tc_peer *skel =3D NULL; struct nstoken *nstoken =3D NULL; int err; @@ -1045,7 +1056,7 @@ static void test_tc_redirect_peer_l3(struct netns_set= up_result *setup_result) goto fail; =20 skel->rodata->IFINDEX_SRC =3D ifindex; - skel->rodata->IFINDEX_DST =3D setup_result->ifindex_veth_dst_fwd; + skel->rodata->IFINDEX_DST =3D setup_result->ifindex_dst_fwd; =20 err =3D test_tc_peer__load(skel); if (!ASSERT_OK(err, "test_tc_peer__load")) @@ -1053,19 +1064,19 @@ static void test_tc_redirect_peer_l3(struct netns_s= etup_result *setup_result) =20 /* Load "tc_src_l3" to the tun_fwd interface to redirect packets * towards dst, and "tc_dst" to redirect packets - * and "tc_chk" on veth_dst_fwd to drop non-redirected packets. + * and "tc_chk" on dst_fwd to drop non-redirected packets. */ /* tc qdisc add dev tun_fwd clsact */ QDISC_CLSACT_CREATE(&qdisc_tun_fwd, ifindex); /* tc filter add dev tun_fwd ingress bpf da tc_src_l3 */ XGRESS_FILTER_ADD(&qdisc_tun_fwd, BPF_TC_INGRESS, skel->progs.tc_src_l3, = 0); =20 - /* tc qdisc add dev veth_dst_fwd clsact */ - QDISC_CLSACT_CREATE(&qdisc_veth_dst_fwd, setup_result->ifindex_veth_dst_f= wd); - /* tc filter add dev veth_dst_fwd ingress bpf da tc_dst_l3 */ - XGRESS_FILTER_ADD(&qdisc_veth_dst_fwd, BPF_TC_INGRESS, skel->progs.tc_dst= _l3, 0); - /* tc filter add dev veth_dst_fwd egress bpf da tc_chk */ - XGRESS_FILTER_ADD(&qdisc_veth_dst_fwd, BPF_TC_EGRESS, skel->progs.tc_chk,= 0); + /* tc qdisc add dev dst_fwd clsact */ + QDISC_CLSACT_CREATE(&qdisc_dst_fwd, setup_result->ifindex_dst_fwd); + /* tc filter add dev dst_fwd ingress bpf da tc_dst_l3 */ + XGRESS_FILTER_ADD(&qdisc_dst_fwd, BPF_TC_INGRESS, skel->progs.tc_dst_l3, = 0); + /* tc filter add dev dst_fwd egress bpf da tc_chk */ + XGRESS_FILTER_ADD(&qdisc_dst_fwd, BPF_TC_EGRESS, skel->progs.tc_chk, 0); =20 /* Setup route and neigh tables */ SYS(fail, "ip -netns " NS_SRC " addr add dev tun_src " IP4_TUN_SRC "/24"); @@ -1074,17 +1085,17 @@ static void test_tc_redirect_peer_l3(struct netns_s= etup_result *setup_result) SYS(fail, "ip -netns " NS_SRC " addr add dev tun_src " IP6_TUN_SRC "/64 n= odad"); SYS(fail, "ip -netns " NS_FWD " addr add dev tun_fwd " IP6_TUN_FWD "/64 n= odad"); =20 - SYS(fail, "ip -netns " NS_SRC " route del " IP4_DST "/32 dev veth_src sco= pe global"); + SYS(fail, "ip -netns " NS_SRC " route del " IP4_DST "/32 dev src scope gl= obal"); SYS(fail, "ip -netns " NS_SRC " route add " IP4_DST "/32 via " IP4_TUN_FWD " dev tun_src scope global"); - SYS(fail, "ip -netns " NS_DST " route add " IP4_TUN_SRC "/32 dev veth_dst= scope global"); - SYS(fail, "ip -netns " NS_SRC " route del " IP6_DST "/128 dev veth_src sc= ope global"); + SYS(fail, "ip -netns " NS_DST " route add " IP4_TUN_SRC "/32 dev dst scop= e global"); + SYS(fail, "ip -netns " NS_SRC " route del " IP6_DST "/128 dev src scope g= lobal"); SYS(fail, "ip -netns " NS_SRC " route add " IP6_DST "/128 via " IP6_TUN_F= WD " dev tun_src scope global"); - SYS(fail, "ip -netns " NS_DST " route add " IP6_TUN_SRC "/128 dev veth_ds= t scope global"); + SYS(fail, "ip -netns " NS_DST " route add " IP6_TUN_SRC "/128 dev dst sco= pe global"); =20 - SYS(fail, "ip -netns " NS_DST " neigh add " IP4_TUN_SRC " dev veth_dst ll= addr " MAC_DST_FWD); - SYS(fail, "ip -netns " NS_DST " neigh add " IP6_TUN_SRC " dev veth_dst ll= addr " MAC_DST_FWD); + SYS(fail, "ip -netns " NS_DST " neigh add " IP4_TUN_SRC " dev dst lladdr = " MAC_DST_FWD); + SYS(fail, "ip -netns " NS_DST " neigh add " IP6_TUN_SRC " dev dst lladdr = " MAC_DST_FWD); =20 if (!ASSERT_OK(set_forwarding(false), "disable forwarding")) goto fail; @@ -1106,9 +1117,9 @@ static void test_tc_redirect_peer_l3(struct netns_set= up_result *setup_result) close_netns(nstoken); } =20 -#define RUN_TEST(name) = \ +#define RUN_TEST(name, mode) = \ ({ = \ - struct netns_setup_result setup_result; = \ + struct netns_setup_result setup_result =3D { .dev_mode =3D mode, }; = \ if (test__start_subtest(#name)) = \ if (ASSERT_OK(netns_setup_namespaces("add"), "setup namespaces")) { \ if (ASSERT_OK(netns_setup_links_and_routes(&setup_result), \ @@ -1122,11 +1133,11 @@ static void *test_tc_redirect_run_tests(void *arg) { netns_setup_namespaces_nofail("delete"); =20 - RUN_TEST(tc_redirect_peer); - RUN_TEST(tc_redirect_peer_l3); - RUN_TEST(tc_redirect_neigh); - RUN_TEST(tc_redirect_neigh_fib); - RUN_TEST(tc_redirect_dtime); + RUN_TEST(tc_redirect_peer, MODE_VETH); + RUN_TEST(tc_redirect_peer_l3, MODE_VETH); + RUN_TEST(tc_redirect_neigh, MODE_VETH); + RUN_TEST(tc_redirect_neigh_fib, MODE_VETH); + RUN_TEST(tc_redirect_dtime, MODE_VETH); return NULL; } =20 --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EC108131E20; Sun, 24 Mar 2024 23:03: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=1711321420; cv=none; b=e8Xd5I2F2JQSjDeD1iB6rcGFGELuzIgdesq3TPL/SMFJfGO2EfCeMtY1Z8YJfkM4JrYDfUvN4TDfoqnArzTU/yI5Ah1bYJlkDyZRbdKVbJcAKgPK5LbuyTv+xnZQwIKBVx3qauHPCjCO1PfNgXGkhiNTf0VwMha4BW96F2VoHRU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321420; c=relaxed/simple; bh=0VAmgdQ1t/uj+NHVK29vS+oFQU05fhWw7epz4GYuTD8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=uZ7Mw5s0mKkW4GwaOLNOCxLn1BqiYX/99WorhD7vHB7WA4+24Ej/bR3C6+sbuZjXU1K4occklGYUgFKQJz6jN27BNC3I42ttujcYs7fyv1j59iBrX+LOVjvtqG3rtTxw/JWohsx+V6EmoRJuPwvdbV0B6WIe7BgwfxTEhUAqvLE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ssppzhsP; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ssppzhsP" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 05F44C433F1; Sun, 24 Mar 2024 23:03:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321418; bh=0VAmgdQ1t/uj+NHVK29vS+oFQU05fhWw7epz4GYuTD8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ssppzhsPLEVctpmNVwbNP6qpoHSoCV/mWh7TFOY2JBMdxDEcQpJc658d4R3DrWjtz yszeLEn4c7kfEBofuviskJJvCBuWLeLEcTJ1ydIpF/xKBGa0OqLSA1iXSCR+ElqK4C BPFpAHPVEWj6iF3jz/x1KXBu0v0m59BGDMtpnegkGh7nN8Np7MT/vvFCdfgfvWtHSx YR+2oRoiV4Uxsnh9G2v/SvAuMj4KwAYW64RFIl36LYonz1ZSKJ2QQukLRc85Eg4Mec yVi06jIItzWQCXtTK39BZQN7IeWw1qMdXwWpwd1xCEr+98lZDK1DW7aplN6KLR4G6q tyt9R5uYYO/CQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Daniel Borkmann , Stanislav Fomichev , Nikolay Aleksandrov , Martin KaFai Lau , Sasha Levin Subject: [PATCH 6.6 142/638] selftests/bpf: Add netkit to tc_redirect selftest Date: Sun, 24 Mar 2024 18:52:59 -0400 Message-ID: <20240324230116.1348576-143-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Borkmann [ Upstream commit adfeae2d243d9e5b83d094af481d189156b11779 ] Extend the existing tc_redirect selftest to also cover netkit devices for exercising the bpf_redirect_peer() code paths, so that we have both veth as well as netkit covered, all tests still pass after this change. Signed-off-by: Daniel Borkmann Acked-by: Stanislav Fomichev Reviewed-by: Nikolay Aleksandrov Link: https://lore.kernel.org/r/20231114004220.6495-9-daniel@iogearbox.net Signed-off-by: Martin KaFai Lau Stable-dep-of: 177f1d083a19 ("selftests/bpf: Fix the flaky tc_redirect_dtim= e test") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- .../selftests/bpf/prog_tests/tc_redirect.c | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/tools/testing/selftests/bpf/prog_tests/tc_redirect.c b/tools/t= esting/selftests/bpf/prog_tests/tc_redirect.c index 407ff4e9bc788..518f143c5b0fe 100644 --- a/tools/testing/selftests/bpf/prog_tests/tc_redirect.c +++ b/tools/testing/selftests/bpf/prog_tests/tc_redirect.c @@ -24,6 +24,7 @@ =20 #include "test_progs.h" #include "network_helpers.h" +#include "netlink_helpers.h" #include "test_tc_neigh_fib.skel.h" #include "test_tc_neigh.skel.h" #include "test_tc_peer.skel.h" @@ -112,6 +113,7 @@ static void netns_setup_namespaces_nofail(const char *v= erb) =20 enum dev_mode { MODE_VETH, + MODE_NETKIT, }; =20 struct netns_setup_result { @@ -142,10 +144,51 @@ static int get_ifaddr(const char *name, char *ifaddr) return 0; } =20 +static int create_netkit(int mode, char *prim, char *peer) +{ + struct rtattr *linkinfo, *data, *peer_info; + struct rtnl_handle rth =3D { .fd =3D -1 }; + const char *type =3D "netkit"; + struct { + struct nlmsghdr n; + struct ifinfomsg i; + char buf[1024]; + } req =3D {}; + int err; + + err =3D rtnl_open(&rth, 0); + if (!ASSERT_OK(err, "open_rtnetlink")) + return err; + + memset(&req, 0, sizeof(req)); + req.n.nlmsg_len =3D NLMSG_LENGTH(sizeof(struct ifinfomsg)); + req.n.nlmsg_flags =3D NLM_F_REQUEST | NLM_F_CREATE | NLM_F_EXCL; + req.n.nlmsg_type =3D RTM_NEWLINK; + req.i.ifi_family =3D AF_UNSPEC; + + addattr_l(&req.n, sizeof(req), IFLA_IFNAME, prim, strlen(prim)); + linkinfo =3D addattr_nest(&req.n, sizeof(req), IFLA_LINKINFO); + addattr_l(&req.n, sizeof(req), IFLA_INFO_KIND, type, strlen(type)); + data =3D addattr_nest(&req.n, sizeof(req), IFLA_INFO_DATA); + addattr32(&req.n, sizeof(req), IFLA_NETKIT_MODE, mode); + peer_info =3D addattr_nest(&req.n, sizeof(req), IFLA_NETKIT_PEER_INFO); + req.n.nlmsg_len +=3D sizeof(struct ifinfomsg); + addattr_l(&req.n, sizeof(req), IFLA_IFNAME, peer, strlen(peer)); + addattr_nest_end(&req.n, peer_info); + addattr_nest_end(&req.n, data); + addattr_nest_end(&req.n, linkinfo); + + err =3D rtnl_talk(&rth, &req.n, NULL); + ASSERT_OK(err, "talk_rtnetlink"); + rtnl_close(&rth); + return err; +} + static int netns_setup_links_and_routes(struct netns_setup_result *result) { struct nstoken *nstoken =3D NULL; char src_fwd_addr[IFADDR_STR_LEN+1] =3D {}; + int err; =20 if (result->dev_mode =3D=3D MODE_VETH) { SYS(fail, "ip link add src type veth peer name src_fwd"); @@ -153,6 +196,13 @@ static int netns_setup_links_and_routes(struct netns_s= etup_result *result) =20 SYS(fail, "ip link set dst_fwd address " MAC_DST_FWD); SYS(fail, "ip link set dst address " MAC_DST); + } else if (result->dev_mode =3D=3D MODE_NETKIT) { + err =3D create_netkit(NETKIT_L3, "src", "src_fwd"); + if (!ASSERT_OK(err, "create_ifindex_src")) + goto fail; + err =3D create_netkit(NETKIT_L3, "dst", "dst_fwd"); + if (!ASSERT_OK(err, "create_ifindex_dst")) + goto fail; } =20 if (get_ifaddr("src_fwd", src_fwd_addr)) @@ -1134,7 +1184,9 @@ static void *test_tc_redirect_run_tests(void *arg) netns_setup_namespaces_nofail("delete"); =20 RUN_TEST(tc_redirect_peer, MODE_VETH); + RUN_TEST(tc_redirect_peer, MODE_NETKIT); RUN_TEST(tc_redirect_peer_l3, MODE_VETH); + RUN_TEST(tc_redirect_peer_l3, MODE_NETKIT); RUN_TEST(tc_redirect_neigh, MODE_VETH); RUN_TEST(tc_redirect_neigh_fib, MODE_VETH); RUN_TEST(tc_redirect_dtime, MODE_VETH); --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D22F9131E28; Sun, 24 Mar 2024 23:03: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=1711321420; cv=none; b=sbHQnYwVcbllIGyAnXgC4bBG9gBS15VaqCfRCCTzehx160lbPcV+PgIbOw6E5K80D0dJ7Dq1ICdsvGDIgO/nSk13yk9FluEK4+bnMD9brFxBSTNjzsiDbimQr0Nyhf1DYH2zPWeCkPkNAOARg0f6ri0Juz1Wlv3xuEB1RHW0W1o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321420; c=relaxed/simple; bh=qFpUQqMP2OvlrWkLC22tIXBrzZPa6exUEWIiFlsA8jY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=V7iHynjEKqPR9Jg700SFtitRG+RGSQE+TKOt0dwmb8Hg22qp4LaGRg25X44yLXNSKBQgkhZCm4RKZ90uV78vORfm17VGmnIGj2F2v9iGenfzXECNXZ6YBfJ+xdWSALvHO3yuny5tv3zjbJNLRDwKCdnC1LzhI+kM32MaIxPkHis= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=gFy7tXH6; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="gFy7tXH6" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1B24BC43390; Sun, 24 Mar 2024 23:03:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321419; bh=qFpUQqMP2OvlrWkLC22tIXBrzZPa6exUEWIiFlsA8jY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=gFy7tXH6rY3YG6i4/qHr24d+oQbHAc0/5k/+5v9BnJ5TcoN6QWQ1nYaQQP+dDsDl5 4JNabEwJ7CYl6mtORAlXjqlVAnTvtBp/osLidw62ji8m2YBhubBr06tsAmWQraGCkq aPuOVuqVtOLcOFKAVpOnMxDz8mZpFedz0DK9u5g8TdoeIoDQYe6nFK5MnFtj+NNBqG mJa4f7nFuPLwXlYBtj8gzT3HuRBaI4tV9UZ+xx9bWbJPDcnxHswLL/7R7Ih01aPgwS Y7LYdphRIz6T3j8u6+JpX5CGAmUjfgj6bUbX8JAZqfDzOb+2LNft6mfMYnha1uajb7 VMOOJwTGbF8CQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Martin KaFai Lau , Andrii Nakryiko , Sasha Levin Subject: [PATCH 6.6 143/638] selftests/bpf: Fix the flaky tc_redirect_dtime test Date: Sun, 24 Mar 2024 18:53:00 -0400 Message-ID: <20240324230116.1348576-144-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 177f1d083a19af58f4b1206d299ed73689249fd8 ] BPF CI has been reporting the tc_redirect_dtime test failing from time to time: test_inet_dtime:PASS:setns src 0 nsec (network_helpers.c:253: errno: No route to host) Failed to connect to server close_netns:PASS:setns 0 nsec test_inet_dtime:FAIL:connect_to_fd unexpected connect_to_fd: actual -1 < ex= pected 0 test_tcp_clear_dtime:PASS:tcp ip6 clear dtime ingress_fwdns_p100 0 nsec The connect_to_fd failure (EHOSTUNREACH) is from the test_tcp_clear_dtime() test and it is the very first IPv6 traffic after setting up all the links, addresses, and routes. The symptom is this first connect() is always slow. In my setup, it could take ~3s. After some tracing and tcpdump, the slowness is mostly spent in the neighbor solicitation in the "ns_fwd" namespace while the "ns_src" and "ns_dst" are fine. I forced the kernel to drop the neighbor solicitation messages. I can then reproduce EHOSTUNREACH. What actually happen could be: - the neighbor advertisement came back a little slow. - the "ns_fwd" namespace concluded a neighbor discovery failure and triggered the ndisc_error_report() =3D> ip6_link_failure() =3D> icmpv6_send(skb, ICMPV6_DEST_UNREACH, ICMPV6_ADDR_UNREACH, 0) - the client's connect() reports EHOSTUNREACH after receiving the ICMPV6_DEST_UNREACH message. The neigh table of both "ns_src" and "ns_dst" namespace has already been manually populated but not the "ns_fwd" namespace. This patch fixes it by manually populating the neigh table also in the "ns_fwd" namespace. Although the namespace configuration part had been existed before the tc_redirect_dtime test, still Fixes-tagging the patch when the tc_redirect_dtime test was added since it is the only test hitting it so far. Fixes: c803475fd8dd ("bpf: selftests: test skb->tstamp in redirect_neigh") Signed-off-by: Martin KaFai Lau Signed-off-by: Andrii Nakryiko Link: https://lore.kernel.org/bpf/20240120060518.3604920-1-martin.lau@linux= .dev Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- tools/testing/selftests/bpf/prog_tests/tc_redirect.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/tools/testing/selftests/bpf/prog_tests/tc_redirect.c b/tools/t= esting/selftests/bpf/prog_tests/tc_redirect.c index 518f143c5b0fe..610887157fd85 100644 --- a/tools/testing/selftests/bpf/prog_tests/tc_redirect.c +++ b/tools/testing/selftests/bpf/prog_tests/tc_redirect.c @@ -188,6 +188,7 @@ static int netns_setup_links_and_routes(struct netns_se= tup_result *result) { struct nstoken *nstoken =3D NULL; char src_fwd_addr[IFADDR_STR_LEN+1] =3D {}; + char src_addr[IFADDR_STR_LEN + 1] =3D {}; int err; =20 if (result->dev_mode =3D=3D MODE_VETH) { @@ -208,6 +209,9 @@ static int netns_setup_links_and_routes(struct netns_se= tup_result *result) if (get_ifaddr("src_fwd", src_fwd_addr)) goto fail; =20 + if (get_ifaddr("src", src_addr)) + goto fail; + result->ifindex_src =3D if_nametoindex("src"); if (!ASSERT_GT(result->ifindex_src, 0, "ifindex_src")) goto fail; @@ -270,6 +274,13 @@ static int netns_setup_links_and_routes(struct netns_s= etup_result *result) SYS(fail, "ip route add " IP4_DST "/32 dev dst_fwd scope global"); SYS(fail, "ip route add " IP6_DST "/128 dev dst_fwd scope global"); =20 + if (result->dev_mode =3D=3D MODE_VETH) { + SYS(fail, "ip neigh add " IP4_SRC " dev src_fwd lladdr %s", src_addr); + SYS(fail, "ip neigh add " IP6_SRC " dev src_fwd lladdr %s", src_addr); + SYS(fail, "ip neigh add " IP4_DST " dev dst_fwd lladdr %s", MAC_DST); + SYS(fail, "ip neigh add " IP6_DST " dev dst_fwd lladdr %s", MAC_DST); + } + close_netns(nstoken); =20 /** setup in 'dst' namespace */ --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B6A74130E23; Sun, 24 Mar 2024 23:03: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=1711321420; cv=none; b=NuKGiln5LT6336lY04mPlBTqoo+Bf+LtrOy9kvnN7/3/pO9STdJA6QY1Pj1zDf1WwjjuAUMrLNKD2ri+S2P0A0CZrwJoXvmvyW+wmIweqi8ZdyksErpaurV/+Jit4ZwcLODpYWcU4CXm3bvaCswTMIU+s7rNheUGeh5mWTNcymw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321420; c=relaxed/simple; bh=K757j1h2gj/8YT/wZT3TO9lwrI+Py+jNR2IhmZioBqg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=TdhhPZD16Clhoc8LVoRa3IcJ99IHT7QG5uWglN1lvZONs/yLiDIlSzwzqh1ojRQJoheuwbuL0yLV5XVuEQue7Mz1Tb9Mg2MFLRrxrbu5C6kjXWlzAcChYOSvNgB5lUD9hBc/LhfdCF/p8f7mRAG6nl28uZtav8RLoMk8MlSobYk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=qSwXsjMW; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="qSwXsjMW" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 02A4EC43399; Sun, 24 Mar 2024 23:03:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321420; bh=K757j1h2gj/8YT/wZT3TO9lwrI+Py+jNR2IhmZioBqg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qSwXsjMWmxGSKe0QSmBpX4AxgD3j9ssCVOQiUr6VdtK7w15YybMTCsguCAhIfvj9P F7MQONn98/M7Q3QbCuoAikev26t2VUfG8Lqrx3VXTyW3ozhV/+5FY20PmsDqbqbACp XCn5KFaD9Q1Cr44g4aUpxZxikJwA4O9M/S1n7kkm27EhW0oaISA63CiKuC6/bC3Qe1 j+xPZ1nxpt41QWZvcJGT0ruucLCVSquNKLuVgw43s6deq3bMOQSGpP1i3XsBVoF1Q/ hzPY31XH6Ju/M7XVcQtfLYUTXwrojFO1YITptBkiPO4CZEXBAojpim/qe3eIZYJhIJ 7L68nKtChiunw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Martin KaFai Lau , Andrii Nakryiko , Sasha Levin Subject: [PATCH 6.6 144/638] selftests/bpf: Wait for the netstamp_needed_key static key to be turned on Date: Sun, 24 Mar 2024 18:53:01 -0400 Message-ID: <20240324230116.1348576-145-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 ce6f6cffaeaa0a3bcdafcae7fe03c68c3afae631 ] After the previous patch that speeded up the test (by avoiding neigh discovery in IPv6), the BPF CI occasionally hits this error: rcv tstamp unexpected pkt rcv tstamp: actual 0 =3D=3D expected 0 The test complains about the cmsg returned from the recvmsg() does not have the rcv timestamp. Setting skb->tstamp or not is controlled by a kernel static key "netstamp_needed_key". The static key is enabled whenever this is at least one sk with the SOCK_TIMESTAMP set. The test_redirect_dtime does use setsockopt() to turn on the SOCK_TIMESTAMP for the reading sk. In the kernel net_enable_timestamp() has a delay to enable the "netstamp_needed_key" when CONFIG_JUMP_LABEL is set. This potential delay is the likely reason for packet missing rcv timestamp occasionally. This patch is to create udp sockets with SOCK_TIMESTAMP set. It sends and receives some packets until the received packet has a rcv timestamp. It currently retries at most 5 times with 1s in between. This should be enough to wait for the "netstamp_needed_key". It then holds on to the socket and only closes it at the end of the test. This guarantees that the test has the "netstamp_needed_key" key turned on from the beginning. To simplify the udp sockets setup, they are sending/receiving packets in the same netns (ns_dst is used) and communicate over the "lo" dev. Hence, the patch enables the "lo" dev in the ns_dst. Fixes: c803475fd8dd ("bpf: selftests: test skb->tstamp in redirect_neigh") Signed-off-by: Martin KaFai Lau Signed-off-by: Andrii Nakryiko Link: https://lore.kernel.org/bpf/20240120060518.3604920-2-martin.lau@linux= .dev Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- .../selftests/bpf/prog_tests/tc_redirect.c | 79 ++++++++++++++++++- 1 file changed, 75 insertions(+), 4 deletions(-) diff --git a/tools/testing/selftests/bpf/prog_tests/tc_redirect.c b/tools/t= esting/selftests/bpf/prog_tests/tc_redirect.c index 610887157fd85..dbe06aeaa2b27 100644 --- a/tools/testing/selftests/bpf/prog_tests/tc_redirect.c +++ b/tools/testing/selftests/bpf/prog_tests/tc_redirect.c @@ -291,6 +291,7 @@ static int netns_setup_links_and_routes(struct netns_se= tup_result *result) SYS(fail, "ip addr add " IP4_DST "/32 dev dst"); SYS(fail, "ip addr add " IP6_DST "/128 dev dst nodad"); SYS(fail, "ip link set dev dst up"); + SYS(fail, "ip link set dev lo up"); =20 SYS(fail, "ip route add " IP4_SRC "/32 dev dst scope global"); SYS(fail, "ip route add " IP4_NET "/16 dev dst scope global"); @@ -468,7 +469,7 @@ static int set_forwarding(bool enable) return 0; } =20 -static void rcv_tstamp(int fd, const char *expected, size_t s) +static int __rcv_tstamp(int fd, const char *expected, size_t s, __u64 *tst= amp) { struct __kernel_timespec pkt_ts =3D {}; char ctl[CMSG_SPACE(sizeof(pkt_ts))]; @@ -489,7 +490,7 @@ static void rcv_tstamp(int fd, const char *expected, si= ze_t s) =20 ret =3D recvmsg(fd, &msg, 0); if (!ASSERT_EQ(ret, s, "recvmsg")) - return; + return -1; ASSERT_STRNEQ(data, expected, s, "expected rcv data"); =20 cmsg =3D CMSG_FIRSTHDR(&msg); @@ -498,6 +499,12 @@ static void rcv_tstamp(int fd, const char *expected, s= ize_t s) memcpy(&pkt_ts, CMSG_DATA(cmsg), sizeof(pkt_ts)); =20 pkt_ns =3D pkt_ts.tv_sec * NSEC_PER_SEC + pkt_ts.tv_nsec; + if (tstamp) { + /* caller will check the tstamp itself */ + *tstamp =3D pkt_ns; + return 0; + } + ASSERT_NEQ(pkt_ns, 0, "pkt rcv tstamp"); =20 ret =3D clock_gettime(CLOCK_REALTIME, &now_ts); @@ -507,6 +514,60 @@ static void rcv_tstamp(int fd, const char *expected, s= ize_t s) if (ASSERT_GE(now_ns, pkt_ns, "check rcv tstamp")) ASSERT_LT(now_ns - pkt_ns, 5 * NSEC_PER_SEC, "check rcv tstamp"); + return 0; +} + +static void rcv_tstamp(int fd, const char *expected, size_t s) +{ + __rcv_tstamp(fd, expected, s, NULL); +} + +static int wait_netstamp_needed_key(void) +{ + int opt =3D 1, srv_fd =3D -1, cli_fd =3D -1, nretries =3D 0, err, n; + char buf[] =3D "testing testing"; + struct nstoken *nstoken; + __u64 tstamp =3D 0; + + nstoken =3D open_netns(NS_DST); + if (!nstoken) + return -1; + + srv_fd =3D start_server(AF_INET6, SOCK_DGRAM, "::1", 0, 0); + if (!ASSERT_GE(srv_fd, 0, "start_server")) + goto done; + + err =3D setsockopt(srv_fd, SOL_SOCKET, SO_TIMESTAMPNS_NEW, + &opt, sizeof(opt)); + if (!ASSERT_OK(err, "setsockopt(SO_TIMESTAMPNS_NEW)")) + goto done; + + cli_fd =3D connect_to_fd(srv_fd, TIMEOUT_MILLIS); + if (!ASSERT_GE(cli_fd, 0, "connect_to_fd")) + goto done; + +again: + n =3D write(cli_fd, buf, sizeof(buf)); + if (!ASSERT_EQ(n, sizeof(buf), "send to server")) + goto done; + err =3D __rcv_tstamp(srv_fd, buf, sizeof(buf), &tstamp); + if (!ASSERT_OK(err, "__rcv_tstamp")) + goto done; + if (!tstamp && nretries++ < 5) { + sleep(1); + printf("netstamp_needed_key retry#%d\n", nretries); + goto again; + } + +done: + if (!tstamp && srv_fd !=3D -1) { + close(srv_fd); + srv_fd =3D -1; + } + if (cli_fd !=3D -1) + close(cli_fd); + close_netns(nstoken); + return srv_fd; } =20 static void snd_tstamp(int fd, char *b, size_t s) @@ -843,11 +904,20 @@ static void test_tc_redirect_dtime(struct netns_setup= _result *setup_result) { struct test_tc_dtime *skel; struct nstoken *nstoken; - int err; + int hold_tstamp_fd, err; + + /* Hold a sk with the SOCK_TIMESTAMP set to ensure there + * is no delay in the kernel net_enable_timestamp(). + * This ensures the following tests must have + * non zero rcv tstamp in the recvmsg(). + */ + hold_tstamp_fd =3D wait_netstamp_needed_key(); + if (!ASSERT_GE(hold_tstamp_fd, 0, "wait_netstamp_needed_key")) + return; =20 skel =3D test_tc_dtime__open(); if (!ASSERT_OK_PTR(skel, "test_tc_dtime__open")) - return; + goto done; =20 skel->rodata->IFINDEX_SRC =3D setup_result->ifindex_src_fwd; skel->rodata->IFINDEX_DST =3D setup_result->ifindex_dst_fwd; @@ -892,6 +962,7 @@ static void test_tc_redirect_dtime(struct netns_setup_r= esult *setup_result) =20 done: test_tc_dtime__destroy(skel); + close(hold_tstamp_fd); } =20 static void test_tc_redirect_neigh_fib(struct netns_setup_result *setup_re= sult) --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A3CC0131E35; Sun, 24 Mar 2024 23:03: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=1711321422; cv=none; b=FjnBehWRqBpiC+MDhUnb9S7Y2NafxhN9zTKDRYw0doncOECgE5K5YvLVTvhIwh0PYwi5vfCS4xN0wURkHxPwnf4mG555noE0J8P/D8tRCjYcT4/414y//mZqUjjNGhEcLQDbgYZBG/iw2SPWhHpKF6AT24kMoVKak4vbwibckJ4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321422; c=relaxed/simple; bh=i/ETv3Z0+14MObVPjWUndDksu7lvCqc1LjL8w6W1XSQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mW/3ftMIpjrqoDYIpvz5BiglwJPYwSqGg7fOqAX3UOVjRgjaggCuj8KO1adR4X7X7qZaeY9URkU62q6Isf9eHU2ec9LvVG2vmJRdtzq/JUSfHb/1OE5IPVO/OneGjFDum16d00N9aANcuzoAibeiZs+HRQUVn4AMbsPap/YFmwY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Rrid0Fb+; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Rrid0Fb+" Received: by smtp.kernel.org (Postfix) with ESMTPSA id DDB7DC433F1; Sun, 24 Mar 2024 23:03:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321421; bh=i/ETv3Z0+14MObVPjWUndDksu7lvCqc1LjL8w6W1XSQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Rrid0Fb+ob0s0IbITjYanVsVDsHaGGFcthcDufPh5QJZogoaBBbXaGSh32Fm8EbVr P88i6NRyPUDdUFAHP//hRP1AgIOu5m+GqKxT6hiuzYw3X4MuQ9ax6sQ3ZeTPOZGfrg 45EoUeiFKLSjRMuBTSQboOIhihEBxfitb3I6U2A0AQDfzz+72Fjk7l/AKoB1ATO2eG vubXADg9uAngFNbCPtrNHQxMVbNXg4G2+uJ1AQEvdbaQUijqwS8HgIaZAggj+FkNAS wNIRWx3OA+onoUAmesbG+9ZtROGriSnF2lnrgd1MPnEW/bL0KzwPACTsloKbegq58d bDCvGDjCZqOCQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Kuniyuki Iwashima , Jakub Kicinski , Sasha Levin Subject: [PATCH 6.6 145/638] af_unix: Annotate data-race of gc_in_progress in wait_for_unix_gc(). Date: Sun, 24 Mar 2024 18:53:02 -0400 Message-ID: <20240324230116.1348576-146-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 2a81880dac7b7..027c86e804f8a 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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BA414131E41; Sun, 24 Mar 2024 23:03: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=1711321423; cv=none; b=iVCEVsOCv3RkCfukpwEwATfvypzIpTwUnCjoU7OlajMAVFmj3EtDD6qZY7sbMkV07sli1tq1qqJF7hsyQ5hYXUv5Op0hswHgpVUgBYOmzXSmK56MGx4PiNjrtmSP8aGhL188vEfrlE3UjrHH3E7aSGEECR3GQrNVmgJvE62pIy4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321423; c=relaxed/simple; bh=oAa4yi03u1UrSreAkt5qZ+unRgWT5oJHZu69BduOjac=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=lkaZTefodnSG9cZ0lgTzRyphlm2EYI3oWWJSWqJo3186Sxbz33G3nmPBKp8Q+euUMSlmr/9ScE7SeHGXD7jrODjrb058tzUnR0v38GW4PR/tFPdzzBdcY/7xnnZ3Pthz13JiNlywDpyMg34WF8ilJUUSXIJGdbDtwD+9ypLt4LQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=e6agTLF3; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="e6agTLF3" Received: by smtp.kernel.org (Postfix) with ESMTPSA id C48DBC43390; Sun, 24 Mar 2024 23:03:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321422; bh=oAa4yi03u1UrSreAkt5qZ+unRgWT5oJHZu69BduOjac=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=e6agTLF391x/MTZjYRchcm0RW1o+mJpEMQ1NuYf5mYDkuQXRer07N2s4rnP350d1r 6U6zzTGZqdoVYmwJXzAWzIVSCLTjwq/q+6tUhOImZe1UyO1rZmMX/i98FGMbyG0EBH GSZCgkSME5E6HNc3ZSOjh97bi5gzN/9XD6sr4zH4bMx7icv4ptG8KVm65K+ocF9TLI 4Y74ZPHSa5ltOSjCzvNCJmg10Eq70mtdHihuAO2/mTPY1VnMzrzx4T0jblYkQXfaYl YmWobhaxpVjj9we+4hv/HbPSoxRVQDkT4QUWNp8EFPOkUoB+YM4xtc4O3UidCJ3opM rshw0DvBw2rMw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Konrad Dybcio , Krzysztof Kozlowski , Georgi Djakov , Bjorn Andersson , Sasha Levin Subject: [PATCH 6.6 146/638] arm64: dts: qcom: sm8450: Add missing interconnects to serial Date: Sun, 24 Mar 2024 18:53:03 -0400 Message-ID: <20240324230116.1348576-147-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 6e115b75b43bd12d4061e53c8ff175e387783d8a ] The serial ports did not have their interconnect paths specified when they were first introduced. Fix that. Fixes: 5188049c9b36 ("arm64: dts: qcom: Add base SM8450 DTSI") Fixes: f5837418479a ("arm64: dts: qcom: sm8450: add uart20 node") Reported-by: Krzysztof Kozlowski Suggested-by: Georgi Djakov Signed-off-by: Konrad Dybcio Reviewed-by: Krzysztof Kozlowski Tested-by: Krzysztof Kozlowski Link: https://lore.kernel.org/r/20240116-topic-8450serial-v1-1-b685e6a5ad78= @linaro.org Signed-off-by: Bjorn Andersson Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/qcom/sm8450.dtsi | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/sm8450.dtsi b/arch/arm64/boot/dts/qco= m/sm8450.dtsi index 91d856e5b06b5..0fc25c6a481f7 100644 --- a/arch/arm64/boot/dts/qcom/sm8450.dtsi +++ b/arch/arm64/boot/dts/qcom/sm8450.dtsi @@ -1025,6 +1025,12 @@ uart20: serial@894000 { pinctrl-names =3D "default"; pinctrl-0 =3D <&qup_uart20_default>; interrupts =3D ; + interconnects =3D <&clk_virt MASTER_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS + &clk_virt SLAVE_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS>, + <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS + &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ALWAYS>; + interconnect-names =3D "qup-core", + "qup-config"; status =3D "disabled"; }; =20 @@ -1417,6 +1423,12 @@ uart7: serial@99c000 { pinctrl-names =3D "default"; pinctrl-0 =3D <&qup_uart7_tx>, <&qup_uart7_rx>; interrupts =3D ; + interconnects =3D <&clk_virt MASTER_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS + &clk_virt SLAVE_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS>, + <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS + &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ALWAYS>; + interconnect-names =3D "qup-core", + "qup-config"; status =3D "disabled"; }; }; --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B00151E7724; Sun, 24 Mar 2024 23:03: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=1711321424; cv=none; b=CnAwkmtILW0kUe4ItjUlMv63iyLqK0cGkRFOUF9H+zKXRUne6O0G030VTdm6tLVdQveiXvFrI0uKWR3HBbHVJfV6yADW4bam3YrZhe4uVHvmNb7AOxuRzT9KKqN4/13ZjpV8afFX3ikJm3Mr6yJYONd+E4Vn3p/EMTqgW2gc3xE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321424; c=relaxed/simple; bh=UQ/n9Mkbco3R389fzuIFcQ9oMXzvD8ePrXG9uncztZ0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=WBJqmUHTdf/QQ/2AC902aIbZnOAw/4R7S+7gBYz5hdbzDFsPbDudDYCbKWefJK5l+px6+6Gdism7sF+ZTXCH/JYITUcQhVCncKxM7WhmeXOatiFTm9VkDzbSYl4zZ57qozR/UuyeoS3ivi2CigZ6l8cbQ4D7gdfU4Ny18jdSf3M= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=CTOxcwFD; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="CTOxcwFD" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D8E54C433C7; Sun, 24 Mar 2024 23:03:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321423; bh=UQ/n9Mkbco3R389fzuIFcQ9oMXzvD8ePrXG9uncztZ0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=CTOxcwFDp+NeYF05voAEqIw2UpujyrMxfnHDgPYzd30A0qknD/UdlV003QCGFgrm4 p+DZ9dEg2O1EuQ+tQ5rUCrAdFov+/sfSgGq2j4FjaIqv9yo0cw7D3beEKGPDr7oMTa 98Z3eZSQZ6ZNwwhGv6vU08IcmC2UMdmeQ3OnQHuQfsArcTVkNAEGapAIe66WfGEwz1 P1TxOI5xEReUbMUI4r3lfs9nzlfE5v7GsvasMUs8PpKkgbu1cy/gbr+x+PozYbbC1o pFx72ovVlM2lL1wMSJLWRlFTx5jTWBDB8O9oD7E1/ViJJ6Jaucl5o9nFLJ23ZaKdxX Eb3Bt89tlu+/g== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Dmitry Baryshkov , Konrad Dybcio , Bjorn Andersson , Sasha Levin Subject: [PATCH 6.6 147/638] soc: qcom: socinfo: rename PM2250 to PM4125 Date: Sun, 24 Mar 2024 18:53:04 -0400 Message-ID: <20240324230116.1348576-148-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 5155e48128826d0c5999dc9f47aa746df54da448 ] It seems, the only actual mentions of PM2250 can be found are related to the Qualcomm RB1 platform. However even RB1 schematics use PM4125 as a PMIC name. Rename PM2250 to PM4125 to follow the documentation. Fixes: 082f9bc60f33 ("soc: qcom: spmi-pmic: add more PMIC SUBTYPE IDs") Fixes: 112d96fd2927 ("soc: qcom: socinfo: Add some PMICs") Acked-by: Konrad Dybcio Signed-off-by: Dmitry Baryshkov Link: https://lore.kernel.org/r/20240128-pm2250-pm4125-rename-v2-1-d51987e9= f83a@linaro.org Signed-off-by: Bjorn Andersson Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/soc/qcom/socinfo.c | 2 +- include/soc/qcom/qcom-spmi-pmic.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/soc/qcom/socinfo.c b/drivers/soc/qcom/socinfo.c index 497cfb720fcb0..880b41a57da01 100644 --- a/drivers/soc/qcom/socinfo.c +++ b/drivers/soc/qcom/socinfo.c @@ -114,7 +114,7 @@ static const char *const pmic_models[] =3D { [50] =3D "PM8350B", [51] =3D "PMR735A", [52] =3D "PMR735B", - [55] =3D "PM2250", + [55] =3D "PM4125", [58] =3D "PM8450", [65] =3D "PM8010", }; diff --git a/include/soc/qcom/qcom-spmi-pmic.h b/include/soc/qcom/qcom-spmi= -pmic.h index c47cc71a999ec..fdd462b295927 100644 --- a/include/soc/qcom/qcom-spmi-pmic.h +++ b/include/soc/qcom/qcom-spmi-pmic.h @@ -48,7 +48,7 @@ #define PMK8350_SUBTYPE 0x2f #define PMR735B_SUBTYPE 0x34 #define PM6350_SUBTYPE 0x36 -#define PM2250_SUBTYPE 0x37 +#define PM4125_SUBTYPE 0x37 =20 #define PMI8998_FAB_ID_SMIC 0x11 #define PMI8998_FAB_ID_GF 0x30 --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A9381131E4B; Sun, 24 Mar 2024 23:03: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=1711321424; cv=none; b=Opi2egj2gkxntDfHDmGaa5birv4FHiPclZ0ZAvZd8mAkHBnT0eF97ysu632rvYhCLVgU2298bZ2AD2YldCEJLDRZRPRykdpoEKlh4fk4isftmlEPFeq456liZ1zcb+HIbVYt4cQicEndEtDsElKxQfIm7dbU4qxkKV4P0cPx+M8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321424; c=relaxed/simple; bh=PVJc8pZkxA6f9s1tPFz0NNoNpg3KVXp8BIXzJI4bG6c=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ipr73xURXbh0uww/VDQjG00BhNY8PECX5AEn8zagkjGebdHRdSto8hLPDmuArgbRp95qs+t98tCBBTTHXaAHNwkZWj/ZudVPgZ6iLkR7jWCBDv9+laSooqmk3SSucLatcSYYfwtL0Esyu6LaZd8dA39dWIfgYRVaAF+fybhpyFs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=h/0OuFoJ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="h/0OuFoJ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D34CEC433A6; Sun, 24 Mar 2024 23:03:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321424; bh=PVJc8pZkxA6f9s1tPFz0NNoNpg3KVXp8BIXzJI4bG6c=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=h/0OuFoJK/IsPCNNN9MIkZc4WkgGg/tOYfwjk3Vrg8M3VD7QX1pSZfNQSAFQylD+w XC4TezcOIMd3QWE0S6Z3QcAnIsN4WF4lbBUiymKB6hoZzZFUadbYiukMFtur9jsST/ jkSmvmYqpVIA6+oFC4Hc37XIJjS6ShmunqHaMh5GPaT9fJE+oaifMqhyWEVuvtjHPw jK8mK0OCQF5usjXTTtCWkZcLV0wC1n2yaJSJ+rXU8DPd6Owm+rVueK+Go0Hzx/i2WY i4bO5jnigJCG32/iBcARH4BTMA1kmc2HD8fH23RViAdkJKbqWvVxGfvF48ahgZg9hd ZaVfKlZeI9GDw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: David Heidelberg , Luca Weiss , Bjorn Andersson , Sasha Levin Subject: [PATCH 6.6 148/638] arm64: dts: qcom: sdm845-oneplus-common: improve DAI node naming Date: Sun, 24 Mar 2024 18:53:05 -0400 Message-ID: <20240324230116.1348576-149-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Heidelberg [ Upstream commit afe9867a0c0e10ba618c15d4ef6f8699872f6cc3 ] Make it easier to understand what the reg in those nodes is by using the constants provided by qcom,q6dsp-lpass-ports.h. Name nodes according to dt-binding expectations. Fix for ``` arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dtb: service@4: dais: Une= valuated properties are not allowed ('qi2s@22', 'qi2s@23' were unexpected) ``` Fixes: b7b734286856 ("arm64: dts: qcom: sdm845-oneplus-*: add audio devices= ") Signed-off-by: David Heidelberg Reviewed-by: Luca Weiss Link: https://lore.kernel.org/r/20231229200245.259689-1-david@ixit.cz Signed-off-by: Bjorn Andersson Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi b/arch/arm= 64/boot/dts/qcom/sdm845-oneplus-common.dtsi index 122c7128dea9d..9322b92a1e682 100644 --- a/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi +++ b/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi @@ -485,13 +485,13 @@ &pmi8998_charger { }; =20 &q6afedai { - qi2s@22 { - reg =3D <22>; + dai@22 { + reg =3D ; qcom,sd-lines =3D <1>; }; =20 - qi2s@23 { - reg =3D <23>; + dai@23 { + reg =3D ; qcom,sd-lines =3D <0>; }; }; --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C22DB202384; Sun, 24 Mar 2024 23:03: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=1711321425; cv=none; b=oGQHTOUyvI96odsa8w1LS1CEFLDNuZqJrnAsaEb5G2zq1sgoLh7hB3Dsc1baqmAy7iEDr9+de7PVrK1Zb6+a5umreGsmeHh0F4Crh64tHxE/4okwfNCM+Vc/bF8xeVJx+dTRWT8EQ7XjPqLBNk9Z1do8KspXOSD2uIvdHi3kDFI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321425; c=relaxed/simple; bh=2jaq6Nv6r4YCmGhbPVeZlY0UKTMbM3LoqcudLDvUkVM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=hL1xh5UwbrDY9yl++PZbBu+9wtcUdpHzMN1/1Im6jm2qavfQO8sAg8O7SsXqfhwMHe6EVHcQAWxIf6txcAKS5DRPZ6I7fxDGWjGrfkp/2gV0Z+pB48boSl/1UrLa4tZFR9zkmUYFu1J5cEocgrXgFMoEepp3P8r/mZbEcIj5OuU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=rIU9p3PQ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="rIU9p3PQ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D1A25C433C7; Sun, 24 Mar 2024 23:03:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321425; bh=2jaq6Nv6r4YCmGhbPVeZlY0UKTMbM3LoqcudLDvUkVM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=rIU9p3PQWXD3WWlwExVfQK1u5ZTI0KfUljV1+qNH0lInbr5Npu33Y+yR1H6oWfUNr 6itCZSHiyUc+QLfMbQQf9pnbRppnjT+Njvocl2u9AVklMH7bCd6RSX3z0PYiwPucXq +X5QvLChBdeyUMC0x9J+FKX/NXV723QblShPDt6K4Q/M5AWmilafGhW5vjOqN2t6od TpxJ7WSVshpsEIkYI/7+pO1D1Zgaeipas9wr/hBYWo0533vm/NcheSRKjyi2xpCyh7 jn91K9WVxE2CTTwY2e+oBJA2v/4q87w87dj8U9S8U+xYfZXToFm+JP86V79pSuEoDi UkinF8P6eeFww== 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 6.6 149/638] cpufreq: mediatek-hw: Don't error out if supply is not found Date: Sun, 24 Mar 2024 18:53:06 -0400 Message-ID: <20240324230116.1348576-150-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-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 Tested-by: Takeshi Ogasawara --- 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 a1aa9385980ae..8d097dcddda47 100644 --- a/drivers/cpufreq/mediatek-cpufreq-hw.c +++ b/drivers/cpufreq/mediatek-cpufreq-hw.c @@ -312,7 +312,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C30B2202392; Sun, 24 Mar 2024 23:03: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=1711321427; cv=none; b=Y8Sc2fI705jSx34k3PXyRNcNra8CD8pF/ttqJVTi/jQPLuQ9gh8iexkV5LrnLeNkiNf46FceB4UUrKNiUFiWVVZcMsa/vp7sV296pqE1u0JQbU5qXT/zawzA+cc2YOU9zs8SEi6YxVD1VsZXWZLx4P4NnRQWOX887bj55ZCJZTE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321427; c=relaxed/simple; bh=OkXGC5MFg/57UAjfdYlyaez1Sc+KpouGnh0grG91cqo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=nLqvU0Axjq29s7sU0W7MSCCOdoZbabBWxSp7NcDBCMeNNzzpaeGk4yubOCgMa6PBqd3vHhH8XzxeN0PqZqRQhKTv4QXAD7XfQaPQrQrf2sWJcO8luEPk+krM301r/zbugPJJ96AFISJpjGyAYoYqD6QG5CyH6TAkPFuQ73fhUZY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=TLnZ6B7u; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="TLnZ6B7u" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E7724C433F1; Sun, 24 Mar 2024 23:03:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321426; bh=OkXGC5MFg/57UAjfdYlyaez1Sc+KpouGnh0grG91cqo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=TLnZ6B7uJBR7+zqDqg/upQJADq9cC4m01ieIIfrq2Yv7nHXGUIYpEkpG7RzQEyv/T ud1z4hvWmqGguJIp456VCcOqajjenRZtOmuI/R/AMepW80jE9EjX+Zt51BtQB0XUJG dCmB7qFnh3puz36CCa8qXJKkTU6I8Jnv3J0dt7NTjUEEVUzO8cyHhmrk5B0BPWp5OT ktkF+7s6QbamY4tb6tWw717cAlhLmIkKoSVgMcJN2XQVPJjXlU4jPkyTP2szUuJE0F 91UL+xfz1KORjDkjOLGyfc6KrJ3raMJQvriBV5hd2ahVVosAHFfZP/oz0+CiDA5o6F 0dBUrstJ5LviA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Andrii Nakryiko , Daniel Borkmann , Jiri Olsa , Sasha Levin Subject: [PATCH 6.6 150/638] libbpf: Fix faccessat() usage on Android Date: Sun, 24 Mar 2024 18:53:07 -0400 Message-ID: <20240324230116.1348576-151-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Andrii Nakryiko [ Upstream commit ad57654053805bf9a62602aaec74cc78edb6f235 ] Android implementation of libc errors out with -EINVAL in faccessat() if passed AT_EACCESS ([0]), this leads to ridiculous issue with libbpf refusing to load /sys/kernel/btf/vmlinux on Androids ([1]). Fix by detecting Android and redefining AT_EACCESS to 0, it's equivalent on Android. [0] https://android.googlesource.com/platform/bionic/+/refs/heads/android= 13-release/libc/bionic/faccessat.cpp#50 [1] https://github.com/libbpf/libbpf-bootstrap/issues/250#issuecomment-19= 11324250 Fixes: 6a4ab8869d0b ("libbpf: Fix the case of running as non-root with capa= bilities") Signed-off-by: Andrii Nakryiko Signed-off-by: Daniel Borkmann Acked-by: Jiri Olsa Link: https://lore.kernel.org/bpf/20240126220944.2497665-1-andrii@kernel.org Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- tools/lib/bpf/libbpf_internal.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/tools/lib/bpf/libbpf_internal.h b/tools/lib/bpf/libbpf_interna= l.h index f0f08635adb0d..57dec645d6878 100644 --- a/tools/lib/bpf/libbpf_internal.h +++ b/tools/lib/bpf/libbpf_internal.h @@ -18,6 +18,20 @@ #include #include "relo_core.h" =20 +/* Android's libc doesn't support AT_EACCESS in faccessat() implementation + * ([0]), and just returns -EINVAL even if file exists and is accessible. + * See [1] for issues caused by this. + * + * So just redefine it to 0 on Android. + * + * [0] https://android.googlesource.com/platform/bionic/+/refs/heads/andro= id13-release/libc/bionic/faccessat.cpp#50 + * [1] https://github.com/libbpf/libbpf-bootstrap/issues/250#issuecomment-= 1911324250 + */ +#ifdef __ANDROID__ +#undef AT_EACCESS +#define AT_EACCESS 0 +#endif + /* make sure libbpf doesn't use kernel-only integer typedefs */ #pragma GCC poison u8 u16 u32 u64 s8 s16 s32 s64 =20 --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D2F7A202393; Sun, 24 Mar 2024 23:03: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=1711321427; cv=none; b=Oh5GKYDFd+1oDipxk5x4fZMvKt/qFquNYzE7FU7RP12UrTKZUZqfZnK+v9SsMBKglG4CodzWgcC6GIeAq/mTqXjYUpSyDW5WtvlIcVVGvZfuw2jDCymqIloq7W8kphiLCkRfzxM6hNLr0NCRgcE00EZBLETAVNYH0PeQj6jnQt0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321427; c=relaxed/simple; bh=ENmzeOXJwmG/br6zOUsAuqC66/r6+HqYQSJyjqqWua4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=GZhai3Y8fGTqW0C/gt8Z7Q0GuCHrZ7ZYUPUNVSef1kui/rzwX72UmOu9+cmDKDGFG4OzDnogAxIPo8AavsKtcN5szl+NYRnZKwdnHa5HByKaTiXo7Wv423uxefO/SBKLSRF1h+uiOIf+h0zchrV6wQmNMtCh6WrDID+NbkFTWfM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=CSuBjtzz; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="CSuBjtzz" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E4FABC433A6; Sun, 24 Mar 2024 23:03:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321427; bh=ENmzeOXJwmG/br6zOUsAuqC66/r6+HqYQSJyjqqWua4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=CSuBjtzzKmqRM5dEgru4BRVARaNI0Ag41KNpIw09gG/oyjKQ+HKiknLTO29fYHC9F k/6WWVryaIObs2rp4nyXU8pn9a4L9L4IZV2Z7fUi3eORS0Rg93/KiColz5MqYBYVLJ 3HqeiHg/yvlUWTH7fsVwvlcoF2pxmiijFw4KbdETeiDPmUc2hUqA6q915ibSAUxtIv kycIEWP/lc5KEU3go9JSMIXMAdHkXgZM2D3eZ9tPj8iUEtTTypB7jWus5qh4GJZ5Vz fWtPFZw/pbeiSyI5Vki0pg8QrIZYbsGXw/uOcNf/wGOjgPA0m8txTgfL4R22AjTTKR ktbgNyfaO3YSg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Bjorn Andersson , Dmitry Baryshkov , Ulf Hansson , Konrad Dybcio , Sasha Levin Subject: [PATCH 6.6 151/638] pmdomain: qcom: rpmhpd: Drop SA8540P gfx.lvl Date: Sun, 24 Mar 2024 18:53:08 -0400 Message-ID: <20240324230116.1348576-152-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Bjorn Andersson [ Upstream commit 883957bee580b723fd87d49ac73e0c84fc03a446 ] On SA8295P and SA8540P gfx.lvl is not provdied by rpmh, but rather is handled by an external regulator (max20411). Drop gfx.lvl from the list of power-domains exposed on this platform. Fixes: f68f1cb3437d ("soc: qcom: rpmhpd: add sc8280xp & sa8540p rpmh power-= domains") Reviewed-by: Dmitry Baryshkov Acked-by: Ulf Hansson Reviewed-by: Konrad Dybcio Link: https://lore.kernel.org/r/20240125-sa8295p-gpu-v4-4-7011c2a63037@quic= inc.com Signed-off-by: Bjorn Andersson Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/pmdomain/qcom/rpmhpd.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/pmdomain/qcom/rpmhpd.c b/drivers/pmdomain/qcom/rpmhpd.c index 2a811666bc9d0..efca30c185a15 100644 --- a/drivers/pmdomain/qcom/rpmhpd.c +++ b/drivers/pmdomain/qcom/rpmhpd.c @@ -207,7 +207,6 @@ static struct rpmhpd *sa8540p_rpmhpds[] =3D { [SC8280XP_CX] =3D &cx, [SC8280XP_CX_AO] =3D &cx_ao, [SC8280XP_EBI] =3D &ebi, - [SC8280XP_GFX] =3D &gfx, [SC8280XP_LCX] =3D &lcx, [SC8280XP_LMX] =3D &lmx, [SC8280XP_MMCX] =3D &mmcx, --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EBD0E4D595; Sun, 24 Mar 2024 23:03: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=1711321430; cv=none; b=ksPPVsYK7bbninpiTq3X1SwEZviiA/KZsMcaKa/P0xq6JLQF5HPMbL5XGWkWxOk2PkJ53WIFYrpW0XUbjQ5plhyQas1AFznyWOxNSYe+rbVQfPYGVrGfqQDAEgZKZ2VG7Dolj9g7KrSiyl+BpHvF+EZgI6qC3HQc+ZNSb1dvxm0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321430; c=relaxed/simple; bh=UcRpu7p1jKQyG+pfEXtk4kRecvA2V6BI+5dODNtRxC4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=H0zRAmYL+GyxoALCOf1g/kZZPKxmYAIgCZr/efo5k+zEeLm1Vs4UAWiCdaiCqwr4itEjAwT0D6RskMc/BwIshJKGvXSqjyM+icQTHC7TYE1wrnGhOuFeebG+HBSaMJ8Kfemhg7KG9ZLe4Hl3W6t0wDz1rHIgXWCmXpHiheBgLrM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=sIKNwS0M; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="sIKNwS0M" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 06D03C43390; Sun, 24 Mar 2024 23:03:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321428; bh=UcRpu7p1jKQyG+pfEXtk4kRecvA2V6BI+5dODNtRxC4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=sIKNwS0M3m02bpBbeWmg3P5pvIsC0zYwq2gtzfhXSDR5GdUOMrL1yRHZzs+jNeUPn OAybEgl5PqMMCwpUSMxqSGuEmH51HOxzHxWBYVhDazz52hGww/7KKFf2qs4dzoZsrC cnDEGC8aCR9HoSof1rD9gmxHY/MemtI0rp9mxvL5xLo0TerDcJNgaDUn2LwYPD6k0w LAq4ZvXXMVF/KjAEfIaXmTQtW55sJ0Io1chuDapW65oAKQ2fL2XyVGAWiD+qNGWEBm jWzleSDcmWpi2rX9zkTOD48c2Caevva+z76e7AEhh431HTd7C3KezdsBDHloYb5KKa 7tGkV5HztrVrQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Bjorn Andersson , Dmitry Baryshkov , Konrad Dybcio , Bjorn Andersson , Sasha Levin Subject: [PATCH 6.6 152/638] arm64: dts: qcom: sa8540p: Drop gfx.lvl as power-domain for gpucc Date: Sun, 24 Mar 2024 18:53:09 -0400 Message-ID: <20240324230116.1348576-153-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Bjorn Andersson [ Upstream commit fd5821a1a83c969ed2dcc72fef885f3a82c1d978 ] The SA8295P and SA8540P uses an external regulator (max20411), and gfx.lvl is not provided by rpmh. Drop the power-domains property of the gpucc node to reflect this. Fixes: eec51ab2fd6f ("arm64: dts: qcom: sc8280xp: Add GPU related nodes") Reviewed-by: Dmitry Baryshkov Reviewed-by: Konrad Dybcio Signed-off-by: Bjorn Andersson Link: https://lore.kernel.org/r/20240125-sa8295p-gpu-v4-5-7011c2a63037@quic= inc.com Signed-off-by: Bjorn Andersson Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/qcom/sa8540p.dtsi | 3 +++ 1 file changed, 3 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/sa8540p.dtsi b/arch/arm64/boot/dts/qc= om/sa8540p.dtsi index 96b2c59ad02b4..23888029cc117 100644 --- a/arch/arm64/boot/dts/qcom/sa8540p.dtsi +++ b/arch/arm64/boot/dts/qcom/sa8540p.dtsi @@ -168,6 +168,9 @@ opp-2592000000 { }; =20 &gpucc { + /* SA8295P and SA8540P doesn't provide gfx.lvl */ + /delete-property/ power-domains; + status =3D "disabled"; }; =20 --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B84CA20239E; Sun, 24 Mar 2024 23:03: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=1711321430; cv=none; b=PhaNefMK4nFMR1SymcJiSFGe1g7RuwMpmcLudGp4UVfw/r1t6SNCF8tZnFpSIWuD02U0GMJeuv1U+4xSCiBYXAEyUdJIPNXIup1Cpx60a636VSzqDKxHQ2zoHMANubDqloTlQz/CD3Wm5GD/ST6v7cn/YuG+bcLywq97wnSFbb4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321430; c=relaxed/simple; bh=+4AiABqnksxNdiMVZMOXIxNcwiZbJbOVBDo6C4zJjWs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=QxTKy4O6OuA7q/edSEDLjgIjfZOmAtQSs29ezNjKt0XiGgU5qqK8SNrhClZebPRdksPVGeZbCrPVCIymVIOWMvmSENAsHRk011rzKs+Y7ZHnwZXYbjLxO1DPidfbM1E6TvhY8w6G+Iida9sQBY6iwgGE14ba8Zz3oS+pivgb4i4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=dgWoFn+J; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="dgWoFn+J" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1B839C433F1; Sun, 24 Mar 2024 23:03:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321429; bh=+4AiABqnksxNdiMVZMOXIxNcwiZbJbOVBDo6C4zJjWs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=dgWoFn+JtYkrsie3Iim3VBF9Lsh1sAxZ3gxTYCbG3NRmUBeE9MLpYBUjgzCoDiOob 4rD8qP0kP1ajpf0icrGefosSIpCEADsGBec+hG4kqEkB9RrWpDwUcNx93nRQJkMozl +VI3Y8Cqw1xCgJg6Ddh7mw8u8qMwxPhKNc9JsYezwZUKLJ6Y9dnBLU5dTcGPxcPTQN vAoEC+VVKivvJzAuGxD30FGrKrlwn4VFqMh3N4fQkaOgOVNuZfxCWSjdPEJ1m/LM8w rW4T2icgQhn6HzivQgUk6Ac35NLdv1WfQrGFXb7bFGtcg5N8kjAX7wdbTB7xuWpDLu XOxvVxDLnzBxQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Geert Uytterhoeven , Sasha Levin Subject: [PATCH 6.6 153/638] arm64: dts: renesas: r8a779g0: Restore sort order Date: Sun, 24 Mar 2024 18:53:10 -0400 Message-ID: <20240324230116.1348576-154-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 8b93657c976a61726d7ffbe8d019b84b4abfb673 ] Numerical by unit address, alphabetical by node name. Signed-off-by: Geert Uytterhoeven Link: https://lore.kernel.org/r/f00ef274a73c8fd60f940a1649423a8927b9ae8a.17= 05324708.git.geert+renesas@glider.be Stable-dep-of: 08e799f6bce8 ("arm64: dts: renesas: r8a779g0: Add missing SC= IF_CLK2") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/renesas/r8a779g0.dtsi | 72 +++++++++++------------ 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/arch/arm64/boot/dts/renesas/r8a779g0.dtsi b/arch/arm64/boot/dt= s/renesas/r8a779g0.dtsi index d3d25e077c5d5..3be1159982b20 100644 --- a/arch/arm64/boot/dts/renesas/r8a779g0.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a779g0.dtsi @@ -161,11 +161,6 @@ L3_CA76_1: cache-controller-1 { }; }; =20 - psci { - compatible =3D "arm,psci-1.0", "arm,psci-0.2"; - method =3D "smc"; - }; - extal_clk: extal { compatible =3D "fixed-clock"; #clock-cells =3D <0>; @@ -185,6 +180,11 @@ pmu_a76 { interrupts-extended =3D <&gic GIC_PPI 7 IRQ_TYPE_LEVEL_LOW>; }; =20 + psci { + compatible =3D "arm,psci-1.0", "arm,psci-0.2"; + method =3D "smc"; + }; + /* External SCIF clock - to be overridden by boards that provide it */ scif_clk: scif { compatible =3D "fixed-clock"; @@ -1777,6 +1777,37 @@ ssi0: ssi-0 { }; }; =20 + mmc0: mmc@ee140000 { + compatible =3D "renesas,sdhi-r8a779g0", + "renesas,rcar-gen4-sdhi"; + reg =3D <0 0xee140000 0 0x2000>; + interrupts =3D ; + clocks =3D <&cpg CPG_MOD 706>, + <&cpg CPG_CORE R8A779G0_CLK_SD0H>; + clock-names =3D "core", "clkh"; + power-domains =3D <&sysc R8A779G0_PD_ALWAYS_ON>; + resets =3D <&cpg 706>; + max-frequency =3D <200000000>; + iommus =3D <&ipmmu_ds0 32>; + status =3D "disabled"; + }; + + rpc: spi@ee200000 { + compatible =3D "renesas,r8a779g0-rpc-if", + "renesas,rcar-gen4-rpc-if"; + reg =3D <0 0xee200000 0 0x200>, + <0 0x08000000 0 0x04000000>, + <0 0xee208000 0 0x100>; + reg-names =3D "regs", "dirmap", "wbuf"; + interrupts =3D ; + clocks =3D <&cpg CPG_MOD 629>; + power-domains =3D <&sysc R8A779G0_PD_ALWAYS_ON>; + resets =3D <&cpg 629>; + #address-cells =3D <1>; + #size-cells =3D <0>; + status =3D "disabled"; + }; + ipmmu_rt0: iommu@ee480000 { compatible =3D "renesas,ipmmu-r8a779g0", "renesas,rcar-gen4-ipmmu-vmsa"; @@ -1886,37 +1917,6 @@ ipmmu_mm: iommu@eefc0000 { #iommu-cells =3D <1>; }; =20 - mmc0: mmc@ee140000 { - compatible =3D "renesas,sdhi-r8a779g0", - "renesas,rcar-gen4-sdhi"; - reg =3D <0 0xee140000 0 0x2000>; - interrupts =3D ; - clocks =3D <&cpg CPG_MOD 706>, - <&cpg CPG_CORE R8A779G0_CLK_SD0H>; - clock-names =3D "core", "clkh"; - power-domains =3D <&sysc R8A779G0_PD_ALWAYS_ON>; - resets =3D <&cpg 706>; - max-frequency =3D <200000000>; - iommus =3D <&ipmmu_ds0 32>; - status =3D "disabled"; - }; - - rpc: spi@ee200000 { - compatible =3D "renesas,r8a779g0-rpc-if", - "renesas,rcar-gen4-rpc-if"; - reg =3D <0 0xee200000 0 0x200>, - <0 0x08000000 0 0x04000000>, - <0 0xee208000 0 0x100>; - reg-names =3D "regs", "dirmap", "wbuf"; - interrupts =3D ; - clocks =3D <&cpg CPG_MOD 629>; - power-domains =3D <&sysc R8A779G0_PD_ALWAYS_ON>; - resets =3D <&cpg 629>; - #address-cells =3D <1>; - #size-cells =3D <0>; - status =3D "disabled"; - }; - gic: interrupt-controller@f1000000 { compatible =3D "arm,gic-v3"; #interrupt-cells =3D <3>; --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B94762023AF; Sun, 24 Mar 2024 23:03: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=1711321431; cv=none; b=I3nq+OCcXaBDnQWsKinSIsAtERAMosyhVffS7JjeY1/fnNUGEm+ZGuuMqtb9HFgfW42s1mZ5u+caZhvRu5B8q+ZDWDxUzruKx71MWQ5pfBc4PJv6aOtDE1ohA45bT4O5lz1hCYHOAtCJ8QHSQcf0k1Dg1oWwcUPbNtYNzkhBY64= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321431; c=relaxed/simple; bh=9Qq1iVEdw0G3vZVt9MiiXBeQOuukWCru2oMuL3av5NQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=a+vQIpBDjF3bxVDz0MTvOQbRV9zxOfoT/hilFLW3wIZjdq8sOtUfP827M9Qxv/xG009h62qtJ5VYRhEyhH3zA5tJRyorKYjTripuSl8I9tmlcijCenbWIUvhP/acVrqsTnu9Hr5JM0fhKGwqN5XoAvCmkY0EyfDK96al7KpyQlg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Tps8sW4u; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Tps8sW4u" Received: by smtp.kernel.org (Postfix) with ESMTPSA id DE697C433C7; Sun, 24 Mar 2024 23:03:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321430; bh=9Qq1iVEdw0G3vZVt9MiiXBeQOuukWCru2oMuL3av5NQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Tps8sW4uBPt5+DA2quxbtwJJp2Dp44tGCbt+gJtA7gIcIzQP3oyGxpGORVa0hV4dO qIyvcwT4lMnblzz6ogsGfyiw1za8AZOpmQE4t5Ilknagy7Feab8t+EZ6VVGeNJ/gYS 7dlZiAZ5dKTEvbiO5H5wJrzm4911BXWF+Py9YIeIuAWYbJuC/aywgujHtDAGsi4pwR FlJ3/B32La3wDYeBaP9hA+8Ypt34jZDcE5wfnM75BP+E2BSnQdDE57I/FR08qoCo30 f3sj2VW0z/uxsy4hzs37BooORpghzPcKlo5D5e222pdsV7PbVoeg341yeQQeIOJr0J qax8qCGUtOGWw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Geert Uytterhoeven , Sasha Levin Subject: [PATCH 6.6 154/638] arm64: dts: renesas: r8a779g0: Add missing SCIF_CLK2 Date: Sun, 24 Mar 2024 18:53:11 -0400 Message-ID: <20240324230116.1348576-155-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 08e799f6bce80dd63c174d8d0fc61d1a6149960b ] R-Car V4H actually has two SCIF_CLK pins. The second pin provides the SCIF_CLK signal for HSCIF2 and SCIF4. Fixes: a4c31c56d2d35641 ("arm64: dts: renesas: r8a779g0: Add SCIF nodes") Fixes: 39d9dfc6fbe1860e ("arm64: dts: renesas: r8a779g0: Add remaining HSCI= F nodes") Signed-off-by: Geert Uytterhoeven Link: https://lore.kernel.org/r/72f20c1bf32187bd30a963cafe27252907d661f9.17= 05589612.git.geert+renesas@glider.be Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/renesas/r8a779g0.dtsi | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/arch/arm64/boot/dts/renesas/r8a779g0.dtsi b/arch/arm64/boot/dt= s/renesas/r8a779g0.dtsi index 3be1159982b20..0c83940b3d8a1 100644 --- a/arch/arm64/boot/dts/renesas/r8a779g0.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a779g0.dtsi @@ -185,13 +185,19 @@ psci { method =3D "smc"; }; =20 - /* External SCIF clock - to be overridden by boards that provide it */ + /* External SCIF clocks - to be overridden by boards that provide them */ scif_clk: scif { compatible =3D "fixed-clock"; #clock-cells =3D <0>; clock-frequency =3D <0>; }; =20 + scif_clk2: scif2 { + compatible =3D "fixed-clock"; + #clock-cells =3D <0>; + clock-frequency =3D <0>; + }; + soc: soc { compatible =3D "simple-bus"; interrupt-parent =3D <&gic>; @@ -681,7 +687,7 @@ hscif2: serial@e6560000 { interrupts =3D ; clocks =3D <&cpg CPG_MOD 516>, <&cpg CPG_CORE R8A779G0_CLK_SASYNCPERD1>, - <&scif_clk>; + <&scif_clk2>; clock-names =3D "fck", "brg_int", "scif_clk"; dmas =3D <&dmac0 0x35>, <&dmac0 0x34>, <&dmac1 0x35>, <&dmac1 0x34>; @@ -1057,7 +1063,7 @@ scif4: serial@e6c40000 { interrupts =3D ; clocks =3D <&cpg CPG_MOD 705>, <&cpg CPG_CORE R8A779G0_CLK_SASYNCPERD1>, - <&scif_clk>; + <&scif_clk2>; clock-names =3D "fck", "brg_int", "scif_clk"; dmas =3D <&dmac0 0x59>, <&dmac0 0x58>, <&dmac1 0x59>, <&dmac1 0x58>; --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CEC212023BA; Sun, 24 Mar 2024 23:03: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=1711321432; cv=none; b=Lr4v3eaGxi6MTTdc97xBbbqwzEsLUN44SADHYSLMsX+Wfr2Xixrq6xLebLeFdzlHjwOuMy0WYCqtwNSAOCgvHupdrr1UoI21Tp3Ml7JgBPxYrLZVZIGHs9AK8q/xG0mCR9gHlroYYbNT9VcwxPDiN60J5ewUK8IZzgbTbQbFSeQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321432; c=relaxed/simple; bh=jcSa7AED0sYNrjMzwm3P5thW7G1RPQj5kfgFF+4N0IY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=XyyP07ofl8U1BqTVxkl86YKdPe/yuoggoDjdmOvJxHcYW0boaS7c5QDw6dMN8zUa2QApsMPoFbQYvgfanK43Eojllv29Kaj+MjmBWMmOePWf8aMrItzq67YwkO+OaRml3EHSkJc9BvKN0IhJECBaswhyagrlCyXLrGqwn6Sa0hE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=qLe/U9Sk; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="qLe/U9Sk" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 013BAC43390; Sun, 24 Mar 2024 23:03:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321431; bh=jcSa7AED0sYNrjMzwm3P5thW7G1RPQj5kfgFF+4N0IY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qLe/U9SkaCODMdLjRPWxGelMRPcLGLxIkuE4d4+DD9C6ji86vjqRiZcy7MXFGuhpF x23b+KVa+YYK04MmHqlrM2kjBJ9AW8A+ac9rXnIxanyar6miOuigApFBepeiTwoq/U hD3jRFQa9YTALhSs5yQp+h0kTPUNu6k3q8fEf8kBfv5i5Ucw/SEqUJ3ciBQZf+VO/+ PoWumpXAcNgTuqgNSNMT1/7iIzNDLiNWJogFyvTY9GK/2FBor03mdiyUL+5puoSabi gchoA2AgUTd1XqHTz30t2qtx6Prr8BX//QUp5L71Mwk9JgAZSmObhtMiIMYrx/sqrC WReWVZx4aLlog== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Manu Bretelle , Andrii Nakryiko , Sasha Levin Subject: [PATCH 6.6 155/638] selftests/bpf: Disable IPv6 for lwt_redirect test Date: Sun, 24 Mar 2024 18:53:12 -0400 Message-ID: <20240324230116.1348576-156-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Manu Bretelle [ Upstream commit 2ef61296d2844c6a4211e07ab70ef2fb412b2c30 ] After a recent change in the vmtest runner, this test started failing sporadically. Investigation showed that this test was subject to race condition which got exacerbated after the vm runner change. The symptoms being that the logic that waited for an ICMPv4 packet is naive and will break if 5 or more non-ICMPv4 packets make it to tap0. When ICMPv6 is enabled, the kernel will generate traffic such as ICMPv6 router solicitation... On a system with good performance, the expected ICMPv4 packet would very likely make it to the network interface promptly, but on a system with poor performance, those "guarantees" do not hold true anymore. Given that the test is IPv4 only, this change disable IPv6 in the test netns by setting `net.ipv6.conf.all.disable_ipv6` to 1. This essentially leaves "ping" as the sole generator of traffic in the network namespace. If this test was to be made IPv6 compatible, the logic in `wait_for_packet` would need to be modified. In more details... At a high level, the test does: - create a new namespace - in `setup_redirect_target` set up lo, tap0, and link_err interfaces as well as add 2 routes that attaches ingress/egress sections of `test_lwt_redirect.bpf.o` to the xmit path. - in `send_and_capture_test_packets` send an ICMP packet and read off the tap interface (using `wait_for_packet`) to check that a ICMP packet with the right size is read. `wait_for_packet` will try to read `max_retry` (5) times from the tap0 fd looking for an ICMPv4 packet matching some criteria. The problem is that when we set up the `tap0` interface, because IPv6 is enabled by default, traffic such as Router solicitation is sent through tap0, as in: # tcpdump -r /tmp/lwt_redirect.pc reading from file /tmp/lwt_redirect.pcap, link-type EN10MB (Ethernet) 04:46:23.578352 IP6 :: > ff02::1:ffc0:4427: ICMP6, neighbor solicitation,= who has fe80::fcba:dff:fec0:4427, length 32 04:46:23.659522 IP6 :: > ff02::16: HBH ICMP6, multicast listener report v= 2, 1 group record(s), length 28 04:46:24.389169 IP 10.0.0.1 > 20.0.0.9: ICMP echo request, id 122, seq 1,= length 108 04:46:24.618599 IP6 fe80::fcba:dff:fec0:4427 > ff02::16: HBH ICMP6, multi= cast listener report v2, 1 group record(s), length 28 04:46:24.619985 IP6 fe80::fcba:dff:fec0:4427 > ff02::2: ICMP6, router sol= icitation, length 16 04:46:24.767326 IP6 fe80::fcba:dff:fec0:4427 > ff02::16: HBH ICMP6, multi= cast listener report v2, 1 group record(s), length 28 04:46:28.936402 IP6 fe80::fcba:dff:fec0:4427 > ff02::2: ICMP6, router sol= icitation, length 16 If `wait_for_packet` sees 5 non-ICMPv4 packets, it will return 0, which is = what we see in: 2024-01-31T03:51:25.0336992Z test_lwt_redirect_run:PASS:netns_create 0 ns= ec 2024-01-31T03:51:25.0341309Z open_netns:PASS:malloc token 0 nsec 2024-01-31T03:51:25.0344844Z open_netns:PASS:open /proc/self/ns/net 0 nsec 2024-01-31T03:51:25.0350071Z open_netns:PASS:open netns fd 0 nsec 2024-01-31T03:51:25.0353516Z open_netns:PASS:setns 0 nsec 2024-01-31T03:51:25.0356560Z test_lwt_redirect_run:PASS:setns 0 nsec 2024-01-31T03:51:25.0360140Z open_tuntap:PASS:open(/dev/net/tun) 0 nsec 2024-01-31T03:51:25.0363822Z open_tuntap:PASS:ioctl(TUNSETIFF) 0 nsec 2024-01-31T03:51:25.0367402Z open_tuntap:PASS:fcntl(O_NONBLOCK) 0 nsec 2024-01-31T03:51:25.0371167Z setup_redirect_target:PASS:open_tuntap 0 nsec 2024-01-31T03:51:25.0375180Z setup_redirect_target:PASS:if_nametoindex 0 = nsec 2024-01-31T03:51:25.0379929Z setup_redirect_target:PASS:ip link add link_= err type dummy 0 nsec 2024-01-31T03:51:25.0384874Z setup_redirect_target:PASS:ip link set lo up= 0 nsec 2024-01-31T03:51:25.0389678Z setup_redirect_target:PASS:ip addr add dev l= o 10.0.0.1/32 0 nsec 2024-01-31T03:51:25.0394814Z setup_redirect_target:PASS:ip link set link_= err up 0 nsec 2024-01-31T03:51:25.0399874Z setup_redirect_target:PASS:ip link set tap0 = up 0 nsec 2024-01-31T03:51:25.0407731Z setup_redirect_target:PASS:ip route add 10.0= .0.0/24 dev link_err encap bpf xmit obj test_lwt_redirect.bpf.o sec redir_i= ngress 0 nsec 2024-01-31T03:51:25.0419105Z setup_redirect_target:PASS:ip route add 20.0= .0.0/24 dev link_err encap bpf xmit obj test_lwt_redirect.bpf.o sec redir_e= gress 0 nsec 2024-01-31T03:51:25.0427209Z test_lwt_redirect_normal:PASS:setup_redirect= _target 0 nsec 2024-01-31T03:51:25.0431424Z ping_dev:PASS:if_nametoindex 0 nsec 2024-01-31T03:51:25.0437222Z send_and_capture_test_packets:FAIL:wait_for_= epacket unexpected wait_for_epacket: actual 0 !=3D expected 1 2024-01-31T03:51:25.0448298Z (/tmp/work/bpf/bpf/tools/testing/selftests/b= pf/prog_tests/lwt_redirect.c:175: errno: Success) test_lwt_redirect_normal = egress test fails 2024-01-31T03:51:25.0457124Z close_netns:PASS:setns 0 nsec When running in a VM which potential resource contrains, the odds that call= ing `ping` is not scheduled very soon after bringing `tap0` up increases, and with this the chances to get our ICMP packet pushed to position 6+ in the network trace. To confirm this indeed solves the issue, I ran the test 100 times in a row with: errors=3D0 successes=3D0 for i in `seq 1 100` do ./test_progs -t lwt_redirect/lwt_redirect_normal if [ $? -eq 0 ]; then successes=3D$((successes+1)) else errors=3D$((errors+1)) fi done echo "successes: $successes/errors: $errors" While this test would at least fail a couple of time every 10 runs, here it ran 100 times with no error. Fixes: 43a7c3ef8a15 ("selftests/bpf: Add lwt_xmit tests for BPF_REDIRECT") Signed-off-by: Manu Bretelle Signed-off-by: Andrii Nakryiko Link: https://lore.kernel.org/bpf/20240131053212.2247527-1-chantr4@gmail.com Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- tools/testing/selftests/bpf/prog_tests/lwt_redirect.c | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/testing/selftests/bpf/prog_tests/lwt_redirect.c b/tools/= testing/selftests/bpf/prog_tests/lwt_redirect.c index 59b38569f310b..2bc932a18c17e 100644 --- a/tools/testing/selftests/bpf/prog_tests/lwt_redirect.c +++ b/tools/testing/selftests/bpf/prog_tests/lwt_redirect.c @@ -203,6 +203,7 @@ static int setup_redirect_target(const char *target_dev= , bool need_mac) if (!ASSERT_GE(target_index, 0, "if_nametoindex")) goto fail; =20 + SYS(fail, "sysctl -w net.ipv6.conf.all.disable_ipv6=3D1"); SYS(fail, "ip link add link_err type dummy"); SYS(fail, "ip link set lo up"); SYS(fail, "ip addr add dev lo " LOCAL_SRC "/32"); --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AE1B32023A7; Sun, 24 Mar 2024 23:03: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=1711321432; cv=none; b=le7WJdTEyezIsjH5BJcps77PXCnzNBc9jDAhNnwD7GvO0mxuEQHXpaG8MTcW7Sm8M7mm+Q/BfXCgaHl89J98hxeI8fpNzv2fjKLqBCGWdd8OzZDfAHzoEEULssRK/e8vIrCessx5+TV+xUeUF+Ae+UAeOLYM3f+gstvlX+DFGhs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321432; c=relaxed/simple; bh=ze5NvR4EfcKhR0fNuwbdLlByKeSoQS9yq6vaY4x24bQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=HSv9q+eVEwEiotFsDCWMtV3Ffh+8RI8Zo0THO0ZMzEi4S/curiyfJs1GiuldOBil4K/xncjEPaJ/9po3oFgyNLUcuVzsUODr+69wg353q1rmQC93Hwp+0Qw6fgYhKI3955hn5fukgxkLbPpvkChtuA2FpDhaFi45Rqp0TRdLdyk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=gbOwlR4r; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="gbOwlR4r" Received: by smtp.kernel.org (Postfix) with ESMTPSA id EE1B4C433C7; Sun, 24 Mar 2024 23:03:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321432; bh=ze5NvR4EfcKhR0fNuwbdLlByKeSoQS9yq6vaY4x24bQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=gbOwlR4rb95MRlin2ffYBAv9Shc2ms1m7exRX2YTTnW4Ach0pbv+T7ns4ADt7WHBT 6OAuNwBQoSToRl79w7GLYb+EsKOMVQOeoanR4jqJTKMukYVA9g2sBU+6zDuNC/kSs0 UEomjylWdqa7WkVtVFJVORjFBbulQy6p1XhRF9cW+D65e2EBiKfLrC4UKqv3qp35VW RWKdNu6jUr5Nhld/DUx2/10Z+fmYV1mQkFmdyeSFkopAd+LN1n5OkyRs7UgWYWnBlV nxzAcYVVIk960cqSVbH0OrX7/1wTldHHJ3EdVgaRKJ6rl03EXaLeP0UV/7UMIxAZHd a4McC9imrRK0w== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Frieder Schrempf , Shawn Guo , Sasha Levin Subject: [PATCH 6.6 156/638] arm64: dts: imx8mm-kontron: Disable pullups for I2C signals on OSM-S i.MX8MM Date: Sun, 24 Mar 2024 18:53:13 -0400 Message-ID: <20240324230116.1348576-157-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 96293af54f6aa859015d8ca40a1437d3115ad50c ] 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: de9618e84f76 ("arm64: dts: Add support for Kontron SL/BL i.MX8MM OSM= -S") Signed-off-by: Frieder Schrempf Signed-off-by: Shawn Guo Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/freescale/imx8mm-kontron-bl-osm-s.dts | 4 ++-- arch/arm64/boot/dts/freescale/imx8mm-kontron-osm-s.dtsi | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/arch/arm64/boot/dts/freescale/imx8mm-kontron-bl-osm-s.dts b/ar= ch/arm64/boot/dts/freescale/imx8mm-kontron-bl-osm-s.dts index 8b16bd68576c0..0730c22e5b6b9 100644 --- a/arch/arm64/boot/dts/freescale/imx8mm-kontron-bl-osm-s.dts +++ b/arch/arm64/boot/dts/freescale/imx8mm-kontron-bl-osm-s.dts @@ -294,8 +294,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-osm-s.dtsi b/arch= /arm64/boot/dts/freescale/imx8mm-kontron-osm-s.dtsi index 6e75ab879bf59..3e7db968f7e64 100644 --- a/arch/arm64/boot/dts/freescale/imx8mm-kontron-osm-s.dtsi +++ b/arch/arm64/boot/dts/freescale/imx8mm-kontron-osm-s.dtsi @@ -252,8 +252,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A9A692023B9; Sun, 24 Mar 2024 23:03: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=1711321434; cv=none; b=ie/rCMCP3x63mGZFLIm35hkoVyUwCys6T2rzdFlbZd+/c2KzAQvqrJae5DPH2Ib5/QQUOhAjydEbTiR9Hulf5B6SLFLRj1NML3f/BA0fL2q2/UvvlIxnH3/GiysMmmxgEQEGJTskmyBtfsU54sg4jbVQa21xmQvxtrqHPPpcM10= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321434; c=relaxed/simple; bh=5jaLuzVu03LfcgTNCeqDwZBUUHqQVrNeybRDDhk2+Y0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=u1eSJyodMCMaBd+J3epvLA2j0CJA+x73SrTVoeV+kjRMzyKnOFx3Ji8yISPGUW1tfNLVmDQccPoircy4tyJIdNHWNslhF1w3sepkhSNS0pxCUN1c9TfHSFjk/AzYr8Si3jIOlCQSLzocq66WQhobzDSOUQr8XHE44MKUyo1NVKE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=NcyIqtzn; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="NcyIqtzn" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D598EC433F1; Sun, 24 Mar 2024 23:03:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321433; bh=5jaLuzVu03LfcgTNCeqDwZBUUHqQVrNeybRDDhk2+Y0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=NcyIqtznNhOqc0N8vjbYVuZATOuDzKu9kym3wS4/RiGz+2DWDOx2MQnDzwUXgWsjB hnggQ9CAnl84eHCW/8R4rnk/59YfUdk/cKXH7xUp2n00FOEGfrvWNLQ3frbstEZLng 7nbjDWPw5S35pr/j7/ndxNzYRUeomovSSQI0JNnzpaSRSj5xzk70rJzfzPhNPNJkdB JZbzFxL/H/q9s0dzIG+AVNxa2LjwDUqxi4FWdNLs/NGnwwxNu5U6ZMCtd8DtppEKxw i279NqbNJv+00j8JIWDaGGkazbhaqJ/9JhEt8U/8Rmm/09Y91KNQVI9RPpn1AameVc CKHmuU9lsz2AA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Frieder Schrempf , Shawn Guo , Sasha Levin Subject: [PATCH 6.6 157/638] arm64: dts: imx8mm-kontron: Disable pullups for I2C signals on SL/BL i.MX8MM Date: Sun, 24 Mar 2024 18:53:14 -0400 Message-ID: <20240324230116.1348576-158-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/freescale/imx8mm-kontron-bl.dts | 4 ++-- arch/arm64/boot/dts/freescale/imx8mm-kontron-sl.dtsi | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/arch/arm64/boot/dts/freescale/imx8mm-kontron-bl.dts b/arch/arm= 64/boot/dts/freescale/imx8mm-kontron-bl.dts index dcec57c20399e..5fd2e45258b11 100644 --- a/arch/arm64/boot/dts/freescale/imx8mm-kontron-bl.dts +++ b/arch/arm64/boot/dts/freescale/imx8mm-kontron-bl.dts @@ -279,8 +279,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-sl.dtsi b/arch/ar= m64/boot/dts/freescale/imx8mm-kontron-sl.dtsi index 1f8326613ee9e..2076148e08627 100644 --- a/arch/arm64/boot/dts/freescale/imx8mm-kontron-sl.dtsi +++ b/arch/arm64/boot/dts/freescale/imx8mm-kontron-sl.dtsi @@ -237,8 +237,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 96DBC13248B; Sun, 24 Mar 2024 23:03: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=1711321435; cv=none; b=GTmwGHU4nODldoX5GGb9uL8QM5FGcUe8cS23bAWXm5aa1iL5KdLa1Wkd6PLlbKR6JHH0qeTkkzQa06rT63PcaTOK1WqhJrijF6UJibi6ORzRcJnnq7Yi8OtNYzYWN3oFtfyoX7Th9wArmntg+PjcQjk9lhsSjcajHeL2si69Sx4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321435; c=relaxed/simple; bh=2diJNys690X5vuo8K0Z2rkLA90NikcwwPE7MwS9PceI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=pCsmFYN+x8mvPfBY2vjPCsLjL8qYfZ/JYXegEU+Aw5xZ2qaTiLaMMBoF2aviML3Yht9FOG5O2rcBmGIFmx8jySRJ/s/tQQ5cvpU4jmQAUCPmDz91zdjaEGRxk78dkPalc2rHH+78MdpHf7S8WbM+j0S7mN9X0z+z0Wtitk47LiA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=pHnSEQtX; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="pHnSEQtX" Received: by smtp.kernel.org (Postfix) with ESMTPSA id BF2F0C43394; Sun, 24 Mar 2024 23:03:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321434; bh=2diJNys690X5vuo8K0Z2rkLA90NikcwwPE7MwS9PceI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=pHnSEQtXFcutg+muB6UYim6PlKL61sdGCj8R2WsXKSx/EpDAetzKD650ecZRbwV+W vXNcQMb/gCplhKGLG+h6iT8gB++irJ1OQZAl5TGPcNBf808Mv2Wqvs6YxceIjvfQTo /n5zMb9mdJ0qLl86vzF8SqthefxLlwNkaONFrYDrY8eO6wsz/EJC/j24I23B2UrQoN g6CFZaTRkcuH7YaYfImf/RINGgEPoPDGafnApoJkCoCrbCGhqjqXhEfeibqltJCr2Y +2iBjePlk7CjxARV/SVUAWQn4vATmGC3cbt9dJ0xR1WV88DI0PPAJMFIG17GE/GdHH 427gebtaCTPiQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Frieder Schrempf , Shawn Guo , Sasha Levin Subject: [PATCH 6.6 158/638] arm64: dts: imx8mm-kontron: Disable pullups for onboard UART signals on BL OSM-S board Date: Sun, 24 Mar 2024 18:53:15 -0400 Message-ID: <20240324230116.1348576-159-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 c6d9b5672a0e2c4b1079a50d2fc8780c40cfd3eb ] 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: de9618e84f76 ("arm64: dts: Add support for Kontron SL/BL i.MX8MM OSM= -S") Signed-off-by: Frieder Schrempf Signed-off-by: Shawn Guo Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- .../dts/freescale/imx8mm-kontron-bl-osm-s.dts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/arch/arm64/boot/dts/freescale/imx8mm-kontron-bl-osm-s.dts b/ar= ch/arm64/boot/dts/freescale/imx8mm-kontron-bl-osm-s.dts index 0730c22e5b6b9..1dd03ef0a7835 100644 --- a/arch/arm64/boot/dts/freescale/imx8mm-kontron-bl-osm-s.dts +++ b/arch/arm64/boot/dts/freescale/imx8mm-kontron-bl-osm-s.dts @@ -313,19 +313,19 @@ MX8MM_IOMUXC_SAI5_MCLK_GPIO3_IO25 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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6BE2E202B88; Sun, 24 Mar 2024 23:03: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=1711321436; cv=none; b=ffy8veYIJ1y2p6RbkvPiQxBXpcwKtwnXhn/S8wjFlYX7uhkBbgPCwVk6jjNtFIwN45ROl3C3f2p1hunCEXlOBwmdV7c/2jcH5cEJ2YaHtilYZXNEdSNhJsmuH/BlaL9KaACIFBIrgzHlI4Pjm3ULLZ1MzhjHBuFqJg/lVtP3OW8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321436; c=relaxed/simple; bh=37Zel5azHMMPsuJmvBbKgkaQSVhGNE8yCrKdKwCBDRk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=QS3bcrETTfZyCr5tSdkm7NaZIMaTqvB3W75oGGdfEtuV+glH21yGJ7wz+MiBrRbtxSVfJEdvqh+80/PmPZJKgpqWu9e+33/R1uOq8Ut/RaASIKSvv8L8wfkEVKzEc/fX5COqTA20aaAZHVLZaIO0w9BZ31sILz35xq0p/Nw9HAQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=RIaAwB+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="RIaAwB+4" Received: by smtp.kernel.org (Postfix) with ESMTPSA id AA973C43399; Sun, 24 Mar 2024 23:03:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321435; bh=37Zel5azHMMPsuJmvBbKgkaQSVhGNE8yCrKdKwCBDRk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=RIaAwB+4rz5EyUxmgxfpQuOml4axqccPgrGt4qT6VUmfmH3HjFlvTHO8RI2xpuIGR bdpSPnEop8DU9NMum1jzKt0GZymqdC+rVKdbrdHtm9xHmorNRaAGMLQEqfNdcGHt5B jCakCrsCvIeBCEcBDrMxc+H9Bc+yMiEJtbfP/iPAp/C7sLVw1xzPvLU0T4dr/MJeFV 65bmhyCJVSD5OG5dbcoi+8oIhq8vwqtN/gzD8KZMiTGDMhxhg45HtSpYgMpOSlTfb0 ZD1kd+vmfHG3AChBnWr+w6QrlRK+Epk9JWBNmbdcBuoMpkJCUUZ4PgNSLKXnZn845G DquLsVZg5NVIw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Frieder Schrempf , Shawn Guo , Sasha Levin Subject: [PATCH 6.6 159/638] arm64: dts: imx8mm-kontron: Disable pullups for onboard UART signals on BL board Date: Sun, 24 Mar 2024 18:53:16 -0400 Message-ID: <20240324230116.1348576-160-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- .../boot/dts/freescale/imx8mm-kontron-bl.dts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/arch/arm64/boot/dts/freescale/imx8mm-kontron-bl.dts b/arch/arm= 64/boot/dts/freescale/imx8mm-kontron-bl.dts index 5fd2e45258b11..ee93db11c0d06 100644 --- a/arch/arm64/boot/dts/freescale/imx8mm-kontron-bl.dts +++ b/arch/arm64/boot/dts/freescale/imx8mm-kontron-bl.dts @@ -292,19 +292,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 58687202B84; Sun, 24 Mar 2024 23:03: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=1711321436; cv=none; b=DmGEQhN3IVoWFgwB2HmjI8fw5XKP15ZMyuxwLm0NYU0tQNcXINqUEEtCeYWwQeNGKT70DeyWYh/jZEEaHHnJOI6fTua3slboeqbBoHjwGhWr0JTAWX42SPJp0r7+SvgMkMwZBZIoE0oOYcXbS6lHXFmrSRf1M6Ldtgvx0uJB0fY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321436; c=relaxed/simple; bh=C5+iWgv1WmZKo9V89Vlt5pXL8s+c771eDGwih5584Qk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZM79YTVboRh+jYRDvx7zFC17BjRUB1F3JBpJiwFAGGMFw904/08f0o/LPhSL1wTJmhr3/x1vfG/rtD3/MK66rJYm9D+XUqKwptJNRthJU9ky+bvgGvd/84z5WYEY0Wi5CXuQ+sYG6B8DeiDlJP0De8oEah7jHB0q3AJ7wl7T/a4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=KNrwGHIM; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="KNrwGHIM" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9034AC433C7; Sun, 24 Mar 2024 23:03:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321436; bh=C5+iWgv1WmZKo9V89Vlt5pXL8s+c771eDGwih5584Qk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=KNrwGHIMreKV3D1VL7Qo+icOWwY7xPBkE0Vq9riq3LP534xjtWrf5c+uEnuoKKjKL ddM/Wq3SBjUbn3J9SFjr/4yWqmJrKkNJaqNdLywtEXXO0l670op2S0O5v+drAFU+Rk b7dHG+j9cBMolfLWe26QJD4PgfwYbKXqc/U3nZhAwA9YvKUI3TFupGA5MlnqOspoDp sZCo/THag1QXkmCV2iJ7XgWn3D6R4Q/vnvc2r0aGd0Yiq5tFUwS9HFH4WW8VH/K1j2 4NQneyMOJ/XT+CcgVBfdBnya/EJrBvMDUmlG3Dvy6NFajbnSrlugRKCzUPw64RpRrO Hx1stPNtbRQBQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Frieder Schrempf , Shawn Guo , Sasha Levin Subject: [PATCH 6.6 160/638] arm64: dts: imx8mm-kontron: Disable pull resistors for SD card signals on BL OSM-S board Date: Sun, 24 Mar 2024 18:53:17 -0400 Message-ID: <20240324230116.1348576-161-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 5a940ba3e4d7c8710c9073ff5d0ca4644d4da9db ] 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: de9618e84f76 ("arm64: dts: Add support for Kontron SL/BL i.MX8MM OSM= -S") Signed-off-by: Frieder Schrempf Signed-off-by: Shawn Guo Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- .../dts/freescale/imx8mm-kontron-bl-osm-s.dts | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/arch/arm64/boot/dts/freescale/imx8mm-kontron-bl-osm-s.dts b/ar= ch/arm64/boot/dts/freescale/imx8mm-kontron-bl-osm-s.dts index 1dd03ef0a7835..d9fa0deea7002 100644 --- a/arch/arm64/boot/dts/freescale/imx8mm-kontron-bl-osm-s.dts +++ b/arch/arm64/boot/dts/freescale/imx8mm-kontron-bl-osm-s.dts @@ -337,40 +337,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3534E202B97; Sun, 24 Mar 2024 23:03: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=1711321438; cv=none; b=icN+Q4c/sTQXv0LnzNKP2n1x2j585GHV2m2Jf1gmEEJB3PUrS/qQjs6nnm4nG4c7d3chi+u7SShvu3Dt/526yUyKYc96z6+QePFByDv/aeRC+MoXF5HDGQ5EZL/yc12ZT3NI5Y64ST22nY+700KXQDdI51fDexvsc1tWcB/OKOc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321438; c=relaxed/simple; bh=xPRqP6qMDypdxzrwhFJPn3DwXf9dhukUsTYwU4wACgE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Ck0zzyvrP1DUg1MPutiBlyL/ceKQrtz458y99fwaavBIQM9bI0vI8UApQITFHjq1jEj2b+N3JD2qm5yoerPzpBDapM5Lx08PqUPSTagCdw4MBmEze/8HV+76Ej0lgxKGXO7IkCiolkjowY1bJueqSpIIiHzhFCWY+Cb8ECFUyZY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=UWUIEhDS; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="UWUIEhDS" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 76E5EC433F1; Sun, 24 Mar 2024 23:03:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321437; bh=xPRqP6qMDypdxzrwhFJPn3DwXf9dhukUsTYwU4wACgE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=UWUIEhDSArYZYoMEYtBgrus0JoE4FdYiuha/kRixIsYd/5DptLR/YOkGKBLBOp/FR YBWCEyi2fk6VQKheJZgBj77ozGmvNhCkRCdvpHoqQeRQHtdfF7HOlQSxwmVy0jXs4/ Jh2My0tn1bqDQh9rKkLL2LrEdFXfmo251cp1czRRNmwe2KVq0kPJY2S14x5P05ut6s ltSXt2NdLWutpuN9HS7BH1+yYgpPVaO+pm7tK9m9o/26iwmHb1Yzl7udDN5zJBg1Zn A2UHHoy8WPmbPa1DtHUarrylYhkGJdJF5VYHVdKTDZTUtuXEsb8TjN25Bjo2c34DDW /oDwphY1SD2Yw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Frieder Schrempf , Shawn Guo , Sasha Levin Subject: [PATCH 6.6 161/638] arm64: dts: imx8mm-kontron: Disable pull resistors for SD card signals on BL board Date: Sun, 24 Mar 2024 18:53:18 -0400 Message-ID: <20240324230116.1348576-162-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- .../boot/dts/freescale/imx8mm-kontron-bl.dts | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/arch/arm64/boot/dts/freescale/imx8mm-kontron-bl.dts b/arch/arm= 64/boot/dts/freescale/imx8mm-kontron-bl.dts index ee93db11c0d06..aab8e24216501 100644 --- a/arch/arm64/boot/dts/freescale/imx8mm-kontron-bl.dts +++ b/arch/arm64/boot/dts/freescale/imx8mm-kontron-bl.dts @@ -316,40 +316,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 20EE3202BA2; Sun, 24 Mar 2024 23:03: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=1711321439; cv=none; b=oC1wWJK0Yjq7ML5a+CYNo1JWn3YqobYQta0Zs+mtKTcaLILDSiCAtMC++JQrtIqdb0PBDddDWaYxsT46kZJxQD1j+oFZEQPStKZo99Ny8zvxAcV1X9pHCnKhpllXZxuMRRyYJHdFxs/FgUWznWFRgevTnreV4A6SgN+qFV15tRw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321439; c=relaxed/simple; bh=aMDo02VAK1zjVAZyROahyTo3LEtSa9UVeeqPFxBRTII=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=aVbVQwZI8p72TDvnkoT6bqIfXHdAwiMsI3BZyF4qIrq6gecZlCPAkHv86LcTiPnYKfN5eYWdbbFWI7UTudXtOG0YLybHnYanPMRPtehuWXJ0XnVnVHx970kFkomDQtt61izGCYvfixkppDfxwxjUBrEgPVyL5Oa35qdWuq4p7ho= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=O2ozOJYT; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="O2ozOJYT" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5A515C43399; Sun, 24 Mar 2024 23:03:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321438; bh=aMDo02VAK1zjVAZyROahyTo3LEtSa9UVeeqPFxBRTII=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=O2ozOJYTxmnVJiX/aCYDuYkL7J1ACnXzolPs8VUScMiJjI5WYeQTbytUUA4sUqgg7 l8IMnAuSXNa4/PNTzPnGSd4v57xZVfqP5nQ8akevBVXLM9iUYjtbPr6Bf7t/TLRwXm rOwVeocxt9QY1OyPIPVtK2mc/1QEy3UedEavEJAsepSZZY2J5lKelvF375xsBVwCEt Rmg+HzEQSJkxsz6gRhIzZzZFLY2XVGmbMDjIOSinFySX0inQhQ7XBpPSzjGRsmPJcl cGgRwDrg2gK+OZAkiQ+43aiFCKmuRJc3FyVUgcQ+PQNTn93bQtY61n9u8kBXxLbwvG mwZkCTAq99GVA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Frieder Schrempf , Shawn Guo , Sasha Levin Subject: [PATCH 6.6 162/638] arm64: dts: imx8mm-kontron: Fix interrupt for RTC on OSM-S i.MX8MM module Date: Sun, 24 Mar 2024 18:53:19 -0400 Message-ID: <20240324230116.1348576-163-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 8d0f39b7d04d864e89b84063b124fd10aa4b8809 ] The level of the interrupt signal is active low instead. Fix this. Fixes: de9618e84f76 ("arm64: dts: Add support for Kontron SL/BL i.MX8MM OSM= -S") Signed-off-by: Frieder Schrempf Signed-off-by: Shawn Guo Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/freescale/imx8mm-kontron-osm-s.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/freescale/imx8mm-kontron-osm-s.dtsi b/arch= /arm64/boot/dts/freescale/imx8mm-kontron-osm-s.dtsi index 3e7db968f7e64..60abcb636cedf 100644 --- a/arch/arm64/boot/dts/freescale/imx8mm-kontron-osm-s.dtsi +++ b/arch/arm64/boot/dts/freescale/imx8mm-kontron-osm-s.dtsi @@ -210,7 +210,7 @@ rv3028: rtc@52 { reg =3D <0x52>; pinctrl-names =3D "default"; pinctrl-0 =3D <&pinctrl_rtc>; - interrupts-extended =3D <&gpio4 1 IRQ_TYPE_LEVEL_HIGH>; + interrupts-extended =3D <&gpio4 1 IRQ_TYPE_LEVEL_LOW>; trickle-diode-disable; }; }; --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1D064202BAC; Sun, 24 Mar 2024 23:03: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=1711321440; cv=none; b=gS2FcMFvAF3UM8kSJ+TagfrcuS88KpuMQ/AcF+YNDN+FFsAkF2dUcrnDhZsiwRArjJNxBZq5Rjy23bNRvlKg7F1P7J1rGjqBxUy7jOJatSvcFN4Qki6QMfZgXfVUK0F7NQJTT9JzXubslxtUQD7f28O7jXbtR8ruowKK8/+nEc8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321440; c=relaxed/simple; bh=TdMoJ87npDr2eKnCA3OJPAeqwewuEkteg9Dm9FzlNz4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=kafSNTPz0WFX0fpp4J0LfZkEmnemKqCbY5+r1CwHi8b+xD9XkZGr5RbAX8RDDdFZubz26RwneGCOMzuhI2p8laFlbGrrS13oa8Ttah85V7dpGlkkCcZuKRx+cGGohsHY22uaWe1k/hIMPXkanRIwtfrYutmoqdEjBHFi8+gLWhc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Rbcm8Rld; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Rbcm8Rld" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4446BC43390; Sun, 24 Mar 2024 23:03:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321439; bh=TdMoJ87npDr2eKnCA3OJPAeqwewuEkteg9Dm9FzlNz4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Rbcm8Rld1BW5OgmHrPVPzCSK9NItMljylSGp70qwh+vvh3XMk042qgso5cqxleSlk LGtFPQ62rUROkLRId6PqR3truAMKkAhQ8cbcj1sM98kIFoj0cWA+zzN/Rt4ha7RFcC qC2vtv6QcwVZWlkAKJIJaGHcQ1QlQ2Qa0URoPvTtXdbfhOq+V2dDrfUZQrYNZvVVKd HPlu1gVA2FmxG/cc5+bhOSEkDbSZNwJ+q04JsuuplWguooB8O3ZrHwI2y+68KoCVTV KbbHcROQw+avZhfxgXtrZtY8vCfChtoyZRbzlOtI+6zRXPdA0qKfBswV8vGMeeKv9O Kl7IFYfXaIWTw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Andrii Nakryiko , Daniel Borkmann , Eduard Zingerman , Sasha Levin Subject: [PATCH 6.6 163/638] libbpf: Add missing LIBBPF_API annotation to libbpf_set_memlock_rlim API Date: Sun, 24 Mar 2024 18:53:20 -0400 Message-ID: <20240324230116.1348576-164-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Andrii Nakryiko [ Upstream commit 93ee1eb85e28d1e35bb059c1f5965d65d5fc83c2 ] LIBBPF_API annotation seems missing on libbpf_set_memlock_rlim API, so add it to make this API callable from libbpf's shared library version. Fixes: e542f2c4cd16 ("libbpf: Auto-bump RLIMIT_MEMLOCK if kernel needs it f= or BPF") Fixes: ab9a5a05dc48 ("libbpf: fix up few libbpf.map problems") Signed-off-by: Andrii Nakryiko Signed-off-by: Daniel Borkmann Acked-by: Eduard Zingerman Link: https://lore.kernel.org/bpf/20240201172027.604869-3-andrii@kernel.org Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- tools/lib/bpf/bpf.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/lib/bpf/bpf.h b/tools/lib/bpf/bpf.h index 74c2887cfd24a..107fef7488682 100644 --- a/tools/lib/bpf/bpf.h +++ b/tools/lib/bpf/bpf.h @@ -35,7 +35,7 @@ extern "C" { #endif =20 -int libbpf_set_memlock_rlim(size_t memlock_bytes); +LIBBPF_API int libbpf_set_memlock_rlim(size_t memlock_bytes); =20 struct bpf_map_create_opts { size_t sz; /* size of this struct for forward/backward compatibility */ --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2AB3B202BA5; Sun, 24 Mar 2024 23:04: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=1711321441; cv=none; b=ovpmqp0PLn0yMO0BfZxTDO03H7EV9xIl9z7gXDG5BiOLSc4w2cbGdWd+hidHPqrq1iLY3CqpXoOR/+sg7zGm5whWf1nERIXnogmEbiQUKx/eRtyqR+Uvm+QpBXSQVt9nfhRbeZdW3wB2za3Nh/By9ERKoLa4EDYqcZIA3f5tesQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321441; c=relaxed/simple; bh=1yO6Bm5QHbB+eG36tu0OfKUmHNWbARgzr8XKKHv106E=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=NfY1ULF+Qrfdy84lj0nC+T6cM2Gyjfc/FQYa0Ws6q/ZnDT5kYNCMO+j1JrgBejAQQLqgFEtYMjsI/mZV9n2SxQaEUmZOAQiqJOMOPmHhQOTMkc46YC3Z91HE8qk6vGblNWV6+5FGeNlhfd+SIzjIPv45dkD9/phR3UqZckLQYm8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=I4gNUaPf; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="I4gNUaPf" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4321CC433F1; Sun, 24 Mar 2024 23:03:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321440; bh=1yO6Bm5QHbB+eG36tu0OfKUmHNWbARgzr8XKKHv106E=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=I4gNUaPfkXd8akkmshfZwwC3+yxKxBdt97t1dc8p+KzGuxbHb8cMeCdiR2ptrRSZ0 oCrF18jNEmE0jgctk59WtGF4vPfjq5NMu4rlLpDc/Uj9lqRUEM2V3sxWZFfqimrJRk pwenXLUcNUe0FbyV6GyLD9xqAGibG+Xk+xFaqjUme/LsEK6OwbL4QjC4KEwLCIFnHw +RbaWLmYYe8keDzPU3jt2IDySD58TLMp3zHwfdWWXurtDxaqCkwm2ZHsYBILtOUEdV ef3oZFk8/Fpn+Q32MxwNsGXcu83xY2SMKc+koU8uyEmd69bPyESoR3KQIbtppjj4OF 0GTkRrw18l6kQ== 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 6.6 164/638] wifi: ath9k: delay all of ath9k_wmi_event_tasklet() until init is complete Date: Sun, 24 Mar 2024 18:53:21 -0400 Message-ID: <20240324230116.1348576-165-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-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 Tested-by: Takeshi Ogasawara --- 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 dae3d9c7b6408..fc339079ee8c9 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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 366A9202BB6; Sun, 24 Mar 2024 23:04: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=1711321442; cv=none; b=fugFT06HqNQgzUo1aoE8xKVzIWPnvKbM820ODi/bA/Z7aldIZgKblzLqMx/XMkrnmlqlQ0nl1dOOvkexJDuq6dJgS3mXY8PoTYyb2FRtbxvDPRhH3rpaLC5Ta9G0+Jmefc64wneXcK9yLM8KFcmhyv7vtuxeZtc68vTygRA1n08= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321442; c=relaxed/simple; bh=diwww3yRGtKv8GCOYdOkOJ6EPrgpc01Gl8QRa7q3drY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Qycd1wVk+8eECyts8fAGtyEvrDeIYsWDqpmF6+AvyWEdAQ9Uc1dedIu0ueA7b642Zwwqcyvf1bKdgLLqgzYaVInrJ3X4cFeRhYld06FoWLiVLSnibYIMhQnsj5Vd0dZbly2IUXaMOmOs2ZAZ7eqnfRey7z1kt2iEDi0h0/nWBx0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=R9aSDrcF; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="R9aSDrcF" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4385FC433C7; Sun, 24 Mar 2024 23:04:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321441; bh=diwww3yRGtKv8GCOYdOkOJ6EPrgpc01Gl8QRa7q3drY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=R9aSDrcFd/6tOqyj1TkFjFKP5MWLgid49h5BHIpPPNaSsyDis30AbSjU0svQFX9Qt oyfv55ZcJa1zlVRSUnWO3SgxB538G2jFvd6WtmW+y+3mjNF+CAqwXquZbCmRsGfpeb qxKuXoNXqU84ra8WyEITIXQePgRunDbP/YZgFPoEyTEmmCF1kKrWy3fagWWAv9uWZb fFI5w5DDv+A2GMHOxw8igkfgV90v569wemUY9LR6PAniHcIjd/tOnQmDTRb6dNBHkj 2C9hq2odPV8ajIX7f9dxq8cr7VDZ4Ig/P/wqkfDXR2fKVWefA99xAKJrBliL48aPQO SUSIx+ptncdXQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Wen Gong , Baochen Qiang , Jeff Johnson , Kalle Valo , Sasha Levin Subject: [PATCH 6.6 165/638] wifi: ath11k: change to move WMI_VDEV_PARAM_SET_HEMU_MODE before WMI_PEER_ASSOC_CMDID Date: Sun, 24 Mar 2024 18:53:22 -0400 Message-ID: <20240324230116.1348576-166-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Wen Gong [ Upstream commit 413e20e82ee78f142cb5194fd317db514f012602 ] Currently when connecting to an AP with 11AX-HE phy mode, host sends WMI_VDEV_PARAM_SET_HEMU_MODE parameter to firmware after WMI_PEER_ASSOC_CMDID command. This results in TXBF not working, because firmware calculates TXBF values while handling WMI_PEER_ASSOC_CMDID, however at that time WMI_VDEV_PARAM_SET_HEMU_MODE has not been sent yet. See below log: AP sends "VHT/HE/EHT NDP Announcement" to station, and station sends "Action no Ack" of category code HE to AP, the "Nc Index" and "Codebook Information" are wrong: Issued action: IEEE 802.11 Action No Ack, Flags: ........ IEEE 802.11 wireless LAN Fixed parameters Category code: HE (30) HE Action: HE Compressed Beamforming And CQI (0) Total length: 152 HE MIMO Control: 0x0004008018 .... .... .... .... .... .... .... .... .... .000 =3D Nc In= dex: 1 Column (0) .... .... .... .... .... .... .... ..0. .... .... =3D Codeb= ook Information: 0 Change to send WMI_VDEV_PARAM_SET_HEMU_MODE before WMI_PEER_ASSOC_CMDID, then firmware will calculate the TXBF values with valid parameters instead of empty values. TXBF works well and throughput performance is improved from 80 Mbps to 130 Mbps with this patch. Good action after this patch: IEEE 802.11 Action No Ack, Flags: ........ IEEE 802.11 wireless LAN Fixed parameters Category code: HE (30) HE Action: HE Compressed Beamforming And CQI (0) Total length: 409 HE MIMO Control: 0x0004008219 .... .... .... .... .... .... .... .... .... .001 =3D Nc In= dex: 2 Columns (1) .... .... .... .... .... .... .... ..1. .... .... =3D Codeb= ook Information: 1 This change applies to all chipsets. Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_L= ITE-3.6510.23 Fixes: 38dfe775d0ab ("wifi: ath11k: push MU-MIMO params from hostapd to har= dware") Signed-off-by: Wen Gong Signed-off-by: Baochen Qiang Acked-by: Jeff Johnson Signed-off-by: Kalle Valo Link: https://msgid.link/20240131021832.17298-1-quic_bqiang@quicinc.com Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/net/wireless/ath/ath11k/mac.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/net/wireless/ath/ath11k/mac.c b/drivers/net/wireless/a= th/ath11k/mac.c index b328a0599818b..8880462549b7f 100644 --- a/drivers/net/wireless/ath/ath11k/mac.c +++ b/drivers/net/wireless/ath/ath11k/mac.c @@ -3025,7 +3025,14 @@ static void ath11k_bss_assoc(struct ieee80211_hw *hw, =20 rcu_read_unlock(); =20 + if (!ath11k_mac_vif_recalc_sta_he_txbf(ar, vif, &he_cap)) { + ath11k_warn(ar->ab, "failed to recalc he txbf for vdev %i on bss %pM\n", + arvif->vdev_id, bss_conf->bssid); + return; + } + peer_arg.is_assoc =3D true; + ret =3D ath11k_wmi_send_peer_assoc_cmd(ar, &peer_arg); if (ret) { ath11k_warn(ar->ab, "failed to run peer assoc for %pM vdev %i: %d\n", @@ -3048,12 +3055,6 @@ static void ath11k_bss_assoc(struct ieee80211_hw *hw, return; } =20 - if (!ath11k_mac_vif_recalc_sta_he_txbf(ar, vif, &he_cap)) { - ath11k_warn(ar->ab, "failed to recalc he txbf for vdev %i on bss %pM\n", - arvif->vdev_id, bss_conf->bssid); - return; - } - WARN_ON(arvif->is_up); =20 arvif->aid =3D vif->cfg.aid; --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 19DBF202BBC; Sun, 24 Mar 2024 23:04: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=1711321443; cv=none; b=NgI3NnarfJGKPv9vZvTk1EtowPqIxrgi9LHvX1oy582XNEsvY83VbJFsWaVImkMIDxkf3edu59G5QUx2umkbUIeS+Zg1H3jWRWknNqzGijYnWifNq8sxdyyz91nbH4DECF1wEcwqwGYBSxJqGz+nwb1kVL1G78R4eSvqvHgBBNk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321443; c=relaxed/simple; bh=XxiLR9Sxt6Ldeml3WHZmo8dlmmGth7q5ahMCDNQ9PdA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=KYfDimN4EJT78LjcFKiFk1vrYPtaHP7ttyqbgErSTUfpxfsi5GSOkzBlGmH7QFpExlwIQ7SuR0sfZKI2tbfNj/ojrEnUrb30FGr2R1rT4oTxQcaDQ+ZMYa02yEOtHrChCIMpPYC/R7JqkDesmLfoHiKvrygIq4zypsIE5eGwWBo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=onbmYovY; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="onbmYovY" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5B85CC433F1; Sun, 24 Mar 2024 23:04:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321442; bh=XxiLR9Sxt6Ldeml3WHZmo8dlmmGth7q5ahMCDNQ9PdA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=onbmYovYdmwQyrMeikuM8wgu/SPooPLu//cceqo9PeEk9FHr6wEiev1Lwts3yrS2Y JBfMIvq6ksqj6Ad96qxK4uBkr80Jr/DAZ+rVJPGenPDzLuv0iNNxqA6Qv2VEMe5epm O8s+wPqIx1kASsAy5HPelQ6oiT+5lco7dfOaBcl76tA0O2CSmjqqFi9ahCnJ/AYBcV iDuM3GK/GzL5N3iVnME4+Mnzz+DlI7y7viPRA8sFkJ6fnyN30HBzkqXCpHGgBi2kUN xxd7awNRw74VfldQSMRopsMetq3XnBwHL2itDsy2m2D/baG9ExaUIjDGB13lF49ITT sWMebUjTkadeQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jeff Johnson , Kalle Valo , Sasha Levin Subject: [PATCH 6.6 166/638] wifi: ath12k: Update Qualcomm Innovation Center, Inc. copyrights Date: Sun, 24 Mar 2024 18:53:23 -0400 Message-ID: <20240324230116.1348576-167-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Jeff Johnson [ Upstream commit 05205b9576615fca5da91cdae5a3f89f2ad32703 ] Update the copyright for all ath12k files modified on behalf of Qualcomm Innovation Center, Inc. in 2023. Signed-off-by: Jeff Johnson Signed-off-by: Kalle Valo Link: https://lore.kernel.org/r/20231128-ath12kcopyrights-v1-1-be0b7408cbac= @quicinc.com Stable-dep-of: 902700d55d4a ("wifi: ath12k: fix fetching MCBC flag for QCN9= 274") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/net/wireless/ath/ath12k/dbring.c | 2 +- drivers/net/wireless/ath/ath12k/debug.c | 2 +- drivers/net/wireless/ath/ath12k/dp_tx.c | 2 +- drivers/net/wireless/ath/ath12k/hal.c | 2 +- drivers/net/wireless/ath/ath12k/hal.h | 2 +- drivers/net/wireless/ath/ath12k/hal_rx.c | 2 +- drivers/net/wireless/ath/ath12k/hif.h | 2 +- drivers/net/wireless/ath/ath12k/hw.c | 2 +- drivers/net/wireless/ath/ath12k/hw.h | 2 +- drivers/net/wireless/ath/ath12k/mac.c | 2 +- drivers/net/wireless/ath/ath12k/mac.h | 2 +- drivers/net/wireless/ath/ath12k/mhi.c | 2 +- drivers/net/wireless/ath/ath12k/pci.c | 2 +- drivers/net/wireless/ath/ath12k/pci.h | 2 +- drivers/net/wireless/ath/ath12k/peer.h | 2 +- drivers/net/wireless/ath/ath12k/qmi.c | 2 +- drivers/net/wireless/ath/ath12k/qmi.h | 2 +- drivers/net/wireless/ath/ath12k/reg.c | 2 +- drivers/net/wireless/ath/ath12k/reg.h | 2 +- drivers/net/wireless/ath/ath12k/rx_desc.h | 2 +- drivers/net/wireless/ath/ath12k/wmi.c | 2 +- 21 files changed, 21 insertions(+), 21 deletions(-) diff --git a/drivers/net/wireless/ath/ath12k/dbring.c b/drivers/net/wireles= s/ath/ath12k/dbring.c index 8fbf868e6f7ec..788160c84c686 100644 --- a/drivers/net/wireless/ath/ath12k/dbring.c +++ b/drivers/net/wireless/ath/ath12k/dbring.c @@ -1,7 +1,7 @@ // SPDX-License-Identifier: BSD-3-Clause-Clear /* * Copyright (c) 2019-2021 The Linux Foundation. All rights reserved. - * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights res= erved. + * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights res= erved. */ =20 #include "core.h" diff --git a/drivers/net/wireless/ath/ath12k/debug.c b/drivers/net/wireless= /ath/ath12k/debug.c index 67893923e0109..5709e38ff1fb8 100644 --- a/drivers/net/wireless/ath/ath12k/debug.c +++ b/drivers/net/wireless/ath/ath12k/debug.c @@ -1,7 +1,7 @@ // SPDX-License-Identifier: BSD-3-Clause-Clear /* * Copyright (c) 2018-2021 The Linux Foundation. All rights reserved. - * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights res= erved. + * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights res= erved. */ =20 #include diff --git a/drivers/net/wireless/ath/ath12k/dp_tx.c b/drivers/net/wireless= /ath/ath12k/dp_tx.c index 16d889fc20433..e025e4d0e7678 100644 --- a/drivers/net/wireless/ath/ath12k/dp_tx.c +++ b/drivers/net/wireless/ath/ath12k/dp_tx.c @@ -1,7 +1,7 @@ // SPDX-License-Identifier: BSD-3-Clause-Clear /* * Copyright (c) 2018-2021 The Linux Foundation. All rights reserved. - * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights res= erved. + * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights res= erved. */ =20 #include "core.h" diff --git a/drivers/net/wireless/ath/ath12k/hal.c b/drivers/net/wireless/a= th/ath12k/hal.c index b49a4add8828f..b07ab583675e7 100644 --- a/drivers/net/wireless/ath/ath12k/hal.c +++ b/drivers/net/wireless/ath/ath12k/hal.c @@ -1,7 +1,7 @@ // SPDX-License-Identifier: BSD-3-Clause-Clear /* * Copyright (c) 2018-2021 The Linux Foundation. All rights reserved. - * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights res= erved. + * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights res= erved. */ #include #include "hal_tx.h" diff --git a/drivers/net/wireless/ath/ath12k/hal.h b/drivers/net/wireless/a= th/ath12k/hal.h index 66035a787c728..fc47e7e6b498a 100644 --- a/drivers/net/wireless/ath/ath12k/hal.h +++ b/drivers/net/wireless/ath/ath12k/hal.h @@ -1,7 +1,7 @@ /* SPDX-License-Identifier: BSD-3-Clause-Clear */ /* * Copyright (c) 2018-2021 The Linux Foundation. All rights reserved. - * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights res= erved. + * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights res= erved. */ =20 #ifndef ATH12K_HAL_H diff --git a/drivers/net/wireless/ath/ath12k/hal_rx.c b/drivers/net/wireles= s/ath/ath12k/hal_rx.c index ee61a6462fdcf..4d1b89cdffe12 100644 --- a/drivers/net/wireless/ath/ath12k/hal_rx.c +++ b/drivers/net/wireless/ath/ath12k/hal_rx.c @@ -1,7 +1,7 @@ // SPDX-License-Identifier: BSD-3-Clause-Clear /* * Copyright (c) 2018-2021 The Linux Foundation. All rights reserved. - * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights res= erved. + * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights res= erved. */ =20 #include "debug.h" diff --git a/drivers/net/wireless/ath/ath12k/hif.h b/drivers/net/wireless/a= th/ath12k/hif.h index 54490cdb63a1b..4cbf9b5c04b9c 100644 --- a/drivers/net/wireless/ath/ath12k/hif.h +++ b/drivers/net/wireless/ath/ath12k/hif.h @@ -1,7 +1,7 @@ /* SPDX-License-Identifier: BSD-3-Clause-Clear */ /* * Copyright (c) 2019-2021 The Linux Foundation. All rights reserved. - * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights res= erved. + * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights res= erved. */ =20 #ifndef ATH12K_HIF_H diff --git a/drivers/net/wireless/ath/ath12k/hw.c b/drivers/net/wireless/at= h/ath12k/hw.c index c1dcdd849f9d6..ba7720f760c55 100644 --- a/drivers/net/wireless/ath/ath12k/hw.c +++ b/drivers/net/wireless/ath/ath12k/hw.c @@ -1,7 +1,7 @@ // SPDX-License-Identifier: BSD-3-Clause-Clear /* * Copyright (c) 2018-2021 The Linux Foundation. All rights reserved. - * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights res= erved. + * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights res= erved. */ =20 #include diff --git a/drivers/net/wireless/ath/ath12k/hw.h b/drivers/net/wireless/at= h/ath12k/hw.h index e6c4223c283c3..0b0b2a4f70f28 100644 --- a/drivers/net/wireless/ath/ath12k/hw.h +++ b/drivers/net/wireless/ath/ath12k/hw.h @@ -1,7 +1,7 @@ /* SPDX-License-Identifier: BSD-3-Clause-Clear */ /* * Copyright (c) 2018-2021 The Linux Foundation. All rights reserved. - * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights res= erved. + * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights res= erved. */ =20 #ifndef ATH12K_HW_H diff --git a/drivers/net/wireless/ath/ath12k/mac.c b/drivers/net/wireless/a= th/ath12k/mac.c index 6563772b84307..a8a71478baea8 100644 --- a/drivers/net/wireless/ath/ath12k/mac.c +++ b/drivers/net/wireless/ath/ath12k/mac.c @@ -1,7 +1,7 @@ // SPDX-License-Identifier: BSD-3-Clause-Clear /* * Copyright (c) 2018-2021 The Linux Foundation. All rights reserved. - * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights res= erved. + * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights res= erved. */ =20 #include diff --git a/drivers/net/wireless/ath/ath12k/mac.h b/drivers/net/wireless/a= th/ath12k/mac.h index 7b16b70df4fa8..ec1be11cce7fc 100644 --- a/drivers/net/wireless/ath/ath12k/mac.h +++ b/drivers/net/wireless/ath/ath12k/mac.h @@ -1,7 +1,7 @@ /* SPDX-License-Identifier: BSD-3-Clause-Clear */ /* * Copyright (c) 2018-2021 The Linux Foundation. All rights reserved. - * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights res= erved. + * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights res= erved. */ =20 #ifndef ATH12K_MAC_H diff --git a/drivers/net/wireless/ath/ath12k/mhi.c b/drivers/net/wireless/a= th/ath12k/mhi.c index f83d3e09ae366..380328fa2822e 100644 --- a/drivers/net/wireless/ath/ath12k/mhi.c +++ b/drivers/net/wireless/ath/ath12k/mhi.c @@ -1,7 +1,7 @@ // SPDX-License-Identifier: BSD-3-Clause-Clear /* * Copyright (c) 2020-2021 The Linux Foundation. All rights reserved. - * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights res= erved. + * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights res= erved. */ =20 #include diff --git a/drivers/net/wireless/ath/ath12k/pci.c b/drivers/net/wireless/a= th/ath12k/pci.c index fae5dfd6e9d70..58cd678555964 100644 --- a/drivers/net/wireless/ath/ath12k/pci.c +++ b/drivers/net/wireless/ath/ath12k/pci.c @@ -1,7 +1,7 @@ // SPDX-License-Identifier: BSD-3-Clause-Clear /* * Copyright (c) 2019-2021 The Linux Foundation. All rights reserved. - * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights res= erved. + * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights res= erved. */ =20 #include diff --git a/drivers/net/wireless/ath/ath12k/pci.h b/drivers/net/wireless/a= th/ath12k/pci.h index 0f24fd9395cd9..9a17a7dcdd6a6 100644 --- a/drivers/net/wireless/ath/ath12k/pci.h +++ b/drivers/net/wireless/ath/ath12k/pci.h @@ -1,7 +1,7 @@ /* SPDX-License-Identifier: BSD-3-Clause-Clear */ /* * Copyright (c) 2019-2021 The Linux Foundation. All rights reserved. - * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights res= erved. + * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights res= erved. */ #ifndef ATH12K_PCI_H #define ATH12K_PCI_H diff --git a/drivers/net/wireless/ath/ath12k/peer.h b/drivers/net/wireless/= ath/ath12k/peer.h index c6edb24cbedd8..7b3500b5c8c20 100644 --- a/drivers/net/wireless/ath/ath12k/peer.h +++ b/drivers/net/wireless/ath/ath12k/peer.h @@ -1,7 +1,7 @@ /* SPDX-License-Identifier: BSD-3-Clause-Clear */ /* * Copyright (c) 2018-2021 The Linux Foundation. All rights reserved. - * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights res= erved. + * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights res= erved. */ =20 #ifndef ATH12K_PEER_H diff --git a/drivers/net/wireless/ath/ath12k/qmi.c b/drivers/net/wireless/a= th/ath12k/qmi.c index b2db0436bdde6..87de25b87196d 100644 --- a/drivers/net/wireless/ath/ath12k/qmi.c +++ b/drivers/net/wireless/ath/ath12k/qmi.c @@ -1,7 +1,7 @@ // SPDX-License-Identifier: BSD-3-Clause-Clear /* * Copyright (c) 2018-2021 The Linux Foundation. All rights reserved. - * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights res= erved. + * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights res= erved. */ =20 #include diff --git a/drivers/net/wireless/ath/ath12k/qmi.h b/drivers/net/wireless/a= th/ath12k/qmi.h index 15944f5f33ab0..4c1ba3196a403 100644 --- a/drivers/net/wireless/ath/ath12k/qmi.h +++ b/drivers/net/wireless/ath/ath12k/qmi.h @@ -1,7 +1,7 @@ /* SPDX-License-Identifier: BSD-3-Clause-Clear */ /* * Copyright (c) 2018-2021 The Linux Foundation. All rights reserved. - * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights res= erved. + * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights res= erved. */ =20 #ifndef ATH12K_QMI_H diff --git a/drivers/net/wireless/ath/ath12k/reg.c b/drivers/net/wireless/a= th/ath12k/reg.c index a2645ccae94aa..32bdefeccc245 100644 --- a/drivers/net/wireless/ath/ath12k/reg.c +++ b/drivers/net/wireless/ath/ath12k/reg.c @@ -1,7 +1,7 @@ // SPDX-License-Identifier: BSD-3-Clause-Clear /* * Copyright (c) 2018-2021 The Linux Foundation. All rights reserved. - * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights res= erved. + * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights res= erved. */ #include #include "core.h" diff --git a/drivers/net/wireless/ath/ath12k/reg.h b/drivers/net/wireless/a= th/ath12k/reg.h index 56d009a472343..5b25b603eb404 100644 --- a/drivers/net/wireless/ath/ath12k/reg.h +++ b/drivers/net/wireless/ath/ath12k/reg.h @@ -1,7 +1,7 @@ /* SPDX-License-Identifier: BSD-3-Clause-Clear */ /* * Copyright (c) 2019-2021 The Linux Foundation. All rights reserved. - * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights res= erved. + * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights res= erved. */ =20 #ifndef ATH12K_REG_H diff --git a/drivers/net/wireless/ath/ath12k/rx_desc.h b/drivers/net/wirele= ss/ath/ath12k/rx_desc.h index bfa87cb8d0213..d2cd11e0e2462 100644 --- a/drivers/net/wireless/ath/ath12k/rx_desc.h +++ b/drivers/net/wireless/ath/ath12k/rx_desc.h @@ -1,7 +1,7 @@ /* SPDX-License-Identifier: BSD-3-Clause-Clear */ /* * Copyright (c) 2018-2021 The Linux Foundation. All rights reserved. - * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights res= erved. + * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights res= erved. */ #ifndef ATH12K_RX_DESC_H #define ATH12K_RX_DESC_H diff --git a/drivers/net/wireless/ath/ath12k/wmi.c b/drivers/net/wireless/a= th/ath12k/wmi.c index d217b70a7a8fb..d308a0e7f1871 100644 --- a/drivers/net/wireless/ath/ath12k/wmi.c +++ b/drivers/net/wireless/ath/ath12k/wmi.c @@ -1,7 +1,7 @@ // SPDX-License-Identifier: BSD-3-Clause-Clear /* * Copyright (c) 2018-2021 The Linux Foundation. All rights reserved. - * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights res= erved. + * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights res= erved. */ #include #include --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 19DBF132470; Sun, 24 Mar 2024 23:04: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=1711321444; cv=none; b=edZG9pXgm8JObmIIwujqI46D99o0xTgtlQbp1e1YeECmckkYlaYVLc+jCFr30UtsGHga0ZujHdiifCc07H3f7nCJXq7xT4b6qq2ysFbnxlNJKhpNVQpZALdHZVaRSJX6JeE1r+w4sgag5tdQttfrhBq9a3I+ezsHA4gbupxMC3I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321444; c=relaxed/simple; bh=lsYYeOrhR1oyBLeIwx6r6ZLSnggLu2E8GhkRw4c45lM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=VJLpFh3hCh3ABMUEQUAQYuClIU+F6V7TbE6TXIDnlrMipOx6by+q24jgXYUWjO1MAxuP6tAHNgMckf0vv2WTH07Xe3DENM0tf9hiWaskhU8T+RlD6fZi2/cCVUhaG1HljWZsRopqBftwm/kRXDiGkr7iPAfzbomYjx62mOmQFVg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=JM8NIkTr; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="JM8NIkTr" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 423EAC43394; Sun, 24 Mar 2024 23:04:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321443; bh=lsYYeOrhR1oyBLeIwx6r6ZLSnggLu2E8GhkRw4c45lM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=JM8NIkTraPi661r3aeLGtDKvs8Ch2dPBYF6lEebAytGRMvYf09UbLhiLmnjSFuwtp ZZ7xr12j3kzNZi3sexmloCO6NICj8OJXOJHvCoqcMRyI29DuzIIUTbt4ScS6jUxVB+ Aa3c1Fw21QpIEwt3yrGFRg2SiqzqUolMUYkyRMj/f+cBRLInMWEg8ptzqs8VmyfDzx p2K6FV1DqheutotDuZZR003ROr+baQ6D3yqZZ5HqofTe73wtdNuJnEGhbrtNwl7DyN XO2yXRQQSVz0ev4PARln4pz/FTRQH+GpalatLMC3u6dBnyLF4kGvnwwrA1XgbuAzsC MhUF0REbTwuRw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Raj Kumar Bhagat , Jeff Johnson , Kalle Valo , Sasha Levin Subject: [PATCH 6.6 167/638] wifi: ath12k: fix fetching MCBC flag for QCN9274 Date: Sun, 24 Mar 2024 18:53:24 -0400 Message-ID: <20240324230116.1348576-168-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Raj Kumar Bhagat [ Upstream commit 902700d55d4a4522bb3eb4ef94f752a19c42230a ] In QCN9274, RX packet's multicast and broadcast(MCBC) flag is fetched from RX descriptor's msdu_end info5 member but it is not correct for QCN9274. Due to this with encryption, ARP request packet is wrongly marked as MCBC packet and it is sent to mac80211 without setting RX_FLAG_PN_VALIDATED & RX_FLAG_DECRYPTED flag. This results in packet getting dropped in mac80211. Hence ping initiated from station to AP fails. Fix this by fetching correct MCBC flag in case of QCN9274. For QC9274 MCBC flag should be fetched from RX descriptor's mpdu_start info6 member. Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.1.1-00188-QCAHKSWPL_SILICONZ-1 Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.0.1-00029-QCAHKSWPL_SILICONZ-1 Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SIL= ICONZ-3 Fixes: 8f04852e90cb ("wifi: ath12k: Use msdu_end to check MCBC") Signed-off-by: Raj Kumar Bhagat Acked-by: Jeff Johnson Signed-off-by: Kalle Valo Link: https://msgid.link/20240129065724.2310207-5-quic_rajkbhag@quicinc.com Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/net/wireless/ath/ath12k/hal.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/net/wireless/ath/ath12k/hal.c b/drivers/net/wireless/a= th/ath12k/hal.c index b07ab583675e7..0b5a91ab0df49 100644 --- a/drivers/net/wireless/ath/ath12k/hal.c +++ b/drivers/net/wireless/ath/ath12k/hal.c @@ -1,7 +1,7 @@ // SPDX-License-Identifier: BSD-3-Clause-Clear /* * Copyright (c) 2018-2021 The Linux Foundation. All rights reserved. - * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights res= erved. + * Copyright (c) 2021-2024 Qualcomm Innovation Center, Inc. All rights res= erved. */ #include #include "hal_tx.h" @@ -449,8 +449,8 @@ static u8 *ath12k_hw_qcn9274_rx_desc_mpdu_start_addr2(s= truct hal_rx_desc *desc) =20 static bool ath12k_hw_qcn9274_rx_desc_is_da_mcbc(struct hal_rx_desc *desc) { - return __le16_to_cpu(desc->u.qcn9274.msdu_end.info5) & - RX_MSDU_END_INFO5_DA_IS_MCBC; + return __le32_to_cpu(desc->u.qcn9274.mpdu_start.info6) & + RX_MPDU_START_INFO6_MCAST_BCAST; } =20 static void ath12k_hw_qcn9274_rx_desc_get_dot11_hdr(struct hal_rx_desc *de= sc, --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 30CEF132489; Sun, 24 Mar 2024 23:04: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=1711321444; cv=none; b=D68HuepMNMRHhWOsIZtT1Q+XpWzT5E9iEJYg/3uQN/sO7XbHDY1JI/vLkM94aoqUB/+nmm7Iqc/v/MQv+GYSEsPqNw6FGJus9UZtPvtHd9befG5FCOFrNNetsmwk53VPr85y35Q2zH6N61yHONbUihUHJJj/AD/FUZxdZPs4V7w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321444; c=relaxed/simple; bh=KsprVximj/NVPgVKqZ5LbfOUeQ0+9cSinKnpOFwlChA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=I3Xk7y0Z5WfYWvDeoZhPc7mkPbg8ITbaiEu7B+xcacV4UZ5ACh/+je2wBFLNTynKW4kAc4VkGrRgJHUGPk2dx5Mo6Musbi7MIpeOi1JTG45frsIBG7im0TdFVWlPnpxQM5hbDv8Pch3L+Ta2DUq+oGIrfM1fUo2NcGjjZKPA8Is= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=gAUlauPc; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="gAUlauPc" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4048BC433C7; Sun, 24 Mar 2024 23:04:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321444; bh=KsprVximj/NVPgVKqZ5LbfOUeQ0+9cSinKnpOFwlChA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=gAUlauPcOOu25UoewHj1kq7zm1qmXVhyzx6/Myip0thFsaa/KK5HK1krMbkfGfRLA oZ1hNBmX+dmC0ceONl9ZOtYiY+QoM3bE0Bte2Z3qwEpieA8tyMzQ5LQawsQ+5VvB9r 8niIkafk3LzyuDvM15qQXTOR8ywPDY44+XF+vJvAY4TAFU+CK5dWBjsh3OhOibBwrL XAweLhnEDznhNhxbNAvM1t9LTPK6jM1ur/5MCA0I4kscvsm/jOAYzPIIxACtfN6W6q JnIHjYbBAjzLDMGw8lpV1XHLts4RNw3dlu10d4omV8fE5Ni/a43xLmQN+XM0yTNn8i 8r4YPlX250xBQ== 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 6.6 168/638] wifi: iwlwifi: mvm: report beacon protection failures Date: Sun, 24 Mar 2024 18:53:25 -0400 Message-ID: <20240324230116.1348576-169-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 82b4d4d01097a..bac0228b8c866 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c @@ -282,6 +282,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; @@ -303,9 +304,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 && @@ -314,13 +321,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 @@ -329,11 +329,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]; @@ -347,7 +347,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 */ @@ -355,6 +355,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 33FD0132C1A; Sun, 24 Mar 2024 23:04: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=1711321446; cv=none; b=rCj52g877/Ek5LgYHr3C4z+zcdpPGsvVI+1XkLmaZboE0i+rS7s2zRh/fWnBMrjfCfvONKoOV/cKciL6N1fVDr0E/oGmu150N0tl1/Fb2g+fL4hYSEUlHrNj7X/NFJ+p06Ol3ffDEpoVbq8PE0ucCIIPMwDFL7qVdLjn1hX6gNw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321446; c=relaxed/simple; bh=3NJO/MHNGf2S5Gtqb+H+tZFf4q92FhwDuxwLBOacOzc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ub72COkZ+TrDyKvbbCRd8JMW9XJx3c/T6xLXG60jVLMpByHRlhv5kbJbmENiB5Ft4eYjDiostjzASLy5or2KPZhDEjyUJtNIrKlFshZndMjOSgyXehtEletb0RSy7PsJxoRBkODzk/gapT4IvCDh5d1D/cdhtb5L00F3Jncl+cA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ZyvBL+wj; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ZyvBL+wj" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 58D83C43394; Sun, 24 Mar 2024 23:04:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321445; bh=3NJO/MHNGf2S5Gtqb+H+tZFf4q92FhwDuxwLBOacOzc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ZyvBL+wj0dAs8jwtTMxDN975uNS2NqjlGlUXP+zPPg95RUUqwu/TGqQmG1FN744wI sfvDV0gf+eXzWYqEgsRJEbaw9o9wzGcfEMCQPLwrhCueS+E3igLRT2NMwVAxP2e/xl 7ls4s5Pg2AaODV+JRj5/XTynxNSPBtCtt2I3E3P2pLmEGZaGc+eGOWa+NOOFW/m4kI GsrnSndGQJ/fUg1qCNKIpi9/DwutvN+roz/akjIRD4S0cuwsUCM7vie92DDsI1Tv98 c02NysQEO1i2aVt/1EGW5LL5JjV4frIlNzn3jZDIqtSeLLxqmRg1AixQ0hJulnvF3d bJcQNDCK1dkjw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Johannes Berg , Gregory Greenman , Miri Korenblit , Sasha Levin Subject: [PATCH 6.6 169/638] wifi: iwlwifi: dbg-tlv: ensure NUL termination Date: Sun, 24 Mar 2024 18:53:26 -0400 Message-ID: <20240324230116.1348576-170-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 1df60d51905b3..a97ed7cbe4d14 100644 --- a/drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c +++ b/drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c @@ -103,6 +103,12 @@ static int iwl_dbg_tlv_alloc_debug_info(struct iwl_tra= ns *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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 386122036E2; Sun, 24 Mar 2024 23:04: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=1711321447; cv=none; b=Dy5S2xWUaPaXNNx9PfMSGLpdGpQZy4KAx//pQhYqLSUfvJTJGDiV2tkCvCkryFEcz5yvKg3ZEE3jXSapaRaNO0Va6EgtZVVg9FqLE+CXCyZeLYRG3vXwABBGgJ1ZOaWzipXKXM6SsgNZDDyuRerzZC6SiVKniSTPH1FBhaFnLDc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321447; c=relaxed/simple; bh=SGO2kyJXIwyHGUHYTB8Mekda7zhCYJ9gH/C8Rm4iJRE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZCJT40jzx+ZYWiTHqUAhXAP8hf5DKNZGiVGBA3BOX0x19HfIfUQz2+pDbQC+lXTFd7anMlkO5JHj4AUvMmG8w/wqyBn8gI6S/b4jWwvg4zBQzA6v0qO7JXrZH7orctRu+IF9HnbRDcN9jtonb7NAYY/sZsmUZ4JXQqeBJ+G59oo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=P6Pgxw/p; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="P6Pgxw/p" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5D6FEC43390; Sun, 24 Mar 2024 23:04:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321446; bh=SGO2kyJXIwyHGUHYTB8Mekda7zhCYJ9gH/C8Rm4iJRE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=P6Pgxw/pM5sjEf+50D0Yimq29buhkw2/bf8Qzop95fqth2K6Hz075UpbzxeIIL2iX Z5BymbA/v0iUKSok/CsrErcCrS+73zLzJNhKG7hCFEKTmXeK1fJmiJVTgcWHApSVV9 VE+a9XnDDUC5UdGmSwD708W7VtIPKihKsJiYEefkO7IaSuspAJBBiElHSq6PnapqoA /WNUG0AQd8c0Mcyx8sOhxI2sBubDA+Z+2xXQWxOjIc8j99h2FxKNCr2C15lSff1B18 6hwBBLX7OTFpSqRsJgxeNbGSgl9lpQnHCCOzDPVruQ32Nk9WMmOJOjqDXeeUzRg1A3 tSOL+GSx6Mzwg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Johannes Berg , Miri Korenblit , Gregory Greenman Gregory , Sasha Levin Subject: [PATCH 6.6 170/638] wifi: iwlwifi: acpi: fix WPFC reading Date: Sun, 24 Mar 2024 18:53:27 -0400 Message-ID: <20240324230116.1348576-171-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 296f3e926716ded8dc29e349d2b042b362f96515 ] The code reading the WPFC table needs to take into account the domain type (first element in the package), shouldn't leak the memory if it fails, and has a bad comment. Fix all these issues. Fixes: c4c954547755 ("wifi: iwlwifi: implement WPFC ACPI table loading") Reported-by: Miri Korenblit Signed-off-by: Johannes Berg Reviewed-by: Gregory Greenman Gregory Link: https://msgid.link/20240128084842.2afeb476b62d.I200568dc42a277e21c12b= e99d5aaa39b009d45da@changeid Signed-off-by: Johannes Berg Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/net/wireless/intel/iwlwifi/fw/acpi.c | 10 +++++----- drivers/net/wireless/intel/iwlwifi/fw/acpi.h | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/fw/acpi.c b/drivers/net/wir= eless/intel/iwlwifi/fw/acpi.c index 359397a617153..564eeb002e8ed 100644 --- a/drivers/net/wireless/intel/iwlwifi/fw/acpi.c +++ b/drivers/net/wireless/intel/iwlwifi/fw/acpi.c @@ -1268,7 +1268,6 @@ void iwl_acpi_get_phy_filters(struct iwl_fw_runtime *= fwrt, if (IS_ERR(data)) return; =20 - /* try to read wtas table revision 1 or revision 0*/ wifi_pkg =3D iwl_acpi_get_wifi_pkg(fwrt->dev, data, ACPI_WPFC_WIFI_DATA_SIZE, &tbl_rev); @@ -1278,13 +1277,14 @@ void iwl_acpi_get_phy_filters(struct iwl_fw_runtime= *fwrt, if (tbl_rev !=3D 0) goto out_free; =20 - BUILD_BUG_ON(ARRAY_SIZE(filters->filter_cfg_chains) !=3D ACPI_WPFC_WIFI_D= ATA_SIZE); + BUILD_BUG_ON(ARRAY_SIZE(filters->filter_cfg_chains) !=3D + ACPI_WPFC_WIFI_DATA_SIZE - 1); =20 for (i =3D 0; i < ARRAY_SIZE(filters->filter_cfg_chains); i++) { - if (wifi_pkg->package.elements[i].type !=3D ACPI_TYPE_INTEGER) - return; + if (wifi_pkg->package.elements[i + 1].type !=3D ACPI_TYPE_INTEGER) + goto out_free; tmp.filter_cfg_chains[i] =3D - cpu_to_le32(wifi_pkg->package.elements[i].integer.value); + cpu_to_le32(wifi_pkg->package.elements[i + 1].integer.value); } =20 IWL_DEBUG_RADIO(fwrt, "Loaded WPFC filter config from ACPI\n"); diff --git a/drivers/net/wireless/intel/iwlwifi/fw/acpi.h b/drivers/net/wir= eless/intel/iwlwifi/fw/acpi.h index c36c62d6414de..8784e50407be8 100644 --- a/drivers/net/wireless/intel/iwlwifi/fw/acpi.h +++ b/drivers/net/wireless/intel/iwlwifi/fw/acpi.h @@ -56,7 +56,7 @@ #define ACPI_EWRD_WIFI_DATA_SIZE_REV2 ((ACPI_SAR_PROFILE_NUM - 1) * \ ACPI_SAR_NUM_CHAINS_REV2 * \ ACPI_SAR_NUM_SUB_BANDS_REV2 + 3) -#define ACPI_WPFC_WIFI_DATA_SIZE 4 /* 4 filter config words */ +#define ACPI_WPFC_WIFI_DATA_SIZE 5 /* domain and 4 filter config words */ =20 /* revision 0 and 1 are identical, except for the semantics in the FW */ #define ACPI_GEO_NUM_BANDS_REV0 2 --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 22E182036F1; Sun, 24 Mar 2024 23:04: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=1711321448; cv=none; b=Nc8s/OYUWOYkZetIf0gSjTTZhQzNVQaO6ov43qVVf9NXsBPou4lXMS5Jn9L3wQtVr5UR6Z2a7XO6HlP/7JXo7ZcehGwAPLqRnOU8+UObJe1slowjy1s0SYxb4mAYcWDV7cFvLPpax/5wlDYReykR73Xj3Fb7C+UNuOPr5q72y/4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321448; c=relaxed/simple; bh=43WdgCSPZo0+IeFhl/e2013WXv4p2treUau15qmUiq8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=e1SgmwKo6BhLgHfWgF0tL1Zf/UyKJAN56etL9Gv2uM9YHqNZa/4/QNgZyjF04PBIdNNSHLZgKGUOnd1Hp8nk5nicpmOwCAKFCTdjB9VVQeuX5LJBpfpuV/WSK8ufTmG/KkTH6ISCnA21V5Le4qkq9ENPfq/cgae41JxQcR6MKyU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=NvckwecM; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="NvckwecM" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5AC5FC43394; Sun, 24 Mar 2024 23:04:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321447; bh=43WdgCSPZo0+IeFhl/e2013WXv4p2treUau15qmUiq8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=NvckwecM8vCYOHxExzH6YgSxVAI5KCSVZcxZ9VtJjv4ptrSaaRsW4gKwsy9gMHOkS 15SZ7Edvfp2eqP420UjLnRsRwyX2sxjvzWngMnbwZIDEKqpdWdHrG1uusqbJ48QOUJ hccCv8w/K/SO9odDPvosGqiUfh9bzLe9V3TD1RXu6JJaxOG26sVgc2dQ2vVWdLdesP ihXsOGtDpmD1zhR11kTd9630kqJyKgMvyh4E+Pfbq+C3i3AV388EpjFEfNyNc4yzUk qxtQxrKarIHa8S8IsFsx8HrFkf+GcLxYlXRNFqxgLiPGF8cqlrkvfDJQF0p5PJU2lW /ptbX2N1bYQ7Q== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Johannes Berg , Miri Korenblit , Sasha Levin Subject: [PATCH 6.6 171/638] wifi: iwlwifi: mvm: initialize rates in FW earlier Date: Sun, 24 Mar 2024 18:53:28 -0400 Message-ID: <20240324230116.1348576-172-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 d3b2c6c65bfd3b9616084e91bd0d402964ea7cef ] When connecting to an AP, we currently initialize the rate control only after associating. Since we now use firmware to assign rates to auth/assoc frames rather than using the data in the station and the firmware doesn't know, they're transmitted using low mandatory rates. However, if the AP advertised only higher supported rates we want to use them to be nicer (it still must receive mandatory rates though), so send the information to the firmware earlier to have it know about it and be able to use it. Fixes: 499d02790495 ("wifi: iwlwifi: Use FW rate for non-data frames") Signed-off-by: Johannes Berg Signed-off-by: Miri Korenblit Link: https://msgid.link/20240128084842.ed7ab1c859c2.I4b4d4fc3905c8d8470fc0= fee4648f25c950c9bb7@changeid Signed-off-by: Johannes Berg Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c b/drivers/ne= t/wireless/intel/iwlwifi/mvm/mac80211.c index 0aeca64725da6..42da8e94900cf 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c @@ -3677,6 +3677,19 @@ iwl_mvm_sta_state_notexist_to_none(struct iwl_mvm *m= vm, if (vif->type =3D=3D NL80211_IFTYPE_STATION && !sta->tdls) mvmvif->ap_sta =3D sta; =20 + /* + * Initialize the rates here already - this really tells + * the firmware only what the supported legacy rates are + * (may be) since it's initialized already from what the + * AP advertised in the beacon/probe response. This will + * allow the firmware to send auth/assoc frames with one + * of the supported rates already, rather than having to + * use a mandatory rate. + * If we're the AP, we'll just assume mandatory rates at + * this point, but we know nothing about the STA anyway. + */ + iwl_mvm_rs_rate_init_all_links(mvm, vif, sta); + return 0; } =20 --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2AF0F2036FB; Sun, 24 Mar 2024 23:04: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=1711321449; cv=none; b=J7l5PcDGFnNzroa+MN59PtlSl0IJ66SN46l1JbEGA2xDg9loc85PAzNnoRp19F7UFa7RFBZLvd72bG0sXv6MttJ5kAcC14vtwIacIVVXnc6acM5J13SSDPCaZQZUmxAQpWhXoSGVodtsrfZJFaq5pwITi1Nq+DwSJUV/a8CulJk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321449; c=relaxed/simple; bh=1Cj3/gyuMtG/xDvzw0tRMJJxRzza3/X2Qgw+2sze/rg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=etEuRs6q7ghAfy28ql/deKz5ydAkDivxytc+9iRititUr1NwWuhZkBbikupiCSwMbfzDDHW/Pyfelp+UFieWs56KhwO0HgYzXFTS1UndiqvNEh956OfS2X6/+wBWn64FM9IGIDMVeJWC6Yvhy5Lty+ren8r8QA2rUG/hRmu1ggo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=IUBUiJEh; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="IUBUiJEh" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 433ABC433F1; Sun, 24 Mar 2024 23:04:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321448; bh=1Cj3/gyuMtG/xDvzw0tRMJJxRzza3/X2Qgw+2sze/rg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=IUBUiJEhrAQqBHRJrR4iRFriQe5SK1xcLaez0aKU4aP/kjK016tdQdtxn0AhwuOKW qq9G3fmiHWJyyM0feKVE8wlYtkLzfHD4c8UQXMuqUo3uAVwEBGJhSpSYu98zE5kYLE R89R1HQNFRwuCNmxwJDn2wRy2bZ3aj/PVgiOA18RFL6ytcd1jBTqsqAlltOlk1z4NT LTGSB7thZPllnKnoCS/CgdmkMySXqqeD0wkeG2N13hLi4eXApRVbK2ExtF/nyM8bkQ jiVElar2qfhaiDGexLOF/LYvyAFxM+UdUVSYwFHNtY54NYnfKkr3RSgyn0KJt4B9OQ eVnFaqSZEbIfQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Miri Korenblit , Gregory Greenman , Johannes Berg , Sasha Levin Subject: [PATCH 6.6 172/638] wifi: iwlwifi: fix EWRD table validity check Date: Sun, 24 Mar 2024 18:53:29 -0400 Message-ID: <20240324230116.1348576-173-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 564eeb002e8ed..2cda1dcfd059a 100644 --- a/drivers/net/wireless/intel/iwlwifi/fw/acpi.c +++ b/drivers/net/wireless/intel/iwlwifi/fw/acpi.c @@ -767,7 +767,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 198672036F2; Sun, 24 Mar 2024 23:04: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=1711321450; cv=none; b=fBgYAbxsl2c6tPn4ttAeVUzVATTE+7jttB4ibFImjvz5NBjFJqlaeQKmo3EB1rTfxupQFDPknS8gIzL1Qs14qp7lP6simrDJwOppirVvPIf7Gqn0LZygErs+loCQRMxfnbWr/2uf+AlSDdw8RSZwuu6Rdk8Mi3svXi6+JartN2Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321450; c=relaxed/simple; bh=EAxgTCF44cVnF3Vp3veA+A0OsIW9qVRQPO4GdFZe8i0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Ar3EHmkemNfgpvioQKD2hsjMVFRxSLbal2oqM1FQBeAPk4YQQc8xG3zJAeEqNS9IvhKAyqSzsem0vjwO25UDjIoUfrOt/LiJwp6f5UsAIRz0BPuYMVeTXVFvWfJUX8eoH2BDTpHtxi64gUGBu5OX0GScBFsG9HrMOKq+Zog9ibw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=rsdsb9So; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="rsdsb9So" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4344CC43399; Sun, 24 Mar 2024 23:04:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321449; bh=EAxgTCF44cVnF3Vp3veA+A0OsIW9qVRQPO4GdFZe8i0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=rsdsb9SouxQFE4xt2azLLAwbsKrxU7dcjTABKRD5BtFltkCfBvIhyhjjdbK3m5fD+ HLPeAm82+MAEIRtToFEOyT5R0r5aCssqXciM6IQmajf3Ilp/v003ocJTRkXOje92wu a9aOp9ioJi35qU1ufA/glPC+JOXXobYIzmWgHkv0FN+A3zX7fOVX1m0JsVVg5N1Xi7 5YHotxDCWcdPmPEUOaAsNMvj7S6h5vMcGc8wA3OE0spyNp70g4S1eJ06gAVixyad8f RPfScPCXLYxINQfdofjESSjjvRG+X7bwAhqLF9GeV4/FDwqo5aMt01WJLW/JkX7eP8 5scyw+LzBWDZg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Johannes Berg , Gregory Greenman , Miri Korenblit , Sasha Levin Subject: [PATCH 6.6 173/638] wifi: iwlwifi: mvm: d3: fix IPN byte order Date: Sun, 24 Mar 2024 18:53:30 -0400 Message-ID: <20240324230116.1348576-174-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 0c769cb6b9f364423c255f117774c9ecd5bf23ea ] The IPN is reported by the firmware in 6 bytes little endian, but mac80211 expects big endian so it can do memcmp() on it. We used to store this as a u64 which was filled in the right way, but never used. When implementing that it's used, we changed it to just be 6 bytes, but lost the conversion. Add it back. Fixes: 04f78e242fff ("wifi: iwlwifi: mvm: Add support for IGTK in D3 resume= flow") Signed-off-by: Johannes Berg Reviewed-by: Gregory Greenman Signed-off-by: Miri Korenblit Link: https://msgid.link/20240129211905.138ed8a698e3.I1b66c386e45b539269642= 4ec636474bff86fd5ef@changeid Signed-off-by: Johannes Berg Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/net/wireless/intel/iwlwifi/mvm/d3.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/d3.c b/drivers/net/wire= less/intel/iwlwifi/mvm/d3.c index be2602d8c5bfa..dcda7fbb5a7a5 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/d3.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/d3.c @@ -2167,7 +2167,10 @@ static void iwl_mvm_convert_gtk_v3(struct iwl_wowlan= _status_data *status, static void iwl_mvm_convert_igtk(struct iwl_wowlan_status_data *status, struct iwl_wowlan_igtk_status *data) { + int i; + BUILD_BUG_ON(sizeof(status->igtk.key) < sizeof(data->key)); + BUILD_BUG_ON(sizeof(status->igtk.ipn) !=3D sizeof(data->ipn)); =20 if (!data->key_len) return; @@ -2179,7 +2182,10 @@ static void iwl_mvm_convert_igtk(struct iwl_wowlan_s= tatus_data *status, + WOWLAN_IGTK_MIN_INDEX; =20 memcpy(status->igtk.key, data->key, sizeof(data->key)); - memcpy(status->igtk.ipn, data->ipn, sizeof(data->ipn)); + + /* mac80211 expects big endian for memcmp() to work, convert */ + for (i =3D 0; i < sizeof(data->ipn); i++) + status->igtk.ipn[i] =3D data->ipn[sizeof(data->ipn) - i - 1]; } =20 static void iwl_mvm_parse_wowlan_info_notif(struct iwl_mvm *mvm, --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 16ACF132C1B; Sun, 24 Mar 2024 23:04: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=1711321451; cv=none; b=KZK8pt/DSg166v9d/+ZCo3BN+D8H8wuvkoUrv+PDrQyZocKTGPnOOqu9OdEdZ6eJqIljIXnKd3g4x4iZKjJYw+8iocJZNJqZo5SLQXfzPFuiTdVsQlWojxLu7CZV4P8gbhLz/eEpwDroqyRwuML7mf7vnsm6MnX4MroHnxAzbpU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321451; c=relaxed/simple; bh=PR4e4+tENh3LjRnzHYHnM5a0gYdn00lyatdQN8TvQLI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=KovMkpOotKiqvID7ND4oLhoesqsHH1ea700uY+CMqQEHBO1W752Y1mrJMW4Xw09a8+v1nosILVaKstWqndbvGpmfKpkxfdTRv6qoetwJKw33oa006cYs3zvbxwQfDnUFkRQTfgFqbHIVsMK6UrHv+3GrK7zq/OweGRP2s2MUCwI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Cbk1ws4d; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Cbk1ws4d" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3F571C433C7; Sun, 24 Mar 2024 23:04:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321450; bh=PR4e4+tENh3LjRnzHYHnM5a0gYdn00lyatdQN8TvQLI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Cbk1ws4dKcdqOs5AH0eGP1HVgHyM/9yCpIDIStioJ8LkwvXF9Qf8orwqCEU+AZsb9 DUYpeieOP0XUrHrEZkP5dP/Fo1rERMJrOYPxZQAuX846f3UfzhIXfNI58Ahx4ZIzH2 cP8P6dJZXvdCVVsWFIWB9CzWfO2+PK0Wgr8m1R+vFdbMFJGS4U+N7aaR2ujd+93B4P cZwveoqytHHJyuUzdkUzYfGGgejrwA3kSSyjwseUl+Tf1AkeH3XCMMq48d2XzfLu6i 6OGf8sAXq2u4tI9fLuXAH+ZNDGiJyX9GpGdkh9YNLHHhd6anCwA26SKPZT6OJNY+Yx xnfwZtL1D1VSA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Emmanuel Grumbach , Johannes Berg , Miri Korenblit , Sasha Levin Subject: [PATCH 6.6 174/638] wifi: iwlwifi: mvm: fix the TLC command after ADD_STA Date: Sun, 24 Mar 2024 18:53:31 -0400 Message-ID: <20240324230116.1348576-175-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Emmanuel Grumbach [ Upstream commit 0fcdf55fced7121c43fa576433986f1c04115b73 ] ADD_STA resets the link quality data inside the firmware. This is not supposed to happen and has been fixed for newer devices. For older devices (AX201 and down), this makes us send frames with rates that are not in the TLC table. Fixes: 5a86dcb4a908 ("wifi: iwlwifi: mvm: update station's MFP flag after a= ssociation") Signed-off-by: Emmanuel Grumbach Reviewed-by: Johannes Berg Signed-off-by: Miri Korenblit Link: https://msgid.link/20240129211905.1deca7eaff14.I597abd7aab36fdab4aa83= 11a48c98a3d5bd433ba@changeid Signed-off-by: Johannes Berg Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c b/drivers/ne= t/wireless/intel/iwlwifi/mvm/mac80211.c index 42da8e94900cf..ee6487af95f04 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c @@ -3781,13 +3781,17 @@ iwl_mvm_sta_state_assoc_to_authorized(struct iwl_mv= m *mvm, =20 mvm_sta->authorized =3D true; =20 - iwl_mvm_rs_rate_init_all_links(mvm, vif, sta); - /* MFP is set by default before the station is authorized. * Clear it here in case it's not used. */ - if (!sta->mfp) - return callbacks->update_sta(mvm, vif, sta); + if (!sta->mfp) { + int ret =3D callbacks->update_sta(mvm, vif, sta); + + if (ret) + return ret; + } + + iwl_mvm_rs_rate_init_all_links(mvm, vif, sta); =20 return 0; } --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 11819133420; Sun, 24 Mar 2024 23:04: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=1711321452; cv=none; b=kunmURJnWXics1rAJRPktNwGglhS/SdMtYrIJnw+XOosXq3+cBakufia+Ec0EKmIaYo7M1sTasiMmwv2AERGjCByqPZWhU+eJxvt1+zxfQZoW+T0lANsbyxNVgZn2wwqkTqfFF3N6nTyXa5awxqxhJGUliNQFK1YR9mD1iHuY3I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321452; c=relaxed/simple; bh=R5MgffQAqsovV9p+t6iCvXpyZJGJXls0j6QgS0aphW8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=GdKyntdK9TfF4KEpvud4jIW8VpPpG8goq4/Ix8/VA4dt/+zqzYOdmNv1LnEK+pOmIk74Ct9svKUphHkXmFggI6mJqvhw3t+6VBKPBYs2H8NWNPh5F1M99CPQ2HCL1u0y0dQ8w6WB4srmw2GfFOnRwQWrivJe9Uhlzyi15giAnfk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=OeYFv661; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="OeYFv661" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3D8FFC43394; Sun, 24 Mar 2024 23:04:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321450; bh=R5MgffQAqsovV9p+t6iCvXpyZJGJXls0j6QgS0aphW8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=OeYFv661/ftj6rJjwduF2Sc9MfvDd1RFxHiDZNUZzYDsXW9QiHO3ETH+fAN5FoiBJ sqrwNKQ5VA7OK+LCh5IAG9mGBo4lsIHb16G1hqAUDfQ0ZO89M7yhzkKB589tHQax3y IRH8wkRwBGbubWlhqsJqcaufnHOT9/1FyGqfim3t87wMGNNG7WMx7Ahfdm+E+Tw0+J CQxR4WGNmCXSYBIVRh2jfP48R01d2MmJdxcpVuTWkB3vsBR4b8DPlZ7XQCBMbYBo/t 1rp3Mg58WylZPRWHnPgMbzErUv0CCn7VEZw3NqcE/7PizC4Hb3Fl0DGrmifonlCa3M r+QQ3thmo2LpQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Miri Korenblit , Gregory Greenman , Johannes Berg , Sasha Levin Subject: [PATCH 6.6 175/638] wifi: iwlwifi: read BIOS PNVM only for non-Intel SKU Date: Sun, 24 Mar 2024 18:53:32 -0400 Message-ID: <20240324230116.1348576-176-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 c868a189ecfe8cc0b3173c2eaa7f0b659326c151 ] The driver is supposed to read the PNVM from BIOS only for non-Intel SKUs. For Intel SKUs the OEM ID will be 0. Read BIOS PNVM only when a non-Intel SKU is indicated. Fixes: b99e32cbfdf6 ("wifi: iwlwifi: Take loading and setting of pnvm image= out of parsing part") Signed-off-by: Miri Korenblit Reviewed-by: Gregory Greenman Link: https://msgid.link/20240131091413.3625cf1223d3.Ieffda5f506713b1c97938= 8dd7a0e1c1a0145cfca@changeid Signed-off-by: Johannes Berg Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/net/wireless/intel/iwlwifi/fw/pnvm.c | 30 ++++++++++++-------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/fw/pnvm.c b/drivers/net/wir= eless/intel/iwlwifi/fw/pnvm.c index 650e4bde9c17b..56ee0ceed78ab 100644 --- a/drivers/net/wireless/intel/iwlwifi/fw/pnvm.c +++ b/drivers/net/wireless/intel/iwlwifi/fw/pnvm.c @@ -255,21 +255,27 @@ static u8 *iwl_get_pnvm_image(struct iwl_trans *trans= _p, size_t *len) struct pnvm_sku_package *package; u8 *image =3D NULL; =20 - /* First attempt to get the PNVM from BIOS */ - package =3D iwl_uefi_get_pnvm(trans_p, len); - if (!IS_ERR_OR_NULL(package)) { - if (*len >=3D sizeof(*package)) { - /* we need only the data */ - *len -=3D sizeof(*package); - image =3D kmemdup(package->data, *len, GFP_KERNEL); + /* Get PNVM from BIOS for non-Intel SKU */ + if (trans_p->sku_id[2]) { + package =3D iwl_uefi_get_pnvm(trans_p, len); + if (!IS_ERR_OR_NULL(package)) { + if (*len >=3D sizeof(*package)) { + /* we need only the data */ + *len -=3D sizeof(*package); + image =3D kmemdup(package->data, + *len, GFP_KERNEL); + } + /* + * free package regardless of whether kmemdup + * succeeded + */ + kfree(package); + if (image) + return image; } - /* free package regardless of whether kmemdup succeeded */ - kfree(package); - if (image) - return image; } =20 - /* If it's not available, try from the filesystem */ + /* If it's not available, or for Intel SKU, try from the filesystem */ if (iwl_pnvm_get_from_fs(trans_p, &image, len)) return NULL; return image; --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EDFC513341E; Sun, 24 Mar 2024 23:04: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=1711321452; cv=none; b=q48KCmwIZMhw7t8fXl2yOKDj7NtWcumvrQJ8md1SP5uuzqJZsL1mrm7W5saV9d2ZvlZvtGdJW8ABz8SMUsZjgOy0eBqv4yO4nIUeuZpxEKOzO7R4pDhKkUo/vCysiwjSPS7OSHZ8W7MwpDaaiPZ1WMvFoh2QqHr0Aqyd4sbODQs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321452; c=relaxed/simple; bh=daAUKUWKXLE8XmGMuJAl8BDTZCAjNe9klaEnuvYRuLE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=T14gvnCHDETZUrLYRddKGqxEA4QZTMEc54yKIox+U0gnIR63CEa60l0lAk8ReHMXPASOyn4XE6MQGA4A89aqphOkEYuvG6ZPQLewYPrJx3r9njPURQga4CmCqzb1gttSWyTK4hQhLloycMPWvkHhHaFxGU5fcg7SUVoYiVcGRB4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=J+RAbYNE; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="J+RAbYNE" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 38F76C43390; Sun, 24 Mar 2024 23:04:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321451; bh=daAUKUWKXLE8XmGMuJAl8BDTZCAjNe9klaEnuvYRuLE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=J+RAbYNEpV9KkBZizGGBMaGNt6qP66VvSR8oi7nrF922Cp56SUiZtb99nht3aQfVt M8wdfHjs6eAKmRM82BScBFbtwcHlfl8Au6kWBQtyVIbkYiQJgMW7hC2wVEKm8/VjsT 38R19KvIOiysGXZDvgkc0rwev8FrCsOCUAuomjPTXumw5vvpLOTEh3sqJhGJItS/b0 yx4KSIy8UZzeUReVds5eh2+3A9gtsnkLmiWQYwDoLzVVDaNsqxtjNjsI3ElxGpSXGV +VAOotb9zWZLxlTuhh41hXw54AZUBknWcaNL9bg1/9TiTSwz+QCKvqDAndrfjeXkkC 11smKLaWJp1PQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Martin Kaiser , Bartosz Golaszewski , Sasha Levin Subject: [PATCH 6.6 176/638] gpio: vf610: allow disabling the vf610 driver Date: Sun, 24 Mar 2024 18:53:33 -0400 Message-ID: <20240324230116.1348576-177-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Kaiser [ Upstream commit f57595788244a838deec2d3be375291327cbc035 ] The vf610 gpio driver is enabled by default for all i.MX machines, without any option to disable it in a board-specific config file. Most i.MX chipsets have no hardware for this driver. Change the default to enable GPIO_VF610 for SOC_VF610 and disable it otherwise. Add a text description after the bool type, this makes the driver selectable by make config etc. Fixes: 30a35c07d9e9 ("gpio: vf610: drop the SOC_VF610 dependency for GPIO_V= F610") Signed-off-by: Martin Kaiser Signed-off-by: Bartosz Golaszewski Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/gpio/Kconfig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig index 673bafb8be588..d56b835359d3b 100644 --- a/drivers/gpio/Kconfig +++ b/drivers/gpio/Kconfig @@ -691,7 +691,8 @@ config GPIO_UNIPHIER Say yes here to support UniPhier GPIOs. =20 config GPIO_VF610 - def_bool y + bool "VF610 GPIO support" + default y if SOC_VF610 depends on ARCH_MXC select GPIOLIB_IRQCHIP help --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D6165203711; Sun, 24 Mar 2024 23:04: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=1711321453; cv=none; b=hjlVBhHUP5+1DqvSHbbx33dHuaiBs6yMDiiwROJkwT6DcBvD5zRb3N3pM21atHhdI5Kh+WSs9B2NILMqtCbnQ+9oqTk4MF9a4YyOG35nB5juo02WU1sC9XbWAQN2Wk+2IldTYapxkH+tB+yzJq0XeXawui9+jjhUUM7ipFry+sg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321453; c=relaxed/simple; bh=zEegwztfvavh3excM3TsgOKOv2GUzxn/1hJX6yd3sK0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ta07rrpfmiLefoWNWr2zE6PQ14DCk6qzjAGFhVDmWetkMK9Af3kkAQIWnC82P/0u2IK1KzRX26vbxaHEIJuSqLEwOuTDYS2cpCiwYAHP3FFqVDbuog0YJQ6YOQC9UdLWs4VXt+JX3ERwlNlfitL7r5zqFQUdtk7mYZCSAa1tSAU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Sp45FfEv; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Sp45FfEv" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 20491C433F1; Sun, 24 Mar 2024 23:04:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321452; bh=zEegwztfvavh3excM3TsgOKOv2GUzxn/1hJX6yd3sK0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Sp45FfEvaADq7VASkhJ+vSkg5IsRQd7FynjLTDTBaHlz3amekWzNEINxQoKg3IzuL x1mz2XCaZNC+zYiHXWdjjg3y9WA6sqw4vmmPSF3jev6h1/14DLcFzRiQdvfGWfR92j WbpGpWlz16il8CsPDdNDdfaFKDnxnmCs2lQTJFvh/3JP1OZdGZ7iHjuUHpUrUGdsJA 51iZor/MdTWm+cYiVl0aGm8Z4LUThenrkRKq5LcUZASXtX9EFezOkMnomtSQdKF+Zw mudMQnyMAvSAo90T18FyiCQd8Y2nX95y2ck5rMLQMcwU21e/nlDoRr00NG2fMPNtQC ZSpAzG37ytciw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Tim Harvey , Shawn Guo , Sasha Levin Subject: [PATCH 6.6 177/638] arm64: dts: imx8mm-venice-gw71xx: fix USB OTG VBUS Date: Sun, 24 Mar 2024 18:53:34 -0400 Message-ID: <20240324230116.1348576-178-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- .../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 0ce60ad9c7d50..26d4afdbca6f4 100644 --- a/arch/arm64/boot/dts/freescale/imx8mm-venice-gw71xx.dtsi +++ b/arch/arm64/boot/dts/freescale/imx8mm-venice-gw71xx.dtsi @@ -47,17 +47,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 */ @@ -145,9 +134,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 @@ -205,14 +195,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 @@ -235,4 +217,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C0D84203713; Sun, 24 Mar 2024 23:04: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=1711321454; cv=none; b=Q38Ocnz2FSNET0t9EfnO3itNZv8/IpzBFNP9AfVl67bBDZuUwmBWf8SFRUkiMKWCBb7seFuJ1jBN56GkcD3OiMy/EvVgRMkUutYUQwG+8cVcZFNrZIVmZv2ZZP1rmxnRAw2A1IMnAAyzoOQbLs0S+j8NutspO9+Xb/DSMK5axuI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321454; c=relaxed/simple; bh=Oiu632mGq/gNH95p8sCfzl69n+4w/oqp+rE0iSyKxjU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Dm6028q1hGfXqHEueXEp+yUoI9Ej6MDtrZzjB/QdvHLaLgkzvnguqutzLfpVZ9DoK1Vr4vO8xCM/BaxeGzEhPv/YEGhG+On9RJXo58slVcOiX3J1Btd7W7yVQhcyoI5dOFdfUzskyb4Nth7zo5MGzy8WN3vUEZm5/ZTQHDzy7AM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=GdeqTxHd; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="GdeqTxHd" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 06224C433C7; Sun, 24 Mar 2024 23:04:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321453; bh=Oiu632mGq/gNH95p8sCfzl69n+4w/oqp+rE0iSyKxjU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=GdeqTxHd7k4dx8UUMcHS34Wrxp94biVxminVSkH0hvHLckiBZBojWdJuPTYZFVwN1 4gSCREIVXuQlJQynKLqFz+Y8f3z5zeBnxzGyvW65mXVykYMPuDLry4XxuXIgUU95GF CbEs3f8ezX0/ojlIlaowGdC1B7MFta47wZ3WcGd1f5gcaPJ3uRWfCKS/f/xCkK1I9f eY9Fdtnu3FRuoofaAblynt4PW45jyu7iaTGfxyZPEwcl1+HbmLnAhW9jVjqtMbYbIr 8BccyokNSzcAA347NVX8fkoIPZkv3HZxyKgDBy+en2PMWGwaGZ27eiNfhLn2xBUTQ2 THZ9bscWTjVaw== 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 6.6 178/638] pwm: atmel-hlcdc: Fix clock imbalance related to suspend support Date: Sun, 24 Mar 2024 18:53:35 -0400 Message-ID: <20240324230116.1348576-179-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-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 Tested-by: Takeshi Ogasawara --- 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 e271d920151e4..5f6612e1dd34d 100644 --- a/drivers/pwm/pwm-atmel-hlcdc.c +++ b/drivers/pwm/pwm-atmel-hlcdc.c @@ -187,7 +187,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B560220371E; Sun, 24 Mar 2024 23:04: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=1711321455; cv=none; b=mOF9M7dsvE4XC5tB8hR5S6Rl0sJe+SabZPhFSfYiDP9G/6CE6tP6fDibbXqxjIAli3wgtVoX4xO8t/ohlorcNF821Cv7Df3nUdphJgDEZx+QIhUpiQvOOvhhAnV1a2gDzRTkgjwudzV1G3M3ZMwZVYV29K2WvWGXqZk/b0ZW6u0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321455; c=relaxed/simple; bh=LvtZg5e0VQtOBT+DmVlIpjevxUc7VebV46SOEb3fPHw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=e6Rx81wQxlHrEaGoqjpTgGnz7YRYwuBzxHViHZPuTcDxiaZBR/29LuTDL3D1FjRb7xpYUEecwmZkIi8R/X05LCWITNohHuoEQYgb4Pjb6KirlQKKdQnG7uAqTsU23kHJzUVZ0zVjM0qUiC1n+nuwu7zusibQYC2F/bnxZWh59bU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=lKOVa0SV; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="lKOVa0SV" Received: by smtp.kernel.org (Postfix) with ESMTPSA id DFE0CC43394; Sun, 24 Mar 2024 23:04:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321454; bh=LvtZg5e0VQtOBT+DmVlIpjevxUc7VebV46SOEb3fPHw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=lKOVa0SVcBY7l0tlsQLT6FtEeU+Efg5RNfuMennxuVC2PN6FwFVwz7kWg8Nz07Zvp mtWipfFyV9WuhFyjthcZXsAS/FLi64bfIEE7SML4nSVzulTOF9blm24BEFgjeOD0SM Xor9zuuMgYBuKyfRjfwaXs16UulrGnqYgN2Q6H2ufdKFyHhEwEkrhR0auk6cWMlwev pgf278jfnFwQU/nXYP46x4yPuwzbQMGlIfqEgtSmQJIT+nbUc/WKfs41aRkBF1gRqD 0QoowKLSmBVJGXhvK/TpSPFJV5z2HMn2u1ZjzAvrTT5g6Po3wsWYf23nxdruwxNM6w UbEiN8LEwwqBA== 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 6.6 179/638] net: blackhole_dev: fix build warning for ethh set but not used Date: Sun, 24 Mar 2024 18:53:36 -0400 Message-ID: <20240324230116.1348576-180-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AC5BC20371D; Sun, 24 Mar 2024 23:04: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=1711321455; cv=none; b=S40EJzeIEjbXVfU4BnzIbZG97U69IYjLsjVokjmRlo+q7lS8p89SQod9pCjKwg5kJSjptHJrlCgEnV15n2PtzPuQTW9r/42vDuXH+kNHYK0rkIlmS7UDEK2ppk7U54zs3ONtV+HegBExpg1sgOdjyPVyXZ/kRtBMi3GhM4RjbUM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321455; c=relaxed/simple; bh=wlZaNRduiN50WuUJtWzPVPHyfezdgv5zUJbAbAJbO/o=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=eaumcZEmaMO278EeWxRA5R0Ji5e1eMNZlMrjEKmXGRSkIi4TzKf6brgJNREhGtzGACR8H2sXAMNKES2OJr2Az4nMJeYQ2gQwnzmUvBLy59lHOjuUdH6CkbUQtXaWU6DLEqQns0pvyfsqpiPPT6dLl93uO15aDsYBYu/JO2KSNk8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=G4fygbJe; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="G4fygbJe" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D9479C433F1; Sun, 24 Mar 2024 23:04:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321455; bh=wlZaNRduiN50WuUJtWzPVPHyfezdgv5zUJbAbAJbO/o=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=G4fygbJeM+H7vqeeVnm+BF77BTLnUn3RqtrdzGO7SuR6oP5vV9yRw6T00w99PkDp/ 5QfLgZZGrx95cYUMphKpzGIuPt9yHmPgeJZEp122qF+TV3j3rvX7zOQE6Fe602mx1d rR3yxmdHfTNNhXFe8LdI2yD+WetW2S+0llT5DjECkIzclmFCdgdX/bCfiAeEcstiR+ UaYz/03xNwqIhhC1Z3kPWqwu95/fJmQ+jwssns7GT7Nb5KEJWUbMh2qbxAISY9rFWf NTcFeld+Un7PJbFdztIb9z1XIQBIIeP7k607pcaJusqPFEAygKjNpfeLank0kENPLz p2JupE9rf6Ywg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Manorit Chawdhry , Andrew Davis , Vignesh Raghavendra , Sasha Levin Subject: [PATCH 6.6 180/638] arm64: dts: ti: k3-j721s2: Fix power domain for VTM node Date: Sun, 24 Mar 2024 18:53:37 -0400 Message-ID: <20240324230116.1348576-181-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Manorit Chawdhry [ Upstream commit 5ef196ed912e80a1e64936119ced8d7eb5635f0f ] Fix the power domain device ID for wkup_vtm0 node. Link: https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/j721s2/devices.= html Fixes: d148e3fe52c8 ("arm64: dts: ti: j721s2: Add VTM node") Signed-off-by: Manorit Chawdhry Reviewed-by: Andrew Davis Link: https://lore.kernel.org/r/20240201-b4-upstream-j721s2-fix-vtm-devid-v= 2-1-85fd568b77e3@ti.com Signed-off-by: Vignesh Raghavendra Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/ti/k3-j721s2-mcu-wakeup.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/ti/k3-j721s2-mcu-wakeup.dtsi b/arch/arm64/= boot/dts/ti/k3-j721s2-mcu-wakeup.dtsi index 2ddad93185541..71324fec415ae 100644 --- a/arch/arm64/boot/dts/ti/k3-j721s2-mcu-wakeup.dtsi +++ b/arch/arm64/boot/dts/ti/k3-j721s2-mcu-wakeup.dtsi @@ -652,7 +652,7 @@ wkup_vtm0: temperature-sensor@42040000 { compatible =3D "ti,j7200-vtm"; reg =3D <0x00 0x42040000 0x0 0x350>, <0x00 0x42050000 0x0 0x350>; - power-domains =3D <&k3_pds 154 TI_SCI_PD_SHARED>; + power-domains =3D <&k3_pds 180 TI_SCI_PD_SHARED>; #thermal-sensor-cells =3D <1>; }; }; --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A7B3A134405; Sun, 24 Mar 2024 23:04: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=1711321457; cv=none; b=s0CG3SWwcDgqHb3U9iCSojfcMSsSOAd2Am5zRv0SQdugV7j1o+7GAL6hvOpIG+Ros9MXP1Gh3ahADWbO7Ont1dimxqEum2wYCQERuzyRzRNa42FBjGfhjvJM2M3bnB8k1WujsxRARywNvxTrHNJ90WvBhSXAscH1tyhVaTIo5dE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321457; c=relaxed/simple; bh=OkQag3fGV2PD8R+QrG3u5lsG7MCrCma4Ow49X1gbOkg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=BkUg1VgFCSPfMmH8sDTltXZLt5NXjj042KY7Gz+1dUesf781DgfDDa9RXCnjjq3NqRhec2QarYPPfBlkqKBwJnFc+gtevY/HpMbVABchBz7rkWNGW7PibeK7sy4InZRBHONOrXPuuAQZjW0A1/0AO+St6WoKiO5aKsrrwf5+ZMI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=HGQTv4/x; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="HGQTv4/x" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D0F9CC43390; Sun, 24 Mar 2024 23:04:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321456; bh=OkQag3fGV2PD8R+QrG3u5lsG7MCrCma4Ow49X1gbOkg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=HGQTv4/xbwrHUCGq5jVgYRciuDrwk5AeeIZFfv5qGrBduSikkoVaj92bxjSBkOmP7 sbhz5iorliMty5BBtOVjEL9sIESZDFgqhjsvyyMjtLl0Kuvf8GX7cZF9tRB/dBC0Nu JZ3W0Y7cH4HzbMI46i3M7peOKFSv432zY757qfJzTYo5fOeLaHZlXpgMd9MCsDLQy5 I365xJHG4r4rniCIviqkJbuhqbj25EHdk/bGeq96QWxQXfefNSn5kwTnCpHZEHXiWC C5Ngu9MPoxeVMy8IZpEYN+hJ1EKBC9CKI88ihOVXMcvnEKxMpt1f0hYE7QHpaR8LO+ AWHO924L/KlOA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Manorit Chawdhry , Andrew Davis , Vignesh Raghavendra , Sasha Levin Subject: [PATCH 6.6 181/638] arm64: dts: ti: k3-j784s4: Fix power domain for VTM node Date: Sun, 24 Mar 2024 18:53:38 -0400 Message-ID: <20240324230116.1348576-182-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Manorit Chawdhry [ Upstream commit e4d252e6d29208aea56d4c04270523e306b1e3c2 ] Fix the power domain device ID for wkup_vtm0 node. Link: https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/j784s4/devices.= html Fixes: 64821fbf6738 ("arm64: dts: ti: j784s4: Add VTM node") Signed-off-by: Manorit Chawdhry Reviewed-by: Andrew Davis Link: https://lore.kernel.org/r/20240201-b4-upstream-j721s2-fix-vtm-devid-v= 2-2-85fd568b77e3@ti.com Signed-off-by: Vignesh Raghavendra Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/ti/k3-j784s4-mcu-wakeup.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/ti/k3-j784s4-mcu-wakeup.dtsi b/arch/arm64/= boot/dts/ti/k3-j784s4-mcu-wakeup.dtsi index 4ab4018d36953..8d26daf7fa3d1 100644 --- a/arch/arm64/boot/dts/ti/k3-j784s4-mcu-wakeup.dtsi +++ b/arch/arm64/boot/dts/ti/k3-j784s4-mcu-wakeup.dtsi @@ -616,7 +616,7 @@ wkup_vtm0: temperature-sensor@42040000 { compatible =3D "ti,j7200-vtm"; reg =3D <0x00 0x42040000 0x00 0x350>, <0x00 0x42050000 0x00 0x350>; - power-domains =3D <&k3_pds 154 TI_SCI_PD_SHARED>; + power-domains =3D <&k3_pds 243 TI_SCI_PD_SHARED>; #thermal-sensor-cells =3D <1>; }; =20 --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 249871E88E6; Sun, 24 Mar 2024 23:04: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=1711321459; cv=none; b=pX7NiwzBncuNOW/BQn5dCyESMHTdrWhpvegjGi+kxhXkVZN8HALX1d9Y73VWRoSYUe48W/bP5CHH/U8QMvqFhAe4oJHyLinR0NokaB37cFOhhcpgQNjVCXAvNE9oOG6nScJJ4lUb8mUeI5e4sJnyvJeFRJ9PDWGDLIT4NCjZnxc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321459; c=relaxed/simple; bh=UCYrLeCvDXLYQYZG/arI9TX3hORdxO5/C/tKArM7Le4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=NC4Dd20WI+tk1KgE9JmMpLqTIdBQLkrIPa+SCii04mmLVoGtQ5qJfbRXjXq8S+6D2NuoLMDkTdhFu8v71dl0MPYyB0lbibu7KI75PqwK7WGwZesrlU93Kgkc8xg9yYXdpbX+Ra8DCONGKa1PaWvMWlvZZDM+IjwTuhr+ziOssLg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=gDG0b9Q1; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="gDG0b9Q1" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E1205C43394; Sun, 24 Mar 2024 23:04:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321458; bh=UCYrLeCvDXLYQYZG/arI9TX3hORdxO5/C/tKArM7Le4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=gDG0b9Q1E4KrICCuFbYDUTB3b5o9GoHIMoIie/SaG2UXNHxTkrfYXkbfHZ1rRYBn5 mFsaz2Los6Vk/YL0x3HVvXmPFcPN8TXEGV2jV8Bz7W89B8Y7bDGZN36csiEwTqVos1 8X04t0mbNycmFr0RmKGPCiWqsj9Jv/cRsi3hnbQt4yII53yaaZg51dj9wFCs3sg6KX TwYVm9Przl5QYkf8Ethfqty5i8PpobMkrEgqcJrvYZQ5M4TAHqS9MuQHbjST6vrR6m FzLtorY2Ap3FftGvmv8r+nQj1EK0rCgpi4m4Qin8kUhby1lnmfwSKH3HDh9yTu7BvX cNc6Mcz5TLItg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Baochen Qiang , kernel test robot , Jeff Johnson , Kalle Valo , Sasha Levin Subject: [PATCH 6.6 182/638] wifi: ath11k: initialize rx_mcs_80 and rx_mcs_160 before use Date: Sun, 24 Mar 2024 18:53:39 -0400 Message-ID: <20240324230116.1348576-183-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Baochen Qiang [ Upstream commit b802e7b7e771dee3377d071418281f8b64d2d832 ] Currently in ath11k_peer_assoc_h_he() rx_mcs_80 and rx_mcs_160 are used to calculate max_nss, see if (support_160) max_nss =3D min(rx_mcs_80, rx_mcs_160); else max_nss =3D rx_mcs_80; Kernel test robot complains on uninitialized symbols: drivers/net/wireless/ath/ath11k/mac.c:2321 ath11k_peer_assoc_h_he() error: = uninitialized symbol 'rx_mcs_80'. drivers/net/wireless/ath/ath11k/mac.c:2321 ath11k_peer_assoc_h_he() error: = uninitialized symbol 'rx_mcs_160'. drivers/net/wireless/ath/ath11k/mac.c:2323 ath11k_peer_assoc_h_he() error: = uninitialized symbol 'rx_mcs_80'. This is because there are some code paths that never set them, so the assignment of max_nss can come from uninitialized variables. This could result in some unknown issues since a wrong peer_nss might be passed to firmware. Change to initialize them to an invalid value at the beginning. This makes sense because even max_nss gets an invalid value, due to either or both of them being invalid, we can get an valid peer_nss with following guard: arg->peer_nss =3D min(sta->deflink.rx_nss, max_nss) Tested-on: WCN6855 hw2.1 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_L= ITE-3.6510.23 Fixes: 3db26ecf7114 ("ath11k: calculate the correct NSS of peer for HE capa= bilities") Reported-by: kernel test robot Closes: https://lore.kernel.org/oe-kbuild-all/202401311243.NyXwWZxP-lkp@int= el.com/ Signed-off-by: Baochen Qiang Acked-by: Jeff Johnson Signed-off-by: Kalle Valo Link: https://msgid.link/20240202023547.11141-1-quic_bqiang@quicinc.com Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/net/wireless/ath/ath11k/mac.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/net/wireless/ath/ath11k/mac.c b/drivers/net/wireless/a= th/ath11k/mac.c index 8880462549b7f..b75cb49c27466 100644 --- a/drivers/net/wireless/ath/ath11k/mac.c +++ b/drivers/net/wireless/ath/ath11k/mac.c @@ -2296,6 +2296,8 @@ static void ath11k_peer_assoc_h_he(struct ath11k *ar, mcs_160_map =3D le16_to_cpu(he_cap->he_mcs_nss_supp.rx_mcs_160); mcs_80_map =3D le16_to_cpu(he_cap->he_mcs_nss_supp.rx_mcs_80); =20 + /* Initialize rx_mcs_160 to 9 which is an invalid value */ + rx_mcs_160 =3D 9; if (support_160) { for (i =3D 7; i >=3D 0; i--) { u8 mcs_160 =3D (mcs_160_map >> (2 * i)) & 3; @@ -2307,6 +2309,8 @@ static void ath11k_peer_assoc_h_he(struct ath11k *ar, } } =20 + /* Initialize rx_mcs_80 to 9 which is an invalid value */ + rx_mcs_80 =3D 9; for (i =3D 7; i >=3D 0; i--) { u8 mcs_80 =3D (mcs_80_map >> (2 * i)) & 3; =20 --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1F79A1E88EF; Sun, 24 Mar 2024 23:04: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=1711321460; cv=none; b=L+F5/eVRRwbfwOAd11hYYy3Tv5Oziigotsq5sZ3yrvRIiLeXcoepSkrmitWIBshfXT3F26ZyPy6mB8rNhLzmG4AkArkfcb7r+mHoHysYoypVzBNYH5DXCsUZF0/qDEDJU9W5anOBbpBNjyqRe0AG0RbSoi3hgHMs/4BCadDBUIY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321460; c=relaxed/simple; bh=RQrolhc/4neGjp94YqluMsQFQZd5V1OjoECo2SmYWsM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=XsypOsFlJg2fWzr5LpCbIiQtMKSzRLrq1zeCJrBjWDKVvWCc/3yMFjJ6c1n5BJyf3fATn3qg4cRugWatEZJdf4dup3oCMcOSiCZ4KcVbf+Ee69mfToDvqhCgdNkAdPvCrJyYxFXTEiU3GJY1M3J5vsKpLOTV89DSpiLYtf/cavk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=PylXE3E+; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="PylXE3E+" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4A6D4C433F1; Sun, 24 Mar 2024 23:04:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321458; bh=RQrolhc/4neGjp94YqluMsQFQZd5V1OjoECo2SmYWsM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=PylXE3E+rnBzQxdi6FZHRrHt0FI6ktpOtS7M9jAAzrApyJdo2zK6YBglJP/qEZbCa Yqo56KWrY/9gzoDtXLI0nEt8C+ayjD/bMVFH+kD0ecYWrdMe2WNg0/bYqKRf6GISuN 5RXPVAl8BQ7JZeBK+LAk+i8p7/MSNL4+8ZjSOSTuIqh/qElPHc1dVikrf715NUe876 FqnlgpMK0FM59TlKuIQE/mwdLiP4bXinDgVyeVgFjOW98ZACzlGUmhP4ibkT1AlFSF mS6l++ii/Y2DqMbv6ny8BETcKGOuduN0bzt2SI7zATokO7dY7+4zQ5IQdUCpSOweLG XI3VoMEqSst4g== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Zhipeng Lu , Kalle Valo , Sasha Levin Subject: [PATCH 6.6 183/638] wifi: libertas: fix some memleaks in lbs_allocate_cmd_buffer() Date: Sun, 24 Mar 2024 18:53:40 -0400 Message-ID: <20240324230116.1348576-184-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 104d2b6dc9af6..5a525da434c28 100644 --- a/drivers/net/wireless/marvell/libertas/cmd.c +++ b/drivers/net/wireless/marvell/libertas/cmd.c @@ -1132,7 +1132,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 @@ -1140,8 +1140,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F2B741E88ED; Sun, 24 Mar 2024 23:04: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=1711321460; cv=none; b=CbeJOMX6UM1GJ0Mu2c98wXwU2NSucXx6LyEXc/v85P9bFUP4jO3qga//gdNT9gWVSUh9uSnwdMp9qWV+2hkJpuocbDmU9VXU/rpSJ9Ck9gtu/FeMThPcAvm0wbzUDWkRf6hS8JClo1h9lhoEAwW+Dxemcj7k4LdEki5zk6eiWqs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321460; c=relaxed/simple; bh=Un5M0+Yy9i5pV1czleybjGf4TKM5KEaVe8OK7vHagJE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=axIJV2pLqBt74n9ur6YkDWT1XszlVlPWlnViRoYoAsZS3T7CPSiqAfEZgjp+nUZEuO4I1qb2D2ykbtrkvCYougmroSGLaihLWY0dzOpNW+iparOBXL1KGo5uhEbBK3IX0ATFf3THp+CiiGNNj6n9yLGBWZkPybmsY1ArTHRkKOs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=aL6cVoIF; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="aL6cVoIF" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 34495C43390; Sun, 24 Mar 2024 23:04:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321459; bh=Un5M0+Yy9i5pV1czleybjGf4TKM5KEaVe8OK7vHagJE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=aL6cVoIFib3WvKTBTvE+4pGpAfK42x6MWZx9+5kksTS2D4IN1u0SH4IwokkXpapxk VHMeVuToto6M2lURyXyozNpzzaJZzkUXzRN0fQqCAaafI9R6oa702OaadNYcg7GoXn RJ37f7aRpQqaJCzo1VRlFbMF3S+0FBOhgD4nxymP+ZlnBM+HDFeM9dw1N/Q58ob4B6 0gGfb/G9KYnmeqEUvoa/Z1ebXVXGE12Pw3EiPEhP7gTdz9WUokEFD/eFWoWC/Dh1Nr eB++5lK2VObwYwUQGbyZOKuimOhFX/bTbd0Y1W1PmiLPUjXEvKDy5/flcTQaPb9DRa dpDHJNDtmEIOA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?Toke=20H=C3=B8iland-J=C3=B8rgensen?= , Andrii Nakryiko , Sasha Levin Subject: [PATCH 6.6 184/638] libbpf: Use OPTS_SET() macro in bpf_xdp_query() Date: Sun, 24 Mar 2024 18:53:41 -0400 Message-ID: <20240324230116.1348576-185-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-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 92a871ab9fa59a74d013bc04f321026a057618e7 ] When the feature_flags and xdp_zc_max_segs fields were added to the libbpf bpf_xdp_query_opts, the code writing them did not use the OPTS_SET() macro. This causes libbpf to write to those fields unconditionally, which means that programs compiled against an older version of libbpf (with a smaller size of the bpf_xdp_query_opts struct) will have its stack corrupted by libbpf writing out of bounds. The patch adding the feature_flags field has an early bail out if the feature_flags field is not part of the opts struct (via the OPTS_HAS) macro, but the patch adding xdp_zc_max_segs does not. For consistency, this fix just changes the assignments to both fields to use the OPTS_SET() macro. Fixes: 13ce2daa259a ("xsk: add new netlink attribute dedicated for ZC max f= rags") Signed-off-by: Toke H=C3=B8iland-J=C3=B8rgensen Signed-off-by: Andrii Nakryiko Link: https://lore.kernel.org/bpf/20240206125922.1992815-1-toke@redhat.com Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- tools/lib/bpf/netlink.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/lib/bpf/netlink.c b/tools/lib/bpf/netlink.c index 090bcf6e3b3d5..68a2def171751 100644 --- a/tools/lib/bpf/netlink.c +++ b/tools/lib/bpf/netlink.c @@ -496,8 +496,8 @@ int bpf_xdp_query(int ifindex, int xdp_flags, struct bp= f_xdp_query_opts *opts) if (err) return libbpf_err(err); =20 - opts->feature_flags =3D md.flags; - opts->xdp_zc_max_segs =3D md.xdp_zc_max_segs; + OPTS_SET(opts, feature_flags, md.flags); + OPTS_SET(opts, xdp_zc_max_segs, md.xdp_zc_max_segs); =20 skip_feature_flags: return 0; --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 402EE1E8903; Sun, 24 Mar 2024 23:04: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=1711321462; cv=none; b=SEkobX5P3DhILzQEmPyJO1aaaeQ+sGm3tYvx0Fy4OVUDEMqWu2t3mRr83tQUtAZFri/I7QfH4jk+KplWc8ABg4/VGALS27pu1TuWxmeQp4Q8xKJt/NqOxHSK7nyhOayPsgabjpAkVvLq5JCNTsZijLmURbYN5KryyKgzev1NuZU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321462; c=relaxed/simple; bh=HIz6lpAW2cZWfxHJSA17HWSGt89XDQWTK4RqSqCl6G8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=gTBhYXMB6Gp80ApBs0iYEi/Vt5RfBYqhu0wn6hMh/yx6lryd0W9J8DaIGeH2looSiutfOr+rJTP8vPe195A38vmETJqhVuqTc1RqztQo+99A26V+Ldr6glx7POZfbFyMbQDBVuLDcH1P5c/7WwvkJq39SOSTtcq7nNt0rGZczLY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=QfewfY+e; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="QfewfY+e" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1DCEFC43399; Sun, 24 Mar 2024 23:04:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321460; bh=HIz6lpAW2cZWfxHJSA17HWSGt89XDQWTK4RqSqCl6G8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=QfewfY+ecIVvxodf2LP/blUeysw7ZIDAd1B5SJeIqYZR/Ud4JUHe9zultKr43nLTi maai0P9edelKrKT9+nOKUwaRO9wJMG++fSYORHv/lYb6+w42cKly8OCUwOcsDBSl71 hCWeDKQKlHiaffQLqA5m+z6CzmmKvdD+02oq9hLDWZ3hSNeMS/MocbcGvVQtwrUIpA Xt4xK1qBfe8VelbDOWxRHhcYCdgfYjuirQS0qrzVOj/3Oyit43BQyxTZkPjBKrOAhJ kbf+bSMlipB8Udy26qTpzvihE+MhuybpL3YkQYBITa3O6zU5kfDUOvNp5ha3zZwUKT WfSmMGoAUqhhQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?J=C3=A9r=C3=B4me=20Pouiller?= , Ulrich Mohr , Kalle Valo , Sasha Levin Subject: [PATCH 6.6 185/638] wifi: wfx: fix memory leak when starting AP Date: Sun, 24 Mar 2024 18:53:42 -0400 Message-ID: <20240324230116.1348576-186-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-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=A9r=C3=B4me Pouiller [ Upstream commit b8cfb7c819dd39965136a66fe3a7fde688d976fc ] Kmemleak reported this error: unreferenced object 0xd73d1180 (size 184): comm "wpa_supplicant", pid 1559, jiffies 13006305 (age 964.245s) hex dump (first 32 bytes): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00 00 00 00 00 00 00 00 1e 00 01 00 00 00 00 00 ................ backtrace: [<5ca11420>] kmem_cache_alloc+0x20c/0x5ac [<127bdd74>] __alloc_skb+0x144/0x170 [] __netdev_alloc_skb+0x50/0x180 [<0f9fa1d5>] __ieee80211_beacon_get+0x290/0x4d4 [mac80211] [<7accd02d>] ieee80211_beacon_get_tim+0x54/0x18c [mac80211] [<41e25cc3>] wfx_start_ap+0xc8/0x234 [wfx] [<93a70356>] ieee80211_start_ap+0x404/0x6b4 [mac80211] [] nl80211_start_ap+0x76c/0x9e0 [cfg80211] [<47bd8b68>] genl_rcv_msg+0x198/0x378 [<453ef796>] netlink_rcv_skb+0xd0/0x130 [<6b7c977a>] genl_rcv+0x34/0x44 [<66b2d04d>] netlink_unicast+0x1b4/0x258 [] netlink_sendmsg+0x1e8/0x428 [] ____sys_sendmsg+0x1e0/0x274 [] ___sys_sendmsg+0x80/0xb4 [<69954f45>] __sys_sendmsg+0x64/0xa8 unreferenced object 0xce087000 (size 1024): comm "wpa_supplicant", pid 1559, jiffies 13006305 (age 964.246s) hex dump (first 32 bytes): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 10 00 07 40 00 00 00 00 00 00 00 00 00 00 00 00 ...@............ backtrace: [<9a993714>] __kmalloc_track_caller+0x230/0x600 [] kmalloc_reserve.constprop.0+0x30/0x74 [] __alloc_skb+0xa0/0x170 [] __netdev_alloc_skb+0x50/0x180 [<0f9fa1d5>] __ieee80211_beacon_get+0x290/0x4d4 [mac80211] [<7accd02d>] ieee80211_beacon_get_tim+0x54/0x18c [mac80211] [<41e25cc3>] wfx_start_ap+0xc8/0x234 [wfx] [<93a70356>] ieee80211_start_ap+0x404/0x6b4 [mac80211] [] nl80211_start_ap+0x76c/0x9e0 [cfg80211] [<47bd8b68>] genl_rcv_msg+0x198/0x378 [<453ef796>] netlink_rcv_skb+0xd0/0x130 [<6b7c977a>] genl_rcv+0x34/0x44 [<66b2d04d>] netlink_unicast+0x1b4/0x258 [] netlink_sendmsg+0x1e8/0x428 [] ____sys_sendmsg+0x1e0/0x274 [] ___sys_sendmsg+0x80/0xb4 However, since the kernel is build optimized, it seems the stack is not accurate. It appears the issue is related to wfx_set_mfp_ap(). The issue is obvious in this function: memory allocated by ieee80211_beacon_get() is never released. Fixing this leak makes kmemleak happy. Reported-by: Ulrich Mohr Co-developed-by: Ulrich Mohr Signed-off-by: Ulrich Mohr Fixes: 268bceec1684 ("staging: wfx: fix BA when device is AP and MFP is ena= bled") Signed-off-by: J=C3=A9r=C3=B4me Pouiller Signed-off-by: Kalle Valo Link: https://msgid.link/20240202164213.1606145-1-jerome.pouiller@silabs.com Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/net/wireless/silabs/wfx/sta.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/drivers/net/wireless/silabs/wfx/sta.c b/drivers/net/wireless/s= ilabs/wfx/sta.c index 073e870b26415..871667650dbef 100644 --- a/drivers/net/wireless/silabs/wfx/sta.c +++ b/drivers/net/wireless/silabs/wfx/sta.c @@ -362,6 +362,7 @@ static int wfx_set_mfp_ap(struct wfx_vif *wvif) const int pairwise_cipher_suite_count_offset =3D 8 / sizeof(u16); const int pairwise_cipher_suite_size =3D 4 / sizeof(u16); const int akm_suite_size =3D 4 / sizeof(u16); + int ret =3D -EINVAL; const u16 *ptr; =20 if (unlikely(!skb)) @@ -370,22 +371,26 @@ static int wfx_set_mfp_ap(struct wfx_vif *wvif) ptr =3D (u16 *)cfg80211_find_ie(WLAN_EID_RSN, skb->data + ieoffset, skb->len - ieoffset); if (unlikely(!ptr)) - return -EINVAL; + goto free_skb; =20 ptr +=3D pairwise_cipher_suite_count_offset; if (WARN_ON(ptr > (u16 *)skb_tail_pointer(skb))) - return -EINVAL; + goto free_skb; =20 ptr +=3D 1 + pairwise_cipher_suite_size * *ptr; if (WARN_ON(ptr > (u16 *)skb_tail_pointer(skb))) - return -EINVAL; + goto free_skb; =20 ptr +=3D 1 + akm_suite_size * *ptr; if (WARN_ON(ptr > (u16 *)skb_tail_pointer(skb))) - return -EINVAL; + goto free_skb; =20 wfx_hif_set_mfp(wvif, *ptr & BIT(7), *ptr & BIT(6)); - return 0; + ret =3D 0; + +free_skb: + dev_kfree_skb(skb); + return ret; } =20 int wfx_start_ap(struct ieee80211_hw *hw, struct ieee80211_vif *vif, --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D654D1E8909; Sun, 24 Mar 2024 23:04: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=1711321462; cv=none; b=eTfdTvpghaMuDQBmCQMGoYmwq1QSywuAEFrrzrOo8lAATCtgum15wY5+KsU93uRyzd3daaVZN2ckP1KJeahTApQrXCLZcNsvkiZW1jZQM2JV4DmgG9At+avZFCKpF/yxtGS0umC6nHI7cwcZgoA1x8kSOoIUxV/teCWl9Nc7tgc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321462; c=relaxed/simple; bh=mULZSRYw+k7Jgg7G8/Xsi+iCCabLU1/FQaJWvczIJrw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=UtCZKKP1YoPZiZejWAMd5drecS/P7E222KffpHvEvZkthC5F00q/RiAVz6Ml2tqJpbd/U1AIV9S4kasCNcEM4BkEsz3t1huqjzFIlqx9a4ElruYIRh49VZc3hdYQt+SdyHzHzLT5QrysSm3OFQerD3HmoKJWFh23dlt66bsDna4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=AmiUn02N; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="AmiUn02N" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 229EFC433F1; Sun, 24 Mar 2024 23:04:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321461; bh=mULZSRYw+k7Jgg7G8/Xsi+iCCabLU1/FQaJWvczIJrw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=AmiUn02N4aj+6h7GdQwP6g6IyRRqWdOmECpoyQn3vsuGB6qur+pph4rF4o+mPQUq0 /R8C3ao0bsnfi6Pk0SnaGF6KtTVZrOmmAcTa7DfQpeClYw2kR7IAtdAa9ivg+yzd8u Ams+HJYFve6lbNZAaw5m1CO2QQBqWxfHskCYHFrZOBPH/u4ZDswNmxWoKVUfITFenk GX5XjHQdPuK/RBQnv+/vg4uICePkC9i8+G2b5RJxt+2Z6Yxml2ogygl09V29GHdpbx 2LJpV9sHUW/MIIbxAIs8VJElHu+KeX+M6f2WDAwZiJo0qDZc1UWyBJOJwcza8UAXav QLwHrnY7nLDJA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Dmitry Baryshkov , Bjorn Andersson , Sasha Levin Subject: [PATCH 6.6 186/638] arm64: dts: qcom: msm8998: switch USB QMP PHY to new style of bindings Date: Sun, 24 Mar 2024 18:53:43 -0400 Message-ID: <20240324230116.1348576-187-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 f91c58c844afd..85fcbb24b4642 100644 --- a/arch/arm64/boot/dts/qcom/msm8998.dtsi +++ b/arch/arm64/boot/dts/qcom/msm8998.dtsi @@ -2160,7 +2160,7 @@ usb3_dwc3: usb@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>; @@ -2169,33 +2169,26 @@ usb3_dwc3: usb@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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2BADA1E891B; Sun, 24 Mar 2024 23:04: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=1711321464; cv=none; b=PN9WWYSnwrA45Qs/7QzQ/qlLFBxrICd0SzMBubUqdQ0aPz+B4k0qXN+HpZpOXyOLQWATa+oajodYdNNj4X7kWJT8RyWYmAgAAQU8ukrIYwHFVLij8AX5u8sf+vUtGTMGL26A9P5GFme4mKIzAPNKy2HnHsJXki8/UMRkfa7lswM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321464; c=relaxed/simple; bh=2S5XEGW6CG13vWHDGj9DQWHEEeuS4sTIhIweWGlCY8M=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=oD9C6YoHOePSSFWUmHWHJawu6T4PytZZVApkpOTmzLg94jW9MPgjXQFE9n2aAN/oS8D/TtFCPHKyJmXQN2VpVgNlIXBg4afXvY+5QwvYOOmupHdpstd62ZoVYS5x8RVXdMauO6QtPekN5T4vzgApyNyktLWsgYlknFWfcJ7CfUM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=uFBJ7ZoD; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="uFBJ7ZoD" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 08C23C433C7; Sun, 24 Mar 2024 23:04:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321462; bh=2S5XEGW6CG13vWHDGj9DQWHEEeuS4sTIhIweWGlCY8M=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=uFBJ7ZoDllyecSlaVt27ItQb1/OEnhavJB0qX6C7gsqIZlVBXuBS0Jl3zLUgLFxin FYab25PzNnRoYeHDHu9bz81hMI+3hmGQZ5r+hCWXHs0/lQGxumuFek0tVZ23mGC62f 2DI4xFhpY3USAA277jUz+j0Z9R6Yz1kdSu4IO99dnEdPclruwRS++3dT51y/1zpg4b Xb/4HdRcICgvo+Wmx4yn+nz4mzIvAHcWpOzmK1x34Ut83LmlIl9XXUmjNXVx+zxV+f RvzYcDIFNUa+SJsOvhf5IK0vHNWnWvSFjNz+XsCWFSmTHB0JU+kLpaIntPiyG1hpYO ciL4S28P7Acxw== 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 6.6 187/638] arm64: dts: qcom: msm8998: declare VLS CLAMP register for USB3 PHY Date: Sun, 24 Mar 2024 18:53:44 -0400 Message-ID: <20240324230116.1348576-188-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 85fcbb24b4642..b3bac8a420568 100644 --- a/arch/arm64/boot/dts/qcom/msm8998.dtsi +++ b/arch/arm64/boot/dts/qcom/msm8998.dtsi @@ -1085,6 +1085,11 @@ tcsr_regs_1: syscon@1f60000 { reg =3D <0x01f60000 0x20000>; }; =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>; @@ -2188,6 +2193,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3B10D134412; Sun, 24 Mar 2024 23:04: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=1711321465; cv=none; b=skEmSoJqFD0KSnFOxiYqBblqMUBjoXkTwzpntPBvRjsIjAZZ4XVy8WYM8SmIqCZvQ41BDIjriYBWsYzowFh8vawjsFsIpOPvp98R81gAA2DatoZUgO0M6KLOz5gsng6K0JuhlN/i7RfWdOOlrVIQWnC9XOlf4GeRu5MFh4kpDnc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321465; c=relaxed/simple; bh=t+7Oww8cat4ZZ/+r8pnzUTQJ7RVy2StCPb/afBg1f/U=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Q6RWCh8+ieQPrgH4SkvrDiEJMJZ4pRhBJ0s1dze1OUAvromtxteE4UGmx0PN1c82dkuB9j48Gzmp9iVbcodrzwKBpwrPVrfRzanllr1ruSl9OnkQAFeFITeczZfT7GGKrQM2MBDrJFI5GddK5Shq2FJMU7FKlOMDdenpk5dlV8k= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=KsFKCLsE; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="KsFKCLsE" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1D846C433F1; Sun, 24 Mar 2024 23:04:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321463; bh=t+7Oww8cat4ZZ/+r8pnzUTQJ7RVy2StCPb/afBg1f/U=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=KsFKCLsEsjkUQg3JHoXa1DsB+6OeJCUOYTrdUnuhH9w2KwPv/YTgkX5yAwUor6LgH JicLI39su3v/Dc3gkBFVltvQyeTAEA+1uSSZXhj5rTc42Fl+AI0LxUaL3FYk0viheu EzsMTIeo1HConazC8JWmx+d9uekD1rnng6BIVndHbu+dbU1Tgbs7gWe5KK8M7r+Ajv yRizPSAN1jqm6gzWLBaaf13D/ZYcb4j+y/SjToa1NVQx8DOqXxFh8x5WnpZtNyXcDN Ip72naWOz8utmEF6N7xEWdvd9FrBHf1ofPbpXiwJB4CNtaKdbo4/aCLpr6n4Wu0Cw1 +1YpEtZKBb6Xw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Dmitry Baryshkov , Konrad Dybcio , Bjorn Andersson , Sasha Levin Subject: [PATCH 6.6 188/638] arm64: dts: qcom: qcm2290: declare VLS CLAMP register for USB3 PHY Date: Sun, 24 Mar 2024 18:53:45 -0400 Message-ID: <20240324230116.1348576-189-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 acb94d67f5a23dbb2e0021b6c30609ed05d7d6a5 ] The USB3 PHY on the QCM2290 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: 0c55f6229bc3 ("arm64: dts: qcom: qcm2290: Add USB3 PHY") Signed-off-by: Dmitry Baryshkov Reviewed-by: Konrad Dybcio Link: https://lore.kernel.org/r/20240117-usbc-phy-vls-clamp-v2-5-a950c223f1= 0f@linaro.org Signed-off-by: Bjorn Andersson Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/qcom/qcm2290.dtsi | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/qcm2290.dtsi b/arch/arm64/boot/dts/qc= om/qcm2290.dtsi index d46e591e72b5c..40a8506553ef5 100644 --- a/arch/arm64/boot/dts/qcom/qcm2290.dtsi +++ b/arch/arm64/boot/dts/qcom/qcm2290.dtsi @@ -418,6 +418,11 @@ tcsr_mutex: hwlock@340000 { #hwlock-cells =3D <1>; }; =20 + tcsr_regs: syscon@3c0000 { + compatible =3D "qcom,qcm2290-tcsr", "syscon"; + reg =3D <0x0 0x003c0000 0x0 0x40000>; + }; + tlmm: pinctrl@500000 { compatible =3D "qcom,qcm2290-tlmm"; reg =3D <0x0 0x00500000 0x0 0x300000>; @@ -665,6 +670,8 @@ usb_qmpphy: phy@1615000 { =20 #phy-cells =3D <0>; =20 + qcom,tcsr-reg =3D <&tcsr_regs 0xb244>; + status =3D "disabled"; }; =20 --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E8ACE13443B; Sun, 24 Mar 2024 23:04: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=1711321466; cv=none; b=GCFCjlSXBoulcywsbVpsuvo7zia7eiSaBpzIBNGw/63Xon7KnkacFVKJJ1pgxCTEtl3Akds1CXewoXMBZPQmC+ra4FUoxjZKKoWnd4QvvnnoAHgTlCIRIPSdR6mAmadgHwgaaIiLVBUOi7fKKNxhaRxNQpXPReOuJvlOv6Eb+ss= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321466; c=relaxed/simple; bh=ihf/gRh8V3eyFigSVCgEiwUDfiQkJZ0pUrLWekgm6JU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=GMPAg4E/jYbV+VvtO6p6zAy0bjUGYzN68vDzRWHjgUhosR6obiZJIceFqeLlR+vJXCX80MjRLEv5UEjmlDjjx8do29pANnzMyt5+LPvBGjFwi23OaNu+s4pbksENWw8r6H9CrcCWqc3R8J/jjgr9Nq08MH349Slp9fQH828eeQ8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=dMxkfvMG; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="dMxkfvMG" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 19F00C43394; Sun, 24 Mar 2024 23:04:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321464; bh=ihf/gRh8V3eyFigSVCgEiwUDfiQkJZ0pUrLWekgm6JU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=dMxkfvMG95zJPuBKeTV8Jmuc/SIi1dliw78lmhfAQt+l/k2E7W1RYrneaYqM0lTQA 2gsWa4jyPg5GqLHK2acT8nO8WEfh7MqprwBpQAHAJ1RF9tQ/BWH6M7K+k0tfD5UuJQ E+C9YjPrI534HdvULd7Jh67V6eHTPd1O4Xyq9wc4a1OkPpQ7sqskrL+RhOt4KlPk5j /EWebOWoSsXNL00AQVDoDLx5rjjO+325QjuvqGj26utjPyowFiGxT9QczvAcJDajJI 3JgbRWDjW89mbiN1mtOko5PI941xVECb8EykhBcw1ymBUZU2Q55gkAWMx7f/Q4L6Xv UDdJn9dtX+WCg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Dmitry Baryshkov , Konrad Dybcio , Bjorn Andersson , Sasha Levin Subject: [PATCH 6.6 189/638] arm64: dts: qcom: sm6115: declare VLS CLAMP register for USB3 PHY Date: Sun, 24 Mar 2024 18:53:46 -0400 Message-ID: <20240324230116.1348576-190-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 95d739ed962c9aaa17d77b739606dbdf31879f6e ] The USB3 PHY on the SM6115 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: 9dd5f6dba729 ("arm64: dts: qcom: sm6115: Add USB SS qmp phy node") Signed-off-by: Dmitry Baryshkov Reviewed-by: Konrad Dybcio Link: https://lore.kernel.org/r/20240117-usbc-phy-vls-clamp-v2-6-a950c223f1= 0f@linaro.org Signed-off-by: Bjorn Andersson Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/qcom/sm6115.dtsi | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/sm6115.dtsi b/arch/arm64/boot/dts/qco= m/sm6115.dtsi index 839c603512403..87cbc4e8b1ed5 100644 --- a/arch/arm64/boot/dts/qcom/sm6115.dtsi +++ b/arch/arm64/boot/dts/qcom/sm6115.dtsi @@ -591,6 +591,11 @@ tcsr_mutex: hwlock@340000 { #hwlock-cells =3D <1>; }; =20 + tcsr_regs: syscon@3c0000 { + compatible =3D "qcom,sm6115-tcsr", "syscon"; + reg =3D <0x0 0x003c0000 0x0 0x40000>; + }; + tlmm: pinctrl@500000 { compatible =3D "qcom,sm6115-tlmm"; reg =3D <0x0 0x00500000 0x0 0x400000>, @@ -856,6 +861,8 @@ usb_qmpphy: phy@1615000 { =20 #phy-cells =3D <0>; =20 + qcom,tcsr-reg =3D <&tcsr_regs 0xb244>; + status =3D "disabled"; }; =20 --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DE3D313442C; Sun, 24 Mar 2024 23:04: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=1711321466; cv=none; b=ggBKEphDAvkuLCrmxvRa+gl3Si8xkIx1xCNM/BD7bA/jzyondkvhloh5GPflHGeu/e/HwBUvFgAQoEE1T7FzGQbCOr8gL+nCklCtKOpmD+VfgT6ID3LHI0V8JPG/dDtwkfRIRHVzqvkrd+1TLWgqZObCRt7/aAJ5wOUvGSMWtbc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321466; c=relaxed/simple; bh=VnDGuHcYbqcpbVk8puKi+ZQ95N/HIblnKNAGwmVKMX4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=kCobHww0/y1hSqtj0i+cOCGT1pMKvI2O6PKoB1xakYYToLLJrP/np63UUgXposs5C1Mkw89RGdQvznBUTIVg7Ic3Xgp5ractn1/gw0Uxd7LEAQgiIUTlpmgTi0x3mRKNmNlY4f3rpoAem/fmlEZHd8pCsR6q2kXBiAG3UhdfOlc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=QHJ62vqU; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="QHJ62vqU" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 15599C43601; Sun, 24 Mar 2024 23:04:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321465; bh=VnDGuHcYbqcpbVk8puKi+ZQ95N/HIblnKNAGwmVKMX4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=QHJ62vqUS9+F9HP0n6cHZ++438xzmdd6TSBCouIMzBLxKv1D1qMQEoU6PUe2SIXKW AmnbqRPCGYEKufQtej+bzN11JgxhkjK0Og/e84uyAMyipc+pujfu4bBkz0fqHh+H4Q GQzamUbRgrK+/XjI8V/gsxTU/aJDYCdIA/d9iivtVWzgALKffqnfR1CQ3ru68NMKid kL/D+tXjrXiTYozYkS/fd7AMHIzU3TqR47zJF0anpx2KoDWVZ4aL4or0Oz72TKh3DN dMsuhhDmUEtOut3eHzzTr9Zn9hpEO1vAlPdCnKo8y8oHpCBMs6Xo+lVQ8VMqz2jin5 uBFRfyqiDkLlA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Kang Yang , Jeff Johnson , Kalle Valo , Sasha Levin Subject: [PATCH 6.6 190/638] wifi: ath12k: fix incorrect logic of calculating vdev_stats_id Date: Sun, 24 Mar 2024 18:53:47 -0400 Message-ID: <20240324230116.1348576-191-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Kang Yang [ Upstream commit 019b58dcb6ed267e17b7efd03ec8575c1b67d942 ] During calculate vdev_stats_id, will compare vdev_stats_id with ATH12K_INVAL_VDEV_STATS_ID by '<=3D'. If vdev_stats_id is relatively small, then assign ATH12K_INVAL_VDEV_STATS_ID to vdev_stats_id. This logic is incorrect. Firstly, should use '>=3D' instead of '<=3D' to check if this u8 variable exceeds the max valid range. Secondly, should use the maximum value as comparison value. Correct comparison symbols and use the maximum value ATH12K_MAX_VDEV_STATS_ID for comparison. Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SIL= ICONZ-3 Fixes: d889913205cf ("wifi: ath12k: driver for Qualcomm Wi-Fi 7 devices") Signed-off-by: Kang Yang Acked-by: Jeff Johnson Signed-off-by: Kalle Valo Link: https://msgid.link/20240130040303.370590-3-quic_kangyang@quicinc.com Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/net/wireless/ath/ath12k/mac.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/wireless/ath/ath12k/mac.c b/drivers/net/wireless/a= th/ath12k/mac.c index a8a71478baea8..61435e4489b9f 100644 --- a/drivers/net/wireless/ath/ath12k/mac.c +++ b/drivers/net/wireless/ath/ath12k/mac.c @@ -5152,7 +5152,7 @@ ath12k_mac_get_vdev_stats_id(struct ath12k_vif *arvif) do { if (ab->free_vdev_stats_id_map & (1LL << vdev_stats_id)) { vdev_stats_id++; - if (vdev_stats_id <=3D ATH12K_INVAL_VDEV_STATS_ID) { + if (vdev_stats_id >=3D ATH12K_MAX_VDEV_STATS_ID) { vdev_stats_id =3D ATH12K_INVAL_VDEV_STATS_ID; break; } --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CCCE92046D4; Sun, 24 Mar 2024 23:04: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=1711321467; cv=none; b=ojwsGG+JX/zl5uU/eDn7GDXZ+d4Tc8Spma+cNSfilOF972W+XZTZfeUUdzu+DrwwzTSlWMcYVnqk4haofB6gorQnyox44epfiblRgUdFVCZB8ywt7P/WM/krtZ5hWc1vtlKcAsQeWxnQUZtY0gV9luc69LQmeCNwM5av3EJXT4g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321467; c=relaxed/simple; bh=6Pqk+h8glXpp8xRTwV434H7x7q75+UK2vck8COxArEo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=DO+AHp6Fn6QdH90VCkk5K6Z88rld4eGPpWwFGPYkk5cNHvjUXFgZRx/a/BVTHHXwguS1ukUsuYfS3Jg1rhVGpf9EJ7LscnzFTNV8PimUH6WnHi1va4avxV6ByCKQE8Jaepy3MFLO5KYMg5+aj/b6+U6kOI5YGlArac9EUW59YbY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Tcm6gzhz; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Tcm6gzhz" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1087DC433F1; Sun, 24 Mar 2024 23:04:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321466; bh=6Pqk+h8glXpp8xRTwV434H7x7q75+UK2vck8COxArEo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Tcm6gzhzNgkUVIfVY8aPkUvhcyxlUL0cb1wNgEDoEph7o90HfSf5xkSn9gTsDoKmT dF7fL+6Vk6dGQ8Y4SMrW65+UpSEwHyl4Gnvb52t5twNjhn8SuRgs3wP2Fm0Dvr+EMd wO46uIdWQQ+VTFb0OWXv3O4lEan9ErNImrVnqOkJr1yoKqSaG0rA8ZYLDaYHkXsBso L57x21pKXriqC0/lyS44LA5uMlZ9WSadpxQWsl949M+oGHs9pSzS7Dx4Ir/s6B94VY TfGmzS2D+NCvf1UfdMsk44hTL4RZFMzcL9knk+yFLPXG/gbo2O6OAwvrKHN37p3ZHs Qsb6wBAViFJZA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Petr Mladek , John Ogness , Sasha Levin Subject: [PATCH 6.6 191/638] printk: Disable passing console lock owner completely during panic() Date: Sun, 24 Mar 2024 18:53:48 -0400 Message-ID: <20240324230116.1348576-192-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara ---- ---- 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 0b3af1529778c..b67fbae1299fa 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -1850,10 +1850,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_); } @@ -1878,6 +1891,22 @@ static int console_lock_spinning_disable_and_check(i= nt cookie) { 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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 965D52046DC; Sun, 24 Mar 2024 23:04: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=1711321468; cv=none; b=nkDlbxtuOQwbV/HNiFx4ci9UiF1SL8oa+nNsmtrfpr1RxYQSqM86q8CMfAs83ryFY9EjGPqmVKhjYk3h7JV5WP29lKm5KpbV1r618tvQcjbLKxRTmsjNghOufaeEANlv36Sjnp7DKoR3P5qJzy+VS7rBH1+Qutk4pBj9RM2wR38= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321468; c=relaxed/simple; bh=6hCrKi98dMVDgFgeCygjagN6sTUVvKnVanZ0V+Mizj8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=o2+uONPoMd4F84HzWHAMn7HbAx1zMiOEskZQggHpLWIDLv6e4SE9d3IKnajSvLBuYsVdY6kzjDizEUhl3DXMLdm83pxg/n91bxcjsLaSR+7cqqDxgoEAgttHqmEWN3Y3RIZfxM4ZpLpVSGVnO16DTaLwc+RQfa3icIvw6WHJYYo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=DARfLaLQ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="DARfLaLQ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id EE158C433C7; Sun, 24 Mar 2024 23:04:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321467; bh=6hCrKi98dMVDgFgeCygjagN6sTUVvKnVanZ0V+Mizj8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=DARfLaLQ22oUGHahDyRQRxruanNdsGaGaXTLbxUv0TdJzWtN146V8PJzqoh2nZsc6 VL9Zm+BxguusSwMcaHIaGD2FYj1GVgd4TTbcT5pIR+wlk8WpRdoO4z57uJbCwzqZLs wfFrCbCdFjaXI1KY3dddd63jXQSVOrVap+BRbj7Y7n/jQP133BQh0JBUmFu0wl2utg AdfoTWBfjoyDV8GNHNRjSrbRef/Xu+QuttcWhC6othvn31pItWpMXYumvHG1ZoV9ax v4nA1vs7I0u1chIxTop0LWBaSSoImdoUzcaLvV1oflmrZilYAWL2mGKpIz0JsAisRr OkKK/+I9/ee7Q== 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 6.6 192/638] pwm: sti: Fix capture for st,pwm-num-chan < st,capture-num-chan Date: Sun, 24 Mar 2024 18:53:49 -0400 Message-ID: <20240324230116.1348576-193-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-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 Tested-by: Takeshi Ogasawara --- 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 c8800f84b917f..c782378dff5e5 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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 946972046E3; Sun, 24 Mar 2024 23:04: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=1711321469; cv=none; b=MIPVw//FuxkOjP9/r06dR/2vX+v9/vFc9jhUqTsTlUYB+6K+GvuIxZ3prdRu9OQJClUadmAKxov0toQK/Urp9Y2kB0AuqH7K6lH3+otU+Su0JmVNk93rj1YOBjmR1ipytDPnRvjfmO5clv/xp8I9Jdx7Pu7X4SaWbCLvn+2wPwg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321469; c=relaxed/simple; bh=lrV3hF7pREKUALqHJGjU2QWD2BAkZOc4EaJoGgQ0cV0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=BiOLaYZ2cWykEW8H2tvix34qwjWfE1bIv+/J2uIpjprN0VIQnULv6l9MoBLOB+gg6cG7ZIzp5caxWLUi6GjlQkaAp7RXzH5vjsvQfingiqKeGVMlrcztJ86IRgr5KB6nFP9hx6JGLpmm45D+JSIVL64rCrkaNnsHq6WJjkcbjeA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=LB1nq06r; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="LB1nq06r" Received: by smtp.kernel.org (Postfix) with ESMTPSA id BBC9AC43399; Sun, 24 Mar 2024 23:04:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321468; bh=lrV3hF7pREKUALqHJGjU2QWD2BAkZOc4EaJoGgQ0cV0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=LB1nq06rr+Z8Rp46wJNOJaEnXGryKXx08AOHL5d3LiG1SjC/OHeDTSehAUZLasPVX tn6GYc6Hz/nXmTCdij6zfT3h+zkSPK7SYf7/agcPvs/w7I7Ptxh+/lpsDhYKPsFOLY PkuiLYVy03xTdIoa0m2Bbyx5vpOuce3S1oWtG1MyKNbWW1trVtVBVzhpmVa7q9gYlT LBTPMTf55RvCnhRrknUfx+iaMxv8bGNPfmH8CAvUuBOxf8lJvLbdgi5O/LVzEwjy2+ PKH7bAzCFj2YR76T5bM20aNLiMNZ1pojpgmYy6qjSTKWN/lve9UjYC/NKyjrf9qkKX rxIMZhw1RG/Mw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Viktor Malik , Andrii Nakryiko , Daniel Xu , Sasha Levin Subject: [PATCH 6.6 193/638] tools/resolve_btfids: Refactor set sorting with types from btf_ids.h Date: Sun, 24 Mar 2024 18:53:50 -0400 Message-ID: <20240324230116.1348576-194-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Viktor Malik [ Upstream commit 9707ac4fe2f5bac6406d2403f8b8a64d7b3d8e43 ] Instead of using magic offsets to access BTF ID set data, leverage types from btf_ids.h (btf_id_set and btf_id_set8) which define the actual layout of the data. Thanks to this change, set sorting should also continue working if the layout changes. This requires to sync the definition of 'struct btf_id_set8' from include/linux/btf_ids.h to tools/include/linux/btf_ids.h. We don't sync the rest of the file at the moment, b/c that would require to also sync multiple dependent headers and we don't need any other defs from btf_ids.h. Signed-off-by: Viktor Malik Signed-off-by: Andrii Nakryiko Acked-by: Daniel Xu Link: https://lore.kernel.org/bpf/ff7f062ddf6a00815fda3087957c4ce667f50532.= 1707223196.git.vmalik@redhat.com Stable-dep-of: 903fad439466 ("tools/resolve_btfids: Fix cross-compilation t= o non-host endianness") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- tools/bpf/resolve_btfids/main.c | 35 ++++++++++++++++++++------------- tools/include/linux/btf_ids.h | 9 +++++++++ 2 files changed, 30 insertions(+), 14 deletions(-) diff --git a/tools/bpf/resolve_btfids/main.c b/tools/bpf/resolve_btfids/mai= n.c index 27a23196d58e1..32634f00abba4 100644 --- a/tools/bpf/resolve_btfids/main.c +++ b/tools/bpf/resolve_btfids/main.c @@ -70,6 +70,7 @@ #include #include #include +#include #include #include #include @@ -78,7 +79,7 @@ #include =20 #define BTF_IDS_SECTION ".BTF_ids" -#define BTF_ID "__BTF_ID__" +#define BTF_ID_PREFIX "__BTF_ID__" =20 #define BTF_STRUCT "struct" #define BTF_UNION "union" @@ -161,7 +162,7 @@ static int eprintf(int level, int var, const char *fmt,= ...) =20 static bool is_btf_id(const char *name) { - return name && !strncmp(name, BTF_ID, sizeof(BTF_ID) - 1); + return name && !strncmp(name, BTF_ID_PREFIX, sizeof(BTF_ID_PREFIX) - 1); } =20 static struct btf_id *btf_id__find(struct rb_root *root, const char *name) @@ -441,7 +442,7 @@ static int symbols_collect(struct object *obj) * __BTF_ID__TYPE__vfs_truncate__0 * prefix =3D ^ */ - prefix =3D name + sizeof(BTF_ID) - 1; + prefix =3D name + sizeof(BTF_ID_PREFIX) - 1; =20 /* struct */ if (!strncmp(prefix, BTF_STRUCT, sizeof(BTF_STRUCT) - 1)) { @@ -649,19 +650,18 @@ static int cmp_id(const void *pa, const void *pb) static int sets_patch(struct object *obj) { Elf_Data *data =3D obj->efile.idlist; - int *ptr =3D data->d_buf; struct rb_node *next; =20 next =3D rb_first(&obj->sets); while (next) { - unsigned long addr, idx; + struct btf_id_set8 *set8; + struct btf_id_set *set; + unsigned long addr, off; struct btf_id *id; - int *base; - int cnt; =20 id =3D rb_entry(next, struct btf_id, rb_node); addr =3D id->addr[0]; - idx =3D addr - obj->efile.idlist_addr; + off =3D addr - obj->efile.idlist_addr; =20 /* sets are unique */ if (id->addr_cnt !=3D 1) { @@ -670,14 +670,21 @@ static int sets_patch(struct object *obj) return -1; } =20 - idx =3D idx / sizeof(int); - base =3D &ptr[idx] + (id->is_set8 ? 2 : 1); - cnt =3D ptr[idx]; + if (id->is_set) { + set =3D data->d_buf + off; + qsort(set->ids, set->cnt, sizeof(set->ids[0]), cmp_id); + } else { + set8 =3D data->d_buf + off; + /* + * Make sure id is at the beginning of the pairs + * struct, otherwise the below qsort would not work. + */ + BUILD_BUG_ON(set8->pairs !=3D &set8->pairs[0].id); + qsort(set8->pairs, set8->cnt, sizeof(set8->pairs[0]), cmp_id); + } =20 pr_debug("sorting addr %5lu: cnt %6d [%s]\n", - (idx + 1) * sizeof(int), cnt, id->name); - - qsort(base, cnt, id->is_set8 ? sizeof(uint64_t) : sizeof(int), cmp_id); + off, id->is_set ? set->cnt : set8->cnt, id->name); =20 next =3D rb_next(next); } diff --git a/tools/include/linux/btf_ids.h b/tools/include/linux/btf_ids.h index 2f882d5cb30f5..72535f00572f6 100644 --- a/tools/include/linux/btf_ids.h +++ b/tools/include/linux/btf_ids.h @@ -8,6 +8,15 @@ struct btf_id_set { u32 ids[]; }; =20 +struct btf_id_set8 { + u32 cnt; + u32 flags; + struct { + u32 id; + u32 flags; + } pairs[]; +}; + #ifdef CONFIG_DEBUG_INFO_BTF =20 #include /* for __PASTE */ --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 793692046DD; Sun, 24 Mar 2024 23:04: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=1711321469; cv=none; b=Ouhji8oj3kmpG+a7Nr+/F7BAXLQEu4jrdnh6NPn+4fFdFjgzdYxyheo4ShViBM5ftvs/NBJjBmQIdw1YVDm2CxbQ/nHuXgdc3crL4/3bvFGMDX1ihNzlGaGRQLDWFUXYmR8H+evBtVK0fCb7MQUIyOwxnRLMrc8vYi5sOcOaL5Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321469; c=relaxed/simple; bh=uZTzWKQcsPV7yMNUkAApk1NzfA6xdSEQZjBPmeeK1cY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=I3I3ANj41hPfnp0jAb+pmstp9TEs8h3jAT9WzS6UMWGYWcYTV+jhJw8cqgPbd9Sugl25B7kNzqr8NMTvVRB2h/RGTEsWGyidPpsb3mJmGZG/koBTMIt4U1gYlDHwSiz+mGOg1+d3DZr0t9YRv4wr/0KnN1UlhhkZQIR0ap6r1CQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=X4TZ/agD; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="X4TZ/agD" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B8997C43394; Sun, 24 Mar 2024 23:04:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321469; bh=uZTzWKQcsPV7yMNUkAApk1NzfA6xdSEQZjBPmeeK1cY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=X4TZ/agDrkS2QP7xR81McFLSSOYHNSGlJgh+1zvAIT+ayg7sRFivOV15+g3gSblpF /dn86JQmkhwGz2j9ZLqB35GvNEOOw5OdwQZGca1iiuNFmc4RQc5pzs6KA2yBxtMW8J K98vjgl0SPkQ/Uw+jEXEn45GZJzoNzg/C7vcSNHTA3NNLRy8nKZluML4vBo43fwmnG IjGUrUSWgeNodz4RnIOUZArrD9r0G2ISVRPSoL3CygRd/hv3BYfG8L407GAR8fxqfF o0VwLciiA3ZAf8KHCZfQdHAZGcatOqd+AqrPEUmBOoFJeBGEGBZWM0Ru+OjL1Z2uSn jroWHwbK7V6AQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Viktor Malik , Andrii Nakryiko , Sasha Levin Subject: [PATCH 6.6 194/638] tools/resolve_btfids: Fix cross-compilation to non-host endianness Date: Sun, 24 Mar 2024 18:53:51 -0400 Message-ID: <20240324230116.1348576-195-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Viktor Malik [ Upstream commit 903fad4394666bc23975c93fb58f137ce64b5192 ] The .BTF_ids section is pre-filled with zeroed BTF ID entries during the build and afterwards patched by resolve_btfids with correct values. Since resolve_btfids always writes in host-native endianness, it relies on libelf to do the translation when the target ELF is cross-compiled to a different endianness (this was introduced in commit 61e8aeda9398 ("bpf: Fix libelf endian handling in resolv_btfids")). Unfortunately, the translation will corrupt the flags fields of SET8 entries because these were written during vmlinux compilation and are in the correct endianness already. This will lead to numerous selftests failures such as: $ sudo ./test_verifier 502 502 #502/p sleepable fentry accept FAIL Failed to load prog 'Invalid argument'! bpf_fentry_test1 is not sleepable verification time 34 usec stack depth 0 processed 0 insns (limit 1000000) max_states_per_insn 0 total_states 0 = peak_states 0 mark_read 0 Summary: 0 PASSED, 0 SKIPPED, 1 FAILED Since it's not possible to instruct libelf to translate just certain values, let's manually bswap the flags (both global and entry flags) in resolve_btfids when needed, so that libelf then translates everything correctly. Fixes: ef2c6f370a63 ("tools/resolve_btfids: Add support for 8-byte BTF sets= ") Signed-off-by: Viktor Malik Signed-off-by: Andrii Nakryiko Link: https://lore.kernel.org/bpf/7b6bff690919555574ce0f13d2a5996cacf7bf69.= 1707223196.git.vmalik@redhat.com Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- tools/bpf/resolve_btfids/main.c | 35 +++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/tools/bpf/resolve_btfids/main.c b/tools/bpf/resolve_btfids/mai= n.c index 32634f00abba4..d9520cb826b31 100644 --- a/tools/bpf/resolve_btfids/main.c +++ b/tools/bpf/resolve_btfids/main.c @@ -90,6 +90,14 @@ =20 #define ADDR_CNT 100 =20 +#if __BYTE_ORDER =3D=3D __LITTLE_ENDIAN +# define ELFDATANATIVE ELFDATA2LSB +#elif __BYTE_ORDER =3D=3D __BIG_ENDIAN +# define ELFDATANATIVE ELFDATA2MSB +#else +# error "Unknown machine endianness!" +#endif + struct btf_id { struct rb_node rb_node; char *name; @@ -117,6 +125,7 @@ struct object { int idlist_shndx; size_t strtabidx; unsigned long idlist_addr; + int encoding; } efile; =20 struct rb_root sets; @@ -320,6 +329,7 @@ static int elf_collect(struct object *obj) { Elf_Scn *scn =3D NULL; size_t shdrstrndx; + GElf_Ehdr ehdr; int idx =3D 0; Elf *elf; int fd; @@ -351,6 +361,13 @@ static int elf_collect(struct object *obj) return -1; } =20 + if (gelf_getehdr(obj->efile.elf, &ehdr) =3D=3D NULL) { + pr_err("FAILED cannot get ELF header: %s\n", + elf_errmsg(-1)); + return -1; + } + obj->efile.encoding =3D ehdr.e_ident[EI_DATA]; + /* * Scan all the elf sections and look for save data * from .BTF_ids section and symbols. @@ -681,6 +698,24 @@ static int sets_patch(struct object *obj) */ BUILD_BUG_ON(set8->pairs !=3D &set8->pairs[0].id); qsort(set8->pairs, set8->cnt, sizeof(set8->pairs[0]), cmp_id); + + /* + * When ELF endianness does not match endianness of the + * host, libelf will do the translation when updating + * the ELF. This, however, corrupts SET8 flags which are + * already in the target endianness. So, let's bswap + * them to the host endianness and libelf will then + * correctly translate everything. + */ + if (obj->efile.encoding !=3D ELFDATANATIVE) { + int i; + + set8->flags =3D bswap_32(set8->flags); + for (i =3D 0; i < set8->cnt; i++) { + set8->pairs[i].flags =3D + bswap_32(set8->pairs[i].flags); + } + } } =20 pr_debug("sorting addr %5lu: cnt %6d [%s]\n", --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 725FB2046D9; Sun, 24 Mar 2024 23:04: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=1711321470; cv=none; b=E+9v5iw53+y0gxqhNWXt4NbHGr8xtikgpWxrMfEEq0U2kD/yU4BRNDV8yimYUp9PBfYRP1hrejrtn6hK16L5TXzRfeW95Z2CGdTV06KeEPAUPHJAxZ/LptQU1/e/p45aNo5C+pjWN7UZVwY/k90qkGFdlsPfzi8+fLVsbLS+2F4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321470; c=relaxed/simple; bh=9j85DeQwPR2N+dsNzupi9Gy9qs2sENg92covwYsd3jA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=oUA5F/GUvTGec53D6w2X2JerxcRYuheA1KIj38NJ5MYmXrCSPOReLPhFfFUjHPKKHLtaI9qO7W/m0o9XWO1sjsboGBX7bVsGDjtWFjZVJ88Rykk+8v8HB0o32VV908ldgDcR9DflQky0IFYpb+nV9pXxgs4vGaRtyUFO88/s4tM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=jDrT9S1n; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="jDrT9S1n" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9B157C43390; Sun, 24 Mar 2024 23:04:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321470; bh=9j85DeQwPR2N+dsNzupi9Gy9qs2sENg92covwYsd3jA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jDrT9S1nDnQ8T/2ZJE3sBVVf678RAmLl2tvCSA8O+aVUxbyF591++Fp9hLjLt53kM NY2yngWSRFt1OxF8kXXZchwsDCsZ9RDIn/ADxSkIybhsT6S7YYEDc40/i0vDjkMm2c AGpZD91C41cn7xLl5kFBn1eCrPNaQcxr0x3+pPCQT4SgbWCEfN/xAeUS3gWxxuRR/o 1pFQqrlJ8Eop2hnARaAZXAL9LB9f8em6g817xot7SLa+H5xsrou9ZHKmYp7dkJ1aAm bpilBSEq1pb/VEHjxvcOg3YTMAw+d//5C0yYPASGcFhsUI1RXrjwbDU19jyEJymZVP dL66NUE8epOTQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Miri Korenblit , Emmanuel Grumbach , Johannes Berg , Sasha Levin Subject: [PATCH 6.6 195/638] wifi: iwlwifi: support EHT for WH Date: Sun, 24 Mar 2024 18:53:52 -0400 Message-ID: <20240324230116.1348576-196-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 f51d6431824f0afb9f73d68971d154c47c26b86a ] sku_cap_11be_enable should be set to true also for WH. Fixes: e1374ed25324 ("wifi: iwlwifi: Add support for new CNVi (SC)") Signed-off-by: Miri Korenblit Reviewed-by: Emmanuel Grumbach Link: https://msgid.link/20240204235836.a6d4097cbaca.I8b00fa7b6226b4116cd91= f70fb0b15e79b4dee5a@changeid Signed-off-by: Johannes Berg Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c b/drivers/n= et/wireless/intel/iwlwifi/iwl-nvm-parse.c index 878d9416a1085..26870fc12df81 100644 --- a/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c +++ b/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c @@ -2038,7 +2038,7 @@ struct iwl_nvm_data *iwl_get_nvm(struct iwl_trans *tr= ans, !!(mac_flags & NVM_MAC_SKU_FLAGS_BAND_5_2_ENABLED); nvm->sku_cap_mimo_disabled =3D !!(mac_flags & NVM_MAC_SKU_FLAGS_MIMO_DISABLED); - if (CSR_HW_RFID_TYPE(trans->hw_rf_id) =3D=3D IWL_CFG_RF_TYPE_FM) + if (CSR_HW_RFID_TYPE(trans->hw_rf_id) >=3D IWL_CFG_RF_TYPE_FM) nvm->sku_cap_11be_enable =3D true; =20 /* Initialize PHY sku data */ --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4E97513175C; Sun, 24 Mar 2024 23:04: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=1711321472; cv=none; b=l6j8YLrfwIWPVI2eS9qwUx5yziwbxnywlv1HQj/+tV+x9K0mlPEznVrKCZfgq8cKnoAj26QxstMym2FIC8xuI/ZnjIeqM301vA7hdCoGN6zL3wqDqeLycok09wC06k5UDcGLQp4h+2vAa8JnFrL9z67NFWs6Mplqo8mfWxLFRvg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321472; c=relaxed/simple; bh=fcxe7umDdK20O7WND9Wo9ymjWrQaKNZP7RPx6aJX31Q=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qaATB4J+0pO1pxj7G1sEhB8Cw+ubqrV0RzGdeTnq9U+y2pAoYz+jTrWowHz4tZ1QWRVbZxVzkevptvNUyybcdeENauxl+yvY34Em0IHpV7PrHZZWGO7dIfvplodkwBL+0AEarZBJSuJtVWtgXT4hggvxWvS30cyg0sBHCpREiQ0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=QnolIbIs; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="QnolIbIs" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 93FF9C433F1; Sun, 24 Mar 2024 23:04:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321471; bh=fcxe7umDdK20O7WND9Wo9ymjWrQaKNZP7RPx6aJX31Q=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=QnolIbIsX5xxG8QXHXK9+KrGBtRucZr9eqPMF8+WvAGN+Ta1T2THM8Vb2NiaDF8Km ITIAO9cUG2l8cWzAdfjIjhWwbnau+WRghQkg5vK+KUWGqeB14q06QcrYno8LRCx8d8 StxV1tV8ivF3LxyISz5zjV3Oc4T8zZSrcoZbWGPYBdODjDtaqXdU8MLXHJSVkhLXcG 2RwySM0g9ukAOLnLEuqSrhHFXjDwSkzow5a8geRzzYst/YID7jyK8bi8q+iKygNrJV i0Xan0bgX6WO4S+plEwbILg3cZUPVC94zC6AMiAOv8lX7nnM7JpC9dMoz9C/atnVn5 oI6VXcZ4neISA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Johannes Berg , Miri Korenblit , Sasha Levin Subject: [PATCH 6.6 196/638] wifi: iwlwifi: mvm: fix erroneous queue index mask Date: Sun, 24 Mar 2024 18:53:53 -0400 Message-ID: <20240324230116.1348576-197-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 2e0e766bd8a7f14f10c3e70b8203c4c1e6d9ec76 ] When retrieving the queue index ("SCD SSN") from the TX response, it's currently masked with 0xFFF. However, now that we have queues longer than 4k, that became wrong, so make the mask depend on the hardware family. This fixes an issue where if we get a single frame reclaim while in the top half of an 8k long queue, we'd reclaim-wrap the queue twice (once on this and then again on the next non-single reclaim) which at least triggers the WARN_ON_ONCE() in iwl_txq_reclaim(), but could have other negative side effects (such as unmapping a frame that wasn't transmitted yet, and then taking an IOMMU fault) as well. Fixes: 7b3e42ea2ead ("iwlwifi: support multiple tfd queue max sizes for dif= ferent devices") Signed-off-by: Johannes Berg Signed-off-by: Miri Korenblit Link: https://msgid.link/20240205211151.4148a6ef54e0.I733a70f679c25f9f99097= a8dcb3a1f8165da6997@changeid Signed-off-by: Johannes Berg Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/net/wireless/intel/iwlwifi/mvm/tx.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/tx.c b/drivers/net/wire= less/intel/iwlwifi/mvm/tx.c index 4ea3aabc64883..3adb1acc07191 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/tx.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/tx.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause /* - * Copyright (C) 2012-2014, 2018-2023 Intel Corporation + * Copyright (C) 2012-2014, 2018-2024 Intel Corporation * Copyright (C) 2013-2015 Intel Mobile Communications GmbH * Copyright (C) 2016-2017 Intel Deutschland GmbH */ @@ -1616,12 +1616,18 @@ static void iwl_mvm_tx_status_check_trigger(struct = iwl_mvm *mvm, * of the batch. This is why the SSN of the SCD is written at the end of t= he * whole struct at a variable offset. This function knows how to cope with= the * variable offset and returns the SSN of the SCD. + * + * For 22000-series and lower, this is just 12 bits. For later, 16 bits. */ static inline u32 iwl_mvm_get_scd_ssn(struct iwl_mvm *mvm, struct iwl_mvm_tx_resp *tx_resp) { - return le32_to_cpup((__le32 *)iwl_mvm_get_agg_status(mvm, tx_resp) + - tx_resp->frame_count) & 0xfff; + u32 val =3D le32_to_cpup((__le32 *)iwl_mvm_get_agg_status(mvm, tx_resp) + + tx_resp->frame_count); + + if (mvm->trans->trans_cfg->device_family >=3D IWL_DEVICE_FAMILY_AX210) + return val & 0xFFFF; + return val & 0xFFF; } =20 static void iwl_mvm_rx_tx_cmd_single(struct iwl_mvm *mvm, --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9DE49132C37; Sun, 24 Mar 2024 23:04: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=1711321472; cv=none; b=UTVYF3JZcwyT+Gk3fxNW/kglmmM0IBMgqWf/VLKuu7mUAJ2jFuD4o3gKCJcXUwhs1trA0mzTwg+dL0zcsqCZ1WjA1VZsJ6lwtYnTmnT4f3hI3RY2WmfVJ8GE8zKSnJ22Gt1Wjar0EjpESHPMfCFioiLu3QIgb5CRH/wE8v2RUlk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321472; c=relaxed/simple; bh=qBDDt3UEpEEh1v+s/AaZiH9vTDwgz70LlK5QGjZqtYk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=IMOkWZlEd0FKE+tZ93xxBN93OkRv7H1UgnyWiuno1BYKc/EyikvJ92AdmNgCUkgki2mcPazH+aq7xffCE9ugefgwJwOuNV2tU5Dl4FRUeKCgAO401LoMWYCuVudKQppmRIsbbOZhDcE2o3A9H3otkQRfGQWyg5liQR900p1uZJw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=G1fO2aqS; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="G1fO2aqS" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 730FBC433C7; Sun, 24 Mar 2024 23:04:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321472; bh=qBDDt3UEpEEh1v+s/AaZiH9vTDwgz70LlK5QGjZqtYk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=G1fO2aqSrjRzqyFIXNa4OzgIUy8jXNGB9tldZEnaz0iquAcBlT6psk4KHLYxTTT0Z p0BYAng+dL56QuQkIeDC5P8lrBUPBiWP5McvVzFgpm2Xy0HxggSgR4SWvdezQ5GWKy 1955xHgraJej3M5oir0U4tiPQoG3T1PhGNCYBkthcG7NmAwcIad2kf+DgSAONQ24dh O7OvaVVPDwNKPlyiwzQ0jU5wjiGJhWJzybozKQif12qENSvQOh79tS8xPSpEdLGqvy keIlvmzx6Kw9mwwLAfAq8pgJ1ucyF9CRYU14lsVSExXenAt8344eSqxxl0oIC/kJQS pGBQZf8opffGg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Emmanuel Grumbach , Miri Korenblit , Johannes Berg , Sasha Levin Subject: [PATCH 6.6 197/638] wifi: iwlwifi: mvm: don't set the MFP flag for the GTK Date: Sun, 24 Mar 2024 18:53:54 -0400 Message-ID: <20240324230116.1348576-198-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Emmanuel Grumbach [ Upstream commit e35f316bce9e5733c9826120c1838f4c447b2c4c ] The firmware doesn't need the MFP flag for the GTK, it can even make the firmware crash. in case the AP is configured with: group cipher TKIP and MFPC. We would send the GTK with cipher =3D TKIP and MFP which is of course not possible. Fixes: 5c75a208c244 ("wifi: iwlwifi: mvm: support new key API") Signed-off-by: Emmanuel Grumbach Signed-off-by: Miri Korenblit Link: https://msgid.link/20240206175739.2f2c602ab3c6.If13b2e2fa532381d985c0= 7df130bee1478046c89@changeid Signed-off-by: Johannes Berg Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- .../net/wireless/intel/iwlwifi/mvm/mld-key.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/mld-key.c b/drivers/net= /wireless/intel/iwlwifi/mvm/mld-key.c index ea3e9e9c6e26c..fe4b39b19a612 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/mld-key.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/mld-key.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause /* - * Copyright (C) 2022 - 2023 Intel Corporation + * Copyright (C) 2022 - 2024 Intel Corporation */ #include #include @@ -62,11 +62,13 @@ u32 iwl_mvm_get_sec_flags(struct iwl_mvm *mvm, struct ieee80211_key_conf *keyconf) { struct iwl_mvm_vif *mvmvif =3D iwl_mvm_vif_from_mac80211(vif); + bool pairwise =3D keyconf->flags & IEEE80211_KEY_FLAG_PAIRWISE; + bool igtk =3D keyconf->keyidx =3D=3D 4 || keyconf->keyidx =3D=3D 5; u32 flags =3D 0; =20 lockdep_assert_held(&mvm->mutex); =20 - if (!(keyconf->flags & IEEE80211_KEY_FLAG_PAIRWISE)) + if (!pairwise) flags |=3D IWL_SEC_KEY_FLAG_MCAST_KEY; =20 switch (keyconf->cipher) { @@ -96,12 +98,14 @@ u32 iwl_mvm_get_sec_flags(struct iwl_mvm *mvm, if (!sta && vif->type =3D=3D NL80211_IFTYPE_STATION) sta =3D mvmvif->ap_sta; =20 - /* Set the MFP flag also for an AP interface where the key is an IGTK - * key as in such a case the station would always be NULL + /* + * If we are installing an iGTK (in AP or STA mode), we need to tell + * the firmware this key will en/decrypt MGMT frames. + * Same goes if we are installing a pairwise key for an MFP station. + * In case we're installing a groupwise key (which is not an iGTK), + * then, we will not use this key for MGMT frames. */ - if ((!IS_ERR_OR_NULL(sta) && sta->mfp) || - (vif->type =3D=3D NL80211_IFTYPE_AP && - (keyconf->keyidx =3D=3D 4 || keyconf->keyidx =3D=3D 5))) + if ((!IS_ERR_OR_NULL(sta) && sta->mfp && pairwise) || igtk) flags |=3D IWL_SEC_KEY_FLAG_MFP; =20 return flags; --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 49F711353E1; Sun, 24 Mar 2024 23:04: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=1711321474; cv=none; b=WOKLXtUB1zcSdxb64XwjJRbiBbIfTIFvsl8iFklYswHEZAvPkL39DPuIZMoAL9Cel3Q1+70+WSRxlg2iVBKhkUeqSt892CaUyRuV2VSDk05k7aHUKVkiZqqeczzGALiukjBe9AMG5zdFuefDDdlaVh40fn0akxvthVG2bfmyfco= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321474; c=relaxed/simple; bh=Ko3Y46oUAKjs4NcPOC3rqp/iAteZ9BNi4PZcMKUCMkM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Ko4/Fgy3w/OIB5Z4j8ZzgYtrDVw6IlqD/EVwlQDfHjnBHeXA2QPuyGvyXDEMepo94K/b/T/5Xt3FknBu8vKz0oQcIaFq+0JkxSYcHrRHi+UWmXgxYe27E53lnkiOVXQAdvr1FoH3G28lo2BABMJMpJ35nIA5q95iGIeVAbQPn9U= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=RzbpmKbN; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="RzbpmKbN" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6CD03C43394; Sun, 24 Mar 2024 23:04:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321473; bh=Ko3Y46oUAKjs4NcPOC3rqp/iAteZ9BNi4PZcMKUCMkM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=RzbpmKbNDWD4fewy6UBnv1o3GVXSSjmeswkNXPapMoSZ8mSRxpCLPiun8a8yeR8K7 11023iA51JuicW0JbKfm4iisA6A/ycMLRwPwO2NG56CYjCQDKRiuDFe9WoybfhPehb gXNPqMBBaDzrDj4IfWl/InKaWwmSilj7utyxorDPOQMTdlSESVELbVX0jF2r/Z8z3i UzHiGTkqTHkpCuZoJ0rq8/kREhHMLM1e4XFzTYh9jnSRrEA5EyugNMJldP1iX8ucQz CxZfJNhxJCGMnHefBrbmz9dVYHP26rqzGLkurN3I7eqzfXsyiKsVvh+LJ6RnKjDotY pW5Udum8l7WoQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Johannes Berg , Miri Korenblit , Sasha Levin Subject: [PATCH 6.6 198/638] wifi: iwlwifi: mvm: don't set replay counters to 0xff Date: Sun, 24 Mar 2024 18:53:55 -0400 Message-ID: <20240324230116.1348576-199-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 dcda7fbb5a7a5..cfc239b272eb7 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/d3.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/d3.c @@ -461,12 +461,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 91F84204FAA; Sun, 24 Mar 2024 23:04: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=1711321475; cv=none; b=GSGWEW6azvu+HqUANcaz/nOtv6+5gt+F7IUm35CpbrEESKed7gXhB/ugSVOy/V4zwxD3QK26kQ5LAF2Ez5XbJtSlAmxJe0CWnHIf2RAE1an8LX8Jvxg93jD3itU52miC1I4rorOUwKMECvP1w9W1942QahSMn2w25BYLbYDO3sE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321475; c=relaxed/simple; bh=16ZbOH+aD2Acv/vWezeIe7AruriuvaPWKR+oVUm46m8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ojZ8E02zksO2Y+9vfIK0xWQRC3u5PG+RxIVKrVfvLAit+RPGE2fCX2waaJTuJ1pyjnNzWoHl9+4qz6bVoO8SLxnVMoEY6f9YbgEcVcrdi0HP8eqrVEvO7WgsgLX3n9k7GloUKEzppJsbjupNc0hdC3duCXEdKOJi2AmhUxORJqw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=rtiZA/QL; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="rtiZA/QL" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 53F89C433C7; Sun, 24 Mar 2024 23:04:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321474; bh=16ZbOH+aD2Acv/vWezeIe7AruriuvaPWKR+oVUm46m8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=rtiZA/QLBIf6oT36LZiCuih9qgw8lxmF1mBw+5fN95mkQdi9UJtmGsWZGYU9lom1P 65/1pMxH2BCm6NvsG18PLsgl53zQ8rE3FLtstzRgG8j5gmHwam9LQ0adIqr3cVXX/B tqXnNlzJa+0qQ5OZb/Bbnrw6UDlHEWmzsPXxbmPe3473uOI7262wmVhLnrFrxJQkJY CTf+wCi6f3ZFj1Vbi8VFkthm5tUi5qJwi4l6T7IN2SlPo/+7A0IdrqcQZgxP8H8lzH Pm1W0paD2r6+MUDhBX1NfUD1k2a+xAqKOqMewI7u+n8dHfGg3BzxNu4jbZoPp6+8l0 FsJ+yFdfSSGBQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Thomas Richter , Sumanth Korikkar , Heiko Carstens , Sasha Levin Subject: [PATCH 6.6 199/638] s390/pai: fix attr_event_free upper limit for pai device drivers Date: Sun, 24 Mar 2024 18:53:56 -0400 Message-ID: <20240324230116.1348576-200-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Richter [ Upstream commit 225d09d6e5f3870560665a1829d2db79330b4c58 ] When the device drivers are initialized, a sysfs directory is created. This contains many attributes which are allocated with kzalloc(). Should it fail, the memory for the attributes already created is freed in attr_event_free(). Its second parameter is number of attribute elements to delete. This parameter is off by one. When i. e. the 10th attribute fails to get created, attributes numbered 0 to 9 should be deleted. Currently only attributes numbered 0 to 8 are deleted. Fixes: 39d62336f5c1 ("s390/pai: add support for cryptography counters") Reported-by: Sumanth Korikkar Signed-off-by: Thomas Richter Acked-by: Sumanth Korikkar Signed-off-by: Heiko Carstens Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/s390/kernel/perf_pai_crypto.c | 2 +- arch/s390/kernel/perf_pai_ext.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/s390/kernel/perf_pai_crypto.c b/arch/s390/kernel/perf_pai= _crypto.c index fe7d1774ded18..4a4e914c283c8 100644 --- a/arch/s390/kernel/perf_pai_crypto.c +++ b/arch/s390/kernel/perf_pai_crypto.c @@ -646,7 +646,7 @@ static int __init attr_event_init(void) for (i =3D 0; i < ARRAY_SIZE(paicrypt_ctrnames); i++) { ret =3D attr_event_init_one(attrs, i); if (ret) { - attr_event_free(attrs, i - 1); + attr_event_free(attrs, i); return ret; } } diff --git a/arch/s390/kernel/perf_pai_ext.c b/arch/s390/kernel/perf_pai_ex= t.c index c57c1a203256f..b5febe22d0546 100644 --- a/arch/s390/kernel/perf_pai_ext.c +++ b/arch/s390/kernel/perf_pai_ext.c @@ -607,7 +607,7 @@ static int __init attr_event_init(void) for (i =3D 0; i < ARRAY_SIZE(paiext_ctrnames); i++) { ret =3D attr_event_init_one(attrs, i); if (ret) { - attr_event_free(attrs, i - 1); + attr_event_free(attrs, i); return ret; } } --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2874E204FA3; Sun, 24 Mar 2024 23:04: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=1711321475; cv=none; b=NEFWANY/ZZLvs0uE/MQIxOT3vwuf50hpoI8hx98MexElxYbBN6MED33an7gStVMKW5OMJ16t07B6glaguIajxXcV+x4qVhp7knQckpJCUegEJnwlyVurQDWR79+y2/8HOm6KHDzpk5Y3CjviduvQ0P5/MN09BNjBurMNs3B1LTA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321475; c=relaxed/simple; bh=6czK7Hn3MnAD3YyAV5TfrDyAIetWQpDb15+Q7U90avU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=jWt82T/n15AhyT+Owdq0WF4Kro4NwjuQMMqW0vbnUEcbKFoPkvUHz2ng+lW3slqbD2+0esVxknUqfkggrJC+ofLthvS6CASyzsnug0ZwUulJWTAyy+cJ7ioc8cI18HKdUVWAo9VOcL7TA9J1ArFvF+yyvdJloCaBcEC5sXy8fkY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=D1X/D/wW; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="D1X/D/wW" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 50E74C43390; Sun, 24 Mar 2024 23:04:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321475; bh=6czK7Hn3MnAD3YyAV5TfrDyAIetWQpDb15+Q7U90avU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=D1X/D/wW8CTHryYYqDDX+Ns6qQlR4NS9SNGywjDpuj+JSviAMIQtOkkMWM7h44fli oOhCGwTYbB/SyH9NmqXno5JlsJflNOjUr55EFUS2osVofDr2Wrh3qYg+55Po6XgeEs o3lUzMFt0X4TEMCzPuAVlOEJ9+Z+2a/W2oGEWbdP82VgB/2FDUqahHr3BCdRs9drW7 XFEcc0mwlyyU19OHNJcqIkTZ7Xbjqbkp/QlvpXYcWeS67O8UMYiKjGihVQ0j7ocfjm dpTeF/Yl0W+iS49FjD5aF5V4+z6kWsocnPhMPPFPY0c9mlV/XG0R3jC3CQml969E/x yQYCdaHn/Frtw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Nathan Chancellor , Fangrui Song , Heiko Carstens , Sasha Levin Subject: [PATCH 6.6 200/638] s390/vdso: drop '-fPIC' from LDFLAGS Date: Sun, 24 Mar 2024 18:53:57 -0400 Message-ID: <20240324230116.1348576-201-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 23e868b79a6c9..c4b14a8700d88 100644 --- a/arch/s390/kernel/vdso32/Makefile +++ b/arch/s390/kernel/vdso32/Makefile @@ -22,7 +22,7 @@ KBUILD_CFLAGS_32 :=3D $(filter-out -m64,$(KBUILD_CFLAGS)) KBUILD_CFLAGS_32 :=3D $(filter-out -mno-pic-data-is-text-relative,$(KBUILD= _CFLAGS_32)) 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 fc1c6ff8178f5..11f798e6cfea7 100644 --- a/arch/s390/kernel/vdso64/Makefile +++ b/arch/s390/kernel/vdso64/Makefile @@ -26,7 +26,7 @@ KBUILD_AFLAGS_64 +=3D -m64 KBUILD_CFLAGS_64 :=3D $(filter-out -m64,$(KBUILD_CFLAGS)) KBUILD_CFLAGS_64 :=3D $(filter-out -mno-pic-data-is-text-relative,$(KBUILD= _CFLAGS_64)) 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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0C6C1204FA2; Sun, 24 Mar 2024 23:04: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=1711321477; cv=none; b=RkeIvsp99bhk/gzm6wA/FoGsZ0tlsuY7bwxEqj+zJirgHf7kVHvqdbk+QqeRmiTqd5EWZ3PuTzlU/p37jJz19NQN4NsMjCRiqQWHSsISRdugNO0P7pcrXUCU/8dO6WCuFotTc+0p8aB7Ln3oU81nrwBXM+lcSk8fs5/xjkTonZs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321477; c=relaxed/simple; bh=of02US8bUUeHmltBhwO0q0jgCHO9nnXXigQFqbU83BU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=tahdsGNy2gYWWBVeF17boEv0eXKyA50GCEMm3FE9qqKJ476KSVkc2+tKE0bm6XLG6RgrtVZEAGzB+mrrCW4pz7PsB9zUeLSo4TxbXpNjAHivP0i2pMU1fulE9YdHtzCJfPFWlli9UnaJUvQzmfz1aHkDXoXfcLKQdhNw+EszDgs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Rej8Uvbg; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Rej8Uvbg" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4AC56C433F1; Sun, 24 Mar 2024 23:04:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321475; bh=of02US8bUUeHmltBhwO0q0jgCHO9nnXXigQFqbU83BU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Rej8UvbgwW/JVhS1jMst/WIQpKE86KlUD/b8DRDJu/R72uu/gCnWBbILiOOZSvhZO XRf9bE9QURobD6FqGH6n7QXPi/phb6xa5oqJlTr7k9txZaelzFUU48V1t/xWReB8Oh bCthv7iTwzCUm5PyfMfss6BNLJGlD39zWyIerfrgZetPKOb+IX4WVq0yOlms3cCqM/ biYqebNesvil+M+jnpefmqlHTzj6qp+PGBtJJNOPmqmjwA/Qnc360pkvLZ92KqtDku d9H+MorJLObas/Q6UT0NE5R7pdmIFwvrycTcHuoNbaLuVj5O+Y8jlIGb8u1uGv2BUo pV3s34hgZ2NbQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Petr Machata , Paolo Abeni , Sasha Levin Subject: [PATCH 6.6 201/638] selftests: forwarding: Add missing config entries Date: Sun, 24 Mar 2024 18:53:58 -0400 Message-ID: <20240324230116.1348576-202-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Machata [ Upstream commit 4acf4e62cd572b0c806035046b3698f5585ab821 ] The config file contains a partial kernel configuration to be used by `virtme-configkernel --custom'. The presumption is that the config file contains all Kconfig options needed by the selftests from the directory. In net/forwarding/config, many are missing, which manifests as spurious failures when running the selftests, with messages about unknown device types, qdisc kinds or classifier actions. Add the missing configurations. Tested the resulting configuration using virtme-ng as follows: # vng -b -f tools/testing/selftests/net/forwarding/config # vng --user root (within the VM:) # make -C tools/testing/selftests TARGETS=3Dnet/forwarding run_tests Signed-off-by: Petr Machata Link: https://lore.kernel.org/r/025abded7ff9cea5874a7fe35dcd3fd41bf5e6ac.17= 06286755.git.petrm@nvidia.com Signed-off-by: Paolo Abeni Stable-dep-of: f0ddf15f0a74 ("selftests: forwarding: Add missing multicast = routing config entries") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- tools/testing/selftests/net/forwarding/config | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/tools/testing/selftests/net/forwarding/config b/tools/testing/= selftests/net/forwarding/config index 697994a9278bb..ba23435145827 100644 --- a/tools/testing/selftests/net/forwarding/config +++ b/tools/testing/selftests/net/forwarding/config @@ -6,14 +6,42 @@ CONFIG_IPV6_MULTIPLE_TABLES=3Dy CONFIG_NET_VRF=3Dm CONFIG_BPF_SYSCALL=3Dy CONFIG_CGROUP_BPF=3Dy +CONFIG_DUMMY=3Dm +CONFIG_IPV6=3Dy +CONFIG_IPV6_GRE=3Dm +CONFIG_MACVLAN=3Dm CONFIG_NET_ACT_CT=3Dm CONFIG_NET_ACT_MIRRED=3Dm CONFIG_NET_ACT_MPLS=3Dm +CONFIG_NET_ACT_PEDIT=3Dm +CONFIG_NET_ACT_POLICE=3Dm +CONFIG_NET_ACT_SAMPLE=3Dm +CONFIG_NET_ACT_SKBEDIT=3Dm +CONFIG_NET_ACT_TUNNEL_KEY=3Dm CONFIG_NET_ACT_VLAN=3Dm CONFIG_NET_CLS_FLOWER=3Dm CONFIG_NET_CLS_MATCHALL=3Dm +CONFIG_NET_CLS_BASIC=3Dm +CONFIG_NET_EMATCH=3Dy +CONFIG_NET_EMATCH_META=3Dm +CONFIG_NET_IPGRE=3Dm +CONFIG_NET_IPGRE_DEMUX=3Dm +CONFIG_NET_IPIP=3Dm +CONFIG_NET_SCH_ETS=3Dm CONFIG_NET_SCH_INGRESS=3Dm CONFIG_NET_ACT_GACT=3Dm +CONFIG_NET_SCH_PRIO=3Dm +CONFIG_NET_SCH_RED=3Dm +CONFIG_NET_SCH_TBF=3Dm +CONFIG_NET_TC_SKB_EXT=3Dy +CONFIG_NET_TEAM=3Dy +CONFIG_NET_TEAM_MODE_LOADBALANCE=3Dy +CONFIG_NETFILTER=3Dy +CONFIG_NF_CONNTRACK=3Dm +CONFIG_NF_FLOW_TABLE=3Dm +CONFIG_NF_TABLES=3Dm CONFIG_VETH=3Dm CONFIG_NAMESPACES=3Dy CONFIG_NET_NS=3Dy +CONFIG_VXLAN=3Dm +CONFIG_XFRM_USER=3Dm --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 114F3204FC3; Sun, 24 Mar 2024 23:04: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=1711321478; cv=none; b=UQcL50uNx2boJTApeD2jO3nyAztYuQywkoA7PprBeebnr+BTpLUZWdXiNKu8zC70AiOsw5FzyBNkG57H33hlfigB6R2FWSXAwY4v4Zzh+mDcmLNFxviT5EUnAzZJXSlCZTH6ktStwHqMFO/6z8h332J0TKwfxBGvk4EprVdqGX4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321478; c=relaxed/simple; bh=PixZTdAIXb+apt1+3VrFpubrgiRaiLYdNla0aHXf+/Q=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=G7v8Bbw7Cv8sLcNAgaUuaBuzhMutYcwtBDZqypTmO7hSgd47YLDnZE3iGqYnsZCi2d11sw7bubsuALjuGJcxMXdp/u5rhyn52E+AmMiT5/aDEJ+WNDg+QX66CWO2CY+YyC9NNZ7o2RxMz3kseCma3/cOvlWflCpZLkUNm29LH4c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=fhemxXJ1; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="fhemxXJ1" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 30B00C43390; Sun, 24 Mar 2024 23:04:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321476; bh=PixZTdAIXb+apt1+3VrFpubrgiRaiLYdNla0aHXf+/Q=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=fhemxXJ1PnYaBrbHS7N1nyvygK7qJs8u4Cx3pNYctoTOeH38HRaF5bfVJnXfNuVi4 FSdcgjSUQTHIiG48msPEqS8xTnaj2GyOL6mXC9Zs8yIXnH7kQWOkutmmpXAjq27f1B G0ABH2fTsMYlR9CXftkEhdQKN+Wttvkncr6F4LDO7HJcGwBTE8EG2o4jlSTxjaxzJP h6AT8qXrSoQbCwdZbsZQjn2noBRxwB9grXQ6z9ROalTs0GEO5EdP6JcUA5k8VNq77h CYlpXW097CQJAdpNf4Tuc5Ntz2F6F7Z0tmJiVcfwZ67bgkr79IVwdfqt/4WkkiGqkH /lsMUM28VBH0Q== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Ido Schimmel , Simon Horman , Jakub Kicinski , Sasha Levin Subject: [PATCH 6.6 202/638] selftests: forwarding: Add missing multicast routing config entries Date: Sun, 24 Mar 2024 18:53:59 -0400 Message-ID: <20240324230116.1348576-203-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Ido Schimmel [ Upstream commit f0ddf15f0a74c27eb4b2271a90e69948acc3fa2c ] The two tests that make use of multicast routig (router.sh and router_multicast.sh) are currently failing in the netdev CI because the kernel is missing multicast routing support. Fix by adding the required config entries. Fixes: 6d4efada3b82 ("selftests: forwarding: Add multicast routing test") Signed-off-by: Ido Schimmel Reviewed-by: Simon Horman Link: https://lore.kernel.org/r/20240208165538.1303021-1-idosch@nvidia.com Signed-off-by: Jakub Kicinski Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- tools/testing/selftests/net/forwarding/config | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tools/testing/selftests/net/forwarding/config b/tools/testing/= selftests/net/forwarding/config index ba23435145827..8d7a1a004b7c3 100644 --- a/tools/testing/selftests/net/forwarding/config +++ b/tools/testing/selftests/net/forwarding/config @@ -9,6 +9,13 @@ CONFIG_CGROUP_BPF=3Dy CONFIG_DUMMY=3Dm CONFIG_IPV6=3Dy CONFIG_IPV6_GRE=3Dm +CONFIG_IPV6_MROUTE=3Dy +CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=3Dy +CONFIG_IPV6_PIMSM_V2=3Dy +CONFIG_IP_MROUTE=3Dy +CONFIG_IP_MROUTE_MULTIPLE_TABLES=3Dy +CONFIG_IP_PIMSM_V1=3Dy +CONFIG_IP_PIMSM_V2=3Dy CONFIG_MACVLAN=3Dm CONFIG_NET_ACT_CT=3Dm CONFIG_NET_ACT_MIRRED=3Dm --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3DFBE13540E; Sun, 24 Mar 2024 23:04: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=1711321479; cv=none; b=N31irfbck3Pukkxe5SNPCJd2HlYxhYyi6SKu2FXrmHg8ig4LIRq9JCLLzbuw1yvNW1ZUzyLzkLtgak+eEksJ2UWeUe6RZoBkQmkw0mZG/JJWUEbf2Fpyq+zpoZTF1MqR3ls7w21dx60ol8x2l5uvJUdmeidVSFVnhj/ezF9XTtY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321479; c=relaxed/simple; bh=4sy4eq2T8L33zFLZ8FETfbnQqlhB56H99f02c8RLNa8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=gslm6oaWifOC6N2CU9JTXyeWKKHeYw5Ki0dcioJ1L9JVnOmmSZBNTEPHGmFxgA4pEutx/aOsG94PtNDMygdSBUSrlnDIHXSzGkC5YaB40TxRG3rl51hAOtMXDJOkz8N1EZS6PGYB6CiD9VlivsTIgl1G+95xoDBef2nS9mrcEno= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ey1TELRN; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ey1TELRN" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 32EE9C433F1; Sun, 24 Mar 2024 23:04:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321478; bh=4sy4eq2T8L33zFLZ8FETfbnQqlhB56H99f02c8RLNa8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ey1TELRN2s9y8xJwctUSMnkLvcv+YIgdwBqarXfkeem4mQQJG/vFiCm+NWi2QYJ4z 6esNAUlpjJDA5zjHpl/lXxRa8kp3OzPFG/nbTFvvaFNnw1M85XEVHr0oC5t+QqXySO rSTIKEtzmHVyqUSxntRwTmocAjResPIF4huAUG19o43Yx6n8J0kamTRwXgSQC07djT IDV12LGhmiYpvXQGPlPNg7hjWaS5ja5fNNAOm8XZhOQiIt9s06iwmQ5lk+oaATAY6V FMrtGQvTfNIr7gaam4I8crxXb2YyPLb52i6q2kAtZEwZ0c2sN/aPG79Q6ce4Vox7+p cZMDh/7KmLcsg== 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 6.6 203/638] ipv6: mcast: remove one synchronize_net() barrier in ipv6_mc_down() Date: Sun, 24 Mar 2024 18:54:00 -0400 Message-ID: <20240324230116.1348576-204-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- net/ipv6/mcast.c | 1 - 1 file changed, 1 deletion(-) diff --git a/net/ipv6/mcast.c b/net/ipv6/mcast.c index f948cf7bfc448..fae30bdca9073 100644 --- a/net/ipv6/mcast.c +++ b/net/ipv6/mcast.c @@ -2720,7 +2720,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 38219204FCA; Sun, 24 Mar 2024 23:04: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=1711321480; cv=none; b=iNvcUvmH6/g1Um/p+mFY0c+e+dnkO11Hg9kLe3tAaTUG6HxXL5Gd3gRVMnbG5pcPIGR5EH7um2yn0b/p9KVGyfxCS7c0N33abwyg6GzEGm4KKymD7AzuBXKnxb1Z2rkTqDr++es5/z0OyNdMzxZOt31pnP6+a9wCG/2d4v1ImzA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321480; c=relaxed/simple; bh=pJcwQBMitDY4sLvZ8XJsnEVksvr3uf4A23nKsC4n4JU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=pFlzj+T1XpS0D7DeNn4PEqeQGnh/7ScDzhIoqqGK/GtLXJmtX2UbgIHsyVtgWzhUMOGedC1t12SstX0wAz8Evdy/GJvpR9WDMCo+8TwpzVJQE1Im5xRft5/Y6+GQPdhUKMmNxbhnRABISXQQN5UU+crD63czAgeqG5EH3/mRpuI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=fd3WF9bL; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="fd3WF9bL" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 60852C43394; Sun, 24 Mar 2024 23:04:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321479; bh=pJcwQBMitDY4sLvZ8XJsnEVksvr3uf4A23nKsC4n4JU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=fd3WF9bLRoGRDCZtaBFIAabIqKJby0zOARA6SC8r/V7wObjTQ3F6P5ho2TFvJkFIj RAdTbN6qfrUnTPyrxHD7CCi6THQTqyKaD3CnYBGe3rJnXhCpm40SDRY/UDsIzuFOQr DRs/KghjsHg0vledfJ0OWu1RTku2GpPj/uKupmKnVY9n2WvAtF9nEnMVG7QDy8OqbR 2ydr3seNW0Ll5QgoxHbtcJso6ZJeT/vWbtu6S8sfO/WuqreU7XbxB2xaHGPO8fNN5X cnAN6kxVXyk2J0blLANwY20YZ4hITmqyehgNQuaCJHo82dsWzuR5zemOp8myS5UZ53 rdvmIjN7Ay8qw== 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 6.6 204/638] arm64: dts: mt8183: Move CrosEC base detection node to kukui-based DTs Date: Sun, 24 Mar 2024 18:54:01 -0400 Message-ID: <20240324230116.1348576-205-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-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 Tested-by: Takeshi Ogasawara --- 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 a11adeb29b1f2..0d3c7b8162ff0 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 4864c39e53a4f..e73113cb51f53 100644 --- a/arch/arm64/boot/dts/mediatek/mt8183-kukui-kodama.dtsi +++ b/arch/arm64/boot/dts/mediatek/mt8183-kukui-kodama.dtsi @@ -340,6 +340,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 d5f41c6c98814..181da69d18f46 100644 --- a/arch/arm64/boot/dts/mediatek/mt8183-kukui-krane.dtsi +++ b/arch/arm64/boot/dts/mediatek/mt8183-kukui-krane.dtsi @@ -344,6 +344,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 6f333f5cbeb98..70becf10cacb8 100644 --- a/arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi +++ b/arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi @@ -907,10 +907,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4A803204FCD; Sun, 24 Mar 2024 23:04: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=1711321480; cv=none; b=ufaO4MniI2ANMJ/tQuLx0obKiGI+iTKLoT9kWOrcFDGtDaXySVQ0PdMVf1gh3melOogE7kqgu/OtW8s6RxURJsJ21qva/bGLwtiK2rBBPfMokq/NpQZC6s5mfJw2NdQGAAc2X+YWOcuyCKRWiIzt/OGvHjhH+gPWYsh0u9mZ5/0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321480; c=relaxed/simple; bh=A5zfCys77iQwcQNBaFkrV0ST82y1Y9bXQsEUU83makM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=g0Z1Jz+UOWwfbu+G5X4U4kIZcjmeLHzmCOsdclIB1PCQE1wpLDIehFkIaXuVG6Lr+2o4c6CWLXjEJelyXooKQhdixEL4WTwR899ejcHDYqV23wqthVv8WkKJGIqxNioE8q+qXs2ZqahEnj1Cmlj3fI0RMW9iwN6nkVe0Dz50rYI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=msOKPKAU; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="msOKPKAU" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5C50FC433C7; Sun, 24 Mar 2024 23:04:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321480; bh=A5zfCys77iQwcQNBaFkrV0ST82y1Y9bXQsEUU83makM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=msOKPKAUI4yaetAhN9Lf60Ri7BVQYnCD8f1YTc7R4ASeChyTntb1Ao3ai+iUYrXYz lzU+FSq2r3T8uFJyw98h9r/Lgbf1DiNviSMgitY20bASGxRxhPUJZuZoKAeLNrNDep /cYk/u1cmSMa1rntkMSqPOyS98duNMHIjfi7ZrN2lEnVbIu2Bm4kyrVbGE61LqyshY d2QxSXRkMPdL8BXMM+IxV91lrOuKCNMo/AAmURDMDlQihey+5MvL6m08fy7YAJkUGw cHDM72R3bI9+kS6CF4TVRSxNrVJXSqM+G9nbCpFFuo1UlJxugG5yzhILwBUAbO+WKe Z/A49OU5v/kEg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= , Daniel Golle , AngeloGioacchino Del Regno , Matthias Brugger , Sasha Levin Subject: [PATCH 6.6 205/638] arm64: dts: mediatek: mt7986: fix reference to PWM in fan node Date: Sun, 24 Mar 2024 18:54:02 -0400 Message-ID: <20240324230116.1348576-206-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-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 7865abbbdf1e1ee57a0bb8ec83079f8840c16854 ] This fixes typo and resolves following validation error: arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3.dtb: pwm-fan: pwms: [[= 54, 0, 10000], [0]] is too long from schema $id: http://devicetree.org/schemas/hwmon/pwm-fan.yaml# Fixes: c26f779a2295 ("arm64: dts: mt7986: add pwm-fan and cooling-maps to B= PI-R3 dts") Cc: Daniel Golle Signed-off-by: Rafa=C5=82 Mi=C5=82ecki Reviewed-by: AngeloGioacchino Del Regno Link: https://lore.kernel.org/r/20231116130816.4932-1-zajec5@gmail.com Signed-off-by: Matthias Brugger Signed-off-by: AngeloGioacchino Del Regno Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3.dts b/arc= h/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3.dts index b876e501216be..e1ec2cccf4444 100644 --- a/arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3.dts +++ b/arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3.dts @@ -43,7 +43,7 @@ fan: pwm-fan { #cooling-cells =3D <2>; /* cooling level (0, 1, 2) - pwm inverted */ cooling-levels =3D <255 96 0>; - pwms =3D <&pwm 0 10000 0>; + pwms =3D <&pwm 0 10000>; status =3D "okay"; }; =20 --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 582014CB36; Sun, 24 Mar 2024 23:04: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=1711321482; cv=none; b=aakg9CgJQE5IGX0qizmiZGeiDHebfVk66kFmV3rKwTupx1LsxpGzV+SlZsAgNESScmeNO0tnVoSpgI+NpNP4Rg8TcNvf7+D2dTEd42IMSYnNYCVErPST8UY6bDNwLKzPdDw3PHpCzut1OsVdyA99tfR7/8iWpsj1xDMzpk5wmaQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321482; c=relaxed/simple; bh=/Cgj1l+Rb/KLXPOO1028JhYLxPr473Y7ZEhHjRqRylU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=AizfpSBMv41uI7ziiKcXkDqCdyLJ91q84iaDhmnbaLkZY0KyAyP3DBKOyCG0VV/lIQ6VwCs20839LvqEMbm279/jp1t69eucOcI5tD9EKAUJTxMpTT8tHH4q/OmyjqdEG5Rhb9xeXjqV8sbqkQmoueFcKV+9DOd1iliCM+Lk8SA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=hApdMVMI; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="hApdMVMI" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6C333C433F1; Sun, 24 Mar 2024 23:04:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321481; bh=/Cgj1l+Rb/KLXPOO1028JhYLxPr473Y7ZEhHjRqRylU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=hApdMVMIB9bcKRcYee1WQbmt3HG5HGmDAh/TLf2H0kouhgZ5vXcQn3YLG/Jef/Gzy DQuaJX6bZVWnrYiwlmlQRfl6yvkarkzee197u4PWaUHyKk3Eq9OQca6KvQ9vJ8sr3w P7+qcSO7d8wbBguJmCqDOsl5dGQGM9gz0bHdWC1FQzj/4ekuwW0iAVc/l8bLQHHYMF 4CUXCpDEMDiYz8zdZf6JNX+qpA0wTbNLAEg9TRTSxb3BPdEmp7L7Xmbt1soDHSP/8V D3ROUqLRO1Pp0qqZFBc6BgPjHYO6CJrGVwuuX86oF5S3WLy6k8kL9amlnnDOQlDigh BgQrCbfdLSVDg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= , Sam Shih , AngeloGioacchino Del Regno , Matthias Brugger , Sasha Levin Subject: [PATCH 6.6 206/638] arm64: dts: mediatek: mt7986: drop crypto's unneeded/invalid clock name Date: Sun, 24 Mar 2024 18:54:03 -0400 Message-ID: <20240324230116.1348576-207-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-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 bb69d19c649669f700149df309245cd925612f7c ] According to the "inside-secure,safexcel-eip97" binding "clock-names" is required only if there are two clocks specified. If present the first name must by "core". Name "infra_eip97_ck" is invalid and was probably just a typo. Drop it. Fixes: ecc5287cfe53 ("arm64: dts: mt7986: add crypto related device nodes") Cc: Sam Shih Signed-off-by: Rafa=C5=82 Mi=C5=82ecki Reviewed-by: AngeloGioacchino Del Regno Link: https://lore.kernel.org/r/20231116132411.7665-1-zajec5@gmail.com Signed-off-by: Matthias Brugger Signed-off-by: AngeloGioacchino Del Regno Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/mediatek/mt7986a.dtsi | 1 - 1 file changed, 1 deletion(-) diff --git a/arch/arm64/boot/dts/mediatek/mt7986a.dtsi b/arch/arm64/boot/dt= s/mediatek/mt7986a.dtsi index fc751e049953c..a7d9c3246a875 100644 --- a/arch/arm64/boot/dts/mediatek/mt7986a.dtsi +++ b/arch/arm64/boot/dts/mediatek/mt7986a.dtsi @@ -234,7 +234,6 @@ crypto: crypto@10320000 { ; interrupt-names =3D "ring0", "ring1", "ring2", "ring3"; clocks =3D <&infracfg CLK_INFRA_EIP97_CK>; - clock-names =3D "infra_eip97_ck"; assigned-clocks =3D <&topckgen CLK_TOP_EIP_B_SEL>; assigned-clock-parents =3D <&apmixedsys CLK_APMIXED_NET2PLL>; status =3D "disabled"; --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 54732135A53; Sun, 24 Mar 2024 23:04: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=1711321483; cv=none; b=SBUlFn5I4eubFpgVsPTXowG+QbPpltGUSPYKJZulQ2spVDx9fKMIzkqOFS0pn8F1iAudqzkbJxw/riDECQJ3lOfmD6m4e1016PUgOtedOYkaqcyr2/ZsFwiZg+QE6azXenol3lGLDrDaza6Cw5oO9EcpdaU10iI/uqYPUYm9ifs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321483; c=relaxed/simple; bh=dX+p9aq8ZTnlef2Gmg+V8hnuIMD3+xTYM25f1+TPgKM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Z49Mbs3uzpQFR9r9dQWYD54SVuhrgFgXqgCOS/Rf7gCbAFwQTUT/rPP5SRHECmRQ4ZLuuoiGPqQJpH6eeZA6RKtM22+u24cB6OcEYT73Nk5j1ZoObUK3PskrEmYJ1mui498UdzqGdRdmD56I1KxahpaFSaqScLiAwv8K4H6wr2M= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=m8PUPWWI; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="m8PUPWWI" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7AFEAC43394; Sun, 24 Mar 2024 23:04:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321482; bh=dX+p9aq8ZTnlef2Gmg+V8hnuIMD3+xTYM25f1+TPgKM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=m8PUPWWIxxlGcJJ76Zrc2KJfcaewwYfgdrISopj1VjOQTzUI/n4Yd82noVX89PaU2 5Q9Z2NehmqDaII7rRqF+Z8wQULSDrAyBgsEsNIk7a9tTgP8EgcwES+1mX1Ma2HaLG2 uDNjM1fMC/wYXhz8KxAVniT9Yv2/v8g0fmGXsRiBA/Qzv4v5gGrHtDvI0e8IAA3+6l epE2iB/bpltykSqLiBFznk76PyWp1JHbKTP63nHWF7WoHDxhv0pFe/vDQuDRT+WRTu Y7q27rciwAERXzd4PI65W1cKlmreduaiZtTbJGIrn5rpYtO4Kp/x88pe40YgbgtbYQ i7Fwd3nNgzG5g== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= , AngeloGioacchino Del Regno , Matthias Brugger , Sasha Levin Subject: [PATCH 6.6 207/638] arm64: dts: mediatek: mt7986: fix SPI bus width properties Date: Sun, 24 Mar 2024 18:54:04 -0400 Message-ID: <20240324230116.1348576-208-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-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 4e7dc18a753cec130b06f1ddbae10ea9dcfb1723 ] This fixes SPI setup and resolves following validation errors: arch/arm64/boot/dts/mediatek/mt7986a-rfb.dtb: spi_nand@0: Unevaluated prope= rties are not allowed ('spi-rx-buswidth', 'spi-tx-buswidth' were unexpected) from schema $id: http://devicetree.org/schemas/mtd/spi-nand.yaml# arch/arm64/boot/dts/mediatek/mt7986b-rfb.dtb: spi_nand@0: Unevaluated prope= rties are not allowed ('spi-rx-buswidth', 'spi-tx-buswidth' were unexpected) from schema $id: http://devicetree.org/schemas/mtd/spi-nand.yaml# Fixes: 885e153ed7c1 ("arm64: dts: mt7986: add spi related device nodes") Signed-off-by: Rafa=C5=82 Mi=C5=82ecki Reviewed-by: AngeloGioacchino Del Regno Link: https://lore.kernel.org/r/20231116130952.5099-1-zajec5@gmail.com Signed-off-by: Matthias Brugger Signed-off-by: AngeloGioacchino Del Regno Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/mediatek/mt7986a-rfb.dts | 4 ++-- arch/arm64/boot/dts/mediatek/mt7986b-rfb.dts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/arch/arm64/boot/dts/mediatek/mt7986a-rfb.dts b/arch/arm64/boot= /dts/mediatek/mt7986a-rfb.dts index 3ef371ca254e8..bcb3ebb85d708 100644 --- a/arch/arm64/boot/dts/mediatek/mt7986a-rfb.dts +++ b/arch/arm64/boot/dts/mediatek/mt7986a-rfb.dts @@ -241,8 +241,8 @@ spi_nand: spi_nand@0 { compatible =3D "spi-nand"; reg =3D <0>; spi-max-frequency =3D <10000000>; - spi-tx-buswidth =3D <4>; - spi-rx-buswidth =3D <4>; + spi-tx-bus-width =3D <4>; + spi-rx-bus-width =3D <4>; }; }; =20 diff --git a/arch/arm64/boot/dts/mediatek/mt7986b-rfb.dts b/arch/arm64/boot= /dts/mediatek/mt7986b-rfb.dts index dde190442e386..48fe50e671779 100644 --- a/arch/arm64/boot/dts/mediatek/mt7986b-rfb.dts +++ b/arch/arm64/boot/dts/mediatek/mt7986b-rfb.dts @@ -156,8 +156,8 @@ spi_nand: spi_nand@0 { compatible =3D "spi-nand"; reg =3D <0>; spi-max-frequency =3D <10000000>; - spi-tx-buswidth =3D <4>; - spi-rx-buswidth =3D <4>; + spi-tx-bus-width =3D <4>; + spi-rx-bus-width =3D <4>; }; }; =20 --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A407A2057C7; Sun, 24 Mar 2024 23:04: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=1711321484; cv=none; b=qladXDbA/RYF0oXcAuiya1I+VGjCLS8iso/m7epC8kBmHMIZdC/FF13UorHYjz5wkbNXSHgLr0Ssilaj/JJjLwrhR2EXcLCeNZRdX9bSwDaOWQiIyGPfwu+h16lbs6+NHwCqRzy6ssTLN9PKRVPMc5pbQZZesFzsOj1trkCIIMw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321484; c=relaxed/simple; bh=6IAXt7kg0mXsg5guh9sUHvOjMA33teZAxvgBy5cfGJY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=jGGRRegwVhqoA8vlAiQa9KPwUVbihKf3vdM/4UJDHFy9Coq5X5iJsvF9Sv8lg7FBNgnuFsiOB22I2hFP9F8slKltFoUbpD3nDF6qekQ9csyZplpZtTdmkiN/XSnlf/rh2YWKTP+/7uHyr6AyQv9dLFnbFFoMvmXPaLhOBpIwz34= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=DjJmXDkV; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="DjJmXDkV" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 77B21C433F1; Sun, 24 Mar 2024 23:04:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321483; bh=6IAXt7kg0mXsg5guh9sUHvOjMA33teZAxvgBy5cfGJY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=DjJmXDkVs7Qe6p41QCmrcUqxesHTYUNHXgsDIddSNKI/JqnUZJZIx4XpbQ4U68xsD NJ9d+Sn1D8Nke3jugtH2fPbtJlqausuPMbcp9xa5QdISVRlJLDENkiITQ9avYB9wgZ jeEHbxiOtkjq5GphGbi4G8AV/eLUtJ9hlt2POQa0zpcXyD9ecujfo2ryBNCbF0OdTZ vQy2YeSYXUOT8Bsb+qlwEISAIwYcOvFodMep0w8+gQpnsh4lH1eoVd7Rd47+MsJ1dE smZbIyHUwnVuDeZlIeTDFLG/UNuvT1NDjC5ATT9GI8SrQyQEMBDVaZq2XBG0DS5gXG 71LqQe5rZQ35g== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= , AngeloGioacchino Del Regno , Matthias Brugger , Sasha Levin Subject: [PATCH 6.6 208/638] arm64: dts: mediatek: mt7986: fix SPI nodename Date: Sun, 24 Mar 2024 18:54:05 -0400 Message-ID: <20240324230116.1348576-209-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-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 bbe266c70e1343ee3e71ca31138141b3da265085 ] This fixes following validation errors: arch/arm64/boot/dts/mediatek/mt7986a-rfb.dtb: spi_nand@0: $nodename:0: 'spi= _nand@0' does not match '^(flash|.*sram|nand)(@.*)?$' from schema $id: http://devicetree.org/schemas/mtd/spi-nand.yaml# arch/arm64/boot/dts/mediatek/mt7986b-rfb.dtb: spi_nand@0: $nodename:0: 'spi= _nand@0' does not match '^(flash|.*sram|nand)(@.*)?$' from schema $id: http://devicetree.org/schemas/mtd/spi-nand.yaml# Fixes: 885e153ed7c1 ("arm64: dts: mt7986: add spi related device nodes") Signed-off-by: Rafa=C5=82 Mi=C5=82ecki Reviewed-by: AngeloGioacchino Del Regno Link: https://lore.kernel.org/r/20231116130952.5099-2-zajec5@gmail.com Signed-off-by: Matthias Brugger Signed-off-by: AngeloGioacchino Del Regno Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/mediatek/mt7986a-rfb.dts | 3 ++- arch/arm64/boot/dts/mediatek/mt7986b-rfb.dts | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/arch/arm64/boot/dts/mediatek/mt7986a-rfb.dts b/arch/arm64/boot= /dts/mediatek/mt7986a-rfb.dts index bcb3ebb85d708..2f884c24f1eb4 100644 --- a/arch/arm64/boot/dts/mediatek/mt7986a-rfb.dts +++ b/arch/arm64/boot/dts/mediatek/mt7986a-rfb.dts @@ -237,7 +237,8 @@ &spi0 { pinctrl-0 =3D <&spi_flash_pins>; cs-gpios =3D <0>, <0>; status =3D "okay"; - spi_nand: spi_nand@0 { + + spi_nand: flash@0 { compatible =3D "spi-nand"; reg =3D <0>; spi-max-frequency =3D <10000000>; diff --git a/arch/arm64/boot/dts/mediatek/mt7986b-rfb.dts b/arch/arm64/boot= /dts/mediatek/mt7986b-rfb.dts index 48fe50e671779..57dcaeef31d7f 100644 --- a/arch/arm64/boot/dts/mediatek/mt7986b-rfb.dts +++ b/arch/arm64/boot/dts/mediatek/mt7986b-rfb.dts @@ -152,7 +152,8 @@ &spi0 { pinctrl-0 =3D <&spi_flash_pins>; cs-gpios =3D <0>, <0>; status =3D "okay"; - spi_nand: spi_nand@0 { + + spi_nand: flash@0 { compatible =3D "spi-nand"; reg =3D <0>; spi-max-frequency =3D <10000000>; --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 57F762057C3; Sun, 24 Mar 2024 23:04: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=1711321484; cv=none; b=DjjyYltNudWsXDJmQV27LFNfk5cvEn3Osxrlb7PEdmCggVNu4PhUQzzx78RIt/GjwxhvLhv+8FF4z/OnPxLgGba43lfkTn+Ut97cTMmhD2xNSHwbZ4g6grC8ajjdMlq7lXogiZmW6oawJMfwkTcIthRHJabFRgfu86jHywoO80Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321484; c=relaxed/simple; bh=JZ9hjUv65VKWnCNf16bYhhk7KizDvVvRGq96t8SMwzs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=jVzmiIL9du0QwdyMpIUqgHwSqA06aHRNpawPYkJFEEjWzV0bEHcmJpdRULdGBxIT54c68VdIXVb/9ySG5Z7LC178n55sweKd+celI0VLym6pQ4R7sWIXQaWM2S4F7rC6wdYMP1gN7tbp0FUfW/pGqsy8j7B+fIcQmv4ysn/ugqs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=YFiPa1Gt; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="YFiPa1Gt" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6EBF6C43390; Sun, 24 Mar 2024 23:04:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321484; bh=JZ9hjUv65VKWnCNf16bYhhk7KizDvVvRGq96t8SMwzs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=YFiPa1GtDJiC1HaxU+h7kmSOxhwDRV6phdrZt5Y4RqSU0oQg8UzH/txS0lJH9sp8X uAUYj8/jp3NLYiKRR7Y74HUg4BGvVd2k5/Pql3R2XEgLA8r6oS0naaNGc9Z4XhViiH eEhM59vtWoZ8mpFtGYNwkANAoEeKLyBTM2ZWdTf9X14wO5hqvbYjbYEmsCCRHDzYF8 4Z/7ApZgsA+vdVuUPVLRpgsRB6oLsBmlFbprgLILM7ycZA6Wr/qIbs89UScEZF5ph9 OOmI62kNlAhmfBb5rV3PXadc8gMzf8nXfKKdxhxL7Sm0bI/V8PEfZfe0x2uLbk9nfS 0eRRZHUOk/DjA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= , Daniel Golle , Matthias Brugger , AngeloGioacchino Del Regno , Sasha Levin Subject: [PATCH 6.6 209/638] arm64: dts: mediatek: mt7986: drop "#clock-cells" from PWM Date: Sun, 24 Mar 2024 18:54:06 -0400 Message-ID: <20240324230116.1348576-210-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-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 0b721691f0c80af682d0ef3aa4a177c23d41b072 ] PWM is not a clock provider and its binding doesn't specify "#clock-cells" property. This fixes: arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3.dtb: pwm@10048000: '#c= lock-cells' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/pwm/mediatek,mt2712-= pwm.yaml# Fixes: eabb04df46c6 ("arm64: dts: mt7986: add PWM") Cc: Daniel Golle Signed-off-by: Rafa=C5=82 Mi=C5=82ecki Link: https://lore.kernel.org/r/20240101182040.28538-1-zajec5@gmail.com Signed-off-by: Matthias Brugger Signed-off-by: AngeloGioacchino Del Regno Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/mediatek/mt7986a.dtsi | 1 - 1 file changed, 1 deletion(-) diff --git a/arch/arm64/boot/dts/mediatek/mt7986a.dtsi b/arch/arm64/boot/dt= s/mediatek/mt7986a.dtsi index a7d9c3246a875..7b6591509c54d 100644 --- a/arch/arm64/boot/dts/mediatek/mt7986a.dtsi +++ b/arch/arm64/boot/dts/mediatek/mt7986a.dtsi @@ -242,7 +242,6 @@ crypto: crypto@10320000 { pwm: pwm@10048000 { compatible =3D "mediatek,mt7986-pwm"; reg =3D <0 0x10048000 0 0x1000>; - #clock-cells =3D <1>; #pwm-cells =3D <2>; interrupts =3D ; clocks =3D <&topckgen CLK_TOP_PWM_SEL>, --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D20B22057D1; Sun, 24 Mar 2024 23:04: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=1711321485; cv=none; b=YQUsPO70I9m9bPwlHzotO5iRJ6M+geN9p7++iJnt7aQMknsqalfT77ApbDf2zdBveL+u1Re41Fg+gLtxFgVsvvF393sIm55SJcZZegwK1Hxi5cElNwZ2CFC11LLaucHo+2HbeOeJFEe44B8mTrczJctAEmiYolZVi5mXvGQf5IM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321485; c=relaxed/simple; bh=/qCNevVVEggzTf1GpDuuZorY4cKNTJEWoKSpqvi5tJ4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=tOMQBvdwtnTuC5vOF9QAWdiBdNfpUZeYH0CFMsjfCvWcu5w+bOCp3etLbimOzXkZIxSJRIDfExBOYBP8XbWB4SGnxzzljaDCtU7xvmDhYQSCoJpqi6V3ziZkQgLxpvFQqZQdNf/54VOoaIsuW7G9yavYShQTqUyKu0Gz6Yq2anU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=sPXpfyx6; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="sPXpfyx6" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8235DC43394; Sun, 24 Mar 2024 23:04:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321485; bh=/qCNevVVEggzTf1GpDuuZorY4cKNTJEWoKSpqvi5tJ4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=sPXpfyx64OGsq9Xqj5JYGsnbiVqg+YdRhQd2jObH7qncrk1HgZeZf83qbfHL04z1O Mk8togRqV+wNR1nwwQ/jhr/6m9+vcOXP8KEomvQAArt23gU+KyOcF5z4d8QtjCJuHI AGHfLN9bDe0Loxs25he1nDzbALu727gJJy5LCy2o1dkOvW7o6k1cbHXtxT/HeYJjat K8RWNkwrZ/hKUvJzQygjn7OVIhAjU+5uRUtJKdio9WNBDu0kIjPA4qRNJaEO6Dfu4V y+MtyyPbFbKRAxgZc1G+oxs71ybxlognTfcTZ7onEhFoNAz6bySp9+fjHapw3+CAfr jAEpPAbulw7RQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= , Sam Shih , Matthias Brugger , AngeloGioacchino Del Regno , Sasha Levin Subject: [PATCH 6.6 210/638] arm64: dts: mediatek: mt7986: add "#reset-cells" to infracfg Date: Sun, 24 Mar 2024 18:54:07 -0400 Message-ID: <20240324230116.1348576-211-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-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 d993daff5962b2dd08f32a83bb1c0e5fa75732ea ] MT7986's Infrastructure System Configuration Controller includes reset controller. It can reset blocks as specified in the include/dt-bindings/reset/mt7986-resets.h . Add #reset-cells so it can be referenced properly. This fixes: arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3.dtb: infracfg@10001000= : '#reset-cells' is a required property from schema $id: http://devicetree.org/schemas/arm/mediatek/mediate= k,infracfg.yaml# Fixes: 1f9986b258c2 ("arm64: dts: mediatek: add clock support for mt7986a") Cc: Sam Shih Signed-off-by: Rafa=C5=82 Mi=C5=82ecki Link: https://lore.kernel.org/r/20240101182040.28538-2-zajec5@gmail.com Signed-off-by: Matthias Brugger Signed-off-by: AngeloGioacchino Del Regno Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/mediatek/mt7986a.dtsi | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm64/boot/dts/mediatek/mt7986a.dtsi b/arch/arm64/boot/dt= s/mediatek/mt7986a.dtsi index 7b6591509c54d..d974739eae1c9 100644 --- a/arch/arm64/boot/dts/mediatek/mt7986a.dtsi +++ b/arch/arm64/boot/dts/mediatek/mt7986a.dtsi @@ -153,6 +153,7 @@ infracfg: infracfg@10001000 { compatible =3D "mediatek,mt7986-infracfg", "syscon"; reg =3D <0 0x10001000 0 0x1000>; #clock-cells =3D <1>; + #reset-cells =3D <1>; }; =20 wed_pcie: wed-pcie@10003000 { --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B80D72057E3; Sun, 24 Mar 2024 23:04: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=1711321487; cv=none; b=A5BShMPSSjy0NDAMi7hy2TNZv0Eb/K6S2xF7tb68B3xX8H/1W11H4vtQqYFGFJx36eMvf7sLF2Bm/GhoNGbrVKkG2RsDNS4XBGZk+yxSbF6GJVTYb6Vea1jdAprRCUfCR5WK/85O63l7ouFlKOCbCenfiEBuJZXqF6bRk+UJyVE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321487; c=relaxed/simple; bh=Fake0jZr2FyKfmP62QvL90r7SBLoesR2rcIVqlQGsqE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=FFb7DbJ78b+guxzYNRm8+oHdaXb7rkzUBiF/Ch7ztR3UTQxOhOiWtEHT2Ai7TrL7U2N+z/kg1qLvtDNwzUlxV9GMTjZO/FRLaCtOR/UA0pq/+x0u9dn8mwHpM+14lYs0Dw+aIssyZlsv20ruz2OMKi2hkP56cjjLR/yQxkNW0Bc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=r8O+rken; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="r8O+rken" Received: by smtp.kernel.org (Postfix) with ESMTPSA id F12AAC433C7; Sun, 24 Mar 2024 23:04:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321486; bh=Fake0jZr2FyKfmP62QvL90r7SBLoesR2rcIVqlQGsqE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=r8O+rken1jXOVSRCG3uv1J1iivRKB5EDa8srJLMzmWAiLTw+1g2XuPmSyv5WcLs7x BRaS4o/WnjGCdaGYqv9ze9J97lH0029/YPSmzLNgmYkfpK7Ndvxn7QEi8JaIGBLenE j8LUEffaIE7s230lVr+rU85VToxIt1t369k09LTNpRRTplNDmZ/oXwTG/qcMVmExI3 2+WtKZ/ctijN7Vvh93Og/DMylCRhp7ITlK2Sb6EdCxySN30AA6KLThdB/TXgxDaTyC lB6ZozFDgiezMYilhUGe9P6Xi2SphJaf6edmzwY71uxpCz92UtFU1y2Iy+YeeYlv6M JxVoGTGP1FrWw== 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 , Sasha Levin Subject: [PATCH 6.6 211/638] arm64: dts: mediatek: mt8192-asurada: Remove CrosEC base detection node Date: Sun, 24 Mar 2024 18:54:08 -0400 Message-ID: <20240324230116.1348576-212-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-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 9b49cabe631b0a25aaf8fc2ba81b5b9ea6ff01b7 ] The commit adding the ChromeOS EC to the Asurada Devicetree mistakenly added a base detection node. While tablet mode detection is supported by CrosEC and used by Hayato, it is done through the cros-ec-keyb driver. The base detection node, which is handled by the hid-google-hammer driver, also provides tablet mode detection but by checking base attachment status on the CrosEC, which is not supported for Asurada. Hence, remove the unused CrosEC base detection node for Asurada. Fixes: eb188a2aaa82 ("arm64: dts: mediatek: asurada: Add ChromeOS EC") Signed-off-by: N=C3=ADcolas F. R. A. Prado Link: https://lore.kernel.org/r/20240207-mt8192-asurada-cbas-remove-v1-1-04= cb65951975@collabora.com Signed-off-by: AngeloGioacchino Del Regno Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi | 4 ---- 1 file changed, 4 deletions(-) diff --git a/arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi b/arch/arm64/= boot/dts/mediatek/mt8192-asurada.dtsi index 0e8b341170907..4bd1494b354c0 100644 --- a/arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi +++ b/arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi @@ -1308,10 +1308,6 @@ cros_ec: ec@0 { #address-cells =3D <1>; #size-cells =3D <0>; =20 - base_detection: cbas { - compatible =3D "google,cros-cbas"; - }; - cros_ec_pwm: pwm { compatible =3D "google,cros-ec-pwm"; #pwm-cells =3D <1>; --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9E6A42057E8; Sun, 24 Mar 2024 23:04: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=1711321488; cv=none; b=EAqfLdwljpJiDzihCaipVY6RnQ+5VNWYuLAJCl7jFKXDs1LgtJe2+TK8wltkhLi3F09o0lkm7lk5HhI+QGzDqrEojEP3h0IkM7jBxAwWZGPL8AWTG7Wd+46EQq5/SPFEFvbzscP7mpjEH/WJlRrm3cI/Bt2p6wVckBfN9Ikp4XY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321488; c=relaxed/simple; bh=rrG1Xn02Ri/2nGX05CFu2/ro9ZQohjCcGnRg+Ua058Y=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=LkA5DtACj8BSf5aN4QopdUDW2VleB1JHZEzrEGp0k7xfkVHRpu3tphB+ei8Ds/0ai8E0FUeR45MhyO0+6uBBgJMSmgUxx9gO3MgngykpCtHo7kECN+XnsNZWta3rpOLQT4ntBMVM+H6zP5H/Ewah7giLxOsFptNB15bgtJDILto= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=RNm2kJJI; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="RNm2kJJI" Received: by smtp.kernel.org (Postfix) with ESMTPSA id DA211C43390; Sun, 24 Mar 2024 23:04:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321487; bh=rrG1Xn02Ri/2nGX05CFu2/ro9ZQohjCcGnRg+Ua058Y=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=RNm2kJJI24HTlayh+SNCfAIb6nHhFnsfAtwCgEL/+sP8fMrzMszgvaUop0MBF+dkU IA42eXa0WFkg5XduJY6lkrHbLCF6OhWbXPLfsnPj1wB0JWka5A1kRXF0advtEUqYtr GXxhA6XRLUSLYbFd1PMmOibL4jkSIxI7WSQCEyMzHHdnGmD12CmRckT6a1J2Sh89TE +kUDXKqdpsrAxCE9s5BF1PyzkJxX4TXC8r/GLYgo2KMVfINeznKIK25cwsBMUygOH+ MtuDW/JN1PK6QqOxukYJMf4EgOK9qJnlNbzkuBmUY+H/wW4rwKJqsLDp56iw+nR8gF TY+HZJYlQTMSg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Eugen Hristev , AngeloGioacchino Del Regno , Sasha Levin Subject: [PATCH 6.6 212/638] arm64: dts: mediatek: mt8192: fix vencoder clock name Date: Sun, 24 Mar 2024 18:54:09 -0400 Message-ID: <20240324230116.1348576-213-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Eugen Hristev [ Upstream commit 76aac0f2a46847ed4a7a4fdd848dd66023c19ad1 ] Clock name should be `venc_sel` as per binding. Fix the warning message : arch/arm64/boot/dts/mediatek/mt8192-asurada-hayato-r1.dtb: vcodec@17020000:= clock-names:0: 'venc_sel' was expected from schema $id: http://devicetree.org/schemas/media/mediatek,vcode= c-encoder.yaml# Fixes: aa8f3711fc87 ("arm64: dts: mt8192: Add H264 venc device node") Signed-off-by: Eugen Hristev Reviewed-by: AngeloGioacchino Del Regno Link: https://lore.kernel.org/r/20231228113245.174706-4-eugen.hristev@colla= bora.com Signed-off-by: AngeloGioacchino Del Regno Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/mediatek/mt8192.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/mediatek/mt8192.dtsi b/arch/arm64/boot/dts= /mediatek/mt8192.dtsi index 69f4cded5dbbf..f1fc14e53f8c7 100644 --- a/arch/arm64/boot/dts/mediatek/mt8192.dtsi +++ b/arch/arm64/boot/dts/mediatek/mt8192.dtsi @@ -1770,7 +1770,7 @@ vcodec_enc: vcodec@17020000 { mediatek,scp =3D <&scp>; power-domains =3D <&spm MT8192_POWER_DOMAIN_VENC>; clocks =3D <&vencsys CLK_VENC_SET1_VENC>; - clock-names =3D "venc-set1"; + clock-names =3D "venc_sel"; assigned-clocks =3D <&topckgen CLK_TOP_VENC_SEL>; assigned-clock-parents =3D <&topckgen CLK_TOP_UNIVPLL_D4>; }; --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 839122057EB; Sun, 24 Mar 2024 23:04: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=1711321489; cv=none; b=iXWQivddIPCfcfZT5eF6bkteo1DsjZKgI9p9w/wvoJxS5GOO9lg0MMtuZgFA6sl4PONZQF79+J88IIUlT+08IWqNrbQArRhEQHuzDe6qpr/3bmuyBY24W6s3i0jcPBfmCuFQfmWEJ8C8ZR1wOSh3xIXH90S4MPXhfI8BURLHXMA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321489; c=relaxed/simple; bh=O9eze3/Xwc/ji+cKXEagCMTc8AL45Jdq9HEYPVII6WA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=nou1Vnwcy5OWVOXVQh/Si0O8vEEpeyO3Zk+6Xb2cy7KRMX2zwsDI/Pn8wOs2uuNGo5bOs5HyJyOHsxzFPBioSg6EDMBkdqQhBN73a6FOofzLREQZV32zG+ebLWlL1zNq/NdJCQFJfd1T/DhGVMU+Z/H1IScxauY5OVjHDM4Uh08= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=osfYU/sj; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="osfYU/sj" Received: by smtp.kernel.org (Postfix) with ESMTPSA id C0BB2C433A6; Sun, 24 Mar 2024 23:04:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321488; bh=O9eze3/Xwc/ji+cKXEagCMTc8AL45Jdq9HEYPVII6WA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=osfYU/sjL2pUl24Fc/ujvKVXiobfBsaA5+l9zrTILQ2YXAEK3t9rnfLbEw3KoLWnf sX8/u8nAAQP8SgiVWqppRVhMgCIkA/6RrJKhNDFsJg2lRlxpfILCuTp1WNpfiqdg/O 93fU3Mq7H3upbS7emA4BIGmqYfVNtppj6yShg4gdzZynYpDgRTTsNxSlRH50PwddEr kBAXXlVwmyM8vasP1fysTg4nG24X1CbR3Pl6EUPamiaZvj8CNqJKKq1g9LGgsYEb7r Mfkc0hucJYLii1E6aktOn6jNImmo7MASj+8+UdtmvGKcywEI3nMkskFC4D3ruR52o2 hAfrs9MUesNhg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Eugen Hristev , AngeloGioacchino Del Regno , Sasha Levin Subject: [PATCH 6.6 213/638] arm64: dts: mediatek: mt8186: fix VENC power domain clocks Date: Sun, 24 Mar 2024 18:54:10 -0400 Message-ID: <20240324230116.1348576-214-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Eugen Hristev [ Upstream commit 09860910c589a3bb3b5268ff6f704cf6b18ada73 ] The larb clock is in fact a subsys clock, so it must be prefixed by 'subsys-' to be correctly identified in the driver. Fixes: d9e43c1e7a38 ("arm64: dts: mt8186: Add power domains controller") Signed-off-by: Eugen Hristev Reviewed-by: AngeloGioacchino Del Regno Link: https://lore.kernel.org/r/20231228113245.174706-6-eugen.hristev@colla= bora.com Signed-off-by: AngeloGioacchino Del Regno Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/mediatek/mt8186.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/mediatek/mt8186.dtsi b/arch/arm64/boot/dts= /mediatek/mt8186.dtsi index 2fec6fd1c1a71..ee0feadbf9619 100644 --- a/arch/arm64/boot/dts/mediatek/mt8186.dtsi +++ b/arch/arm64/boot/dts/mediatek/mt8186.dtsi @@ -1061,7 +1061,7 @@ power-domain@MT8186_POWER_DOMAIN_VENC { reg =3D ; clocks =3D <&topckgen CLK_TOP_VENC>, <&vencsys CLK_VENC_CKE1_VENC>; - clock-names =3D "venc0", "larb"; + clock-names =3D "venc0", "subsys-larb"; mediatek,infracfg =3D <&infracfg_ao>; #power-domain-cells =3D <0>; }; --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E342A2057ED; Sun, 24 Mar 2024 23:04: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=1711321490; cv=none; b=PLbgeurjsWp/A6xAtjlhMqW5BRS+HGRUxmwKoBuY9tWn3SPLCvd15jiib8r5CiBgrx4T35n1CNGlnzOVod+l9fVmgWJMcG3imqvDuqaumy+dYmos6A3wNrUQMNQGcDVSjXcvV/jRA3pvcZfOWqaB3fUFhvi38SQaX2IV1LFsmwQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321490; c=relaxed/simple; bh=qaV5Q5P5651uAwU8aG+4K2P5K2fm4DxWxlKQ+iu1GuE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=tXYBlnkO2lNwqWyFwhk5gFY0zIkdbdIbQ2+xEvCuiyiUWCP9NMAbuRgpDF+jE1ZUoVZBiwZR6QMMavwsf1JQbNjHu8L3Vj+4I8WyIgxlETb2WfRKsqxipa9Vav0GJqg6GnF4SZfE30hcMkGpuFyW9D/R7anzypRf6oCLXg1m4V0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=pOk0ydXJ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="pOk0ydXJ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A4546C43394; Sun, 24 Mar 2024 23:04:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321489; bh=qaV5Q5P5651uAwU8aG+4K2P5K2fm4DxWxlKQ+iu1GuE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=pOk0ydXJ4BbJ/EAu/PbAjfNOYM2LeQWBiQC51YrowpoZocAZBg9eO+dNd+vmDjNfg uvmEiIyfBnw5wCKeWlI66N+CLLQh15a2OGsqb4BK/Pn7wxgzqA4UQYswg7Y5T/fTR4 gcyuIC1K6lqJExBXrUBdKViWSMlpfidyQ2dYAHCahWOfgmwKJSPjHnLf86+Pj0Nkll mjGgRmy/Kt9YXP/uX1jUruVzMqhe5CjfJMAhvuu4SuWfuxctVJHgmsxzwNHo/ik2ab GKK2tJwAmo4ZcttQNXWiuWQqStLEjnhuEWvmOzi14YUqaPo+aLZXAP5p849qFbMdjN i90dSQLXhDrlg== 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 6.6 214/638] arm64: dts: mediatek: mt7622: add missing "device_type" to memory nodes Date: Sun, 24 Mar 2024 18:54:11 -0400 Message-ID: <20240324230116.1348576-215-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-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 Tested-by: Takeshi Ogasawara --- 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 94e1cc9fbea33..7ef517e9e3746 100644 --- a/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts +++ b/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts @@ -75,6 +75,7 @@ led-1 { =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 c435984ca7674..a75dc63a1362a 100644 --- a/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts +++ b/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts @@ -57,6 +57,7 @@ key-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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 892D32057F9; Sun, 24 Mar 2024 23:04: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=1711321491; cv=none; b=hwWceyWaJaa6EJf88tP1mz4a9gfSmKdsDi3849yeQKd9373LNQcHlwRHC9/uPvgY7/sAyN9Vb6FoA/EWWBZilsMSy3A7VckjTCGXv6b6nKg8uq/Qj2XU21oKzmWrsuFavEBugkNYmtln7VweMd1fes02v1tKJXS29XSHef4dUTw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321491; c=relaxed/simple; bh=z9jUFiSp3MUg0mH6coUgrT0+E54jL2MUqfmnswH9CjU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=g7cvxyfyWimISkwm3oJVcKi+TpCrO2353AFAB3xbhtlfgAFkIAGcNkO+XIolWHI0bKNeLPLPURi7vmrPNLNPIrFlyzI4NN+hOGwVf+YTjRvPXHWd/or1dVQ9d7NckX4WJNz9rxNaj/plHyCkzCW3HTxl6JNXmAwJe5XCbKW+TqU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=WFEiS2ex; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="WFEiS2ex" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9C903C43390; Sun, 24 Mar 2024 23:04:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321490; bh=z9jUFiSp3MUg0mH6coUgrT0+E54jL2MUqfmnswH9CjU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=WFEiS2exCdKKt7wvDiPm10iriDzXh2lGMZMMnSZoEruQaK8x0jo3g9asIba6D08Pb HwRf2rk9feUZdNoE46S1nYLqPYqS7vRSjHxxD+gf6NCWuLDj3gevv0EbY26IhqAJ9s fYFMf363IDWvbFJH72oiAkQKjbwD7fwvB6dZD7xrqVy4W2YtxVe9BTyPEe21x6aaUi rmBkzL9gki8Csxr9kziOtdDF93kZpCDFW+ur7EWl71MYewVbMkegTkfwyTu4S+X7XU X98LJTXBStvK06+idG8IRNmAWvXlic/31H9x6/uZ5Z47X2I9KF1j/Wh9oJPpPqKXRi cyYFKj55ppqsQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Markus Schneider-Pargmann , Judith Mendez , Simon Horman , Marc Kleine-Budde , Sasha Levin Subject: [PATCH 6.6 215/638] can: m_can: Start/Cancel polling timer together with interrupts Date: Sun, 24 Mar 2024 18:54:12 -0400 Message-ID: <20240324230116.1348576-216-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Markus Schneider-Pargmann [ Upstream commit a163c5761019b94258ca655b27b46e82657fd6f5 ] Interrupts are enabled/disabled in more places than just m_can_start() and m_can_stop(). Couple the polling timer with enabling/disabling of all interrupts to achieve equivalent behavior. Cc: Judith Mendez Fixes: b382380c0d2d ("can: m_can: Add hrtimer to generate software interrup= t") Signed-off-by: Markus Schneider-Pargmann Reviewed-by: Simon Horman Link: https://lore.kernel.org/all/20240207093220.2681425-2-msp@baylibre.com Signed-off-by: Marc Kleine-Budde Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/net/can/m_can/m_can.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/drivers/net/can/m_can/m_can.c b/drivers/net/can/m_can/m_can.c index 16ecc11c7f62a..2395b1225cc8a 100644 --- a/drivers/net/can/m_can/m_can.c +++ b/drivers/net/can/m_can/m_can.c @@ -418,6 +418,13 @@ static void m_can_config_endisable(struct m_can_classd= ev *cdev, bool enable) =20 static inline void m_can_enable_all_interrupts(struct m_can_classdev *cdev) { + if (!cdev->net->irq) { + dev_dbg(cdev->dev, "Start hrtimer\n"); + hrtimer_start(&cdev->hrtimer, + ms_to_ktime(HRTIMER_POLL_INTERVAL_MS), + HRTIMER_MODE_REL_PINNED); + } + /* Only interrupt line 0 is used in this driver */ m_can_write(cdev, M_CAN_ILE, ILE_EINT0); } @@ -425,6 +432,11 @@ static inline void m_can_enable_all_interrupts(struct = m_can_classdev *cdev) static inline void m_can_disable_all_interrupts(struct m_can_classdev *cde= v) { m_can_write(cdev, M_CAN_ILE, 0x0); + + if (!cdev->net->irq) { + dev_dbg(cdev->dev, "Stop hrtimer\n"); + hrtimer_cancel(&cdev->hrtimer); + } } =20 /* Retrieve internal timestamp counter from TSCV.TSC, and shift it to 32-b= it @@ -1417,12 +1429,6 @@ static int m_can_start(struct net_device *dev) =20 m_can_enable_all_interrupts(cdev); =20 - if (!dev->irq) { - dev_dbg(cdev->dev, "Start hrtimer\n"); - hrtimer_start(&cdev->hrtimer, ms_to_ktime(HRTIMER_POLL_INTERVAL_MS), - HRTIMER_MODE_REL_PINNED); - } - return 0; } =20 @@ -1577,11 +1583,6 @@ static void m_can_stop(struct net_device *dev) { struct m_can_classdev *cdev =3D netdev_priv(dev); =20 - if (!dev->irq) { - dev_dbg(cdev->dev, "Stop hrtimer\n"); - hrtimer_cancel(&cdev->hrtimer); - } - /* disable all interrupts */ m_can_disable_all_interrupts(cdev); =20 --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 831CD2057F8; Sun, 24 Mar 2024 23:04: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=1711321491; cv=none; b=rSq41UWjuigL4TyBBCz7p7x3M2vwUPSBkp2Denmz1cSdLG3wBi903UtJdv2VoNWvZuS0hPDVy3G1rZtKs0ZvsCJ95N0ZrIZ4WzW+PYBYpp1LW16Agi0sWZqD6weRbW5TVdiEGFx3izlUJ07e1+D2g72qCuCWuyh4DOY1sHoabfA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321491; c=relaxed/simple; bh=SSr5RFektTQL/EnOjOh7JFgVsHETDVqB8XLdmop9QhU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=jcJMHpSyQ1laggAkFeLE+c7/SJE9/e3hJE61LWJsEiBe/6cS5bFMi9Imq9oOWMXhvSmjHeGm2sUacetGros+Ks89AucmqmFUXW4sEKG8l5dnUjZynNh+hZDXR2hsXdwaWFZSElCCvCL+Xc3e451E3TJ8ezKk4phuxP29zMTNK84= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=h3bDG5Xh; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="h3bDG5Xh" Received: by smtp.kernel.org (Postfix) with ESMTPSA id AC3F7C433C7; Sun, 24 Mar 2024 23:04:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321491; bh=SSr5RFektTQL/EnOjOh7JFgVsHETDVqB8XLdmop9QhU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=h3bDG5XhP8y9pTqwOCJEGnlVojj9qIhi93MwWdn3EVz0XTkYvgS0mveV81oETMG5d UIl+y0mTpTcyE7MqqKtWFBVVaAfss0u/RZfgI4Tl9wQEl2Yu+evIkCH/9KiMrKBZqK tMnVW2vS3PkgP5ZeHIPX/Wdm+AXGPqQ3mHxmWEOXeH8QUoxff+COjzvSdymf56g1qb DqO8NWZqyYx+Fo1awKO2NtEUkl+7tiI6kaVkcKRaIfD9EzXxbrAQ67czOxefPfM/TO IuDJWE9R+08JNndr4M4Kk6k/b+mpzcA6GC1L/rlZjucovj+vfw7khhyRFQ4fHoFyRT Cu0rNkNCNLyTg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Ilan Peer , Miri Korenblit , Johannes Berg , Sasha Levin Subject: [PATCH 6.6 216/638] wifi: iwlwifi: mvm: Fix the listener MAC filter flags Date: Sun, 24 Mar 2024 18:54:13 -0400 Message-ID: <20240324230116.1348576-217-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Ilan Peer [ Upstream commit 4cdb86487e3eaddb4b3a7df30ae709e810aac84b ] One of the flags was from the wrong API. Fixes: 9be162a7b670 ("wifi: iwlwifi: mvm: add support for the new MAC CTXT = command") Signed-off-by: Ilan Peer Signed-off-by: Miri Korenblit Link: https://msgid.link/20240208185302.a338c30ec4e9.Ic2813cdeba4443c692d46= 2fc4859392f069d7e33@changeid Signed-off-by: Johannes Berg Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/net/wireless/intel/iwlwifi/mvm/mld-mac.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/mld-mac.c b/drivers/net= /wireless/intel/iwlwifi/mvm/mld-mac.c index f313a8d771e42..ad78c69cc6cb7 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/mld-mac.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/mld-mac.c @@ -167,7 +167,7 @@ static int iwl_mvm_mld_mac_ctxt_cmd_listener(struct iwl= _mvm *mvm, iwl_mvm_mld_mac_ctxt_cmd_common(mvm, vif, &cmd, action); =20 cmd.filter_flags =3D cpu_to_le32(MAC_CFG_FILTER_PROMISC | - MAC_FILTER_IN_CONTROL_AND_MGMT | + MAC_CFG_FILTER_ACCEPT_CONTROL_AND_MGMT | MAC_CFG_FILTER_ACCEPT_BEACON | MAC_CFG_FILTER_ACCEPT_PROBE_REQ | MAC_CFG_FILTER_ACCEPT_GRP); --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7A7D12057F2; Sun, 24 Mar 2024 23:04: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=1711321492; cv=none; b=rho28Lte3SlQewigBzqoYY2ILFK4pI2NLbY9YQtLyFKZlZCsOZPaz01fkx/VZE2k/O9RUz5J2Wv/q21WHC34QzWd6cyLQZCHJb4q2Xto/HDb1dDRPPNb4CiL41B6MXinDUqxl8dF5GzhDDWjeyK1tinhw3VOVIHbUaROBc+ksxw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321492; c=relaxed/simple; bh=GuTjzVxswbVIyU4Pi1b/se2mxXzB3D3HzgGznfAvHCM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=T+Dobbjf5VCWGeSH7pQBXig85B8A4IdzAMLbr0rOMYGvtiuCVSYYntsRjFEjBZSS9vrvJNJTVyoYzc5D/HA9PbyjviMSgUcxzM+hu3gNn5ITZUNc4bISqx6WzqCgA3iIP3PiXu4OKWUHL1+352TacXZKvAZGTd7DOtOc4ckyozE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=LjcP1BYa; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="LjcP1BYa" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A5AE7C43399; Sun, 24 Mar 2024 23:04:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321492; bh=GuTjzVxswbVIyU4Pi1b/se2mxXzB3D3HzgGznfAvHCM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=LjcP1BYaLReZIDjnHhJbhqV735xgLRayrI6ylHUOwSvDJNk3q2YoBLnkocE6ZjHLx O4lP0akVNwot3BBK7bpOp3yvdgfeOaxaS9h0U9xzeth/OyyPgY65ZVIVi9c1i53EDF dQoMatdycsmLSnmOHkJ4j2cV9tZeA1was+OoGMypqSnnV29LumG21DE3giXXedDyD0 qbvhftH0XMrkCWwOlJTDIye+IJNB7gbO/g0Jja7eS5ymqSD4ZO0l0f3B7NfZtPFVVT oMyPpyM9AmdtwWOJXmFaULMz4L3igDGSBlZavn/YSO7d0/6TLaQ2O8yFZ445sJLNBG 8o1+IcCkNQ02w== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Yonghong Song , Andrii Nakryiko , Jiri Olsa , Sasha Levin Subject: [PATCH 6.6 217/638] bpf: Mark bpf_spin_{lock,unlock}() helpers with notrace correctly Date: Sun, 24 Mar 2024 18:54:14 -0400 Message-ID: <20240324230116.1348576-218-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 77db4263d68d7..5090e940ba3e4 100644 --- a/include/linux/filter.h +++ b/include/linux/filter.h @@ -505,24 +505,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 a5ce840f4fbef..31da67703307b 100644 --- a/kernel/bpf/helpers.c +++ b/kernel/bpf/helpers.c @@ -333,7 +333,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; @@ -356,7 +356,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5DFA42057FF; Sun, 24 Mar 2024 23:04: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=1711321494; cv=none; b=Mwe66bQKoE4/oLFpu7JCyfFQ5SGCMZkWVP4DDyRMhyGp2hAL1isdNgmDY1teS+SJn1C1iX/IDdhW7SiNcc4d9hIjF8UmlGd2sOElTJ6getX5x/beQyJ+czVePEoyw9NyjHnF+XpgwUPi1OX7m5zESc9dBW/EGV9vP/eLIfIr+do= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321494; c=relaxed/simple; bh=iv2KtoqLQRrFvvCar39HXyb0L8ckaFeZ8n9U20L7Jb0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Gvj/UVivaQ/b9mGQGPF2KZoOsJdr9rxP+dH6ef1aG4n1oT6+udJHFQNODT0U2U/nNdZ6nAsxQrXqAn8ixStim9/2dhW23N+QGo519guBWZTln+uzIl2WYIM16bme2COOVyi9gXuRjX4un+CXiED6bKsUmO4qD9mNMEABkbCmu+w= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=De5GnfW+; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="De5GnfW+" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9D442C433F1; Sun, 24 Mar 2024 23:04:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321493; bh=iv2KtoqLQRrFvvCar39HXyb0L8ckaFeZ8n9U20L7Jb0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=De5GnfW+Vz9dhI6k+pPyK5T7q/lJOdijjuSxEyJhhN5mLD+66PnelN7kyNpqVdSpR EwlNm+wvW8f7oFvfvWVQKj97t1uYpguUYa8AGm+b3iMhmXXXTuVAO5+WuYJss2PeSu 43zIMd506mhWacgY5dPVP2gu6r4ANPvtf6kdIDxc/j6sqqPqY7DO0qmqqLdfv0bMix wRHEOugxd+hV/nZN3OchXVa/TxDxc+/+xcnTgnjCQoEF4pTRnLXzAGCCx4Jt5q+Ng0 FUqSYv9aKVMPCy+t9Fs57BLfluX+LoBNT2RVYrbqgFZzIpWYpMXyRzwyA1/+zF5uVE UhqqoaMDBb8AQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Andrii Nakryiko , Alexei Starovoitov , Sasha Levin Subject: [PATCH 6.6 218/638] bpf: don't infer PTR_TO_CTX for programs with unnamed context type Date: Sun, 24 Mar 2024 18:54:15 -0400 Message-ID: <20240324230116.1348576-219-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Andrii Nakryiko [ Upstream commit 879bbe7aa4afa80acf72a1cad7f52416ea78c52d ] For program types that don't have named context type name (e.g., BPF iterator programs or tracepoint programs), ctx_tname will be a non-NULL empty string. For such programs it shouldn't be possible to have PTR_TO_CTX argument for global subprogs based on type name alone. arg:ctx tag is the only way to have PTR_TO_CTX passed into global subprog for such program types. Fix this loophole, which currently would assume PTR_TO_CTX whenever user uses a pointer to anonymous struct as an argument to their global subprogs. This happens in practice with the following (quite common, in practice) approach: typedef struct { /* anonymous */ int x; } my_type_t; int my_subprog(my_type_t *arg) { ... } User's intent is to have PTR_TO_MEM argument for `arg`, but verifier will complain about expecting PTR_TO_CTX. This fix also closes unintended s390x-specific KPROBE handling of PTR_TO_CTX case. Selftest change is necessary to accommodate this. Fixes: 91cc1a99740e ("bpf: Annotate context types") Signed-off-by: Andrii Nakryiko Link: https://lore.kernel.org/r/20240212233221.2575350-4-andrii@kernel.org Signed-off-by: Alexei Starovoitov Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- kernel/bpf/btf.c | 3 +++ .../bpf/progs/test_global_func_ctx_args.c | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/kernel/bpf/btf.c b/kernel/bpf/btf.c index a31704a6bb614..9445ae6a280e6 100644 --- a/kernel/bpf/btf.c +++ b/kernel/bpf/btf.c @@ -5655,6 +5655,9 @@ btf_get_prog_ctx_type(struct bpf_verifier_log *log, c= onst struct btf *btf, bpf_log(log, "Please fix kernel include/linux/bpf_types.h\n"); return NULL; } + /* program types without named context types work only with arg:ctx tag */ + if (ctx_tname[0] =3D=3D '\0') + return false; /* only compare that prog's ctx type name is the same as * kernel expects. No need to compare field by field. * It's ok for bpf prog to do: diff --git a/tools/testing/selftests/bpf/progs/test_global_func_ctx_args.c = b/tools/testing/selftests/bpf/progs/test_global_func_ctx_args.c index 7faa8eef0598b..144d30e654ad2 100644 --- a/tools/testing/selftests/bpf/progs/test_global_func_ctx_args.c +++ b/tools/testing/selftests/bpf/progs/test_global_func_ctx_args.c @@ -26,6 +26,23 @@ int kprobe_typedef_ctx(void *ctx) return kprobe_typedef_ctx_subprog(ctx); } =20 +/* s390x defines: + * + * typedef user_pt_regs bpf_user_pt_regs_t; + * typedef struct { ... } user_pt_regs; + * + * And so "canonical" underlying struct type is anonymous. + * So on s390x only valid ways to have PTR_TO_CTX argument in global subpr= ogs + * are: + * - bpf_user_pt_regs_t *ctx (typedef); + * - struct bpf_user_pt_regs_t *ctx (backwards compatible struct hack); + * - void *ctx __arg_ctx (arg:ctx tag) + * + * Other architectures also allow using underlying struct types (e.g., + * `struct pt_regs *ctx` for x86-64) + */ +#ifndef bpf_target_s390 + #define pt_regs_struct_t typeof(*(__PT_REGS_CAST((struct pt_regs *)NULL))) =20 __weak int kprobe_struct_ctx_subprog(pt_regs_struct_t *ctx) @@ -40,6 +57,8 @@ int kprobe_resolved_ctx(void *ctx) return kprobe_struct_ctx_subprog(ctx); } =20 +#endif + /* this is current hack to make this work on old kernels */ struct bpf_user_pt_regs_t {}; =20 --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3EF7A136678; Sun, 24 Mar 2024 23:04: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=1711321495; cv=none; b=ajxazDZSXpZRY1vWg1ptvXTdeHVYLGbbSj0OZwB+Kgi24ZsNj7+utZFsL110hxHqDaeCSdc4oIn3grY6BabFzBVL4c5EyU2cmx1PJzaLnokjUh9cw4atJF22ViKMrqHhzFJNWaYk2JVYKfKOvAksQbKLmuaBNn0Xo1a1KglE0Bs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321495; c=relaxed/simple; bh=zDwrV9qQ/N4C7MwDZaNZ+GJUXT8auFLqKHkwnMxLKcQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=XjatkSraATFsXw5fvMnJM549wMMsSHIYvLpg1GSWOCFIf3xuC0/BM22bnTV/AQZoSg9cT0PnHEelhhW+FMC9LJ/BDvjfCLoKK5Xgh1E17ZLkVW6+OvUY4AkOgcYJ1B8IP8O6oz5SU2u/MShJZxBkr5xsvgbwuYXkcU3rHOiI3NE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=q3IoukpM; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="q3IoukpM" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8122DC43394; Sun, 24 Mar 2024 23:04:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321494; bh=zDwrV9qQ/N4C7MwDZaNZ+GJUXT8auFLqKHkwnMxLKcQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=q3IoukpMGZxZWYSMYu9ObdvH66sKOOngj8Fdk5+mBtOFvHC5gb7n9qCG5qVccy1WN 0onc+uU0iAdHuoUqugZ+tVg7YyvwUGNC+0ISi6fSzLYwKgWOXirdyP4Rhn7ejz0Q0p vvpzhu+mPt3OocmGWuIYn1MusWLidKWGiByiSdldZFyfCD0D+WmnupuMOqFGjSAaAV CIETuyQfeye/D+14IzZKEYJGQhLAw6l6hIfiKVkNA0pRcKKydXwkHzmZwXWJFbFZ4T IV62iowguPQ1pdu1Okeml3YhMpGdvIXl614aWX7Ek+WjCFr2kv6aWBCqNGLghyxI2A hKrKwEUkHLVtQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Konrad Dybcio , Bjorn Andersson , Sasha Levin Subject: [PATCH 6.6 219/638] arm64: dts: qcom: sdm845: Use the Low Power Island CX/MX for SLPI Date: Sun, 24 Mar 2024 18:54:16 -0400 Message-ID: <20240324230116.1348576-220-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 5dd227ccfb9568935bdaf82bc1893b36457dd4d3 ] The SLPI is powered by the Low Power Island power rails. Fix the incorrect assignment. Fixes: 74588aada59a ("arm64: dts: qcom: sdm845: add SLPI remoteproc") Signed-off-by: Konrad Dybcio Link: https://lore.kernel.org/r/20231220-topic-sdm845_slpi_lcxmx-v1-1-db7c7= 2ef99ae@linaro.org Signed-off-by: Bjorn Andersson Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/qcom/sdm845.dtsi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm64/boot/dts/qcom/sdm845.dtsi b/arch/arm64/boot/dts/qco= m/sdm845.dtsi index 234d7875cd8e1..5bf0d5af452af 100644 --- a/arch/arm64/boot/dts/qcom/sdm845.dtsi +++ b/arch/arm64/boot/dts/qcom/sdm845.dtsi @@ -3363,8 +3363,8 @@ slpi_pas: remoteproc@5c00000 { =20 qcom,qmp =3D <&aoss_qmp>; =20 - power-domains =3D <&rpmhpd SDM845_CX>, - <&rpmhpd SDM845_MX>; + power-domains =3D <&rpmhpd SDM845_LCX>, + <&rpmhpd SDM845_LMX>; power-domain-names =3D "lcx", "lmx"; =20 memory-region =3D <&slpi_mem>; --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 50D1D136996; Sun, 24 Mar 2024 23:04: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=1711321496; cv=none; b=tj9eo0jX07JhKwYJhkld85IvdwO9Glqki1esG4ia0b1851YB1RnkGPA2iBQg9QVx5z0sWu5C10Jc7v2lEw2mEqYFgVrzTsAN0K3aJhE921Wc51V6Spnm1oF2enTxr5odZhDSux3eAVWB5ntpjwiK4tnPg3R8N2zXLw4cMF3BaSg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321496; c=relaxed/simple; bh=9u5NrhJcsS9DElx+ocr086SXQ18+mS2wYgg/2/lpBXU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=KF6Y5bL0OuStM3FUfUZcJLF6MDH33fXi6FuuY9eN1GaENVcZUJPO2MnpoXSDRYenFtFErQAslRl0JGHMwvDphk1sC/ODq3AuZrOx+6V0vu5EKdDhvdKlLQG+gS90kXvtalcbVVIo5HwRzDERyFeXzaKnwwGhKPTKoZC/YKvIfyU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=jEGOv6lT; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="jEGOv6lT" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 62808C43399; Sun, 24 Mar 2024 23:04:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321495; bh=9u5NrhJcsS9DElx+ocr086SXQ18+mS2wYgg/2/lpBXU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jEGOv6lTW1W2T0Lb8pk0/1SRxNBaninMYefnrN9q5r0tXp4p8OA/IFfnX3bz6Mr0c BVQhYmB7nIc81pZQdSwL+pZp/T7hLtkYDJ9ERT8cxiQDx4A/RR149VN5uiJwAfQu6S d0bvct3tFcrKM/DfWDO9R2YDLb6G1CUiv+nrizIeYKixLQR2W96e6ovpSm80zNV1GR uy04GV75UCLmQhtTXvcDH/qeJ3fH+Y9Mef7AJYHTdqwtuzPRF6Rda7cELdvOBYzFfw 6gW6ZcTRBGHmgjXFlM0VAWzo24d3C4cPQw4l4BnK5VZ1Vfl/GTehYGAbZM1T/8o0AS 9xi7m1XIdXSCA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Unnathi Chalicheemala , Elliot Berman , Mukesh Ojha , Bjorn Andersson , Sasha Levin Subject: [PATCH 6.6 220/638] soc: qcom: llcc: Check return value on Broadcast_OR reg read Date: Sun, 24 Mar 2024 18:54:17 -0400 Message-ID: <20240324230116.1348576-221-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Unnathi Chalicheemala [ Upstream commit ceeaddc19a90039861564d8e1078b778a8f95101 ] Commit c72ca343f911 ("soc: qcom: llcc: Add v4.1 HW version support") introduced a new 4.1 if statement in llcc_update_act_ctrl() without considering that ret might be overwritten. So, add return value check after Broadcast_OR register read in llcc_update_act_ctrl(). Fixes: c72ca343f911 ("soc: qcom: llcc: Add v4.1 HW version support") Signed-off-by: Unnathi Chalicheemala Reviewed-by: Elliot Berman Reviewed-by: Mukesh Ojha Link: https://lore.kernel.org/r/20240212183515.433873-1-quic_uchalich@quici= nc.com Signed-off-by: Bjorn Andersson Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/soc/qcom/llcc-qcom.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/soc/qcom/llcc-qcom.c b/drivers/soc/qcom/llcc-qcom.c index e877aace11555..03d5de759b256 100644 --- a/drivers/soc/qcom/llcc-qcom.c +++ b/drivers/soc/qcom/llcc-qcom.c @@ -610,6 +610,8 @@ static int llcc_update_act_ctrl(u32 sid, ret =3D regmap_read_poll_timeout(drv_data->bcast_regmap, status_reg, slice_status, !(slice_status & status), 0, LLCC_STATUS_READ_DELAY); + if (ret) + return ret; =20 if (drv_data->version >=3D LLCC_VERSION_4_1_0_0) ret =3D regmap_write(drv_data->bcast_regmap, act_clear_reg, --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AF05C2062E4; Sun, 24 Mar 2024 23:04: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=1711321497; cv=none; b=Zef7mh+NQORqin8nlYV5xTMM9Ef0QQ1JFCOFr38XEdCcRT7Ttiou70YGaq1eJhA4HInaG7+8fogiH6hpCC/K/TfkHG5BMHGpOxjKpXhZDaNIiuAe/ExlYDA1QbBichTudkPxGC/e6K7FS6z3csATkXDwmzLt72Arnu3Z1J7+CEM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321497; c=relaxed/simple; bh=ejgvvjlYrP0ggQ6p2mT2a42/l5zIDdfBEPIknr/GpMc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=JfppluXirH0JIVlRSQelcdgCr9iWlSjGMkSiiqDaRE9NtIHIi5z3ASp8FC0A7ddRH/nr7rnujJDP9hzRHuduozm27qLkBocIZ6nWEFIwCqEP8Oy4KviWCCGoihZ1jWd6OqSd06NR0s8ccnMheavX/HeuQuehKJ9oxsr4juixfok= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Rr9CGd7I; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Rr9CGd7I" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 742C2C43394; Sun, 24 Mar 2024 23:04:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321496; bh=ejgvvjlYrP0ggQ6p2mT2a42/l5zIDdfBEPIknr/GpMc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Rr9CGd7IF9ZoIqk83gMNh0XVNl8k2svhMgvs8vKcdbuQv1PM2O5mBfCuQ/I3vCrXE VcwEeOcD8BUki7VWHm7WNepXbWSBd0413beNyGTWp5T565G9pzF4FHPYk21BLj0cqi 8Z+QRcmHgAyqtGZPEKhQBx4vuBQMZ02WwXX64o6jJ7pwnZnt+z31tiIK+tpvrqmM/c ATOP5kdUWjfRaQTN+b3mjBUVVqUDNyfm6TLeDhXnEJsjOxZtWhYAbZcF0gDwAA2sCO KZi8Gz/5HQb5RLxcl26JZYlRAjCcYhEjKMqS/B7R9r3tuSrzrQ/xNR6WtNSAyAmgJb bv3BOMl8HkvKg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Craig Tatlor , Luca Weiss , Konrad Dybcio , Bjorn Andersson , Sasha Levin Subject: [PATCH 6.6 221/638] ARM: dts: qcom: msm8974: correct qfprom node size Date: Sun, 24 Mar 2024 18:54:18 -0400 Message-ID: <20240324230116.1348576-222-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Craig Tatlor [ Upstream commit 724c4bf0e4bf81dba77736afb93964c986c3c123 ] The qfprom actually is bigger than 0x1000, so adjust the reg. Note that the non-ECC-corrected qfprom can be found at 0xfc4b8000 (-0x4000). The current reg points to the ECC-corrected qfprom block which should have equivalent values at all offsets compared to the non-corrected version. [luca@z3ntu.xyz: extract to standalone patch and adjust for review comments] Fixes: c59ffb519357 ("arm: dts: msm8974: Add thermal zones, tsens and qfpro= m nodes") Signed-off-by: Craig Tatlor Signed-off-by: Luca Weiss Reviewed-by: Konrad Dybcio Link: https://lore.kernel.org/r/20240210-msm8974-qfprom-v3-1-26c424160334@z= 3ntu.xyz Signed-off-by: Bjorn Andersson Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm/boot/dts/qcom/qcom-msm8974.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/qcom/qcom-msm8974.dtsi b/arch/arm/boot/dts/q= com/qcom-msm8974.dtsi index 706fef53767e1..4a8eb8b423290 100644 --- a/arch/arm/boot/dts/qcom/qcom-msm8974.dtsi +++ b/arch/arm/boot/dts/qcom/qcom-msm8974.dtsi @@ -1194,7 +1194,7 @@ restart@fc4ab000 { =20 qfprom: qfprom@fc4bc000 { compatible =3D "qcom,msm8974-qfprom", "qcom,qfprom"; - reg =3D <0xfc4bc000 0x1000>; + reg =3D <0xfc4bc000 0x2100>; #address-cells =3D <1>; #size-cells =3D <1>; =20 --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 480082062EA; Sun, 24 Mar 2024 23:04: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=1711321498; cv=none; b=umZcbYBmfzQLo91MXRJKt5URgLcqm2LmI9HxeeJituMlkPC/DaW7S7CKoMbyztcfnkMV/UMCs5nes+gJJ+fMBfujN16mVA54BXZoustAPnjtBhVnAwLGmYieiqXgKkrW9QAqicZPbrEJLhmS/NxlScAh6wasrH/jwENKk9DeeAc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321498; c=relaxed/simple; bh=0BWxCl2nFw/sJ7Q83TuBcBmbqeMeajlBN2JcRS5sjwQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=YqWb43ogWSC7rehV6rPyIbiZJyowdgAs8UkUm2W5bTBE+3sRb826R4NmyjJPAQqlRmsIju/BFHxcbUvgrgLfRW6etYxwTwJ2Qbz9CmY6yXPS/prsBTiL8mjl3d+Whjux5hRfwbjqCldCRY9Wx920B0c5mUKCJUnLF6Tl5dddoIY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=CrdaWCk3; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="CrdaWCk3" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 870F3C433F1; Sun, 24 Mar 2024 23:04:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321497; bh=0BWxCl2nFw/sJ7Q83TuBcBmbqeMeajlBN2JcRS5sjwQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=CrdaWCk3y+poS2rWLkm/CB7Qk+aJ43+w+AkKD/CwpIYrWFSlti8tqaLY0G6w8t8/S 0mYecgbXbRlL+1P7SynCE9wxG2ulVN1N77YIQuG4UR5TlOF33WSKdUZ6YPYhPzC7Fi LGdC+QCz+j1vUQEGADWZzhBwxv1W0EpS99Y/zb8YCWqi1VKRspF0pHrBOkBCYBI5w7 8k2nKFuN21UWpmjgqP7M6/EmPgm4OkOL7NyPqCjoFZMcdXLAZnXQDhJKtIDFBqAAfN CdNUR3zCzcMSB+J1SQN1jEZVhM+2g8rjkPvA9f/Iszn1saa34CwpvMnT4JIClakE8T pJBYUEgAxd93A== 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 , Sasha Levin Subject: [PATCH 6.6 222/638] arm64: dts: mediatek: mt8186: Add missing clocks to ssusb power domains Date: Sun, 24 Mar 2024 18:54:19 -0400 Message-ID: <20240324230116.1348576-223-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-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 a00d4a98af44e025891e97c490b2545368a25e08 ] The ssusb power domains currently don't list any clocks, despite depending on some, and thus rely on the bootloader leaving the required clocks on in order to work. When booting with the upstream arm64 defconfig, the power domain controller will defer probe until modules have loaded since it has an indirect dependency on CONFIG_MTK_CMDQ, which is configured as a module. However at the point where modules are loaded, unused clocks are also disabled, causing the ssusb domains to fail to be enabled and consequently the controller to fail probe: mtk-power-controller 10006000.syscon:power-controller: /soc/syscon@10006000= /power-controller/power-domain@4: failed to power on domain: -110 mtk-power-controller: probe of 10006000.syscon:power-controller failed with= error -110 Add the missing clocks for the ssusb power domains so that they can successfully probe without relying on the bootloader state. Fixes: d9e43c1e7a38 ("arm64: dts: mt8186: Add power domains controller") Signed-off-by: N=C3=ADcolas F. R. A. Prado Link: https://lore.kernel.org/r/20240213-mt8186-ssusb-domain-clk-fix-v2-1-1= f981d35f3fd@collabora.com Signed-off-by: AngeloGioacchino Del Regno Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/mediatek/mt8186.dtsi | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/arch/arm64/boot/dts/mediatek/mt8186.dtsi b/arch/arm64/boot/dts= /mediatek/mt8186.dtsi index ee0feadbf9619..4fd25f0f313d2 100644 --- a/arch/arm64/boot/dts/mediatek/mt8186.dtsi +++ b/arch/arm64/boot/dts/mediatek/mt8186.dtsi @@ -931,11 +931,17 @@ power-domain@MT8186_POWER_DOMAIN_CSIRX_TOP { =20 power-domain@MT8186_POWER_DOMAIN_SSUSB { reg =3D ; + clocks =3D <&topckgen CLK_TOP_USB_TOP>, + <&infracfg_ao CLK_INFRA_AO_SSUSB_TOP_REF>; + clock-names =3D "sys_ck", "ref_ck"; #power-domain-cells =3D <0>; }; =20 power-domain@MT8186_POWER_DOMAIN_SSUSB_P1 { reg =3D ; + clocks =3D <&infracfg_ao CLK_INFRA_AO_SSUSB_TOP_P1_SYS>, + <&infracfg_ao CLK_INFRA_AO_SSUSB_TOP_P1_REF>; + clock-names =3D "sys_ck", "ref_ck"; #power-domain-cells =3D <0>; }; =20 --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2D23D2062F2; Sun, 24 Mar 2024 23:04: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=1711321499; cv=none; b=P29kcCbS+7j8mkX4zAo7x8ZMpEK7BKuyrs6hEyWpQ1/NJgOMqRtbVQQO11PlKVrdm+3zJJJ65bOs2jeGaIsfyjBO3qP8Y6VEvL6MnqHpTV+WuD/4JQa+P/tlUTyDq+GpvVdSzIpcveIAPIhy+CX0FYLT7MF9lzeepx1MnfSQR0w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321499; c=relaxed/simple; bh=8AaEs2Sq3uwPfjgBGNCVId+9i+0GuIBA1mhuf3MjHLg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=d0yU6NgWVrpnzbhv0Gw3md/72FXYQ5LcusgyCkWZX1BQ9g0NeQbz8CZZOWs6K+WMc/WZqVC0di9RGQuar6bJqeX5vMflG2d4OOeVKiTqPPBu02cOK2B4gkY3auPoIxW4F2bKb4AB828f/cZqumXLpADjSaEAsFrbVwaxgVU7E2E= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=lKq7VpeR; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="lKq7VpeR" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6D2D9C433C7; Sun, 24 Mar 2024 23:04:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321498; bh=8AaEs2Sq3uwPfjgBGNCVId+9i+0GuIBA1mhuf3MjHLg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=lKq7VpeRBODDX4tbfwx/53A0yU3JQv/EdtRFLkmP/5tBjpZ9SaWBuHof9HCmN0xZd ZoYQVHZSas5LVntA2BKfjoblywvp6b07H/cEpSa0Dnef//UVID748OVOBgc5+qcLsl +9MA7b6cZYcpNOeG28YcTR4OiJInBOcQcL2XP9rD1P3BY09U8qB20h1aSS7IugIoWp OJsmi5Mw3hy2WRScBro6fP/RiaHjPo+5sJKjXVGsb4oqaqYeN7RSwwG2KRRVSTVy3o bYOB6y3yKHCR0VoGoDSK6B6qyqAWcfk3fdDXWYHF3RG51vFCylLIENYqpNVf+WGsdF T/9/ubuZP67mg== 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 , Sasha Levin Subject: [PATCH 6.6 223/638] arm64: dts: mediatek: mt8186: Add missing xhci clock to usb controllers Date: Sun, 24 Mar 2024 18:54:20 -0400 Message-ID: <20240324230116.1348576-224-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-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 1af98c3e53da5a8f627855cecd68b017e753ffd3 ] The mtu3 usb controllers don't list the xhci clock, though they require it, and thus rely on the bootloader leaving it on in order to work. When booting with the upstream arm64 defconfig, the usb controllers will defer probe until modules have loaded since they have an indirect dependency on CONFIG_MTK_CMDQ, which is configured as a module. However at the point where modules are loaded, unused clocks are also disabled, causing the usb controllers to probe without the xhci clock enabled and fail to probe: mtu3 11201000.usb: clks of sts1 are not stable! mtu3 11201000.usb: device enable failed -110 mtu3 11201000.usb: mtu3 hw init failed:-110 mtu3 11201000.usb: failed to initialize gadget mtu3: probe of 11201000.usb failed with error -110 (and same for the one at 11281000) Add the missing clock for the usb controllers so that they can successfully probe without relying on the bootloader state. Fixes: f6c3e61c5486 ("arm64: dts: mediatek: mt8186: Add MTU3 nodes") Signed-off-by: N=C3=ADcolas F. R. A. Prado Link: https://lore.kernel.org/r/20240213-mt8186-ssusb-domain-clk-fix-v2-2-1= f981d35f3fd@collabora.com Signed-off-by: AngeloGioacchino Del Regno Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/mediatek/mt8186.dtsi | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/arch/arm64/boot/dts/mediatek/mt8186.dtsi b/arch/arm64/boot/dts= /mediatek/mt8186.dtsi index 4fd25f0f313d2..84ec6c1aa12b9 100644 --- a/arch/arm64/boot/dts/mediatek/mt8186.dtsi +++ b/arch/arm64/boot/dts/mediatek/mt8186.dtsi @@ -1536,8 +1536,9 @@ ssusb0: usb@11201000 { clocks =3D <&topckgen CLK_TOP_USB_TOP>, <&infracfg_ao CLK_INFRA_AO_SSUSB_TOP_REF>, <&infracfg_ao CLK_INFRA_AO_SSUSB_TOP_HCLK>, - <&infracfg_ao CLK_INFRA_AO_ICUSB>; - clock-names =3D "sys_ck", "ref_ck", "mcu_ck", "dma_ck"; + <&infracfg_ao CLK_INFRA_AO_ICUSB>, + <&infracfg_ao CLK_INFRA_AO_SSUSB_TOP_XHCI>; + clock-names =3D "sys_ck", "ref_ck", "mcu_ck", "dma_ck", "xhci_ck"; interrupts =3D ; phys =3D <&u2port0 PHY_TYPE_USB2>; power-domains =3D <&spm MT8186_POWER_DOMAIN_SSUSB>; @@ -1601,8 +1602,9 @@ ssusb1: usb@11281000 { clocks =3D <&infracfg_ao CLK_INFRA_AO_SSUSB_TOP_P1_SYS>, <&infracfg_ao CLK_INFRA_AO_SSUSB_TOP_P1_REF>, <&infracfg_ao CLK_INFRA_AO_SSUSB_TOP_P1_HCLK>, - <&clk26m>; - clock-names =3D "sys_ck", "ref_ck", "mcu_ck", "dma_ck"; + <&clk26m>, + <&infracfg_ao CLK_INFRA_AO_SSUSB_TOP_P1_XHCI>; + clock-names =3D "sys_ck", "ref_ck", "mcu_ck", "dma_ck", "xhci_ck"; interrupts =3D ; phys =3D <&u2port1 PHY_TYPE_USB2>, <&u3port1 PHY_TYPE_USB3>; power-domains =3D <&spm MT8186_POWER_DOMAIN_SSUSB_P1>; --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 13C002062FE; Sun, 24 Mar 2024 23:04: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=1711321500; cv=none; b=nIkgcd7+FsUhrEyt4XbxdB7nGFyxtOhac7fbi4wynTHNlZ4OoJjovxAuZ2/O1ax7noShgXJlvBnZPoV29cfaYvdoTuiCqg0oTXz7fKas8A8C2K8Szoe2L7Hvgh+Sz7H5lcyX2soLAjBovGsJspyZvgDVGQlOTSzbsgE83plEK7s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321500; c=relaxed/simple; bh=eOFSIzfqtIpRZNnVVtzJpHLcTC4yIAg2d1c5jY0FyDo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=l1YJsLGnzb7yLorWB+k+CEp+q6e7JnuVUwWJWYzvH+rkR7UE5OeAeYIvRz6XTuxLbXbbFgeLwiYp/DgLVnnLlFmnyG1nDFYYMtsWPPEjwv2woFVbPOff4e4cDpUAqhjm4W+zTZ+YDNG8RtjHHLmMXLb6iTKHtHnTS2MVbr+5Enk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=jqAEEx7N; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="jqAEEx7N" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 52843C43394; Sun, 24 Mar 2024 23:04:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321498; bh=eOFSIzfqtIpRZNnVVtzJpHLcTC4yIAg2d1c5jY0FyDo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jqAEEx7NXinHMU0NOVStOBxjPJrblBG3b8CbtxhBrt/5r+/O55+LLWAIT/UrRB6Ej +tsNwSEz6HVpYDc6sStha5QbKKL1Yf/fBDUjWh+EC6K56CrvH3VAfDcucxoCCLDqyJ h0JPWcU9kHLZfLxMES5wtxNI8iTqXbqodmjZo9M7pQSrg12GcyTb5o+zhBookvdUm0 56MOrzsWEvxfPGnvIXen14snyLggzZCBaH+yTWs+49keZAPrnWllxyIhS3a0KX/Xiy fZCw0dTlPPL+aHgMFDNDYuVmPnae+bW9VL+FhwsSTJMOPU8uVY1ja3zOhvKKsPwuhf wIZ2Ho32J/bEQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Arnd Bergmann , Viresh Kumar , Sasha Levin Subject: [PATCH 6.6 224/638] cpufreq: qcom-hw: add CONFIG_COMMON_CLK dependency Date: Sun, 24 Mar 2024 18:54:21 -0400 Message-ID: <20240324230116.1348576-225-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 3093fa33539b54db77171d2919352ad4f044a1c5 ] It is still possible to compile-test a kernel without CONFIG_COMMON_CLK for some ancient ARM boards or other architectures, but this causes a link failure in the qcom-cpufreq-hw driver: ERROR: modpost: "devm_clk_hw_register" [drivers/cpufreq/qcom-cpufreq-hw.ko]= undefined! ERROR: modpost: "devm_of_clk_add_hw_provider" [drivers/cpufreq/qcom-cpufreq= -hw.ko] undefined! ERROR: modpost: "of_clk_hw_onecell_get" [drivers/cpufreq/qcom-cpufreq-hw.ko= ] undefined! Add a Kconfig dependency here to make sure this always work. Apparently this bug has been in the kernel for a while without me running into it on randconfig builds as COMMON_CLK is almost always enabled. I have cross-checked by building an allmodconfig kernel with COMMON_CLK disabled, which showed no other driver having this problem. Fixes: 4370232c727b ("cpufreq: qcom-hw: Add CPU clock provider support") Signed-off-by: Arnd Bergmann Signed-off-by: Viresh Kumar Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/cpufreq/Kconfig.arm | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/cpufreq/Kconfig.arm b/drivers/cpufreq/Kconfig.arm index 123b4bbfcfee1..c5cecbd89ba9c 100644 --- a/drivers/cpufreq/Kconfig.arm +++ b/drivers/cpufreq/Kconfig.arm @@ -173,6 +173,7 @@ config ARM_QCOM_CPUFREQ_NVMEM config ARM_QCOM_CPUFREQ_HW tristate "QCOM CPUFreq HW driver" depends on ARCH_QCOM || COMPILE_TEST + depends on COMMON_CLK help Support for the CPUFreq HW driver. Some QCOM chipsets have a HW engine to offload the steps --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EEBE0206304; Sun, 24 Mar 2024 23:04: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=1711321501; cv=none; b=roxeB9nQDCR0PHeOhGQx/TvlxIWrdCgkyycP1hYMvzb3MvCdS51Gi45TdP8CFpYyFol6yHWjOnDZkvbdAVrBeQT39Q5HQNLgBL5hTzuXj7hM9IYITL208t5lPK2jmgJHXTXeyfNzZdXZAsFyXVz7s4MxsiFzNcnFlMiilDYxs7Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321501; c=relaxed/simple; bh=XPaa/mrroDUfMDpkjAsvH2WF2Yb7bzR0M63O/5YR8l4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=tYEbWkh9jdATCnkVwdZEYiTcSo07fnNovNGV6yJmza3JxFA/LmtqvEwLBZISV1sG9Fhf8jUAZDHMK4OmKkIXugJfsf8Q182awxaOG3cdPtaWdfHWEE0TcdRlVFQ9rovJkvFrkIm3c/iz4n6yyxBkykrUcrywcaM10awafBglo/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=cX0cHCMs; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="cX0cHCMs" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 39E13C43399; Sun, 24 Mar 2024 23:04:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321499; bh=XPaa/mrroDUfMDpkjAsvH2WF2Yb7bzR0M63O/5YR8l4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cX0cHCMsakCrno7BSLhUEgw95QQzdPCcReo56hZKzzoOPlCjicoi/fGUGGIBsnGDa nEO9G0IRA7+wTfYCGiIAhW9VKcsO6v5mntSw4OlzTrcIEAOhvueRhzOWwitg2ckeT0 mjmJoBn3xYmYU0Q9nMXmleXFhToNMWm6maDOTt5z3CUko8blPjUkwoWnRhL2azXtE7 8KsVuS2qYT0zZbLYRAOVZWLh4wHD2ieahKdWFlUk/9TVVj+uSELHwZt7ridYuulWX5 oEESWA416weXHBsXFjtDxxaUKjn7/Tqnr7lCIT4DBLO0G64ElIJWIZI+hcxR4PR++w JSz3PaWLh/oIA== 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 6.6 225/638] wifi: wilc1000: prevent use-after-free on vif when cleaning up all interfaces Date: Sun, 24 Mar 2024 18:54:22 -0400 Message-ID: <20240324230116.1348576-226-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-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 Tested-by: Takeshi Ogasawara --- .../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 0e6eeeed2e086..b714da48eaa17 100644 --- a/drivers/net/wireless/microchip/wilc1000/netdev.c +++ b/drivers/net/wireless/microchip/wilc1000/netdev.c @@ -878,8 +878,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; @@ -889,32 +888,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 11556206306; Sun, 24 Mar 2024 23:05: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=1711321501; cv=none; b=at71JNxtLEO4+Eq7zT9oiOU+B1XT2HODn6gVDlUw3LES5sZtSthvyy4hO0YOzcgHMlV75kZDh59mPG3pt/Ip9kOf0pp1YWnNLow92zLpKU9KumD6iRTRcpM7vsyGA76wYqA+bEmi9rIgR10oxlsDKUKptGF+dQFEYemupBuUSUQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321501; c=relaxed/simple; bh=nuS2DSyb0HoYpvjFVvqmQJZCzRsWtxviE8APCm+LkS4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=eUO42B6uw5P/steuRziN+OTEBP0egtatdUcM7C035yJg3K25ciwSbEe1mV5hIx1WKBURwGSAlEIfbMbMNEuvZJ3QYfs8OUGkGSmcXwnyIlDmFIxjjYBgYepiRut2oGYjUrzfkGbjXVLQbGQgs0tUsq/IWehDURn/o0pgQUFAz1U= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ddbK77lv; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ddbK77lv" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1E8E2C433C7; Sun, 24 Mar 2024 23:05:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321500; bh=nuS2DSyb0HoYpvjFVvqmQJZCzRsWtxviE8APCm+LkS4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ddbK77lv5FaFtbH0WK9Mz2DlSo6YReku2VrdWWJPvSd9CWhjoKdsQGRtAN0FHczI2 MeeOGSFk3GYtNVX9pFcpSRqXZ/gNWS8kmVLQutytf7Sxr3rPzlZsSWMl/oAAO9vGU2 t7Smil/APVQpdJiy1W02de7s4hUmYSrKZtqDSd1GsTjBYHBjyD/2RWjS2GThM/243M xO70JEXhL48xFmoTpIehDtID2nzcL7d4HLV75KpN2KcZgZ5JXSX1DF1c5yPUjVHznL F+CBTlBsryx0mARnpUjHtqMsVadxkmY7TGYYuOZlMQZVPcM84Oma/bgxJYadPwPWn4 ZRk8EsQoNkw2w== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Andrejs Cainikovs , Francesco Dolcini , Roger Quadros , Vignesh Raghavendra , Sasha Levin Subject: [PATCH 6.6 226/638] arm64: dts: ti: k3-am62-main: disable usb lpm Date: Sun, 24 Mar 2024 18:54:23 -0400 Message-ID: <20240324230116.1348576-227-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Andrejs Cainikovs [ Upstream commit 9c99b337a8755a09df7735d4324ae26a6eca6261 ] AM62 USB works with some devices, while failing to operate with others. [ 560.189822] xhci-hcd xhci-hcd.4.auto: xHCI Host Controller [ 560.195631] xhci-hcd xhci-hcd.4.auto: new USB bus registered, assigned b= us number 2 [ 574.388509] xhci-hcd xhci-hcd.4.auto: can't setup: -110 [ 574.393814] xhci-hcd xhci-hcd.4.auto: USB bus 2 deregistered [ 574.399544] xhci-hcd: probe of xhci-hcd.4.auto failed with error -110 This seems to be related to LPM (Link Power Management), and disabling it turns USB into reliable working state. As per AM62 reference manual: > 4.8.2.1 USB2SS Unsupported Features > > The following features are not supported on this family of devices: > ... > - USB 2.0 ECN: Link Power Management (LPM) > ... Fixes: 2240f96cf3cd ("arm64: dts: ti: k3-am62-main: Add support for USB") Signed-off-by: Andrejs Cainikovs Reviewed-by: Francesco Dolcini Reviewed-by: Roger Quadros Link: https://lore.kernel.org/r/20240209130213.38908-1-andrejs.cainikovs@gm= ail.com Signed-off-by: Vignesh Raghavendra Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/ti/k3-am62-main.dtsi | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/arm64/boot/dts/ti/k3-am62-main.dtsi b/arch/arm64/boot/dts= /ti/k3-am62-main.dtsi index 284b90c94da8a..6d125c86c2d35 100644 --- a/arch/arm64/boot/dts/ti/k3-am62-main.dtsi +++ b/arch/arm64/boot/dts/ti/k3-am62-main.dtsi @@ -613,6 +613,8 @@ usb0: usb@31000000 { interrupt-names =3D "host", "peripheral"; maximum-speed =3D "high-speed"; dr_mode =3D "otg"; + snps,usb2-gadget-lpm-disable; + snps,usb2-lpm-disable; }; }; =20 @@ -636,6 +638,8 @@ usb1: usb@31100000 { interrupt-names =3D "host", "peripheral"; maximum-speed =3D "high-speed"; dr_mode =3D "otg"; + snps,usb2-gadget-lpm-disable; + snps,usb2-lpm-disable; }; }; =20 --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EEE4820630F; Sun, 24 Mar 2024 23:05: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=1711321502; cv=none; b=s9x9XzClt4JNhEs/QoZsAKbgv7pcJkJxSdkCWFI50TYtKUKlknykxMoPiBaS9KmfGNTUfue0PB61oJ2Fre1OwfPHX9dbzHm78t+bowWpHLxom1DPH7Zk6NTpI4nKuoWEYvSGVJuGfRxyUJ0aDf7zvDcf5XnvscnSnCuenH8nIOo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321502; c=relaxed/simple; bh=nfu/1bifCRzhzUwuYeSYF4B5jVHi/FobrLmXrxCk7CI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=fOrxwUN4H4LAeEXMzq4OfMcniz91zttRE13vl+2nFLvS71ANAcVB3ovP2kSgClcCX+ybTXKTsy8Pn3PhPQnIXWmBA0JYZbEqrrPsR8ABV++wXHipN84ZVtOg/HjD4nT6IBtPq1pcm2fbQPcpTjKMLvHAx9o39WCTTzVAEcMe380= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=PIsKoPI0; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="PIsKoPI0" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 36673C43394; Sun, 24 Mar 2024 23:05:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321501; bh=nfu/1bifCRzhzUwuYeSYF4B5jVHi/FobrLmXrxCk7CI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=PIsKoPI0oNGnH/S8OSF0+g26akx9F08M0211d6wc03wxRdkQepzYIKyxM09Ct4mYD Wg7Xsfr0zhSKJGW7GnD0urCBc0dGuPqsubtBUIOA1S1R650Bc6K+O9egmfa0W+VbBo AUIl75DoVmv2v2i97BUuZ5rVqoD0al3yPWkuEGSvxikJYwRDkA+1qKfKkKQS4eoBeB LZyzJoi6z9Xhr8d0tceU3+GKB1SynOGvQANouk9tRabwE2sjr4Pc703FzJ43lR7l+J 3I+sPNG7Wf8V9RVn5h0uanSJT3+s7g2/W6TDIzQOy19sbFkkdySzwcAAoNub4Fs+CX AvlH0DNWR5dVw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Armin Wolf , "Rafael J . Wysocki" , Sasha Levin Subject: [PATCH 6.6 227/638] ACPI: processor_idle: Fix memory leak in acpi_processor_power_exit() Date: Sun, 24 Mar 2024 18:54:24 -0400 Message-ID: <20240324230116.1348576-228-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 55437f5e0c3ae..bd6a7857ce058 100644 --- a/drivers/acpi/processor_idle.c +++ b/drivers/acpi/processor_idle.c @@ -1430,6 +1430,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EC0FC13342A; Sun, 24 Mar 2024 23:05: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=1711321504; cv=none; b=FoC+ruqiKfgtH5P8L5OKuibqhOtaZYbEeDgIlKgKx4hNLX4h7EJhG4LYttYl/JvdPZDO9EOpNdp6qco6rKE4+YmXHR7G1HkXli1utvDhpSs6tLvDfdm62E0hhPRa6hAgGEmHF8WNO4eIDQ22lUyIdjf1Bl4stMawtvfkcEfVwXE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321504; c=relaxed/simple; bh=+Hxhegior8++nnyBQf5i5t5oXEIt5a5o7CvmOj5jmnE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=NxxOf/w4jJFGoN3YS04iH/+9MDqk9oJpeAhp/H12IvX4K53ij4CzDxGCFHi4FFEPd+m6qOh5KTcrRgg9pUhzLQPR0vd9fJIkh1in2fQVyDjhg74YMRt0mfXhifYj8MRMth4Jl+hgCR1r3Q9puLN1ZUYg+zx6HonqeH1i4ZWbDhQ= 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+6+Jyff; arc=none smtp.client-ip=10.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+6+Jyff" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 207FBC433C7; Sun, 24 Mar 2024 23:05:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321502; bh=+Hxhegior8++nnyBQf5i5t5oXEIt5a5o7CvmOj5jmnE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=R+6+JyffQRA/BTuE2GCHaOHCtLKpyv5VER9sTV5+J+S0GfQBlxHb/j7CnFBKrMjOt 2OMQpAt5PwQp8T/2lSb+EbnaeWXes81xjrLiWREs7f1a+M4NRtmItqQ5kaoNVISimj wl4CWt6T8Wpv3qIIvTloehuQfAlcRNKUa7GC4xMvvGEUBZ9+yPNR2JG/SeoN0twpPh pkWrIvc5IJWLf+1yh8P/FKc5kAfVaHG2fxOGzzpg0hrwHKU775oz4ynbUA7mS38TS9 5KFkaVU2vzpWljuAEZEVi3iHMXsOyekb36WJQUVZPPgNLkgPwTadopzmfrt2AdbnJM GvlJIK1SJzxRQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Peter Robinson , Jon Hunter , Thierry Reding , Sasha Levin Subject: [PATCH 6.6 228/638] bus: tegra-aconnect: Update dependency to ARCH_TEGRA Date: Sun, 24 Mar 2024 18:54:25 -0400 Message-ID: <20240324230116.1348576-229-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- drivers/bus/Kconfig | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/bus/Kconfig b/drivers/bus/Kconfig index c98dd6ca26297..fab27506d945e 100644 --- a/drivers/bus/Kconfig +++ b/drivers/bus/Kconfig @@ -186,11 +186,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 44D301369B1; Sun, 24 Mar 2024 23:05: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=1711321505; cv=none; b=C7iYsqs1aEWxXZfspcoEmexeoBLqFeqe8GNXFi522NK4IBFXtSUm/IcXlc7s1lodGfupwiLiGgQsyR2k/IuE4UWry/Lwm+ou7hfO1AtviTxnKT06qiL1Nu0pU9GRKHF8FrGuof5KQazA5uIlyEZqiHx1rXP/2MOgYWdyTGxHzzA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321505; c=relaxed/simple; bh=s8DB3y2ScShLzAashpDc6Sugwe2YJqP4n3GIiwjPC6s=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MrjjKe/B6LEE+PJ0I4Ms32hvdmuX0HPBXd3Mjueq3u7/dNFmsJ5ZSSwtKCr2DsNqGCjLM7R7B8jisWJYLm3TyIZdtlD1xVRkJ7jaTgsjNPhcVgfD3iGHXQqLB70OCxaxlr+2SeDe1WT3dfTd5GmNYEVZiBeiBAtiMN36amHvlAU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=U1ABhZhr; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="U1ABhZhr" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1CA51C43394; Sun, 24 Mar 2024 23:05:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321503; bh=s8DB3y2ScShLzAashpDc6Sugwe2YJqP4n3GIiwjPC6s=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=U1ABhZhrnn9p8+o5F7OgFOJWZz+q141uA6ovd462UCJfp+kej3WM/gRTFBNwLSLT7 sJPhwHexDRRuJaY51h6NjnRsCzCyMwgziWrzimcvTT1zMcfv/dwslw3vVdVwmfjdx7 FgbQUE2Zz1QpGli+78ubYsuyRLP/U2bpyKcsmC/MY019Xs3jtfr0Vgpg5cHvyfqnHM lLaAvS/5NPlAS7Sp+42yfKXxBzdMmgjRr2JxRahi7Yzxpy8Zx/09xpFTkFzMEFJeM1 UhUaZ6V4rjz+zU0FZMgTpxvKUX4vJf4J+wEanGq2VqPBeq/BVVYy7xQelClVh/UJqJ 5pm/9WRprIojA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Mario Limonciello , Vasant Hegde , Joerg Roedel , Sasha Levin Subject: [PATCH 6.6 229/638] iommu/amd: Mark interrupt as managed Date: Sun, 24 Mar 2024 18:54:26 -0400 Message-ID: <20240324230116.1348576-230-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 45efb7e5d7254..a2ad2dbd04d92 100644 --- a/drivers/iommu/amd/init.c +++ b/drivers/iommu/amd/init.c @@ -2084,6 +2084,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E585E1369AA; Sun, 24 Mar 2024 23:05: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=1711321505; cv=none; b=pr8EATJJu2PCCTm0C9oCd61bUfa0W1ozOcA7V/KNhc/9K+r1oHc5AtoUU1oDbUYuOvBPJ1qomCMmrmv4X8qvHd67Z1otn+cOhE2iRVsefuxV27khWS69JiVBtGNLVv9iouXBZGm0ech8Qxn2KabcjJOgGWZ0ZY3omfHZvlp8Ri4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321505; c=relaxed/simple; bh=nt4DweudXrWSOOYE0nV/wX2peusxuk3T7M9VaEFEUOQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=hnR4tbOUXyM7ncwuS1Q7Jn1RDoWD0coN4nSx6tBH2tuJHGdUOG3F8kmOh9W0ZukvTyRp1T7cs+3KqHhWrLRbPBFZ2s/yoKUMEe3jmb9KJFJuKfsD+Roeu81jKgCHAOcHihnQSoKGHx68ZHr6xY+g6vBwu1/sSBpjDAgqecImZcA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=CnGu2k7N; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="CnGu2k7N" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 15EFDC433F1; Sun, 24 Mar 2024 23:05:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321504; bh=nt4DweudXrWSOOYE0nV/wX2peusxuk3T7M9VaEFEUOQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=CnGu2k7Nhj4A57UKTncE+xdCwcBDRKKJ5tocPca6M/n3bvKCFii05oNmdYA5AXni7 Z6bMAzDOt3qRiIx8ieCVv1sR9di70obY8bjligAQhWxo1FeC9m4qQ6AilzbTXOwuTj WJ8hbsQMV19zktjC+08mrNL/qkDauV728VUwR+49U7pOBAXm//lff/cf7mDB6Ld8rT S2tsz57+IcwzdTXxywvSOlwt0J8JvCmkL02DWCP0b7aSsfNT0ln0TJn3IcX5338jcZ RsKGfuJWJztbwP1yS9JZhikIKmgM5BcpsPR1nUcAR2jY6yjP+RqeIFsXwF8Ji18tp7 x/dCPgGSGGRNQ== 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 6.6 230/638] wifi: brcmsmac: avoid function pointer casts Date: Sun, 24 Mar 2024 18:54:27 -0400 Message-ID: <20240324230116.1348576-231-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- .../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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DBB6E20631F; Sun, 24 Mar 2024 23:05: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=1711321506; cv=none; b=Hx5HHgsWZmUjbYtjde3qz9xKn93C0q6040bOrFz6MQG+/5MzBP0Z1RIOiTVxc6CcYiO+eOQRbcug1VN+9F3W4RDEwKzu6D0VGy+S+5QK4IVseAVjYjtTJLrYF9D2tf4SvbCt0SP2VlOsUpscG2Mi+x7XILLtridJEegEptY5MOY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321506; c=relaxed/simple; bh=aFO4d3waUVIdp56vRLYvX2gEdfvS8SByBmZjjBuvnb0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=VYSk/MiktlftwhTUabNhEhKSx3d0HjEKXNQ4GxNv7GCzxRngBWtfLB7j6l9cTYtcTrJqrT5hY+oarrnD0pQerw16qms59Omf+/EhGFin+GZwLwWFNJxwRljcjvZ1mOzaoSiX6Y7jYURVnNxigsuQcW7Jmp/ZYv85rsxwc0l8PBc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=q2t0QHGp; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="q2t0QHGp" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0FAD2C43390; Sun, 24 Mar 2024 23:05:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321505; bh=aFO4d3waUVIdp56vRLYvX2gEdfvS8SByBmZjjBuvnb0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=q2t0QHGpwGL8GA3XP+aXswY1itEKiFN2t1R03aKg1syvFr4EEgGX1utSBKk13+kDQ CV0NUeznzjNnpzC/suKPRv8ca4lCaG97qRrReIrMIka3GZCQU/UO+uYC1RqdZsTA8X QqTxyvIVhzTGu467ggxmxXH6AB4HEbkojGSGp/m4oYTtX6WRHOZpBJ7ePxHgIC5QJu 60MH3u4OJoRGDDKjBN3M5lqoCQmG+EjVl+E0tkmnZEuUT1fBsSakiBAvaaVAEOaWPB aG4gNNCBDGYApEUmJ02VCxz17lE3kvzmOTcpX5lLT7LQnGFrQqzZzEXRueVqtP+N+z Nz4vg9I5Ty1Jw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Krzysztof Kozlowski , Konrad Dybcio , Bjorn Andersson , Sasha Levin Subject: [PATCH 6.6 231/638] arm64: dts: qcom: sdm845-db845c: correct PCIe wake-gpios Date: Sun, 24 Mar 2024 18:54:28 -0400 Message-ID: <20240324230116.1348576-232-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Krzysztof Kozlowski [ Upstream commit 584a327c5cffc36369b2a8953d9448826240f1ac ] Bindings allow a "wake", not "enable", GPIO. Schematics also use WAKE name for the pin: sdm845-db845c.dtb: pcie@1c00000: Unevaluated properties are not allowed (= 'enable-gpio' was unexpected) Fixes: 4a657c264b78 ("arm64: dts: qcom: db845c: Enable PCIe controllers") Signed-off-by: Krzysztof Kozlowski Reviewed-by: Konrad Dybcio Link: https://lore.kernel.org/r/20240108131216.53867-1-krzysztof.kozlowski@= linaro.org Signed-off-by: Bjorn Andersson Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/qcom/sdm845-db845c.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/qcom/sdm845-db845c.dts b/arch/arm64/boot/d= ts/qcom/sdm845-db845c.dts index 7e7bf3fb3be63..0a891a0122446 100644 --- a/arch/arm64/boot/dts/qcom/sdm845-db845c.dts +++ b/arch/arm64/boot/dts/qcom/sdm845-db845c.dts @@ -580,7 +580,7 @@ &mss_pil { &pcie0 { status =3D "okay"; perst-gpios =3D <&tlmm 35 GPIO_ACTIVE_LOW>; - enable-gpio =3D <&tlmm 134 GPIO_ACTIVE_HIGH>; + wake-gpios =3D <&tlmm 134 GPIO_ACTIVE_HIGH>; =20 vddpe-3v3-supply =3D <&pcie0_3p3v_dual>; =20 --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BFAFE20631D; Sun, 24 Mar 2024 23:05: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=1711321506; cv=none; b=F9LmQBoas8T/Y3bh2kRdpWDaE55H4P+B77jRt8PRddwCkHbD8VgydrhDr0UIwVKz6ghVbUP0vpDYIiqeKZotenuGjt3xQPNmZOtPqdY7AMCxt1hGAQXdphpGw++LfvG6owkSAS5Lun8XOeOxUjuycRH0qOgN8ZqueBQtuVGT29s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321506; c=relaxed/simple; bh=0CTLz8Fm4sY192CSbsLXhOLCqVFdR9OCNk4bsnybU8o=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PNqTAzQ3m26wLXEsp4xUjG0M2WEV813Diybx26AAxl+8fX4ul+0lYrMXfYHZq6rATbVJvMscnkur4Fj0knOoJl1dwiWhC1ngLPVvDSDAUtbQTMrQuVNynWBsA4rngufjJMUzI7tMLkz5O0knDHFPYltj70IBZ+VtzY0ydWbxYss= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=tjosR13y; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="tjosR13y" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0B37BC433F1; Sun, 24 Mar 2024 23:05:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321506; bh=0CTLz8Fm4sY192CSbsLXhOLCqVFdR9OCNk4bsnybU8o=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=tjosR13yLdErvVx9CBFaInUsdWtBRDwFiV9KGdJ3SmK+38WbpiclHpua14xgxTtth JbAdY794MZEshqFgh0ZOOhcQZSfnL3+Ig721qEW+9RNqclfkOIPFHOLgA2Ck77D13e rEJr//4Tf4cz3vOdjV3Llt7iojfyU3JH/J+R8oxk7RTWvPYPJNedIp4L4PYbbHLe6c i8nnwTIuF5zCg0av4nzejorn8s6HOGr1dqcLQxIDpf57sKyT0P+6FSBLf/xB5QH7Iu BKTapjayRdkvlg72fpY+RmQrk9PZ7mDtwJPRmUOLnQvtEwL6nwt9n8ijRh+BJSt85C FtGbLGaz2j1Ow== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Krzysztof Kozlowski , Bjorn Andersson , Sasha Levin Subject: [PATCH 6.6 232/638] arm64: dts: qcom: sm8150: use 'gpios' suffix for PCI GPIOs Date: Sun, 24 Mar 2024 18:54:29 -0400 Message-ID: <20240324230116.1348576-233-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Krzysztof Kozlowski [ Upstream commit af6f6778d34cb40e60368e288767f674cc0c5f60 ] Linux handles both versions, but bindings expect GPIO properties to have 'gpios' suffix instead of 'gpio': sa8155p-adp.dtb: pci@1c00000: Unevaluated properties are not allowed ('pe= rst-gpio' was unexpected) Signed-off-by: Krzysztof Kozlowski Link: https://lore.kernel.org/r/20231111164229.63803-3-krzysztof.kozlowski@= linaro.org Signed-off-by: Bjorn Andersson Stable-dep-of: 7c38989d0f7a ("arm64: dts: qcom: sm8150: correct PCIe wake-g= pios") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/qcom/sm8150.dtsi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm64/boot/dts/qcom/sm8150.dtsi b/arch/arm64/boot/dts/qco= m/sm8150.dtsi index 26b6d84548a56..a3e801fe6fee4 100644 --- a/arch/arm64/boot/dts/qcom/sm8150.dtsi +++ b/arch/arm64/boot/dts/qcom/sm8150.dtsi @@ -1876,7 +1876,7 @@ pcie0: pci@1c00000 { phys =3D <&pcie0_lane>; phy-names =3D "pciephy"; =20 - perst-gpio =3D <&tlmm 35 GPIO_ACTIVE_HIGH>; + perst-gpios =3D <&tlmm 35 GPIO_ACTIVE_HIGH>; enable-gpio =3D <&tlmm 37 GPIO_ACTIVE_HIGH>; =20 pinctrl-names =3D "default"; @@ -1978,7 +1978,7 @@ pcie1: pci@1c08000 { phys =3D <&pcie1_lane>; phy-names =3D "pciephy"; =20 - perst-gpio =3D <&tlmm 102 GPIO_ACTIVE_HIGH>; + perst-gpios =3D <&tlmm 102 GPIO_ACTIVE_HIGH>; enable-gpio =3D <&tlmm 104 GPIO_ACTIVE_HIGH>; =20 pinctrl-names =3D "default"; --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BF24F206C86; Sun, 24 Mar 2024 23:05: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=1711321508; cv=none; b=DrUbzx5ouISo3PzYzpA9nZ7p/sffM3XMc8zXrg6BZJwbMdiheNBcOhmque4kHnqU/DkxZhjgVgYHFucFLbDX0r4PgOpn+ODk/iCpxTI0wwsKlgK+hp+VJule6y4RhUSHYMnaLDhwSasFSR8dS+x3YX3THa1eORG3BnlASdr6hbA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321508; c=relaxed/simple; bh=9A8CvqHLodxtVSH/LLHu6eUeDRRB7EerJYiIkJtlK6E=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=rUsedg+6rNPsp1fpnBCXQuxJY4EYToKyLIQI+zizUfmudL8NiftHO3obzt9jRj7riI+9UiX7jH43sJVaRNIJ8F0BkcOi9Oet9OG47nhCODHSEBDpGVj1USq7oHJ/CYMOBV9DS88cENAnnlmsVNmzJX7IlFHR38ZS5vqNUgXViOs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=M3tvcFNZ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="M3tvcFNZ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E63C5C433C7; Sun, 24 Mar 2024 23:05:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321507; bh=9A8CvqHLodxtVSH/LLHu6eUeDRRB7EerJYiIkJtlK6E=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=M3tvcFNZeNUBx7eoW4NBzdOrG9RWMX9KrBcN1UII5idsAl0MpjybOudQWCXM6rJlw ClBh91+HuhNgtrQY7pBl7P1XYl4SBTmACUrKs/KfSDW0xm+EouQMvflMLD2Rd1R3De iuBb2xLGYaNgqfv3wBQuf1F98YRJW0KUTPQu8VNxnF4BEHJxH+kyLOJ9DWNhFbCAqf sD9uXHb6arU6fqTBeVVqFAN4fjCBgkqzN6AUqajBnvvVtpFIcR1N2cNd7c92VQtzEi uMKE8yxU/IErmXiq0uWHVkPD4tGtE8avld/xErQ/Ge4OI64DokU5Ozcp4fuj7OqUat 8y2K6VBiZjyyA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Krzysztof Kozlowski , Konrad Dybcio , Bjorn Andersson , Sasha Levin Subject: [PATCH 6.6 233/638] arm64: dts: qcom: sm8150: correct PCIe wake-gpios Date: Sun, 24 Mar 2024 18:54:30 -0400 Message-ID: <20240324230116.1348576-234-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Krzysztof Kozlowski [ Upstream commit 7c38989d0f7a35c83e7c4781271d42662903fa8d ] Bindings allow a "wake", not "enable", GPIO. Schematics also use WAKE name for the pin: sa8155p-adp.dtb: pcie@1c00000: Unevaluated properties are not allowed ('e= nable-gpio' was unexpected) Fixes: a1c86c680533 ("arm64: dts: qcom: sm8150: Add PCIe nodes") Signed-off-by: Krzysztof Kozlowski Reviewed-by: Konrad Dybcio Link: https://lore.kernel.org/r/20240108131216.53867-2-krzysztof.kozlowski@= linaro.org Signed-off-by: Bjorn Andersson Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/qcom/sm8150.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/qcom/sm8150.dtsi b/arch/arm64/boot/dts/qco= m/sm8150.dtsi index a3e801fe6fee4..73ef228ff2689 100644 --- a/arch/arm64/boot/dts/qcom/sm8150.dtsi +++ b/arch/arm64/boot/dts/qcom/sm8150.dtsi @@ -1877,7 +1877,7 @@ pcie0: pci@1c00000 { phy-names =3D "pciephy"; =20 perst-gpios =3D <&tlmm 35 GPIO_ACTIVE_HIGH>; - enable-gpio =3D <&tlmm 37 GPIO_ACTIVE_HIGH>; + wake-gpios =3D <&tlmm 37 GPIO_ACTIVE_HIGH>; =20 pinctrl-names =3D "default"; pinctrl-0 =3D <&pcie0_default_state>; --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A7730206C8C; Sun, 24 Mar 2024 23:05: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=1711321509; cv=none; b=EqMB/WMJN7o0lxYC7W+nCGx1DHPe680hEjB0ervvwlUHmvx74WaiiIh2DM5AICa9p8+n8tVjH/37s2qdkkk1Drs4P5EWqM3sVTl1B+9txjvhMAY0cfkdKd9dQcZ3LuLhC8HTBKuFRRSfkZe1fYiNlFoalbpRBTFNlYXHC9x71RA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321509; c=relaxed/simple; bh=OC6s1nGnzvG27cdhEV9v+152Ge649GD6EUnGf7Ba9Jc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Mb9IZCEdctYrqngGf+pJmeFEZkjlCvlgmTP7Bw/UZHt86uaPRqpE+7KzBCHWXh0tve/AiToUhQNEXb5hpMcDU/WLgEzuyJlflbNPa+0d8Y9XJxPGK49X5R1FB3bZEN/ZPgfVcoufPBq8Ua+roRdfKsRaGMNbBsYyUOT1240OAig= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=nxOnJ491; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="nxOnJ491" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E6172C433F1; Sun, 24 Mar 2024 23:05:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321508; bh=OC6s1nGnzvG27cdhEV9v+152Ge649GD6EUnGf7Ba9Jc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nxOnJ491VcerR1igwDtxVrHetg7tPB6uofzlfJRAPvs4XZjgqpjFKZlfUxcWf3hMM 0hyfzGRy/kzAyWk3Sa2RGTj+8Q6RGuvBcUjY3dpcoH6Oby8pD/PQ6mE3XVC2h5k6pR PL5tpbQhM0iK0T52v+PpIK+q5O9ruWz2d6H4cGvhjS41NjFW/rEVN8/L4s1x4copE2 h9c5qzPrsI8T86m9VpKCRR+Y5h+eJbRgV6lQR2aD2kk/2ymfbYkXZAMA4aq97/umXj vW8MUBH/lwtP9o4iPafEP8UNaQ1wk4/oDdb0J95mBRpqQ2YFof8dcpL2GasUbNi0iE yJyu9D3BUoPQg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Daniel Lezcano , "Rafael J . Wysocki" , Sasha Levin Subject: [PATCH 6.6 234/638] powercap: dtpm_cpu: Fix error check against freq_qos_add_request() Date: Sun, 24 Mar 2024 18:54:31 -0400 Message-ID: <20240324230116.1348576-235-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Lezcano [ Upstream commit b50155cb0d609437236c88201206267835c6f965 ] The caller of the function freq_qos_add_request() checks again a non zero value but freq_qos_add_request() can return '1' if the request already exists. Therefore, the setup function fails while the QoS request actually did not failed. Fix that by changing the check against a negative value like all the other callers of the function. Fixes: 0e8f68d7f0485 ("Add CPU energy model based support") Signed-off-by: Daniel Lezcano Signed-off-by: Rafael J. Wysocki Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/powercap/dtpm_cpu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/powercap/dtpm_cpu.c b/drivers/powercap/dtpm_cpu.c index 9193c3b8edebe..ae7ee611978ba 100644 --- a/drivers/powercap/dtpm_cpu.c +++ b/drivers/powercap/dtpm_cpu.c @@ -219,7 +219,7 @@ static int __dtpm_cpu_setup(int cpu, struct dtpm *paren= t) ret =3D freq_qos_add_request(&policy->constraints, &dtpm_cpu->qos_req, FREQ_QOS_MAX, pd->table[pd->nr_perf_states - 1].frequency); - if (ret) + if (ret < 0) goto out_dtpm_unregister; =20 cpufreq_cpu_put(policy); --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A20B8206C8A; Sun, 24 Mar 2024 23:05: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=1711321509; cv=none; b=C+WQGtURJFU3JT5ReVsldFBolSx8gYQjALGjnxVgk6eK0x/8cOD5fm3cfIbOU+iSP/x+iORUFLXOfOdjw2C0x34gtCCof9jL5JOx1hoy0L87+oe00w2G/+tiHzAekvISuQsRUBqJ+v/FlADuwjELDU2gSpuUDxyOwJ9plKGpaV4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321509; c=relaxed/simple; bh=PLMeTWfzCTYAVAuh1bq/F318sAMTXN+WWdgNpObteoQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=tkCZgh8T6ymDiTeCQ8tmT8N8GhUb0SIfi6LM1UhEcKywZ+PsK+wZb09RFxHEcDzCgwBayh35KX1l5Xr26UclHrRBKEMzzvb0IrholxM6BckrpufIw3j0WCf4duTp03r2HP+5zLPbBuOTuDuuzpSP0My2noSSkNOk1NXFd1WTMGY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=R0Co4GfC; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="R0Co4GfC" Received: by smtp.kernel.org (Postfix) with ESMTPSA id CA852C43394; Sun, 24 Mar 2024 23:05:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321509; bh=PLMeTWfzCTYAVAuh1bq/F318sAMTXN+WWdgNpObteoQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=R0Co4GfCKR6eCnE8fzV6YOsp7OvYjJZRg5lp+dN5VF2dI/oWhuNd/iMMCh7b5JmWT s1FIGT9SbewmKWCPQKBaV36V/jKBAguN8u5/mMLyeZFhrNurMJ9MwoyUF7vktku40t ZGuKII1G+JSUYtv/h/zyHPdTndG6gYmT9mpQN38lJVIkPfnRN7wv8BbWOzSB6Ai8ns GaEdIXCkWrYWFmZPlzn7DIgnowajz/H3AFa5geanHocLb+Y+fH7GnpK9BYYwQYsfYV BwqOm5uhm32R3xCtuyMiN4aVicFFo+Oy1QVJTk5/p2MJFvRLzxCXeot2PZN1vJr152 A6lxk6w3tom5A== 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 6.6 235/638] net: ena: Remove ena_select_queue Date: Sun, 24 Mar 2024 18:54:32 -0400 Message-ID: <20240324230116.1348576-236-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 14e41eb57731b..cc39707a80598 100644 --- a/drivers/net/ethernet/amazon/ena/ena_netdev.c +++ b/drivers/net/ethernet/amazon/ena/ena_netdev.c @@ -3238,22 +3238,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; @@ -3424,7 +3408,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8AB3F206C8F; Sun, 24 Mar 2024 23:05: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=1711321510; cv=none; b=uk8u3ps3l1sR+7VFMv3yV55o54TZws6pn6P0R3w4mKCQ3ZqgIy03OTlH69UpfhB/vMfWt1BqOlQVsjQj9iZUDcb9nmru5G018AIUp1uUGRwvB70OjmRVRPfQsV8AjXif2wF9xlQh1J5b5ay98r0Cs4Y6IFjW2/0ne0CeO0AFbiE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321510; c=relaxed/simple; bh=b3EGla1ceGQDu3kI0qNL7DjBL1cafs8iz7Jsl5WCx38=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=k9DsUfxS0x6Fc/Hi/KhaQftBsZSk6V4NaTiBg4E0+kQDt/gXxS2IDA4rmElzCWmVClV9Fl6NKwOMCi5N3dqKjkPEoTkiLy5m05HFCy66eU+ZgtsGirrKgqjP5KMD/fq5gUcusQg1Iu4bYnPCU6tI+ydC1HTMTEcyTaMD2jwptaY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=kWW3hdMa; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="kWW3hdMa" Received: by smtp.kernel.org (Postfix) with ESMTPSA id C4964C43399; Sun, 24 Mar 2024 23:05:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321510; bh=b3EGla1ceGQDu3kI0qNL7DjBL1cafs8iz7Jsl5WCx38=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=kWW3hdMa9xVdAQiQQ09De/v58NFD5+KvWUqMqpFZK7MR2B5vsj3rZlIgS3FEVmXzl xpCSI8yTaTOB7m1yxIbYZef4271apnKmdTBvq+bK27+ikJgH+70feyNwYQPVY/JMeo fLHqmb+4ZfiJDhcD9HvaBt5oLNUElqTERD86OJ4/J25xXGnTw7SuDNFZKu//qpLAJi 2WK5JLmpyuo1OWgUYP3axczB7CbmoctjK2BgJGFJvWWBsAzEImx6BDYj8Wh+uO0Ddr dVZmEePOEW7rK1ERErSXVi3Tq7Stnosea/rXziitBYzHKe4l5K/i28QojI6Z9MQp4i F3nNYpTjPBUsw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Bhavya Kapoor , Vignesh Raghavendra , Sasha Levin Subject: [PATCH 6.6 236/638] arm64: dts: ti: k3-j7200-common-proc-board: Modify Pinmux for wkup_uart0 and mcu_uart0 Date: Sun, 24 Mar 2024 18:54:33 -0400 Message-ID: <20240324230116.1348576-237-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Bhavya Kapoor [ Upstream commit 566feddd2ba5e29d9ccab36d6508592ae563f275 ] WKUP_PADCONFIG registers for wkup_uart0 and mcu_uart0 lies under wkup_pmx2 for J7200. Thus, modify pinmux for both of them. Fixes: 3709ea7f960e ("arm64: dts: ti: k3-j7200-common-proc-board: Add uart = pinmux") Signed-off-by: Bhavya Kapoor Link: https://lore.kernel.org/r/20240214105846.1096733-2-b-kapoor@ti.com Signed-off-by: Vignesh Raghavendra Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- .../boot/dts/ti/k3-j7200-common-proc-board.dts | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/arch/arm64/boot/dts/ti/k3-j7200-common-proc-board.dts b/arch/a= rm64/boot/dts/ti/k3-j7200-common-proc-board.dts index cee2b4b0eb87d..53594c5fb8e8f 100644 --- a/arch/arm64/boot/dts/ti/k3-j7200-common-proc-board.dts +++ b/arch/arm64/boot/dts/ti/k3-j7200-common-proc-board.dts @@ -91,24 +91,25 @@ vdd_sd_dv: gpio-regulator-TLV71033 { }; =20 &wkup_pmx0 { +}; + +&wkup_pmx2 { mcu_uart0_pins_default: mcu-uart0-default-pins { pinctrl-single,pins =3D < - J721E_WKUP_IOPAD(0xf4, PIN_INPUT, 0) /* (D20) MCU_UART0_RXD */ - J721E_WKUP_IOPAD(0xf0, PIN_OUTPUT, 0) /* (D19) MCU_UART0_TXD */ - J721E_WKUP_IOPAD(0xf8, PIN_INPUT, 0) /* (E20) MCU_UART0_CTSn */ - J721E_WKUP_IOPAD(0xfc, PIN_OUTPUT, 0) /* (E21) MCU_UART0_RTSn */ + J721E_WKUP_IOPAD(0x90, PIN_INPUT, 0) /* (E20) MCU_UART0_CTSn */ + J721E_WKUP_IOPAD(0x94, PIN_OUTPUT, 0) /* (E21) MCU_UART0_RTSn */ + J721E_WKUP_IOPAD(0x8c, PIN_INPUT, 0) /* (D20) MCU_UART0_RXD */ + J721E_WKUP_IOPAD(0x88, PIN_OUTPUT, 0) /* (D19) MCU_UART0_TXD */ >; }; =20 wkup_uart0_pins_default: wkup-uart0-default-pins { pinctrl-single,pins =3D < - J721E_WKUP_IOPAD(0xb0, PIN_INPUT, 0) /* (B14) WKUP_UART0_RXD */ - J721E_WKUP_IOPAD(0xb4, PIN_OUTPUT, 0) /* (A14) WKUP_UART0_TXD */ + J721E_WKUP_IOPAD(0x48, PIN_INPUT, 0) /* (B14) WKUP_UART0_RXD */ + J721E_WKUP_IOPAD(0x4c, PIN_OUTPUT, 0) /* (A14) WKUP_UART0_TXD */ >; }; -}; =20 -&wkup_pmx2 { mcu_cpsw_pins_default: mcu-cpsw-default-pins { pinctrl-single,pins =3D < J721E_WKUP_IOPAD(0x0000, PIN_OUTPUT, 0) /* MCU_RGMII1_TX_CTL */ --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 661BB206C87; Sun, 24 Mar 2024 23:05: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=1711321511; cv=none; b=GkOYnnwnTCRZddVJUpO7UpvJbDm5psU0QjkxC1PMbBxaw19cbNk4p0ZRusjczuCzlsiucx5HKzXYmmZ9c4AGVAg6Pf/pbBWuubbbzrKCbD7axEMo5Je03tuMnM6DyizJLAH+INPUii1glI3dg8WmlnOR2+/RE9Buk6mqqcNbQiQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321511; c=relaxed/simple; bh=UhipjQvNWfeeujAdzDwbZqGmfdqnpiMVNNRI02gZzEk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=t5BmufU0blSI9qI56adOkaF+FuIyGOU2SlL61dq51p+/XIBcsiQBi7Owb9ffLw+MOzNNzMJjLbM1dX0tn1SfK6lf1HDdGbGrBnh6kUPJbQvEJAlRVsF6N3VN0o260s8knEZm3hy/f90jg2Dp8NSRSWuTEFUhsh+qcxruJlbHP5U= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=nAcMNrlB; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="nAcMNrlB" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A7367C433C7; Sun, 24 Mar 2024 23:05:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321511; bh=UhipjQvNWfeeujAdzDwbZqGmfdqnpiMVNNRI02gZzEk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nAcMNrlBm0COMddmYOIpJvn6GNf/bh87ZWHU/ZSTieH79RHvLjzq64RRkLZu30ksN ebGqQdkbOCsP4EcubQBjRpx9qc2Ne8tgcpnyMe5NoQYWntC3hIvwOx1O0o1zcNn0Ff XofBwtoj1Z4/i82GN3HuzuFEBv+jD2saooY3KAOrYGfrFqsmp0Gki4M13/VkoEAW1w e9ZcnrmXzrDecFMFjZUpT+7d+iWpoaBsQxK3cMWq4wvvU65Ms+CwCiF1O8woxjlah4 oJT9DnDv81XF8nxyVfJLBJ5h2jr74B1nMvFccRenHJXgDaOauPpUU0njdpx1ZrKA9y QIJeKo8EjzjKw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Bhavya Kapoor , Vignesh Raghavendra , Sasha Levin Subject: [PATCH 6.6 237/638] arm64: dts: ti: k3-j7200-common-proc-board: Remove clock-frequency from mcu_uart0 Date: Sun, 24 Mar 2024 18:54:34 -0400 Message-ID: <20240324230116.1348576-238-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Bhavya Kapoor [ Upstream commit 0fa8b0e2083d333e4854b9767fb893f924e70ae5 ] Clock-frequency property is already present in mcu_uart0 node of the k3-j7200-mcu-wakeup.dtsi file. Thus, remove redundant clock-frequency property from mcu_uart0 node. Fixes: 3709ea7f960e ("arm64: dts: ti: k3-j7200-common-proc-board: Add uart = pinmux") Signed-off-by: Bhavya Kapoor Link: https://lore.kernel.org/r/20240214105846.1096733-3-b-kapoor@ti.com Signed-off-by: Vignesh Raghavendra Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/ti/k3-j7200-common-proc-board.dts | 1 - 1 file changed, 1 deletion(-) diff --git a/arch/arm64/boot/dts/ti/k3-j7200-common-proc-board.dts b/arch/a= rm64/boot/dts/ti/k3-j7200-common-proc-board.dts index 53594c5fb8e8f..7a0c599f2b1c3 100644 --- a/arch/arm64/boot/dts/ti/k3-j7200-common-proc-board.dts +++ b/arch/arm64/boot/dts/ti/k3-j7200-common-proc-board.dts @@ -211,7 +211,6 @@ &mcu_uart0 { status =3D "okay"; pinctrl-names =3D "default"; pinctrl-0 =3D <&mcu_uart0_pins_default>; - clock-frequency =3D <96000000>; }; =20 &main_uart0 { --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5992C206C8B; Sun, 24 Mar 2024 23:05: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=1711321513; cv=none; b=scHKkTXluqtDcsW93ClTiHlDsdThJPLFlkJGiJ7GKpg2VsJlx6WxwRxfBIXUbq+k2EbezMER+5Wft2gbu3qe5RlgEzvUlSE1hqTVoz3zWxtpVWuFdd/rlhBMlMWpH0yuDxJ1CvOrFPPZb/FtFjvCE2LLfPR4rNGtMrvYCyo1770= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321513; c=relaxed/simple; bh=9fBJTe87mI9XM2IpLXAQVydlYYvMSHSgDaCK0LeAZws=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=LGzB1MyExPLx20LKcY1Cn7RQcODdbUA2yRqDgkbbSZM8f8iQ6ksElMo/ybgXWNrk+wIknjr77CxCpqIghkQXFm7BQX/4iI+DXyVPlqEmPIscmWwDNgqm8BY1bBvUHppS/9sd7Qtp5hcKn0R+6PGBnnPL+kWOoztaruix02Ev2wM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=sOLVhWmO; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="sOLVhWmO" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 88CDEC43390; Sun, 24 Mar 2024 23:05:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321512; bh=9fBJTe87mI9XM2IpLXAQVydlYYvMSHSgDaCK0LeAZws=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=sOLVhWmODttDY5wbvieTGDcHUGTjSEQKSi9GWZNGDMb9BiQqHHagimSMVTHaPvFts gAzmNhlUVV1ie13uVDYPbKIhHKVCNKy51OpzI9+qEPs8IEihinSXrKpm4kJp9ETl/R hcuiMMWCaFkn5RYTIJHO2zITbrLy1epMqtg4YYFCVf/wfxGVv0GgdCfAa0Ycjfl2i4 6CvS/z/Sc8nMWRJCXmwzGxiFvkSx0r/1iBcj9lOXjeBYlsrnkOgTQHzTsplTgD5zv4 rJtNrs+UaLeQeHuww9eMPBQZG8/Nd+p8QRwaz14mfBaQoZRBsAUrEyL32f8SNtlZR0 9xHeWVHQ4ThsQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Bhavya Kapoor , Vignesh Raghavendra , Sasha Levin Subject: [PATCH 6.6 238/638] arm64: dts: ti: k3-j721s2-common-proc-board: Remove Pinmux for CTS and RTS in wkup_uart0 Date: Sun, 24 Mar 2024 18:54:35 -0400 Message-ID: <20240324230116.1348576-239-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Bhavya Kapoor [ Upstream commit 28e5b74d524050008edf415f20a3e38907b8f176 ] Only Tx and Rx Signal lines for wkup_uart0 are brought out on the Common Proc Board through SoM, but CTS and RTS signal lines are not brought on the board. Thus, remove pinmux for CTS and RTS signal lines for wkup_uart0 in J721S2. Fixes: f5e9ee0b354a ("arm64: dts: ti: k3-j721s2-common-proc-board: Add uart= pinmux") Signed-off-by: Bhavya Kapoor Link: https://lore.kernel.org/r/20240214105846.1096733-4-b-kapoor@ti.com Signed-off-by: Vignesh Raghavendra Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/ti/k3-j721s2-common-proc-board.dts | 2 -- 1 file changed, 2 deletions(-) diff --git a/arch/arm64/boot/dts/ti/k3-j721s2-common-proc-board.dts b/arch/= arm64/boot/dts/ti/k3-j721s2-common-proc-board.dts index c6b85bbf9a179..1ba1f53c72d03 100644 --- a/arch/arm64/boot/dts/ti/k3-j721s2-common-proc-board.dts +++ b/arch/arm64/boot/dts/ti/k3-j721s2-common-proc-board.dts @@ -190,8 +190,6 @@ J721S2_IOPAD(0x038, PIN_OUTPUT, 0) /* (AB28) MCASP0_ACL= KX.MCAN5_TX */ &wkup_pmx2 { wkup_uart0_pins_default: wkup-uart0-default-pins { pinctrl-single,pins =3D < - J721S2_WKUP_IOPAD(0x070, PIN_INPUT, 0) /* (E25) WKUP_GPIO0_6.WKUP_UART0= _CTSn */ - J721S2_WKUP_IOPAD(0x074, PIN_OUTPUT, 0) /* (F28) WKUP_GPIO0_7.WKUP_UART= 0_RTSn */ J721S2_WKUP_IOPAD(0x048, PIN_INPUT, 0) /* (D28) WKUP_UART0_RXD */ J721S2_WKUP_IOPAD(0x04c, PIN_OUTPUT, 0) /* (D27) WKUP_UART0_TXD */ >; --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3282D206CA4; Sun, 24 Mar 2024 23:05: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=1711321514; cv=none; b=Ymvktw3x/C62j1xDRFKhHALb6YO6sNoyNXk3xiwXIhG8+VVyWfNS5ywh8ytUTPbDrG5DekVvKnSieZ6LKW5Fx2tyGPMHe9RUKbTOy04DwxLjHT437nylNGgON4zhdVMEX45naGJ46WcKnwWODvZYrETPlwuHBISyJQ54YMKu+zE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321514; c=relaxed/simple; bh=hwBbYoWGEEKSopLdY4x77EeEvapUEV0W9UCXR8bjLI0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=aVlQFMGacgMMeVTvfjLdgMcAsHjlzkTneMOd2bXuzlq1qvZLh3KheA4BMMnEg6GbcX9ohOZncRkDxbbLc8/R7eNbUE4d3oSHPY4L2bzKidFgYGWY47mtPLaoXIbsMHDke1HWc1wH4JRkaCGFjZZc9ppUM0QZo/mWivDS7iKs2Qo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=teiLZrff; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="teiLZrff" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 70AD2C433C7; Sun, 24 Mar 2024 23:05:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321513; bh=hwBbYoWGEEKSopLdY4x77EeEvapUEV0W9UCXR8bjLI0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=teiLZrfffInjRN3Me4iaq+liq6/qYUowyb3RVOp+6/ZBDQYHfHcAdSfJtkbk/tn1k xGf7oO6JS6I+WKStcOt+oC4C89eF60c4CO0Bwo9bMxG4n1yuDqr/rfoc+vdY+2vrep 6O9kcrkh0x57TOqtEuajCxP3cyxzgruZgtV4xcWP4BuEkPsCoD+IIk19kEyTneC8C/ ExJLylM8DF2s9yoXlD1LpHxeMGuqVWwxhpkGq0b8bHzOWBPvII6Uz6fYLNXsm1eoIR 6QIkzLW3aHUMyFMaWvwkPskgLhBDTXzXsxSHwpm1KU4zu45eipbya2F4Kxim9f1rdi gN1YhpDLJsoDg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Bhavya Kapoor , Vignesh Raghavendra , Sasha Levin Subject: [PATCH 6.6 239/638] arm64: dts: ti: k3-j784s4-evm: Remove Pinmux for CTS and RTS in wkup_uart0 Date: Sun, 24 Mar 2024 18:54:36 -0400 Message-ID: <20240324230116.1348576-240-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Bhavya Kapoor [ Upstream commit d29a6cf980572d8cf7b63935716fca663e2610f0 ] Only Tx and Rx Signal lines for wkup_uart0 are brought out on the J784S4 EVM from SoC, but CTS and RTS signal lines are not brought on the EVM. Thus, remove pinmux for CTS and RTS signal lines for wkup_uart0 in J784S4. Fixes: 6fa5d37a2f34 ("arm64: dts: ti: k3-j784s4-evm: Add mcu and wakeup uar= ts") Signed-off-by: Bhavya Kapoor Link: https://lore.kernel.org/r/20240214105846.1096733-5-b-kapoor@ti.com Signed-off-by: Vignesh Raghavendra Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/ti/k3-j784s4-evm.dts | 2 -- 1 file changed, 2 deletions(-) diff --git a/arch/arm64/boot/dts/ti/k3-j784s4-evm.dts b/arch/arm64/boot/dts= /ti/k3-j784s4-evm.dts index 5991c2e1d994c..39f99ee39dab9 100644 --- a/arch/arm64/boot/dts/ti/k3-j784s4-evm.dts +++ b/arch/arm64/boot/dts/ti/k3-j784s4-evm.dts @@ -296,8 +296,6 @@ &wkup_pmx2 { wkup_uart0_pins_default: wkup-uart0-default-pins { bootph-all; pinctrl-single,pins =3D < - J721S2_WKUP_IOPAD(0x070, PIN_INPUT, 0) /* (L37) WKUP_GPIO0_6.WKUP_UART0= _CTSn */ - J721S2_WKUP_IOPAD(0x074, PIN_INPUT, 0) /* (L36) WKUP_GPIO0_7.WKUP_UART0= _RTSn */ J721S2_WKUP_IOPAD(0x048, PIN_INPUT, 0) /* (K35) WKUP_UART0_RXD */ J721S2_WKUP_IOPAD(0x04c, PIN_INPUT, 0) /* (K34) WKUP_UART0_TXD */ >; --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1843D206CA1; Sun, 24 Mar 2024 23:05: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=1711321514; cv=none; b=UrBYmGz+cuX7geWbwXBb95XhOIAr/NK7WDMW1+1hESyv84xjrdiBxr5THNta875YFeCbGQQS/MA5MJqOERhVCTGcglgFQQxdHw4Gzhh1nqukLNc+98cPX8QRKmKogTI3f3R/ti9AN+xawj9Bhw7OI06KgblDs7+lE5hXgm0iMH8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321514; c=relaxed/simple; bh=ZtJfLYOSXuHe5OiZtQWIWaJ/AbWxKre5dF2XmAkXSBQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=cc4P1p6Zf5UFlT7NdxKGcNZ30O5OPIYW4y+EV98z+KOOQeTdlSD+evFcJtUudqE47LdyCAbw6xUB8KVBkreFGH6ZsCgWw6oUbipGoYJfDZq2vrc27wAnYqNeIdhumWzJNoLiSkq6b6qIuOQdJo1+dTrstar++uTCaHQSCIQVreY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=qnTO1eFQ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="qnTO1eFQ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 57029C43399; Sun, 24 Mar 2024 23:05:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321514; bh=ZtJfLYOSXuHe5OiZtQWIWaJ/AbWxKre5dF2XmAkXSBQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qnTO1eFQ2NGLAm+i1+R/FlI7xWWcqgWFimbTNMhi0xM9EjBbzp7TvzWl+5zdSa1pc GAjMpngr83RzOH8njcotDhI4b56G78HgB7V4BSUYu3IBa/8Rkn1Qynpf5M/BVM1w4L 0PR3jG1G15cUWZCNr2Ai7yiSQYizxkir/bWUY7hdqOziJIjLzTGsFMzlL8oNFXWyVX 0z9BQs4SeLxgR3+yOk7L+IhvOcZoiZ1JavZpTBgjIvQrJ2D//HlAHsvRK6Fc4sk1H8 UxaohtsPKqAq4KDZ4PiaNGEazLdkuztmK/8Ric6wj1IRtSaf6pg/+qcuZjMdnXk6eY teLnrYnSX6JjQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Nishanth Menon , Vignesh Raghavendra , Sasha Levin Subject: [PATCH 6.6 240/638] arm64: dts: ti: k3-am642-evm: Add boot phase tags marking Date: Sun, 24 Mar 2024 18:54:37 -0400 Message-ID: <20240324230116.1348576-241-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Nishanth Menon [ Upstream commit 33830e077797ce4d7317b83a145f03bfde06ad4c ] bootph-all as phase tag was added to dt-schema (dtschema/schemas/bootph.yaml) to describe various node usage during boot phases with DT. Describe the same for AM642-evm boot devices. Signed-off-by: Nishanth Menon Link: https://lore.kernel.org/r/20230911172902.1057417-3-nm@ti.com Signed-off-by: Vignesh Raghavendra Stable-dep-of: 379c7752bbd0 ("arm64: dts: ti: k3-am64-main: Fix ITAP/OTAP v= alues for MMC") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/ti/k3-am642-evm.dts | 28 +++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/arch/arm64/boot/dts/ti/k3-am642-evm.dts b/arch/arm64/boot/dts/= ti/k3-am642-evm.dts index b4a1f73d4fb17..d0e1191baecd6 100644 --- a/arch/arm64/boot/dts/ti/k3-am642-evm.dts +++ b/arch/arm64/boot/dts/ti/k3-am642-evm.dts @@ -35,6 +35,7 @@ aliases { }; =20 memory@80000000 { + bootph-all; device_type =3D "memory"; /* 2G RAM */ reg =3D <0x00000000 0x80000000 0x00000000 0x80000000>; @@ -108,6 +109,7 @@ rtos_ipc_memory_region: ipc-memories@a5000000 { =20 evm_12v0: regulator-0 { /* main DC jack */ + bootph-all; compatible =3D "regulator-fixed"; regulator-name =3D "evm_12v0"; regulator-min-microvolt =3D <12000000>; @@ -129,6 +131,7 @@ vsys_5v0: regulator-1 { =20 vsys_3v3: regulator-2 { /* output of LM5140 */ + bootph-all; compatible =3D "regulator-fixed"; regulator-name =3D "vsys_3v3"; regulator-min-microvolt =3D <3300000>; @@ -140,6 +143,7 @@ vsys_3v3: regulator-2 { =20 vdd_mmc1: regulator-3 { /* TPS2051BD */ + bootph-all; compatible =3D "regulator-fixed"; regulator-name =3D "vdd_mmc1"; regulator-min-microvolt =3D <3300000>; @@ -161,6 +165,7 @@ vddb: regulator-4 { }; =20 vtt_supply: regulator-5 { + bootph-all; compatible =3D "regulator-fixed"; regulator-name =3D "vtt"; pinctrl-names =3D "default"; @@ -251,6 +256,7 @@ AM64X_IOPAD(0x0244, PIN_OUTPUT, 0) /* (E14) UART1_TXD = */ }; =20 main_uart0_pins_default: main-uart0-default-pins { + bootph-all; pinctrl-single,pins =3D < AM64X_IOPAD(0x0238, PIN_INPUT, 0) /* (B16) UART0_CTSn */ AM64X_IOPAD(0x023c, PIN_OUTPUT, 0) /* (A16) UART0_RTSn */ @@ -269,6 +275,7 @@ AM64X_IOPAD(0x0218, PIN_INPUT, 0) /* (A14) SPI0_D1 */ }; =20 main_i2c0_pins_default: main-i2c0-default-pins { + bootph-all; pinctrl-single,pins =3D < AM64X_IOPAD(0x0260, PIN_INPUT_PULLUP, 0) /* (A18) I2C0_SCL */ AM64X_IOPAD(0x0264, PIN_INPUT_PULLUP, 0) /* (B18) I2C0_SDA */ @@ -276,6 +283,7 @@ AM64X_IOPAD(0x0264, PIN_INPUT_PULLUP, 0) /* (B18) I2C0_= SDA */ }; =20 main_i2c1_pins_default: main-i2c1-default-pins { + bootph-all; pinctrl-single,pins =3D < AM64X_IOPAD(0x0268, PIN_INPUT_PULLUP, 0) /* (C18) I2C1_SCL */ AM64X_IOPAD(0x026c, PIN_INPUT_PULLUP, 0) /* (B19) I2C1_SDA */ @@ -283,6 +291,7 @@ AM64X_IOPAD(0x026c, PIN_INPUT_PULLUP, 0) /* (B19) I2C1_= SDA */ }; =20 mdio1_pins_default: mdio1-default-pins { + bootph-all; pinctrl-single,pins =3D < AM64X_IOPAD(0x01fc, PIN_OUTPUT, 4) /* (R2) PRG0_PRU1_GPO19.MDIO0_MDC */ AM64X_IOPAD(0x01f8, PIN_INPUT, 4) /* (P5) PRG0_PRU1_GPO18.MDIO0_MDIO */ @@ -290,6 +299,7 @@ AM64X_IOPAD(0x01f8, PIN_INPUT, 4) /* (P5) PRG0_PRU1_GPO= 18.MDIO0_MDIO */ }; =20 rgmii1_pins_default: rgmii1-default-pins { + bootph-all; pinctrl-single,pins =3D < AM64X_IOPAD(0x01cc, PIN_INPUT, 4) /* (W5) PRG0_PRU1_GPO7.RGMII1_RD0 */ AM64X_IOPAD(0x01d4, PIN_INPUT, 4) /* (Y5) PRG0_PRU1_GPO9.RGMII1_RD1 */ @@ -307,6 +317,7 @@ AM64X_IOPAD(0x00dc, PIN_OUTPUT, 4) /* (U15) PRG1_PRU0_G= PO9.RGMII1_TX_CTL */ }; =20 rgmii2_pins_default: rgmii2-default-pins { + bootph-all; pinctrl-single,pins =3D < AM64X_IOPAD(0x0108, PIN_INPUT, 4) /* (W11) PRG1_PRU1_GPO0.RGMII2_RD0 */ AM64X_IOPAD(0x010c, PIN_INPUT, 4) /* (V11) PRG1_PRU1_GPO1.RGMII2_RD1 */ @@ -324,6 +335,7 @@ AM64X_IOPAD(0x0144, PIN_OUTPUT, 4) /* (Y11) PRG1_PRU1_G= PO15.RGMII2_TX_CTL */ }; =20 main_usb0_pins_default: main-usb0-default-pins { + bootph-all; pinctrl-single,pins =3D < AM64X_IOPAD(0x02a8, PIN_OUTPUT, 0) /* (E19) USB0_DRVVBUS */ >; @@ -366,6 +378,7 @@ AM64X_IOPAD(0x0258, PIN_OUTPUT, 0) /* (C17) MCAN1_TX */ }; =20 ddr_vtt_pins_default: ddr-vtt-default-pins { + bootph-all; pinctrl-single,pins =3D < AM64X_IOPAD(0x0030, PIN_OUTPUT_PULLUP, 7) /* (L18) OSPI0_CSN1.GPIO0_12 = */ >; @@ -373,6 +386,7 @@ AM64X_IOPAD(0x0030, PIN_OUTPUT_PULLUP, 7) /* (L18) OSPI= 0_CSN1.GPIO0_12 */ }; =20 &main_uart0 { + bootph-all; status =3D "okay"; pinctrl-names =3D "default"; pinctrl-0 =3D <&main_uart0_pins_default>; @@ -387,6 +401,7 @@ &main_uart1 { }; =20 &main_i2c0 { + bootph-all; status =3D "okay"; pinctrl-names =3D "default"; pinctrl-0 =3D <&main_i2c0_pins_default>; @@ -400,12 +415,14 @@ eeprom@50 { }; =20 &main_i2c1 { + bootph-all; status =3D "okay"; pinctrl-names =3D "default"; pinctrl-0 =3D <&main_i2c1_pins_default>; clock-frequency =3D <400000>; =20 exp1: gpio@22 { + bootph-all; compatible =3D "ti,tca6424"; reg =3D <0x22>; gpio-controller; @@ -438,6 +455,10 @@ display@3c { }; }; =20 +&main_gpio0 { + bootph-all; +}; + /* mcu_gpio0 is reserved for mcu firmware usage */ &mcu_gpio0 { status =3D "reserved"; @@ -467,6 +488,7 @@ &sdhci0 { =20 &sdhci1 { /* SD/MMC */ + bootph-all; vmmc-supply =3D <&vdd_mmc1>; pinctrl-names =3D "default"; bus-width =3D <4>; @@ -476,11 +498,13 @@ &sdhci1 { }; =20 &usbss0 { + bootph-all; ti,vbus-divider; ti,usb2-only; }; =20 &usb0 { + bootph-all; dr_mode =3D "otg"; maximum-speed =3D "high-speed"; pinctrl-names =3D "default"; @@ -488,11 +512,13 @@ &usb0 { }; =20 &cpsw3g { + bootph-all; pinctrl-names =3D "default"; pinctrl-0 =3D <&rgmii1_pins_default>, <&rgmii2_pins_default>; }; =20 &cpsw_port1 { + bootph-all; phy-mode =3D "rgmii-rxid"; phy-handle =3D <&cpsw3g_phy0>; }; @@ -503,11 +529,13 @@ &cpsw_port2 { }; =20 &cpsw3g_mdio { + bootph-all; status =3D "okay"; pinctrl-names =3D "default"; pinctrl-0 =3D <&mdio1_pins_default>; =20 cpsw3g_phy0: ethernet-phy@0 { + bootph-all; reg =3D <0>; ti,rx-internal-delay =3D ; ti,fifo-depth =3D ; --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F38D2206CAA; Sun, 24 Mar 2024 23:05: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=1711321515; cv=none; b=gjgQ5swmdiZGxfhTZS/fny7xvVwh2mZClO6dfdA/CSGTtIEevWLdDKOpEYwMB0OE/awOwIuPCQsiscnkTLwDbUMuQ+SRx0gwvWIq7VIVyUMLnRr34cM3g18kFgkpF9Z1GsOPErd8SWNY4eTpMkNMAT6YP1m0WdiBR+N+ViwuodI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321515; c=relaxed/simple; bh=kzg1twyd8x1xKB2wbJO5YxL9YZinLAhgSRISrH4vxlA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=D8ucLWl6LYPnG1oWoM7y5MmpFZUli5xm8ULO/yYhNIU0YFBpWZzEXH9XUjd9pU486SA66amSWh9G6ACEypY48ctlVH0VQVkIhqlo47pGdizWwRdfCjW+rpAA+YfvWh/zy65WWu935kLKzfzJeTBKI6MlgrwQQLNDD8DEcGV+qmY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=XmMXv9nE; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="XmMXv9nE" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3D7ECC433F1; Sun, 24 Mar 2024 23:05:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321514; bh=kzg1twyd8x1xKB2wbJO5YxL9YZinLAhgSRISrH4vxlA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=XmMXv9nEkj2QOHEOQ3figCBwvRWFiFuqMxRnSOyVF/Iv2hzMD+5V8QX9BVL3eX3fH kOd2ejVHNiKkKo0yd4KNk3jLtdP0TL1v0JSFjIIhC1vCG6iqL2JNG7D0c1ZvGtI8ZN X68L4vdAjrVyU0LXI9C9yX9v+Ygz1dQ0l6Dor3CAtl4ZxMZXXKbC6i7T5BYteLX7gV 08oOTD/Ir5ccgLiVUF6fm6AbaITGb3LBL5wKLqxWQUAVrezEHxZEmqFSM1obswIIA+ Ii2zY4hGGVAze01oqe30KBP6igSdKuix1zpmC3vb48R+SC5JeFQ3++nikfkocyMTA5 2oR21903TzRrA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Nishanth Menon , Vignesh Raghavendra , Sasha Levin Subject: [PATCH 6.6 241/638] arm64: dts: ti: k3-am642-sk: Add boot phase tags marking Date: Sun, 24 Mar 2024 18:54:38 -0400 Message-ID: <20240324230116.1348576-242-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Nishanth Menon [ Upstream commit 4669288219a7f77c6ff992d10ce6a20660863979 ] bootph-all as phase tag was added to dt-schema (dtschema/schemas/bootph.yaml) to describe various node usage during boot phases with DT. Describe the same for AM642-sk boot devices. Signed-off-by: Nishanth Menon Link: https://lore.kernel.org/r/20230911172902.1057417-4-nm@ti.com Signed-off-by: Vignesh Raghavendra Stable-dep-of: 379c7752bbd0 ("arm64: dts: ti: k3-am64-main: Fix ITAP/OTAP v= alues for MMC") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/ti/k3-am642-sk.dts | 29 ++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/arch/arm64/boot/dts/ti/k3-am642-sk.dts b/arch/arm64/boot/dts/t= i/k3-am642-sk.dts index 722fd285a34ec..f29c8a9b59ba7 100644 --- a/arch/arm64/boot/dts/ti/k3-am642-sk.dts +++ b/arch/arm64/boot/dts/ti/k3-am642-sk.dts @@ -34,6 +34,7 @@ aliases { }; =20 memory@80000000 { + bootph-pre-ram; device_type =3D "memory"; /* 2G RAM */ reg =3D <0x00000000 0x80000000 0x00000000 0x80000000>; @@ -107,6 +108,7 @@ rtos_ipc_memory_region: ipc-memories@a5000000 { =20 vusb_main: regulator-0 { /* USB MAIN INPUT 5V DC */ + bootph-all; compatible =3D "regulator-fixed"; regulator-name =3D "vusb_main5v0"; regulator-min-microvolt =3D <5000000>; @@ -117,6 +119,7 @@ vusb_main: regulator-0 { =20 vcc_3v3_sys: regulator-1 { /* output of LP8733xx */ + bootph-all; compatible =3D "regulator-fixed"; regulator-name =3D "vcc_3v3_sys"; regulator-min-microvolt =3D <3300000>; @@ -128,6 +131,7 @@ vcc_3v3_sys: regulator-1 { =20 vdd_mmc1: regulator-2 { /* TPS2051BD */ + bootph-all; compatible =3D "regulator-fixed"; regulator-name =3D "vdd_mmc1"; regulator-min-microvolt =3D <3300000>; @@ -234,6 +238,7 @@ led-7 { =20 &main_pmx0 { main_mmc1_pins_default: main-mmc1-default-pins { + bootph-all; pinctrl-single,pins =3D < AM64X_IOPAD(0x029c, PIN_INPUT_PULLUP, 0) /* (C20) MMC1_SDWP */ AM64X_IOPAD(0x0298, PIN_INPUT_PULLUP, 0) /* (D19) MMC1_SDCD */ @@ -248,6 +253,7 @@ AM64X_IOPAD(0x027c, PIN_INPUT_PULLUP, 0) /* (K18) MMC1_= DAT3 */ }; =20 main_uart0_pins_default: main-uart0-default-pins { + bootph-all; pinctrl-single,pins =3D < AM64X_IOPAD(0x0238, PIN_INPUT, 0) /* (B16) UART0_CTSn */ AM64X_IOPAD(0x023c, PIN_OUTPUT, 0) /* (A16) UART0_RTSn */ @@ -257,6 +263,7 @@ AM64X_IOPAD(0x0234, PIN_OUTPUT, 0) /* (C16) UART0_TXD */ }; =20 main_uart1_pins_default: main-uart1-default-pins { + bootph-pre-ram; pinctrl-single,pins =3D < AM64X_IOPAD(0x0248, PIN_INPUT, 0) /* (D16) UART1_CTSn */ AM64X_IOPAD(0x024c, PIN_OUTPUT, 0) /* (E16) UART1_RTSn */ @@ -266,12 +273,14 @@ AM64X_IOPAD(0x0244, PIN_OUTPUT, 0) /* (E14) UART1_TXD= */ }; =20 main_usb0_pins_default: main-usb0-default-pins { + bootph-all; pinctrl-single,pins =3D < AM64X_IOPAD(0x02a8, PIN_OUTPUT, 0) /* (E19) USB0_DRVVBUS */ >; }; =20 main_i2c0_pins_default: main-i2c0-default-pins { + bootph-all; pinctrl-single,pins =3D < AM64X_IOPAD(0x0260, PIN_INPUT_PULLUP, 0) /* (A18) I2C0_SCL */ AM64X_IOPAD(0x0264, PIN_INPUT_PULLUP, 0) /* (B18) I2C0_SDA */ @@ -279,6 +288,7 @@ AM64X_IOPAD(0x0264, PIN_INPUT_PULLUP, 0) /* (B18) I2C0_= SDA */ }; =20 main_i2c1_pins_default: main-i2c1-default-pins { + bootph-all; pinctrl-single,pins =3D < AM64X_IOPAD(0x0268, PIN_INPUT_PULLUP, 0) /* (C18) I2C1_SCL */ AM64X_IOPAD(0x026c, PIN_INPUT_PULLUP, 0) /* (B19) I2C1_SDA */ @@ -367,6 +377,7 @@ AM64X_IOPAD(0x00bc, PIN_INPUT, 7) /* (U8) GPIO0_46 */ }; =20 &main_uart0 { + bootph-all; status =3D "okay"; pinctrl-names =3D "default"; pinctrl-0 =3D <&main_uart0_pins_default>; @@ -375,12 +386,14 @@ &main_uart0 { =20 &main_uart1 { /* main_uart1 is reserved for firmware usage */ + bootph-pre-ram; status =3D "reserved"; pinctrl-names =3D "default"; pinctrl-0 =3D <&main_uart1_pins_default>; }; =20 &main_i2c0 { + bootph-all; status =3D "okay"; pinctrl-names =3D "default"; pinctrl-0 =3D <&main_i2c0_pins_default>; @@ -393,12 +406,14 @@ eeprom@51 { }; =20 &main_i2c1 { + bootph-all; status =3D "okay"; pinctrl-names =3D "default"; pinctrl-0 =3D <&main_i2c1_pins_default>; clock-frequency =3D <400000>; =20 exp1: gpio@70 { + bootph-all; compatible =3D "nxp,pca9538"; reg =3D <0x70>; gpio-controller; @@ -445,6 +460,7 @@ wlcore: wlcore@2 { =20 &sdhci1 { /* SD/MMC */ + bootph-all; vmmc-supply =3D <&vdd_mmc1>; pinctrl-names =3D "default"; bus-width =3D <4>; @@ -454,11 +470,22 @@ &sdhci1 { }; =20 &serdes_ln_ctrl { + bootph-all; idle-states =3D ; }; =20 +&serdes_refclk { + bootph-all; +}; + +&serdes_wiz0 { + bootph-all; +}; + &serdes0 { + bootph-all; serdes0_usb_link: phy@0 { + bootph-all; reg =3D <0>; cdns,num-lanes =3D <1>; #phy-cells =3D <0>; @@ -468,10 +495,12 @@ serdes0_usb_link: phy@0 { }; =20 &usbss0 { + bootph-all; ti,vbus-divider; }; =20 &usb0 { + bootph-all; dr_mode =3D "host"; maximum-speed =3D "super-speed"; pinctrl-names =3D "default"; --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DA5DD206CB6; Sun, 24 Mar 2024 23:05: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=1711321515; cv=none; b=Q1ezI6jQJgRC+bAeyMPYKikofDVeRFRPB4Ye6dm/VsINJDDb+LBby3V4QazgIOrODtXucMNGx50CTCetU3zEoczaLR2sBOD4+JoFfzI/Xe7qG/VeVcBOmt6FWKulwyoleAetrZwG5XPUdD5EFvlmDBAz9BbB29xtEfVtOI09n5A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321515; c=relaxed/simple; bh=IGQOYvFioDMkyrLxmhntj7OAsZokzDK/vs//sb00Q/s=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=pMsir5eaTWVtDcbcRIjXre5SOQMW0xPkQY2ppWqv168yzn/d3SqpsmTE8iG60bb7BqzS6XNGGivZ4Vki7uf9XSU3u2oh9P37ReR/FkEK9yzrMq8NQp6h+MK9PDv79S9ePd2hLbyt0OvRhQGnWeoIA2YPVDEIMhFjrUL6C6tEMo8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=gfFc2MHG; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="gfFc2MHG" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 243AFC43394; Sun, 24 Mar 2024 23:05:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321515; bh=IGQOYvFioDMkyrLxmhntj7OAsZokzDK/vs//sb00Q/s=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=gfFc2MHGk4P3szIEfhlfC5WwajkXitfuWtc7D505rYfML6isSPFjbFowWVhhUwKqv efUFUGcc2t3jcrb/mLh+EuY9X+/Dv1PHIHhF3VWR3GhrCHT0tt28EuMfjWg3WtVk9F 17/bx+hmhU3UIfcVUrMSWprHMf0TMZ5dItm756G5zqfZZy/KqSFxCga02/TOrTDcwQ CNFHq1WBBtQKgsgGM7QWxJJ/I+PRYkMNgU3CVHORA6uTI7Pefzbv/BYyTRxBbq70hM PjpsDT6kBxo4W6/EMSlfMkRg0NajpqI0IeZf+7KiC0sib4pe+JIxFbDiXo6yS65Ina cdG8451NLMEXA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Andrew Davis , Nishanth Menon , Sasha Levin Subject: [PATCH 6.6 242/638] arm64: dts: ti: k3-am64: Enable SDHCI nodes at the board level Date: Sun, 24 Mar 2024 18:54:39 -0400 Message-ID: <20240324230116.1348576-243-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Davis [ Upstream commit 3b6345e3fcf4c93a79f396121cd0e6f98f04da13 ] SDHCI nodes defined in the top-level AM64 SoC dtsi files are incomplete and will not be functional unless they are extended. As the attached SD/eMMC is only known about at the board integration level, these nodes should only be enabled when provided with this information. Disable the SDHCI nodes in the dtsi files and only enable the ones that are actually pinned out on a given board. Signed-off-by: Andrew Davis Link: https://lore.kernel.org/r/20231117163339.89952-2-afd@ti.com Signed-off-by: Nishanth Menon Stable-dep-of: 379c7752bbd0 ("arm64: dts: ti: k3-am64-main: Fix ITAP/OTAP v= alues for MMC") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/ti/k3-am64-main.dtsi | 2 ++ arch/arm64/boot/dts/ti/k3-am64-phycore-som.dtsi | 1 + arch/arm64/boot/dts/ti/k3-am642-evm.dts | 6 ++++-- arch/arm64/boot/dts/ti/k3-am642-phyboard-electra-rdk.dts | 1 + arch/arm64/boot/dts/ti/k3-am642-sk.dts | 4 +++- arch/arm64/boot/dts/ti/k3-am642-tqma64xxl-mbax4xxl.dts | 1 - arch/arm64/boot/dts/ti/k3-am642-tqma64xxl.dtsi | 1 + 7 files changed, 12 insertions(+), 4 deletions(-) diff --git a/arch/arm64/boot/dts/ti/k3-am64-main.dtsi b/arch/arm64/boot/dts= /ti/k3-am64-main.dtsi index 0df54a7418247..693e7550bf955 100644 --- a/arch/arm64/boot/dts/ti/k3-am64-main.dtsi +++ b/arch/arm64/boot/dts/ti/k3-am64-main.dtsi @@ -612,6 +612,7 @@ sdhci0: mmc@fa10000 { ti,otap-del-sel-mmc-hs =3D <0x0>; ti,otap-del-sel-ddr52 =3D <0x6>; ti,otap-del-sel-hs200 =3D <0x7>; + status =3D "disabled"; }; =20 sdhci1: mmc@fa00000 { @@ -630,6 +631,7 @@ sdhci1: mmc@fa00000 { ti,otap-del-sel-sdr104 =3D <0x6>; ti,otap-del-sel-ddr50 =3D <0x9>; ti,clkbuf-sel =3D <0x7>; + status =3D "disabled"; }; =20 cpsw3g: ethernet@8000000 { diff --git a/arch/arm64/boot/dts/ti/k3-am64-phycore-som.dtsi b/arch/arm64/b= oot/dts/ti/k3-am64-phycore-som.dtsi index 1c2c8f0daca9f..1dcbf1fe7fae4 100644 --- a/arch/arm64/boot/dts/ti/k3-am64-phycore-som.dtsi +++ b/arch/arm64/boot/dts/ti/k3-am64-phycore-som.dtsi @@ -200,6 +200,7 @@ flash@0 { }; =20 &sdhci0 { + status =3D "okay"; bus-width =3D <8>; non-removable; ti,driver-strength-ohm =3D <50>; diff --git a/arch/arm64/boot/dts/ti/k3-am642-evm.dts b/arch/arm64/boot/dts/= ti/k3-am642-evm.dts index d0e1191baecd6..91d726ef7594a 100644 --- a/arch/arm64/boot/dts/ti/k3-am642-evm.dts +++ b/arch/arm64/boot/dts/ti/k3-am642-evm.dts @@ -478,17 +478,19 @@ eeprom@0 { }; }; =20 +/* eMMC */ &sdhci0 { - /* emmc */ + status =3D "okay"; bus-width =3D <8>; non-removable; ti,driver-strength-ohm =3D <50>; disable-wp; }; =20 +/* SD/MMC */ &sdhci1 { - /* SD/MMC */ bootph-all; + status =3D "okay"; vmmc-supply =3D <&vdd_mmc1>; pinctrl-names =3D "default"; bus-width =3D <4>; diff --git a/arch/arm64/boot/dts/ti/k3-am642-phyboard-electra-rdk.dts b/arc= h/arm64/boot/dts/ti/k3-am642-phyboard-electra-rdk.dts index 9175e96842d82..53b64e55413f9 100644 --- a/arch/arm64/boot/dts/ti/k3-am642-phyboard-electra-rdk.dts +++ b/arch/arm64/boot/dts/ti/k3-am642-phyboard-electra-rdk.dts @@ -264,6 +264,7 @@ &main_uart1 { }; =20 &sdhci1 { + status =3D "okay"; vmmc-supply =3D <&vcc_3v3_mmc>; pinctrl-names =3D "default"; pinctrl-0 =3D <&main_mmc1_pins_default>; diff --git a/arch/arm64/boot/dts/ti/k3-am642-sk.dts b/arch/arm64/boot/dts/t= i/k3-am642-sk.dts index f29c8a9b59ba7..bffbd234f715a 100644 --- a/arch/arm64/boot/dts/ti/k3-am642-sk.dts +++ b/arch/arm64/boot/dts/ti/k3-am642-sk.dts @@ -439,6 +439,7 @@ &mcu_gpio0 { }; =20 &sdhci0 { + status =3D "okay"; vmmc-supply =3D <&wlan_en>; bus-width =3D <4>; non-removable; @@ -458,9 +459,10 @@ wlcore: wlcore@2 { }; }; =20 +/* SD/MMC */ &sdhci1 { - /* SD/MMC */ bootph-all; + status =3D "okay"; vmmc-supply =3D <&vdd_mmc1>; pinctrl-names =3D "default"; bus-width =3D <4>; diff --git a/arch/arm64/boot/dts/ti/k3-am642-tqma64xxl-mbax4xxl.dts b/arch/= arm64/boot/dts/ti/k3-am642-tqma64xxl-mbax4xxl.dts index 04c15b64f0b77..76ff44e71ec17 100644 --- a/arch/arm64/boot/dts/ti/k3-am642-tqma64xxl-mbax4xxl.dts +++ b/arch/arm64/boot/dts/ti/k3-am642-tqma64xxl-mbax4xxl.dts @@ -420,7 +420,6 @@ &sdhci1 { ti,driver-strength-ohm =3D <50>; ti,fails-without-test-cd; /* Enabled by overlay */ - status =3D "disabled"; }; =20 &tscadc0 { diff --git a/arch/arm64/boot/dts/ti/k3-am642-tqma64xxl.dtsi b/arch/arm64/bo= ot/dts/ti/k3-am642-tqma64xxl.dtsi index 6229849b5d968..65dbbff64ed96 100644 --- a/arch/arm64/boot/dts/ti/k3-am642-tqma64xxl.dtsi +++ b/arch/arm64/boot/dts/ti/k3-am642-tqma64xxl.dtsi @@ -207,6 +207,7 @@ partitions { }; =20 &sdhci0 { + status =3D "okay"; non-removable; disable-wp; no-sdio; --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D84D7137748; Sun, 24 Mar 2024 23:05: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=1711321517; cv=none; b=kH5TPw5TwDHbfH9enrRqkhzrQ3J511xkpIou5FUssg0QajXDM8CVBHxwHVjOO8difanWhDrTJ4R2A8dXq1rW3HbgowaisG8sZ8FdGx9yjmTmJHU6nM1EH+2xnCf2cLh2wcpyBvRwLsmnt7p+m85NPsXzjIQAhqrrs8iI2E4S8gE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321517; c=relaxed/simple; bh=M0rRp9TZohhOSgUlfBcWPQEY0vryjI1+b07eow0JeMc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=gnKYso12TbDjF9BttZBT4ESXBt9hGIIxQYYJuo5GmlKW0+Gj5DFBc/r4lfyVvbrMyLxO1m6wF/PPDbd/Ov1OjftZhlXK6qhBuhaDcvgW3MMPUSITOQFMEb5OIdA3z7dPV1ADCNXNi2wB90te1L8Ui+nqQrln3YVlo/qibRWq0V0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=jWUsL5BT; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="jWUsL5BT" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0A8C4C43330; Sun, 24 Mar 2024 23:05:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321516; bh=M0rRp9TZohhOSgUlfBcWPQEY0vryjI1+b07eow0JeMc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jWUsL5BTW80xoCSYxnr89zqjpbnduwHr16dQYYZ3jTwjGacMKnx8B9/eh8CMq3whQ 0x+xLAuXpHnOsCc/GzGDxDMsMeon8kuzz1/NcAAyAOMx3ABLXSfZwZW0wf4q6SvFho tzg1LThQgxmwsyBRIfXUTmgma5WFw4BH3LdhHyRioH31UDU32OqgD5I70emUGDL51Q W038zuegt7hpbOuScS1BvNKbSi/fyLplEwUca2+1utx5uQWOcW5ZDc2ElH/m/SCF5t kH16RqDjO06XJwV0RGGCBFv+MWDlSYrSvU7o92xTIT2HUp8jWyEMOkXLZBzZu7+Jd7 SVsXJYOD71lyQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Judith Mendez , Wadim Egorov , Vignesh Raghavendra , Sasha Levin Subject: [PATCH 6.6 243/638] arm64: dts: ti: k3-am64-main: Fix ITAP/OTAP values for MMC Date: Sun, 24 Mar 2024 18:54:40 -0400 Message-ID: <20240324230116.1348576-244-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Judith Mendez [ Upstream commit 379c7752bbd0e81654544a896dd19c19ebb6faba ] Update MMC0/MMC1 OTAP/ITAP values according to the datasheet [0], refer to Table 7-68 for MMC0 and Table 7-77 for MMC1. [0] https://www.ti.com/lit/ds/symlink/am6442.pdf Fixes: 8abae9389bdb ("arm64: dts: ti: Add support for AM642 SoC") Signed-off-by: Judith Mendez Tested-by: Wadim Egorov Link: https://lore.kernel.org/r/20240213235701.2438513-5-jm@ti.com Signed-off-by: Vignesh Raghavendra Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/ti/k3-am64-main.dtsi | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/ti/k3-am64-main.dtsi b/arch/arm64/boot/dts= /ti/k3-am64-main.dtsi index 693e7550bf955..064eb062bb54a 100644 --- a/arch/arm64/boot/dts/ti/k3-am64-main.dtsi +++ b/arch/arm64/boot/dts/ti/k3-am64-main.dtsi @@ -612,6 +612,9 @@ sdhci0: mmc@fa10000 { ti,otap-del-sel-mmc-hs =3D <0x0>; ti,otap-del-sel-ddr52 =3D <0x6>; ti,otap-del-sel-hs200 =3D <0x7>; + ti,itap-del-sel-legacy =3D <0x10>; + ti,itap-del-sel-mmc-hs =3D <0xa>; + ti,itap-del-sel-ddr52 =3D <0x3>; status =3D "disabled"; }; =20 @@ -624,12 +627,16 @@ sdhci1: mmc@fa00000 { clock-names =3D "clk_ahb", "clk_xin"; ti,trm-icp =3D <0x2>; ti,otap-del-sel-legacy =3D <0x0>; - ti,otap-del-sel-sd-hs =3D <0xf>; + ti,otap-del-sel-sd-hs =3D <0x0>; ti,otap-del-sel-sdr12 =3D <0xf>; ti,otap-del-sel-sdr25 =3D <0xf>; ti,otap-del-sel-sdr50 =3D <0xc>; ti,otap-del-sel-sdr104 =3D <0x6>; ti,otap-del-sel-ddr50 =3D <0x9>; + ti,itap-del-sel-legacy =3D <0x0>; + ti,itap-del-sel-sd-hs =3D <0x0>; + ti,itap-del-sel-sdr12 =3D <0x0>; + ti,itap-del-sel-sdr25 =3D <0x0>; ti,clkbuf-sel =3D <0x7>; status =3D "disabled"; }; --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 172D2137752; Sun, 24 Mar 2024 23:05: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=1711321519; cv=none; b=XeeVYDxH/ljKgsHglqNbu37myZe4KVRLZu2XZnZ+YcMwPIu56r2+b17eBH1YJsYJWNZ8lWDXWBQCTDd9jFM+8YUUyL+EXU5T7qSyZOZJ/0sbm6EuybinxR18+jufDprj17LJvDsmlAYLCNuUHr4Lm76tShuZEaSIC+rL+pxv72Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321519; c=relaxed/simple; bh=NWPrkaaaSy9kKYxmurUP9GafqEG7VJh8Z50d+eN03o8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mt950TA1cernzW4eyG7+IPN/fYaBhLa8bLDx9pB7pCLxYAwVEFT7IeOtaaVhjFIeGKcKdaNB1gvcXUw0D58jNlr4xWDth8REliG6vznJD8VHmM1/K/Ps5j83fgX5pixcYb+hVTNE1RVhuE7a25rNtX5lo0Ic3B/hn5yDkWXqoV4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=tOUyccBv; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="tOUyccBv" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 05A7BC433F1; Sun, 24 Mar 2024 23:05:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321517; bh=NWPrkaaaSy9kKYxmurUP9GafqEG7VJh8Z50d+eN03o8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=tOUyccBv/eqIXQOkY6cpHm4pGaJjTWyvlNaRoaj5lv4bFFMhcpho0Va1SFOPcKDA3 Z92wmN5DQQMMDrlne3G8CzyMkUr1ygxBn+natT8j1/v0hWQ669pJNO7FAd4+mYepuO dunL/iJemjI1Okki4acgDP38tZI0v9aYiyYi6j3vgTNYwlSOEnf3rsdaBraRuVYeay b6o0M48nSSDZcMDr7vew0Kt3AJsylnV2if5/XOBu5R/Fvg4FhsOg/cYaAEtRx1R+Zt p1YKuAwaJS9lSFx5d2B7T2Yjb0+uZnVfJlkt2ZfO8JDj0PFFbZ48d8jHgGM23eJ2/h xSI2beqt1VYmg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Hsin-Te Yuan , Hsin-Te Yuan , AngeloGioacchino Del Regno , Sasha Levin Subject: [PATCH 6.6 244/638] arm64: dts: mt8195-cherry-tomato: change watchdog reset boot flow Date: Sun, 24 Mar 2024 18:54:41 -0400 Message-ID: <20240324230116.1348576-245-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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-Te Yuan [ Upstream commit ef569d5db50e7edd709e482157769a5b3c367e22 ] The external output reset signal was originally disabled and sent from firmware. However, an unfixed bug in the firmware on tomato prevents the signal from being sent, causing the device to fail to boot. To fix this, enable external output reset signal to allow the device to reboot normally. Fixes: 5eb2e303ec6b ("arm64: dts: mediatek: Introduce MT8195 Cherry platfor= m's Tomato") Signed-off-by: Hsin-Te Yuan Reviewed-by: AngeloGioacchino Del Regno Link: https://lore.kernel.org/r/20240124-send-upstream-v3-1-5097c9862a73@ch= romium.org Signed-off-by: AngeloGioacchino Del Regno Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/mediatek/mt8195-cherry-tomato-r1.dts | 4 ++++ arch/arm64/boot/dts/mediatek/mt8195-cherry-tomato-r2.dts | 4 ++++ arch/arm64/boot/dts/mediatek/mt8195-cherry-tomato-r3.dts | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/arch/arm64/boot/dts/mediatek/mt8195-cherry-tomato-r1.dts b/arc= h/arm64/boot/dts/mediatek/mt8195-cherry-tomato-r1.dts index 2d5e8f371b6de..a82d716f10d44 100644 --- a/arch/arm64/boot/dts/mediatek/mt8195-cherry-tomato-r1.dts +++ b/arch/arm64/boot/dts/mediatek/mt8195-cherry-tomato-r1.dts @@ -23,3 +23,7 @@ &sound { &ts_10 { status =3D "okay"; }; + +&watchdog { + /delete-property/ mediatek,disable-extrst; +}; diff --git a/arch/arm64/boot/dts/mediatek/mt8195-cherry-tomato-r2.dts b/arc= h/arm64/boot/dts/mediatek/mt8195-cherry-tomato-r2.dts index 2586c32ce6e6f..2fe20e0dad836 100644 --- a/arch/arm64/boot/dts/mediatek/mt8195-cherry-tomato-r2.dts +++ b/arch/arm64/boot/dts/mediatek/mt8195-cherry-tomato-r2.dts @@ -43,3 +43,7 @@ &sound { &ts_10 { status =3D "okay"; }; + +&watchdog { + /delete-property/ mediatek,disable-extrst; +}; diff --git a/arch/arm64/boot/dts/mediatek/mt8195-cherry-tomato-r3.dts b/arc= h/arm64/boot/dts/mediatek/mt8195-cherry-tomato-r3.dts index f54f9477b99da..dd294ca98194c 100644 --- a/arch/arm64/boot/dts/mediatek/mt8195-cherry-tomato-r3.dts +++ b/arch/arm64/boot/dts/mediatek/mt8195-cherry-tomato-r3.dts @@ -44,3 +44,7 @@ &sound { &ts_10 { status =3D "okay"; }; + +&watchdog { + /delete-property/ mediatek,disable-extrst; +}; --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E3C44137755; Sun, 24 Mar 2024 23:05: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=1711321520; cv=none; b=UhvFVhZ9qxDP/OLovxN7aJ8skCvJWP6BQQd05oN/sUyOZJrshPZYqKItwQb2yu1YubCLPV6S45YDsnAA0IrCqghFxDpihJvbbVzc1lVZrf1EBFUyarXcOBkQddzw81xL6zOPO58CNLSQNuBYQppCMTwvfw/M9vYwH7ULPQsUmDE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321520; c=relaxed/simple; bh=3vBkS9Gb5bMU7t+X5bW6HHzb6ryNszPzQam/sDNgvrQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=am0xhnETkgTTjFSscf8dFBsRoEMKZMVsC6T/qbK+0l9IuHzyRvou5qlaATchaLvzjcE2vh7OhjlpJn0Si28oLpicqffx/7WTbVszivSE+xj5v/mwOwqp9Vvx/75lZXCwrbsWd4Ek7PCmqu+qojHFO83+MIlYXfldJRalouA/poA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=qBznk7pb; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="qBznk7pb" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 03013C43390; Sun, 24 Mar 2024 23:05:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321518; bh=3vBkS9Gb5bMU7t+X5bW6HHzb6ryNszPzQam/sDNgvrQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qBznk7pbvFpiYHKXjhHRjsij9J7Y93gVD8Jd5XG8dL2KQiFPappTMSLaHp2uMMPml 2lI0w+G6odQpl0B3KnEHKR/XoI8LggE187vsslIEcBzdGveti5bZQ82p4690es4Xx8 HQ2GQ0TxSmsox7OkcVKA1iKLlsOpeH3TldX4O0sk1MJb/CQ58x6LQaW3bVFEokouBP jLwrZ6rcERm72k8d4vif5kp0KPAvDkFbxUrTpAZaNgYLzc+u9pjnmxSrzHenR+JkXB LXp1G2xPfaL5YyT3xniJfP2yGrc7/o7GC1GbdpRoM1L4SVl27YvZsYVjRN6hBZKDBa n/RzWHQdpDMhA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Devarsh Thakkar , Tomi Valkeinen , Aradhya Bhatia , Vignesh Raghavendra , Sasha Levin Subject: [PATCH 6.6 245/638] arm64: dts: ti: Add common1 register space for AM65x SoC Date: Sun, 24 Mar 2024 18:54:42 -0400 Message-ID: <20240324230116.1348576-246-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Devarsh Thakkar [ Upstream commit 1a5010eade10b409d353b770d97b548b0fbdf5d7 ] This adds common1 register space for AM65x SoC which is using TI's Keystone display hardware and supporting it as described in Documentation/devicetree/bindings/display/ti/ti,am65x-dss.yaml Fixes: fc539b90eda2 ("arm64: dts: ti: am654: Add DSS node") Signed-off-by: Devarsh Thakkar Reviewed-by: Tomi Valkeinen Reviewed-by: Aradhya Bhatia Link: https://lore.kernel.org/r/20240216062426.4170528-3-devarsht@ti.com Signed-off-by: Vignesh Raghavendra Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/ti/k3-am65-main.dtsi | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/arch/arm64/boot/dts/ti/k3-am65-main.dtsi b/arch/arm64/boot/dts= /ti/k3-am65-main.dtsi index c98068b6c122a..57befcce93b97 100644 --- a/arch/arm64/boot/dts/ti/k3-am65-main.dtsi +++ b/arch/arm64/boot/dts/ti/k3-am65-main.dtsi @@ -1013,9 +1013,10 @@ dss: dss@4a00000 { <0x0 0x04a07000 0x0 0x1000>, /* ovr1 */ <0x0 0x04a08000 0x0 0x1000>, /* ovr2 */ <0x0 0x04a0a000 0x0 0x1000>, /* vp1 */ - <0x0 0x04a0b000 0x0 0x1000>; /* vp2 */ + <0x0 0x04a0b000 0x0 0x1000>, /* vp2 */ + <0x0 0x04a01000 0x0 0x1000>; /* common1 */ reg-names =3D "common", "vidl1", "vid", - "ovr1", "ovr2", "vp1", "vp2"; + "ovr1", "ovr2", "vp1", "vp2", "common1"; =20 ti,am65x-oldi-io-ctrl =3D <&dss_oldi_io_ctrl>; =20 --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 01897137758; Sun, 24 Mar 2024 23:05: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=1711321520; cv=none; b=D0JjSuIS2DyHZstSEXK9/7rmbTDCYinBYkzRYyxmdt7lMIppGRkVQ3iHOatXlX1ShVvdDIWeWb6p3+qxnuXZ/fpamKPOwYZeFI9oTzbwEXvffZBFNWV/To/LiV3kFNSp60Q4+nlxYhmYLd0DFHMBaJYpc59MgCMu0Po027wlAVY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321520; c=relaxed/simple; bh=5W25tBCsJNoKUVIgqMhNPlMepXpG4H0pEB0O1W0SAxU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=hbGXTVVhs+Yq4iwubOzAAcAj6gwzP+NdVZX6JsAMghRPDCjKBewehpKvT4C/i+H+tMWf/6IJ/JpXovHbeaf1/dN3XKRI5BDU9Tnzl8/eCCftoCfRRsZZaDX+ZUlRGtfsqoJKFnCgHqgQOLXouMmYUiD/PXYvY6WOe/kHlWbplfs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Xmxp02pA; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Xmxp02pA" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 14F07C43394; Sun, 24 Mar 2024 23:05:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321519; bh=5W25tBCsJNoKUVIgqMhNPlMepXpG4H0pEB0O1W0SAxU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Xmxp02pABNsH5pVOFv0od8tDJlik/TZiRYbGBOjsozmU8AG+5UwShF9s4sr7UPUiQ mMtwBVHoUr+QKxZDlvAJrkP8fMaefMWdFMZRMj3yFXyC6b48o1tCQdszFFBIcAHXgi A5+1NePDFqwux0a2GAcd5oLVFOo6tC+iuNb2k8uxYLdUe4ZgGGiAMfiPdfG5MpYVn8 /RC2IlJDK4Pb2QV9SVKD/vWsfLHbQ9BVO0DK8uaK+V7824ccHXqeOyelK2owHyXhZY nM1+qEdlkkLTXh/C2REAFEYpep+pkEMT5qCRDT4ehVu5Y9ddzhkpTMSm+VMmEdHh02 J2eapeF7E12IA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Devarsh Thakkar , Tomi Valkeinen , Aradhya Bhatia , Vignesh Raghavendra , Sasha Levin Subject: [PATCH 6.6 246/638] arm64: dts: ti: Add common1 register space for AM62x SoC Date: Sun, 24 Mar 2024 18:54:43 -0400 Message-ID: <20240324230116.1348576-247-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Devarsh Thakkar [ Upstream commit 7d8ee2c3b8a2aabb9ce75795bad20773bfe1ba13 ] This adds common1 register space for AM62x SoC which is using TI's Keystone display hardware and supporting it as described in Documentation/devicetree/bindings/display/ti/ti,am65x-dss.yaml Fixes: 8ccc1073c7bb ("arm64: dts: ti: k3-am62-main: Add node for DSS") Signed-off-by: Devarsh Thakkar Reviewed-by: Tomi Valkeinen Reviewed-by: Aradhya Bhatia Link: https://lore.kernel.org/r/20240216062426.4170528-4-devarsht@ti.com Signed-off-by: Vignesh Raghavendra Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/ti/k3-am62-main.dtsi | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/arch/arm64/boot/dts/ti/k3-am62-main.dtsi b/arch/arm64/boot/dts= /ti/k3-am62-main.dtsi index 6d125c86c2d35..a9b47ab92a02c 100644 --- a/arch/arm64/boot/dts/ti/k3-am62-main.dtsi +++ b/arch/arm64/boot/dts/ti/k3-am62-main.dtsi @@ -747,9 +747,10 @@ dss: dss@30200000 { <0x00 0x30207000 0x00 0x1000>, /* ovr1 */ <0x00 0x30208000 0x00 0x1000>, /* ovr2 */ <0x00 0x3020a000 0x00 0x1000>, /* vp1: Used for OLDI */ - <0x00 0x3020b000 0x00 0x1000>; /* vp2: Used as DPI Out */ + <0x00 0x3020b000 0x00 0x1000>, /* vp2: Used as DPI Out */ + <0x00 0x30201000 0x00 0x1000>; /* common1 */ reg-names =3D "common", "vidl1", "vid", - "ovr1", "ovr2", "vp1", "vp2"; + "ovr1", "ovr2", "vp1", "vp2", "common1"; power-domains =3D <&k3_pds 186 TI_SCI_PD_EXCLUSIVE>; clocks =3D <&k3_clks 186 6>, <&dss_vp1_clk>, --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F323B137769; Sun, 24 Mar 2024 23:05: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=1711321522; cv=none; b=nxz+f8MXU99cwgPhxWKfUf5yhRnOouxdLBYjb4wYm42cQgJExUIdRIeQdWr1TQoqhIdEN8TAczCvt2lMK5ZzngbYiaFiJRz2GrjbhpcLPMc0G+c7ZoSpBWO2dO8h1E523n2yk/60po+3F/ZnLnOF0mL8RiUWE8i3wTiFFRiUt5U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321522; c=relaxed/simple; bh=W+vSHSS1I2tFPRYqKmbBYM9lrczidUOc7amNlVk6rGI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=gybJBUsartW9wmaJ8+yKT/IkemuwBc7x7z7/m46ntJy82vIH8a0hWOUDpz4dhHPfMEOK1W09TmGkzuAsBokec8eiKxXVAQnlJnzWZitdvaKIQgFH2Rm1dWgYg5K3jAgrMoh2EaUSYZFyf/av/m0Czw0zeKIICejOWxK7IUl+OCs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Ut8nuO7p; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Ut8nuO7p" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 25DFAC433C7; Sun, 24 Mar 2024 23:05:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321520; bh=W+vSHSS1I2tFPRYqKmbBYM9lrczidUOc7amNlVk6rGI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Ut8nuO7pAnKWbIQziYusto9WyWHMAr9yLtYfiyDTRMSUT5MeetPrXFyRgb7SMAa6Z lQOSuQQtAPQajmBdM0wi8+sexk7HYypdwibdjECLbtOUgL6tHsUxHDnqbgkF1Q3UFZ +y3b+fm9J29bxXrkRZZhYqh3NLl6X0fSShQHbx6k11o1LtCY3xff6zMF4/tn00m4+q 3c7NMU9wfKnpnybQDMYUOjzHBD5vhbbNMWHHZM60C/uxEtpMRhqnjbp112iWrdy0jx /kmQF3bGHsz1QlnlSCXDSVD5GDgwgZuSTFU5rNKSbSW1fHYDfbeMZfA/zsmnvMzFHx ageUheoROqc7w== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Andre Przywara , Cristian Marussi , Sudeep Holla , Sasha Levin Subject: [PATCH 6.6 247/638] firmware: arm_scmi: Fix double free in SMC transport cleanup path Date: Sun, 24 Mar 2024 18:54:44 -0400 Message-ID: <20240324230116.1348576-248-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Andre Przywara [ Upstream commit f1d71576d2c9ec8fdb822173fa7f3de79475e9bd ] When the generic SCMI code tears down a channel, it calls the chan_free callback function, defined by each transport. Since multiple protocols might share the same transport_info member, chan_free() might want to clean up the same member multiple times within the given SCMI transport implementation. In this case, it is SMC transport. This will lead to a NULL pointer dereference at the second time: | scmi_protocol scmi_dev.1: Enabled polling mode TX channel - prot_id:16 | arm-scmi firmware:scmi: SCMI Notifications - Core Enabled. | arm-scmi firmware:scmi: unable to communicate with SCMI | Unable to handle kernel NULL pointer dereference at virtual address 0= 000000000000000 | Mem abort info: | ESR =3D 0x0000000096000004 | EC =3D 0x25: DABT (current EL), IL =3D 32 bits | SET =3D 0, FnV =3D 0 | EA =3D 0, S1PTW =3D 0 | FSC =3D 0x04: level 0 translation fault | Data abort info: | ISV =3D 0, ISS =3D 0x00000004, ISS2 =3D 0x00000000 | CM =3D 0, WnR =3D 0, TnD =3D 0, TagAccess =3D 0 | GCS =3D 0, Overlay =3D 0, DirtyBit =3D 0, Xs =3D 0 | user pgtable: 4k pages, 48-bit VAs, pgdp=3D0000000881ef8000 | [0000000000000000] pgd=3D0000000000000000, p4d=3D0000000000000000 | Internal error: Oops: 0000000096000004 [#1] PREEMPT SMP | Modules linked in: | CPU: 4 PID: 1 Comm: swapper/0 Not tainted 6.7.0-rc2-00124-g455ef3d016= c9-dirty #793 | Hardware name: FVP Base RevC (DT) | pstate: 61400009 (nZCv daif +PAN -UAO -TCO +DIT -SSBS BTYPE=3D--) | pc : smc_chan_free+0x3c/0x6c | lr : smc_chan_free+0x3c/0x6c | Call trace: | smc_chan_free+0x3c/0x6c | idr_for_each+0x68/0xf8 | scmi_cleanup_channels.isra.0+0x2c/0x58 | scmi_probe+0x434/0x734 | platform_probe+0x68/0xd8 | really_probe+0x110/0x27c | __driver_probe_device+0x78/0x12c | driver_probe_device+0x3c/0x118 | __driver_attach+0x74/0x128 | bus_for_each_dev+0x78/0xe0 | driver_attach+0x24/0x30 | bus_add_driver+0xe4/0x1e8 | driver_register+0x60/0x128 | __platform_driver_register+0x28/0x34 | scmi_driver_init+0x84/0xc0 | do_one_initcall+0x78/0x33c | kernel_init_freeable+0x2b8/0x51c | kernel_init+0x24/0x130 | ret_from_fork+0x10/0x20 | Code: f0004701 910a0021 aa1403e5 97b91c70 (b9400280) | ---[ end trace 0000000000000000 ]--- Simply check for the struct pointer being NULL before trying to access its members, to avoid this situation. This was found when a transport doesn't really work (for instance no SMC service), the probe routines then tries to clean up, and triggers a crash. Signed-off-by: Andre Przywara Fixes: 1dc6558062da ("firmware: arm_scmi: Add smc/hvc transport") Reviewed-by: Cristian Marussi Link: https://lore.kernel.org/r/20240126122325.2039669-1-andre.przywara@arm= .com Signed-off-by: Sudeep Holla Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/firmware/arm_scmi/smc.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/firmware/arm_scmi/smc.c b/drivers/firmware/arm_scmi/sm= c.c index c193516a254d9..771797b6e2680 100644 --- a/drivers/firmware/arm_scmi/smc.c +++ b/drivers/firmware/arm_scmi/smc.c @@ -196,6 +196,13 @@ static int smc_chan_free(int id, void *p, void *data) struct scmi_chan_info *cinfo =3D p; struct scmi_smc *scmi_info =3D cinfo->transport_info; =20 + /* + * Different protocols might share the same chan info, so a previous + * smc_chan_free call might have already freed the structure. + */ + if (!scmi_info) + return 0; + /* Ignore any possible further reception on the IRQ path */ if (scmi_info->irq > 0) free_irq(scmi_info->irq, scmi_info); --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F1C0B137767; Sun, 24 Mar 2024 23:05: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=1711321522; cv=none; b=hIOGzpNGNZvohVOQXzgyI8a+3C02Br4WOjsNNz6WnG2cHp7P2bzPI/Qm8JJcnduwkX8b5ACxgsiPIiKU976Z56VZA/moH5PPJIFWzaVrp+N1oJt0ZS4VZhs89NZnAWxjCjcdIObAaeR00etUFG2XHURNNGAlTFnYVm10swhhb0M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321522; c=relaxed/simple; bh=qgjDD4+v1GbaGVNaQ8KO5jjN0cQJtYQc3ceXmRvpMAo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=u38dsaaUyCVI3krKTKR9kbtQeadr3hl/UJMtIkaFd2bVWbx6eYXJ3UVWohL10cf6YSeN9WtBAtUvkPL4BRDiykp8STKw5eUcnkH/HX90oISD1ZJjyIhY2NPg/kZYJPGwUCsjfM07ErP+4ErUrljG4p48OMH/kghAlo94FkJ7OnY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=CxXFbDgR; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="CxXFbDgR" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 21EA7C43390; Sun, 24 Mar 2024 23:05:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321521; bh=qgjDD4+v1GbaGVNaQ8KO5jjN0cQJtYQc3ceXmRvpMAo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=CxXFbDgRudVaVnppYLjuLd6g9DKTdeTeSLLRHdCLjbz1v8K3rJI/T0SQIYr+kdyuP ENPtIW8n7s1iQbsmlb7BOWPqSNaQ3gZwximoeMVD04Iv+QjvdVbHDTYZLHF4VkoycL kMqhYWF0FA94EDTAkHkOCiykAGH1B26o2g18YOxmBU2714+Dmp44TcOP6XGuC5uFKv 0szWswsqQ9OHlowgweJqVuQ9ysN6q4f/bVjTiyRj+KmzeHgBp+bCUk5/r5WT2g6qxG dT3pNVEzEOy4ciA6hU5JHKH4p/dmVVvBpAq783w2mkYa12a/qPJp8DV9WppP3Tg297 an0bHbAWRUKPg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jai Luthra , Vaishnav Achath , Vignesh Raghavendra , Sasha Levin Subject: [PATCH 6.6 248/638] arm64: dts: ti: k3-am62p: Fix memory ranges for DMSS Date: Sun, 24 Mar 2024 18:54:45 -0400 Message-ID: <20240324230116.1348576-249-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Jai Luthra [ Upstream commit 90a67583171f213711de662fab9f8d24a2d291a9 ] The INTR module for DMASS1 (CSI specific DMASS) is outside the currently available ranges, as it starts at 0x4e400000. So fix the ranges property to enable programming the interrupts correctly. Fixes: 29075cc09f43 ("arm64: dts: ti: Introduce AM62P5 family of SoCs") Reviewed-by: Vaishnav Achath Signed-off-by: Jai Luthra Link: https://lore.kernel.org/r/20240220-am62p_csi-v2-1-3e71d9945571@ti.com Signed-off-by: Vignesh Raghavendra Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/ti/k3-am62p.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/ti/k3-am62p.dtsi b/arch/arm64/boot/dts/ti/= k3-am62p.dtsi index 294ab73ec98b7..dc0a8e94e9ace 100644 --- a/arch/arm64/boot/dts/ti/k3-am62p.dtsi +++ b/arch/arm64/boot/dts/ti/k3-am62p.dtsi @@ -71,7 +71,7 @@ cbass_main: bus@f0000 { <0x00 0x43600000 0x00 0x43600000 0x00 0x00010000>, /* SA3 sproxy data = */ <0x00 0x44043000 0x00 0x44043000 0x00 0x00000fe0>, /* TI SCI DEBUG */ <0x00 0x44860000 0x00 0x44860000 0x00 0x00040000>, /* SA3 sproxy confi= g */ - <0x00 0x48000000 0x00 0x48000000 0x00 0x06400000>, /* DMSS */ + <0x00 0x48000000 0x00 0x48000000 0x00 0x06408000>, /* DMSS */ <0x00 0x60000000 0x00 0x60000000 0x00 0x08000000>, /* FSS0 DAT1 */ <0x00 0x70000000 0x00 0x70000000 0x00 0x00010000>, /* OCSRAM */ <0x01 0x00000000 0x01 0x00000000 0x00 0x00310000>, /* A53 PERIPHBASE */ --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1538313776A; Sun, 24 Mar 2024 23:05: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=1711321524; cv=none; b=YVoariFAZB54Sxg+M3nG7vC6EdXr+YXwgaGU6yRgxnl3v3YEQEdwGujMBba7kd8/hlE/yMd0nLLYSvDPxAFkwogA71FWPV3Gd22bN55ky1BpY8aYKUY08SIbrr0ee89Vemnhes/dFijZTLZE4BNS+AzvrX3FrXFbeZlmOJTOGGM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321524; c=relaxed/simple; bh=IIAH9R+wJulgFrXMraygEhGyRL+cuXpt2/Ip4olD4X8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=l20Q6260fjDQjdEhPr1s/vYryxZ/pesqddHxJ2MeV/Psz1a3MTZr4Epq4jN7NCN6SXvIR2950LBzktLThqw1wPfpw+A4Cft8rwAy6Au0vTtDVB8veWOqG+W6qkW9DPkHRri5z0OrkahVBUI8PnmmSX3miI6Ye2m6U5audBrINzg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=RwLnOb3j; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="RwLnOb3j" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 21986C433C7; Sun, 24 Mar 2024 23:05:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321523; bh=IIAH9R+wJulgFrXMraygEhGyRL+cuXpt2/Ip4olD4X8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=RwLnOb3j1sEEhEaciC6xziDk6KIcsc0mC5ZAvSz5qapLubIgnFPh1/DZp69Vlf0s/ yae2CuxgfQQFhy2D58MaR5KTYN1aW1BW5ttlRwgmjRepRN3zBpSv7hP98DyoM/tCgJ wRh80mJwcjEmAi5O3vWbz96/4RqvaU2rM3iUE9q0jhEHvq6c5kf/MkaKoQWHDnQyCJ xo11Q/98/ocU4GKFNOEG/hp/bQILyCbpMursjrtIMmc1ehKdCUs8x1kCutieBJf3pj q7Ym8Ih2/OGT88GZk2FMMlBfcCgNjRGjOtmwGDq+Ytbu1G4sg2/Q9cKgnt6NeMEEKk TqAsR5U8/JP8w== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?Alexis=20Lothor=C3=A9?= , Conor Dooley , Ajay Singh , Kalle Valo , Sasha Levin Subject: [PATCH 6.6 249/638] wifi: wilc1000: revert reset line logic flip Date: Sun, 24 Mar 2024 18:54:46 -0400 Message-ID: <20240324230116.1348576-250-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-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 f3ec643947634bed41b97bd56b248f7c78498eab ] This reverts commit fcf690b0b47494df51d214db5c5a714a400b0257. When using a wilc1000 chip over a spi bus, users can optionally define a reset gpio and a chip enable gpio. The reset line of wilc1000 is active low, so to hold the chip in reset, a low (physical) value must be applied. The corresponding device tree binding documentation was introduced by commit f31ee3c0a555 ("wilc1000: Document enable-gpios and reset-gpios properties") and correctly indicates that the reset line is an active-low signal. The corresponding driver part, brought by commit ec031ac4792c ("wilc1000: Add reset/enable GPIO support to SPI driver") was applying the correct logic. But commit fcf690b0b474 ("wifi: wilc1000: use correct sequence of RESET for chip Power-UP/Down") eventually flipped this logic and started misusing the gpiod APIs, applying an inverted logic when powering up/down the chip (for example, setting the reset line to a logic "1" during power up, which in fact asserts the reset line when device tree describes the reset line as GPIO_ACTIVE_LOW). As a consequence, any platform currently using the driver in SPI mode must use a faulty reset line description in device tree, or else chip will be maintained in reset and will not even allow to bring up the chip. Fix reset line usage by inverting back the gpiod APIs usage, setting the reset line to the logic value "0" when powering the chip, and the logic value "1" when powering off the chip. Fixes: fcf690b0b474 ("wifi: wilc1000: use correct sequence of RESET for chi= p Power-UP/Down") Signed-off-by: Alexis Lothor=C3=A9 Acked-by: Conor Dooley Acked-by: Ajay Singh Signed-off-by: Kalle Valo Link: https://msgid.link/20240217-wilc_1000_reset_line-v2-1-b216f433d7d5@bo= otlin.com Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/net/wireless/microchip/wilc1000/spi.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/net/wireless/microchip/wilc1000/spi.c b/drivers/net/wi= reless/microchip/wilc1000/spi.c index 77b4cdff73c37..4cf8586ed55ae 100644 --- a/drivers/net/wireless/microchip/wilc1000/spi.c +++ b/drivers/net/wireless/microchip/wilc1000/spi.c @@ -192,11 +192,11 @@ static void wilc_wlan_power(struct wilc *wilc, bool o= n) /* assert ENABLE: */ gpiod_set_value(gpios->enable, 1); mdelay(5); - /* assert RESET: */ - gpiod_set_value(gpios->reset, 1); - } else { /* deassert RESET: */ gpiod_set_value(gpios->reset, 0); + } else { + /* assert RESET: */ + gpiod_set_value(gpios->reset, 1); /* deassert ENABLE: */ gpiod_set_value(gpios->enable, 0); } --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EDC611E8E58; Sun, 24 Mar 2024 23:05: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=1711321525; cv=none; b=JkGqaGvLxK/L42VGV0R/vnbJ8MU2HZzsMXsWhTtU4VRUFCsW38crsGZAAUhB8L6j/WWkVzN4jG9yZLuq29cx/H47oiiUfl0zpOkyT4Vq4HBkjD/QiHRH6v0TbIce4zf0Ir0vSOur1wQh8BP5Ad0MCdCdOoOoivh/IgC8hQiOPGE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321525; c=relaxed/simple; bh=YKVcdpL5+OrlaJ4q8k+EUbtblJGBjMh/yaBxJ7pH7dk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=S55Du/kX6YLgMvKS3dSwz6+XIJdxF6V/aVezEaW1bkGtbKI+3JkyktJqpD6CbvkMH6xBFURK16totd7ljnP/o4komvSPOJsQzvJ/lZe/LAwIcfxxiMgepmMUc8bnNeylREE5D1TGSa+yqdXZkvKqyEfZEQVNDFSU9IY11AyixPU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=eDuHfAOr; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="eDuHfAOr" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 38485C433F1; Sun, 24 Mar 2024 23:05:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321523; bh=YKVcdpL5+OrlaJ4q8k+EUbtblJGBjMh/yaBxJ7pH7dk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=eDuHfAOrPS30Gd+qlxqu2n85Hlki9OsZokjbzWUwA482Ysc0mIJcu0qMCn/bVa53f 7HVszLob8bNizWcteq+kCnTOLxGQo7pBetJcaR3sJ9LTJd1ZygfH+x8fAcyikpd+TG GNiFPhUfJ2lE0aqJb9t3ijFpKP4hfySDxnCkMMANylzznMZR42Cs6abDlz311W9YjQ S45/cBTGzW168rXceo48xdXbQ4P/qzpT1ITthrMcbqsV22pfgckPgwoMF2WtaRdxah SgTdffB+Rf+jxxtop39PabiYi81T2/aqtKKNJNZsFsGHATTHTH/8sWkoAKx/CRO+cs qpgL3v3Aa/fFA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Geert Uytterhoeven , Linus Walleij , Sasha Levin Subject: [PATCH 6.6 250/638] ARM: dts: arm: realview: Fix development chip ROM compatible value Date: Sun, 24 Mar 2024 18:54:47 -0400 Message-ID: <20240324230116.1348576-251-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- arch/arm/boot/dts/arm/arm-realview-pb1176.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/arm/arm-realview-pb1176.dts b/arch/arm/boot/= dts/arm/arm-realview-pb1176.dts index efed325af88d2..d99bac02232b3 100644 --- a/arch/arm/boot/dts/arm/arm-realview-pb1176.dts +++ b/arch/arm/boot/dts/arm/arm-realview-pb1176.dts @@ -451,7 +451,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1CC6A1350E3; Sun, 24 Mar 2024 23:05: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=1711321525; cv=none; b=OInW74bscTYPDbcX1aU8Nv9EtYckjb1tLsZYMsljMStqapIsHsEAeW3k2mxjqQjCUSIMne5075WM11qYh+Yz6GqSNjWrLmoBPu8NdyCRqX+rQe2IlhoxF/36p4w42u+0qpIawml+mY0d5a65SPhM7sERLc1LjX2UPZlbTm77PEA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321525; c=relaxed/simple; bh=/a1WHaJ3M+aXmVmWxz7JExxl6J9UcQdq0czcxVxW7vw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=U2jKerM8NJEmkFv3QcrEhr46GpM1wuqdYiJJr4MXh8teKjOUzaHetzx3KdduFQEA+nzIAkYTgf6/HiS+LEAlCeGBOx7k8Al8xguHZ5oqwt5rHRc8H52lzS9JdIM1zf9znWbwUzC5PFPZMlUtR7/oI1JPb3eEqzjIKRNzHcUzP98= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=CiGFJYGN; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="CiGFJYGN" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1D13DC43399; Sun, 24 Mar 2024 23:05:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321524; bh=/a1WHaJ3M+aXmVmWxz7JExxl6J9UcQdq0czcxVxW7vw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=CiGFJYGNBZFfXCKcIQtg4QA7lixdN9YbI2/+Vn7cxyk8TnoX/2bY0YpZal75FDRRB KEDKHWAufQnahHMQLzvdABwZaZ4uSZZx6l7jMXmVIGGButM4Tqzp2/i6ElxNHXSH8B sPlfW5sWMakVNAm3oU0YhG9pgiIYnPQbNf+V0TSqcJsybTFRLbnjtROoMmS79l+Fmj L02YuIO5RYxZgBMX8qW9rpnUUFIVuJWWXbm3TsUsrNjh3PlBJ2y9SaXLN4H1ENoNiE L3Qk4VsE56kXa1tXj2OBSGHq3sSEv5Yk0W1HHQmBuhSQ0w+7qommOoNiTnD1/+LcWy atAYDbHolDXTA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jon Hunter , Krzysztof Kozlowski , Sasha Levin Subject: [PATCH 6.6 251/638] memory: tegra: Correct DLA client names Date: Sun, 24 Mar 2024 18:54:48 -0400 Message-ID: <20240324230116.1348576-252-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Jon Hunter [ Upstream commit 51d915cbeef4c7a154f5d810b1e10d8125f2b0cc ] Some of the names for the Tegra234 DLA clients are not unique and do not align with the name of the client ID definitions. Therefore, it is not possible to determine the exact DLA client from messages that print the client name. Fix this by correcting the DLA memory client names for Tegra234 to align with the name of the corresponding memory client ID. Note that although the client names are also used by the interconnect framework, interconnect support for the DLA clients has not been added and so this issue does not impact the interconnect support. Fixes: 5cd24ca0985f ("memory: tegra: Add DLA clients for Tegra234") Signed-off-by: Jon Hunter Link: https://lore.kernel.org/r/20240220124430.19072-1-jonathanh@nvidia.com Signed-off-by: Krzysztof Kozlowski Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/memory/tegra/tegra234.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/memory/tegra/tegra234.c b/drivers/memory/tegra/tegra23= 4.c index 2845041f32d69..fa40c49b070d0 100644 --- a/drivers/memory/tegra/tegra234.c +++ b/drivers/memory/tegra/tegra234.c @@ -121,7 +121,7 @@ static const struct tegra_mc_client tegra234_mc_clients= [] =3D { }, }, { .id =3D TEGRA234_MEMORY_CLIENT_DLA1RDB, - .name =3D "dla0rdb", + .name =3D "dla1rdb", .sid =3D TEGRA234_SID_NVDLA1, .regs =3D { .sid =3D { @@ -407,7 +407,7 @@ static const struct tegra_mc_client tegra234_mc_clients= [] =3D { }, }, { .id =3D TEGRA234_MEMORY_CLIENT_DLA1RDB1, - .name =3D "dla0rdb1", + .name =3D "dla1rdb1", .sid =3D TEGRA234_SID_NVDLA1, .regs =3D { .sid =3D { @@ -417,7 +417,7 @@ static const struct tegra_mc_client tegra234_mc_clients= [] =3D { }, }, { .id =3D TEGRA234_MEMORY_CLIENT_DLA1WRB, - .name =3D "dla0wrb", + .name =3D "dla1wrb", .sid =3D TEGRA234_SID_NVDLA1, .regs =3D { .sid =3D { @@ -663,7 +663,7 @@ static const struct tegra_mc_client tegra234_mc_clients= [] =3D { }, }, { .id =3D TEGRA234_MEMORY_CLIENT_DLA1RDA, - .name =3D "dla0rda", + .name =3D "dla1rda", .sid =3D TEGRA234_SID_NVDLA1, .regs =3D { .sid =3D { @@ -673,7 +673,7 @@ static const struct tegra_mc_client tegra234_mc_clients= [] =3D { }, }, { .id =3D TEGRA234_MEMORY_CLIENT_DLA1FALRDB, - .name =3D "dla0falrdb", + .name =3D "dla1falrdb", .sid =3D TEGRA234_SID_NVDLA1, .regs =3D { .sid =3D { @@ -683,7 +683,7 @@ static const struct tegra_mc_client tegra234_mc_clients= [] =3D { }, }, { .id =3D TEGRA234_MEMORY_CLIENT_DLA1WRA, - .name =3D "dla0wra", + .name =3D "dla1wra", .sid =3D TEGRA234_SID_NVDLA1, .regs =3D { .sid =3D { @@ -693,7 +693,7 @@ static const struct tegra_mc_client tegra234_mc_clients= [] =3D { }, }, { .id =3D TEGRA234_MEMORY_CLIENT_DLA1FALWRB, - .name =3D "dla0falwrb", + .name =3D "dla1falwrb", .sid =3D TEGRA234_SID_NVDLA1, .regs =3D { .sid =3D { @@ -857,7 +857,7 @@ static const struct tegra_mc_client tegra234_mc_clients= [] =3D { }, }, { .id =3D TEGRA234_MEMORY_CLIENT_DLA1RDA1, - .name =3D "dla0rda1", + .name =3D "dla1rda1", .sid =3D TEGRA234_SID_NVDLA1, .regs =3D { .sid =3D { --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C5BA31514C4; Sun, 24 Mar 2024 23:05: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=1711321526; cv=none; b=XET+JkN9FqVUREw2bfXmRnog1qkXIb46Vxjq1pJue92xeTXEW4qp9Qtp0g7MhHxp1ogMyVYC6QkiEL0gXO8pdUUtkqsER7f0IY51jZgTJXxSO6jMeNRsRxUO2X/h1lbXO1UYjuErWxR4Zqy4lCsufr11ydfxyiyWc/T/pBcGO4Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321526; c=relaxed/simple; bh=HLcs4XIl7/cVvj62X5G73Fk/Tnj+aiSkM7qcUcob1Ag=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=l/tEkmn9sujnaZs2RV4Xktb2JvOlENfV0vqDK8WG4NTSFg2812pFxT87trJ478CdhP1A4ntRjIvXGWV9HEW05pj1vuYxkn1w0wsbzZsTfDVr9DespWE9JriTYtEenOhRhP7bSoElQ2LCZVlalSmHmGuZbH3CVBhAd887p/BFEFg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=GmU4ZSGF; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="GmU4ZSGF" Received: by smtp.kernel.org (Postfix) with ESMTPSA id F1A6BC43390; Sun, 24 Mar 2024 23:05:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321525; bh=HLcs4XIl7/cVvj62X5G73Fk/Tnj+aiSkM7qcUcob1Ag=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=GmU4ZSGFBenAYUBZh/NmSzOrxB0lZBEmoKQqCesvR83fX9KT/phJas0shXAPSajmm D0fbrKPgWT4KYAYJxhRdULnQkbdw5y19yYFH8JuRpz/wGlDXy7yJi1spNIuPVfASKo 8Yw7QVUrvOD7AqFNsOTn2F5oEQaHTnLI9Y4Nz+dyyLAXs6pqDpRmJFkmZHZ/sACkBo zpBuDKqD7V8KkZS+x/7KFNYFzK1oopfci9wrqi9WgXwDaMvm+54t6lf7XOnsqD5DNx LOTidQO9eCBEFiKp18nWPvUZIMgYmZr/6gqI/1K4teU0kk/o+az372DK8pCtDy81dw rNZX7Kf+wBp5g== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Peter Chiu , Shayne Chen , Felix Fietkau , Sasha Levin Subject: [PATCH 6.6 252/638] wifi: mt76: mt7996: fix TWT issues Date: Sun, 24 Mar 2024 18:54:49 -0400 Message-ID: <20240324230116.1348576-253-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Chiu [ Upstream commit 5c832c228f6a7ba7e900c5296ce0fb3844bafec5 ] This patch fixes the following TWT issues: - Change table_mask to u16 to support up to 16 TWT stations - Reject TWT flows for duplicated establishment - Fix possible unaligned pointer - Remove unsupported TWT_CONTROL_WAKE_DUR_UNIT flag - The minimum TWT duration supported by mt7996 chipsets is 64. Reply with TWT_SETUP_CMD_DICTATE if the min_twt_dur is smaller than 64 Fixes: 98686cd21624 ("wifi: mt76: mt7996: add driver for MediaTek Wi-Fi 7 (= 802.11be) devices") Signed-off-by: Peter Chiu Signed-off-by: Shayne Chen Signed-off-by: Felix Fietkau Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- .../net/wireless/mediatek/mt76/mt7996/mac.c | 53 ++++++++++++++++--- .../wireless/mediatek/mt76/mt7996/mt7996.h | 3 +- 2 files changed, 47 insertions(+), 9 deletions(-) diff --git a/drivers/net/wireless/mediatek/mt76/mt7996/mac.c b/drivers/net/= wireless/mediatek/mt76/mt7996/mac.c index 26d5675202ba9..b0d0ae5080e82 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7996/mac.c +++ b/drivers/net/wireless/mediatek/mt76/mt7996/mac.c @@ -2433,6 +2433,34 @@ static int mt7996_mac_check_twt_req(struct ieee80211= _twt_setup *twt) return 0; } =20 +static bool +mt7996_mac_twt_param_equal(struct mt7996_sta *msta, + struct ieee80211_twt_params *twt_agrt) +{ + u16 type =3D le16_to_cpu(twt_agrt->req_type); + u8 exp; + int i; + + exp =3D FIELD_GET(IEEE80211_TWT_REQTYPE_WAKE_INT_EXP, type); + for (i =3D 0; i < MT7996_MAX_STA_TWT_AGRT; i++) { + struct mt7996_twt_flow *f; + + if (!(msta->twt.flowid_mask & BIT(i))) + continue; + + f =3D &msta->twt.flow[i]; + if (f->duration =3D=3D twt_agrt->min_twt_dur && + f->mantissa =3D=3D twt_agrt->mantissa && + f->exp =3D=3D exp && + f->protection =3D=3D !!(type & IEEE80211_TWT_REQTYPE_PROTECTION) && + f->flowtype =3D=3D !!(type & IEEE80211_TWT_REQTYPE_FLOWTYPE) && + f->trigger =3D=3D !!(type & IEEE80211_TWT_REQTYPE_TRIGGER)) + return true; + } + + return false; +} + void mt7996_mac_add_twt_setup(struct ieee80211_hw *hw, struct ieee80211_sta *sta, struct ieee80211_twt_setup *twt) @@ -2444,8 +2472,7 @@ void mt7996_mac_add_twt_setup(struct ieee80211_hw *hw, enum ieee80211_twt_setup_cmd sta_setup_cmd; struct mt7996_dev *dev =3D mt7996_hw_dev(hw); struct mt7996_twt_flow *flow; - int flowid, table_id; - u8 exp; + u8 flowid, table_id, exp; =20 if (mt7996_mac_check_twt_req(twt)) goto out; @@ -2458,9 +2485,19 @@ void mt7996_mac_add_twt_setup(struct ieee80211_hw *h= w, if (hweight8(msta->twt.flowid_mask) =3D=3D ARRAY_SIZE(msta->twt.flow)) goto unlock; =20 + if (twt_agrt->min_twt_dur < MT7996_MIN_TWT_DUR) { + setup_cmd =3D TWT_SETUP_CMD_DICTATE; + twt_agrt->min_twt_dur =3D MT7996_MIN_TWT_DUR; + goto unlock; + } + + if (mt7996_mac_twt_param_equal(msta, twt_agrt)) + goto unlock; + flowid =3D ffs(~msta->twt.flowid_mask) - 1; - le16p_replace_bits(&twt_agrt->req_type, flowid, - IEEE80211_TWT_REQTYPE_FLOWID); + twt_agrt->req_type &=3D ~cpu_to_le16(IEEE80211_TWT_REQTYPE_FLOWID); + twt_agrt->req_type |=3D le16_encode_bits(flowid, + IEEE80211_TWT_REQTYPE_FLOWID); =20 table_id =3D ffs(~dev->twt.table_mask) - 1; exp =3D FIELD_GET(IEEE80211_TWT_REQTYPE_WAKE_INT_EXP, req_type); @@ -2507,10 +2544,10 @@ void mt7996_mac_add_twt_setup(struct ieee80211_hw *= hw, unlock: mutex_unlock(&dev->mt76.mutex); out: - le16p_replace_bits(&twt_agrt->req_type, setup_cmd, - IEEE80211_TWT_REQTYPE_SETUP_CMD); - twt->control =3D (twt->control & IEEE80211_TWT_CONTROL_WAKE_DUR_UNIT) | - (twt->control & IEEE80211_TWT_CONTROL_RX_DISABLED); + twt_agrt->req_type &=3D ~cpu_to_le16(IEEE80211_TWT_REQTYPE_SETUP_CMD); + twt_agrt->req_type |=3D + le16_encode_bits(setup_cmd, IEEE80211_TWT_REQTYPE_SETUP_CMD); + twt->control =3D twt->control & IEEE80211_TWT_CONTROL_RX_DISABLED; } =20 void mt7996_mac_twt_teardown_flow(struct mt7996_dev *dev, diff --git a/drivers/net/wireless/mediatek/mt76/mt7996/mt7996.h b/drivers/n= et/wireless/mediatek/mt76/mt7996/mt7996.h index 7354e5cf8e674..d5ef4137290db 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7996/mt7996.h +++ b/drivers/net/wireless/mediatek/mt76/mt7996/mt7996.h @@ -43,6 +43,7 @@ =20 #define MT7996_MAX_TWT_AGRT 16 #define MT7996_MAX_STA_TWT_AGRT 8 +#define MT7996_MIN_TWT_DUR 64 #define MT7996_MAX_QUEUE (__MT_RXQ_MAX + __MT_MCUQ_MAX + 3) =20 /* NOTE: used to map mt76_rates. idx may change if firmware expands table = */ @@ -237,7 +238,7 @@ struct mt7996_dev { struct rchan *relay_fwlog; =20 struct { - u8 table_mask; + u16 table_mask; u8 n_agrt; } twt; =20 --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CE2FF1514C6; Sun, 24 Mar 2024 23:05: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=1711321526; cv=none; b=aMuQBZbmSc8NiuAeUIBfojYrz7zOTlNI5+8QLwUJCGeNC0Md5i+ahfCm9txAyYDceP9a7AM8lkeCZzFUPxexzTmShtqZup9UuK7N9UtdO3uKGhhHgjAV27ZyqCXqJHbt3dei0WtTJZnYaRt/EgoUhvVvvumouuaByPwBdgyDmbQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321526; c=relaxed/simple; bh=slLq5ObvRkrF/vc8IVPcQgi3EKnkUlzKMWzIv72UzuM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=S5F3rX9ur8a93nzeS66wQ6lpsm77k7RbMsMVVqiQtJKt/bzD5++lFIVASzqEO1/4cEGxIQFl8Bz+sA9O67hjf3ZA+hLmCrGqr/ojMFMz/dsLh6DigCbm85JIYfECyDhIepOz6X6kYkLx4+LNfDN9zGpU9f4lq51Y6EYnTS3znO4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=tWaBatws; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="tWaBatws" Received: by smtp.kernel.org (Postfix) with ESMTPSA id EA1A0C433C7; Sun, 24 Mar 2024 23:05:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321526; bh=slLq5ObvRkrF/vc8IVPcQgi3EKnkUlzKMWzIv72UzuM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=tWaBatws6w6AXb55OgM8s9/O+5crA1QOoPlrveu1c2DqSaIJYgAWFLasfc5nwryum 9vpjjz2f0AaYx6AFweCvZjrDCG1zKEVkoJ525gSe/IaoyGiVevfOk9yFqefuPAwxjW drM2vVILw+8uZycfwb2BXnBdanCNBo+wX1D7kHNKqIgeFF5qYOj0uoPmJNj50vYUM6 JA71J8H08fl70lhPewGvyyrpz+t8NurMeLQnOjThzjpiO0HW+fAsW1aZHQYx64TswS OB90QHkykeNiFTKL4CyOLDG3aLIojK51gnQcg7lR/Kx/aFIjY1K1TWqbWuP0DXqv16 EPit23OOo9vZQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Benjamin Lin , Shayne Chen , Felix Fietkau , Sasha Levin Subject: [PATCH 6.6 253/638] wifi: mt76: mt7996: fix incorrect interpretation of EHT MCS caps Date: Sun, 24 Mar 2024 18:54:50 -0400 Message-ID: <20240324230116.1348576-254-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Benjamin Lin [ Upstream commit d52c97592f06552a4289008602b5d5b724084ba7 ] The EHT MCS map subfield of 20 MHz-Only is not present in the EHT capability of AP, so STA does not need to parse the subfield. Moreover, AP should parse the subfield only if STA is 20 MHz-Only, which can be confirmed by checking supported channel width in HE capability. Fixes: 92aa2da9fa49 ("wifi: mt76: mt7996: enable EHT support in firmware") Co-developed-by: Shayne Chen Signed-off-by: Shayne Chen Signed-off-by: Benjamin Lin Signed-off-by: Felix Fietkau Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/net/wireless/mediatek/mt76/mt7996/mcu.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/mediatek/mt76/mt7996/mcu.c b/drivers/net/= wireless/mediatek/mt76/mt7996/mcu.c index 7575d3506ea4e..650c43cb899f7 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7996/mcu.c +++ b/drivers/net/wireless/mediatek/mt76/mt7996/mcu.c @@ -1005,6 +1005,9 @@ mt7996_mcu_sta_he_6g_tlv(struct sk_buff *skb, struct = ieee80211_sta *sta) static void mt7996_mcu_sta_eht_tlv(struct sk_buff *skb, struct ieee80211_sta *sta) { + struct mt7996_sta *msta =3D (struct mt7996_sta *)sta->drv_priv; + struct ieee80211_vif *vif =3D container_of((void *)msta->vif, + struct ieee80211_vif, drv_priv); struct ieee80211_eht_mcs_nss_supp *mcs_map; struct ieee80211_eht_cap_elem_fixed *elem; struct sta_rec_eht *eht; @@ -1024,8 +1027,17 @@ mt7996_mcu_sta_eht_tlv(struct sk_buff *skb, struct i= eee80211_sta *sta) eht->phy_cap =3D cpu_to_le64(*(u64 *)elem->phy_cap_info); eht->phy_cap_ext =3D cpu_to_le64(elem->phy_cap_info[8]); =20 - if (sta->deflink.bandwidth =3D=3D IEEE80211_STA_RX_BW_20) - memcpy(eht->mcs_map_bw20, &mcs_map->only_20mhz, sizeof(eht->mcs_map_bw20= )); + if (vif->type !=3D NL80211_IFTYPE_STATION && + (sta->deflink.he_cap.he_cap_elem.phy_cap_info[0] & + (IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_40MHZ_IN_2G | + IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_40MHZ_80MHZ_IN_5G | + IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_160MHZ_IN_5G | + IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_80PLUS80_MHZ_IN_5G)) =3D=3D= 0) { + memcpy(eht->mcs_map_bw20, &mcs_map->only_20mhz, + sizeof(eht->mcs_map_bw20)); + return; + } + memcpy(eht->mcs_map_bw80, &mcs_map->bw._80, sizeof(eht->mcs_map_bw80)); memcpy(eht->mcs_map_bw160, &mcs_map->bw._160, sizeof(eht->mcs_map_bw160)); memcpy(eht->mcs_map_bw320, &mcs_map->bw._320, sizeof(eht->mcs_map_bw320)); --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BDB571514CC; Sun, 24 Mar 2024 23:05: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=1711321527; cv=none; b=o8oisPB5uKlbhKfkocEPP5klp8J8SV8aeekE+egfFI4GtVHBBhiIe2sbqc1PHw4PxaDJK7d7yMK8Db90be5l5dzQ0Dp4/jBIBQuAJ4NHHIflPl2DAXPwxEgWS4tmyv7nSigbhqSaAP4r20CB8h0Z8i/8TAvR3/mF+fE6aHhBj/Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321527; c=relaxed/simple; bh=nSr7b2uTkn/7dZtBoetN/blKXW6NY8/MtrK9mjN0nGo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=EksGhLJnl6a3fuMZfvg1EMZF50XZ9/HPN4M/LhEDzxGFztH+0FMjizAxelnCw8Rbz2SsyCX94GIvUYIA5ADxU1fR/unU9d0j60JmZQ3i9AEqhAq0tXx7/bTNJ3/annx+EQvEwTPMOeAv+bbK0+0gWCXfae1YKO7yKxacjRgs+aU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=m5V5JUN2; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="m5V5JUN2" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E6B63C43394; Sun, 24 Mar 2024 23:05:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321527; bh=nSr7b2uTkn/7dZtBoetN/blKXW6NY8/MtrK9mjN0nGo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=m5V5JUN25smPUD8e8efx/7z+ANOatWLUwYpL8R4GchYp3gPyo94gTdJ1d73UnykOg X3HC5zlhWQPN+rrObWe59dFfMMaIQdax5AkQRkQtB8KWadNzYj6mOdH3r+SAzC7NT7 FILXr4m3M2JmZjDH5z4S2Kp0dJIW1yxfmRFdHSRgD3FmXOJGKfOLl3tjp00CPWnOMb dMc/+ML1Gqw7JxF1Lh7H+yg2OrQNHq+GESHWoJOTeqwv6DJZ51SPN2A8m58pa283Y+ t02+ZF7h/X8g95cOdjsboQ8tukO9tLGMkJwFVj34e0SuzOM09wrHJeKEgPRXhIsLud rtXm3e7Cl4x3Q== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Howard Hsu , Shayne Chen , Felix Fietkau , Sasha Levin Subject: [PATCH 6.6 254/638] wifi: mt76: mt7996: fix HE beamformer phy cap for station vif Date: Sun, 24 Mar 2024 18:54:51 -0400 Message-ID: <20240324230116.1348576-255-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Howard Hsu [ Upstream commit e1a491e856a8a36c46b39ecd07f3bba5a119d83a ] Set correct beamformer capabilities for station vif in HE PHY capability IE. Fixes: 98686cd21624 ("wifi: mt76: mt7996: add driver for MediaTek Wi-Fi 7 (= 802.11be) devices") Signed-off-by: Howard Hsu Signed-off-by: Shayne Chen Signed-off-by: Felix Fietkau Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/net/wireless/mediatek/mt76/mt7996/init.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/mediatek/mt76/mt7996/init.c b/drivers/net= /wireless/mediatek/mt76/mt7996/init.c index 66d8cc0eeabee..e843d40df5bb4 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7996/init.c +++ b/drivers/net/wireless/mediatek/mt76/mt7996/init.c @@ -557,11 +557,12 @@ mt7996_set_stream_he_txbf_caps(struct mt7996_phy *phy, /* the maximum cap is 4 x 3, (Nr, Nc) =3D (3, 2) */ elem->phy_cap_info[7] |=3D min_t(int, sts - 1, 2) << 3; =20 - if (vif !=3D NL80211_IFTYPE_AP) + if (!(vif =3D=3D NL80211_IFTYPE_AP || vif =3D=3D NL80211_IFTYPE_STATION)) return; =20 elem->phy_cap_info[3] |=3D IEEE80211_HE_PHY_CAP3_SU_BEAMFORMER; - elem->phy_cap_info[4] |=3D IEEE80211_HE_PHY_CAP4_MU_BEAMFORMER; + if (vif =3D=3D NL80211_IFTYPE_AP) + elem->phy_cap_info[4] |=3D IEEE80211_HE_PHY_CAP4_MU_BEAMFORMER; =20 c =3D FIELD_PREP(IEEE80211_HE_PHY_CAP5_BEAMFORMEE_NUM_SND_DIM_UNDER_80MHZ= _MASK, sts - 1) | --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B5DD71514DA; Sun, 24 Mar 2024 23:05: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=1711321529; cv=none; b=GGKtjAX6UQhKYw8L1gG8U+ysr8lHWJx3epk953IGKBD1rDMx1SyjRU2TwxEN6wn2HCpeW4UTycguaJlWQYIS6f68GQW8FyhH8l41vovdTZjsyuou0rDIMgiAg2MF7kTAh6qt2xcUofvFzkMvK3N9cbjffCVwf/TZXXQTo7DSa2M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321529; c=relaxed/simple; bh=gG4NPeaHHJJjbHXioBGh7gKVMITJeUNeahrHehClb3U=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=WYkGo1Q6miM9DHO3a7QZPIzJXenPYX5iXaTURUDpsfmdH1E5Fw+kU0KYmQpI0teEzQ4sAN20tbRPQwJcmgfvcfzAFB1RmXnZo+fJv9VhBnfGNRLCBGOZEt45hICKPzCLhWJ9xyw3afzvTCXBMTuP3qI3YOXcelgaPk2USXVxlwU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=EMxCwyDa; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="EMxCwyDa" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E10FFC433C7; Sun, 24 Mar 2024 23:05:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321528; bh=gG4NPeaHHJJjbHXioBGh7gKVMITJeUNeahrHehClb3U=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=EMxCwyDaB6l8KERJ0ozR1tITGGx8y0IcMBZXfMqtZ6Dre/7yWJKmRCsv7Mn4sUDj+ mLiNftG6hGhfovf4nWkvBnqzaFV1H/JBGqNn1XxehBj95I23eXalQ0FCjoG/24kmdJ Q3R2zoL537Zi+QlL1Fpomj4eeO3fIwj5t8AN/bssd7IZq0Evym1ddb6xLMCHsMZEfo oTadtazCIpS39D/da0muHThjg+J6lqBpJ3ZezG0i1zTdeCVYK6xNigbCfFXELOLypf xeOtidrgDM7BYzdHXuaRQhVjpy1gTokMvO5eoUaxdUh3k5/jBUI64sZIU9UyOVCHPU zPCPzIcvoNM+A== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: StanleyYP Wang , Shayne Chen , Felix Fietkau , Sasha Levin Subject: [PATCH 6.6 255/638] wifi: mt76: mt7996: fix efuse reading issue Date: Sun, 24 Mar 2024 18:54:52 -0400 Message-ID: <20240324230116.1348576-256-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: StanleyYP Wang [ Upstream commit d3ad99be7cc2d174126d908addd6bea2b157aa75 ] The efuse data starts from the 48th bytes instead of 64th bytes in the returned event skb. Fixes: 98686cd21624 ("wifi: mt76: mt7996: add driver for MediaTek Wi-Fi 7 (= 802.11be) devices") Signed-off-by: StanleyYP Wang Signed-off-by: Shayne Chen Signed-off-by: Felix Fietkau Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/net/wireless/mediatek/mt76/mt7996/mcu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/wireless/mediatek/mt76/mt7996/mcu.c b/drivers/net/= wireless/mediatek/mt76/mt7996/mcu.c index 650c43cb899f7..b4ea7d0a7f5a0 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7996/mcu.c +++ b/drivers/net/wireless/mediatek/mt76/mt7996/mcu.c @@ -3100,7 +3100,7 @@ int mt7996_mcu_get_eeprom(struct mt7996_dev *dev, u32= offset) u32 addr =3D le32_to_cpu(*(__le32 *)(skb->data + 12)); u8 *buf =3D (u8 *)dev->mt76.eeprom.data + addr; =20 - skb_pull(skb, 64); + skb_pull(skb, 48); memcpy(buf, skb->data, MT7996_EEPROM_BLOCK_SIZE); } =20 --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B07CE1514E1; Sun, 24 Mar 2024 23:05: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=1711321530; cv=none; b=or+YRr3azBydzHSWTZpJBw8OR0XWxZN01nHpLGF7CgiepjeXih8GkLfDFORuDGNdQKz2MeCtkVjGHRhjoIsnIPZB5A7/sjJW+jc8GP4XniIGiaksTjy/nPny0cSSGT9SvpqCImfp+1x1hj3pa5oybhy8FaeWKhY7EZYN1TgEpBA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321530; c=relaxed/simple; bh=sOnFWM7/W5GNbO/a/LDuUceaCzlQt2n5kgO6W1Y1mog=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mEDNvL9h7lVpB+X0+9yjq2r+W0PdY87Nksm9zxNGNLy9VCYc2DcIJORmKUa/PgGHkfz31yVqzUjD1N+BZ1zadvx2gRxEnq4uqKoWwzOR8owSKbkV7WX1NXBrn3vNEerb7Yc0jXZ+2uE8OaGZUUpjJqqsG9N3yDZS4HujZ8LyR/w= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Pkv6PfLV; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Pkv6PfLV" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D9331C43390; Sun, 24 Mar 2024 23:05:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321529; bh=sOnFWM7/W5GNbO/a/LDuUceaCzlQt2n5kgO6W1Y1mog=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Pkv6PfLVIkag/SAd217v5yBVWyh1/zccGRLX5UlvSqFDBUnjsaCjwys4iSlWhLEAT OliafYusjXi3Asc78xAyF+x6fnnoSibfNHYuZl1fDdtEfpNu1uN0mrWzsg+msxBk7D /PIG/shOAmR+7hiDIkVwQNXl9y+9oMM3gNSV+ESvMA5CLukFvlmAqvSEPhFidz0PXi CmuuZkgiv7Xvrr4MV021QrMF2UOc/QdXmMFWyTWQlrOx5UTjiIl35Ds0fXlzhVeMIu e0ayvco0ATrU7uFW0D8Uq5C7nmknvCVGls5wx+GcwavqQPcNi1i8NfXp6g1J3hVmDn ID32u2xUh50aw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Benjamin Lin , Shayne Chen , Felix Fietkau , Sasha Levin Subject: [PATCH 6.6 256/638] wifi: mt76: mt7996: fix HIF_TXD_V2_1 value Date: Sun, 24 Mar 2024 18:54:53 -0400 Message-ID: <20240324230116.1348576-257-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Benjamin Lin [ Upstream commit de8882775156682ba358afc82cb575c92cf3d092 ] Sync the value of HIF_TXD_V2_1 with firmware to let it correctly fill TXD values for HW path. Fixes: 98686cd21624 ("wifi: mt76: mt7996: add driver for MediaTek Wi-Fi 7 (= 802.11be) devices") Signed-off-by: Benjamin Lin Signed-off-by: Shayne Chen Signed-off-by: Felix Fietkau Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/net/wireless/mediatek/mt76/mt7996/init.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/wireless/mediatek/mt76/mt7996/init.c b/drivers/net= /wireless/mediatek/mt76/mt7996/init.c index e843d40df5bb4..2016ed9197fe3 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7996/init.c +++ b/drivers/net/wireless/mediatek/mt76/mt7996/init.c @@ -276,7 +276,7 @@ static void mt7996_mac_init_basic_rates(struct mt7996_d= ev *dev) =20 void mt7996_mac_init(struct mt7996_dev *dev) { -#define HIF_TXD_V2_1 4 +#define HIF_TXD_V2_1 0x21 int i; =20 mt76_clear(dev, MT_MDP_DCR2, MT_MDP_DCR2_RX_TRANS_SHORT); --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 94A721514EC; Sun, 24 Mar 2024 23:05: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=1711321531; cv=none; b=Ywkjx08B6lBBKfnaL8J+/y/fKgL7yXVjO7OBeVwxIRXIwChs9I41WKmSLMe88WsgWEb3yXm347SRiGBpt70QH1SI75bYCTDK9WQ5x/8ltwnUnaOvUvVMEWbND1+Pce4pQfRHHqDhHxMVE++wEt62dyoDmXjhBzygh/lCTYAWueE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321531; c=relaxed/simple; bh=rUzDKGth/ccwZ7iKH6Jz+5Q6eJnmE3TflhykP87e3wI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=fuqRodHJHEFyOw2hpqSDMgB0Kcdrgucl/Tj0rW5MDjP/WZOdiQhVe+w4C+FimUsP9JgHyrnzMHVqM8SQ7BPGzczkP293KVZCACTQRZ1FMhsPYLh7qiV5lhL5lwMU2URYLjC4VHk7f91Bja/Q886KV6t8dbolMAYYjW13G1SSaS4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=TuMjR+Zw; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="TuMjR+Zw" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D3DB7C43399; Sun, 24 Mar 2024 23:05:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321530; bh=rUzDKGth/ccwZ7iKH6Jz+5Q6eJnmE3TflhykP87e3wI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=TuMjR+ZwUSpp8VqduA/RBSi3o7wuWxEz7JrQOP8p0BOviHWLRCrbqNh1NgfjfhZJt dClBkyTPU1ZLbr2BLapNdDs6IbKJE7YlA+Ik6LwwVX/eyO+esLf7AR0ms8bAMk49KB tpm8lVWp3IQxMS3LXVdpBPGNUNyBr5w2nL17aHWzPuaIOF7UwTm34fuwFD6p+THwIy xMRGqmTJ9wMKIWShRNHoVVOljDUDWtKBicVXcHdUN/3yVGqmYvPoEcpNDsw8o6Oj8K 8Smru3UQE34kruNQHoJUE/pAbye3pHQ1qqARg7xku5oxjamv5huom7PuZO3A0LoH0I s297kbsYC9ksw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Gen Xu , Felix Fietkau , Sasha Levin Subject: [PATCH 6.6 257/638] wifi: mt76: mt792x: fix ethtool warning Date: Sun, 24 Mar 2024 18:54:54 -0400 Message-ID: <20240324230116.1348576-258-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Gen Xu [ Upstream commit 7b4f9cd6a5fc221895b1d9be83ee3c13c00d09ab ] Add a missing EHT related field to fix the following ethtool warning: [98179.287352] mt7921e 0003:01:00.0: ei: 74 SSTATS_LEN: 73 Fixes: c74df1c067f2 ("wifi: mt76: mt792x: introduce mt792x-lib module") Signed-off-by: Gen Xu Signed-off-by: Felix Fietkau Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/net/wireless/mediatek/mt76/mt792x_core.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/wireless/mediatek/mt76/mt792x_core.c b/drivers/net= /wireless/mediatek/mt76/mt792x_core.c index f111c47fdca56..2fb1141e5fa96 100644 --- a/drivers/net/wireless/mediatek/mt76/mt792x_core.c +++ b/drivers/net/wireless/mediatek/mt76/mt792x_core.c @@ -332,6 +332,7 @@ static const char mt792x_gstrings_stats[][ETH_GSTRING_L= EN] =3D { "v_tx_bw_40", "v_tx_bw_80", "v_tx_bw_160", + "v_tx_bw_320", "v_tx_mcs_0", "v_tx_mcs_1", "v_tx_mcs_2", --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E34421514F7; Sun, 24 Mar 2024 23:05: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=1711321533; cv=none; b=WOBA4O4CIIIUvdrFBmcRXejW8SEqsg4/8S9BR4MEtRm5EDtt5omWpb0m0T5ZhNHZ21+/GTmuxTw5vCGlawbgQkxx/b29oDriItzA4jopZs9J1AXJEyZbn4bv5Akbjam0Wefzrjghy9IgPd1RmJ4Pq1H4Aasm/2/j+n53FgT1xr0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321533; c=relaxed/simple; bh=hyROmaA6Q7+b/zmxeASSX3HaH0N+z82aRXBd1lKaYLE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=RGcnx0PJuQ052UBPNecUj0uAj76NkcQWgU5vytpUKW5pErx/vsLzNJAsM/rv/a4ULyIB8Ao3+EHp0jv5VkwbgODWBTS1M9bJk6fNqsdzoUB0Y+wwT+x7wOut5Iai86IbiQQHrSF40Eoeju8z/mOdxMtTgpcJ8D2huY16FELxMXY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=VYvwMGLH; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="VYvwMGLH" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B80F2C433F1; Sun, 24 Mar 2024 23:05:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321531; bh=hyROmaA6Q7+b/zmxeASSX3HaH0N+z82aRXBd1lKaYLE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=VYvwMGLHfOm0wekZsMZPB5oJKh/DozDbjWjkSWgFK1hJFBl+FAS7uVeRBYnyUgNdm fSgfR3RDPCjNyIrRstp7JYwliR7SYYD7leMmmngiY7/bVkcquHWDyDkkopLbg9TPqS /kMpvdHDTTErLrRmBTy3zdJCfGw+wihm2zEW9KIfVhZObGpLNanREml3JeU7DSWmxF Yux6rbBbOC69bYwfpiYpQ2EFFSfACAcsHHeNgLcHYY8eVO+r+gb+bTxO4jEs84wt6T m+yXNSezmm1dvBScAQfWuex3x6f6ok8wiCJgrZtEa0Jpe8onQ6WVviWMoAk1GhAFv5 2obbM9epKEutQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Deren Wu , Mikhail Gavrilov , Felix Fietkau , Sasha Levin Subject: [PATCH 6.6 258/638] wifi: mt76: mt7921e: fix use-after-free in free_irq() Date: Sun, 24 Mar 2024 18:54:55 -0400 Message-ID: <20240324230116.1348576-259-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Deren Wu [ Upstream commit c957280ef6ab6bdf559a91ae693a6b34310697e3 ] From commit a304e1b82808 ("[PATCH] Debug shared irqs"), there is a test to make sure the shared irq handler should be able to handle the unexpected event after deregistration. For this case, let's apply MT76_REMOVED flag to indicate the device was removed and do not run into the resource access anymore. BUG: KASAN: use-after-free in mt7921_irq_handler+0xd8/0x100 [mt7921e] Read of size 8 at addr ffff88824a7d3b78 by task rmmod/11115 CPU: 28 PID: 11115 Comm: rmmod Tainted: G W L 5.17.0 #10 Hardware name: Micro-Star International Co., Ltd. MS-7D73/MPG B650I EDGE WIFI (MS-7D73), BIOS 1.81 01/05/2024 Call Trace: dump_stack_lvl+0x6f/0xa0 print_address_description.constprop.0+0x1f/0x190 ? mt7921_irq_handler+0xd8/0x100 [mt7921e] ? mt7921_irq_handler+0xd8/0x100 [mt7921e] kasan_report.cold+0x7f/0x11b ? mt7921_irq_handler+0xd8/0x100 [mt7921e] mt7921_irq_handler+0xd8/0x100 [mt7921e] free_irq+0x627/0xaa0 devm_free_irq+0x94/0xd0 ? devm_request_any_context_irq+0x160/0x160 ? kobject_put+0x18d/0x4a0 mt7921_pci_remove+0x153/0x190 [mt7921e] pci_device_remove+0xa2/0x1d0 __device_release_driver+0x346/0x6e0 driver_detach+0x1ef/0x2c0 bus_remove_driver+0xe7/0x2d0 ? __check_object_size+0x57/0x310 pci_unregister_driver+0x26/0x250 __do_sys_delete_module+0x307/0x510 ? free_module+0x6a0/0x6a0 ? fpregs_assert_state_consistent+0x4b/0xb0 ? rcu_read_lock_sched_held+0x10/0x70 ? syscall_enter_from_user_mode+0x20/0x70 ? trace_hardirqs_on+0x1c/0x130 do_syscall_64+0x5c/0x80 ? trace_hardirqs_on_prepare+0x72/0x160 ? do_syscall_64+0x68/0x80 ? trace_hardirqs_on_prepare+0x72/0x160 entry_SYSCALL_64_after_hwframe+0x44/0xae Reported-by: Mikhail Gavrilov Closes: https://lore.kernel.org/linux-wireless/CABXGCsOdvVwdLmSsC8TZ1jF0UOg= _F_W3wqLECWX620PUkvNk=3DA@mail.gmail.com/ Fixes: 9270270d6219 ("wifi: mt76: mt7921: fix PCI DMA hang after reboot") Tested-by: Mikhail Gavrilov Signed-off-by: Deren Wu Signed-off-by: Felix Fietkau Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/net/wireless/mediatek/mt76/mt7921/pci.c | 1 + drivers/net/wireless/mediatek/mt76/mt792x_dma.c | 2 ++ 2 files changed, 3 insertions(+) diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/pci.c b/drivers/net/= wireless/mediatek/mt76/mt7921/pci.c index f04e7095e1810..49d4f3c4829ea 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7921/pci.c +++ b/drivers/net/wireless/mediatek/mt76/mt7921/pci.c @@ -387,6 +387,7 @@ static void mt7921_pci_remove(struct pci_dev *pdev) struct mt792x_dev *dev =3D container_of(mdev, struct mt792x_dev, mt76); =20 mt7921e_unregister_device(dev); + set_bit(MT76_REMOVED, &mdev->phy.state); devm_free_irq(&pdev->dev, pdev->irq, dev); mt76_free_device(&dev->mt76); pci_free_irq_vectors(pdev); diff --git a/drivers/net/wireless/mediatek/mt76/mt792x_dma.c b/drivers/net/= wireless/mediatek/mt76/mt792x_dma.c index a3dbd3865b2f5..be3119aa9afa1 100644 --- a/drivers/net/wireless/mediatek/mt76/mt792x_dma.c +++ b/drivers/net/wireless/mediatek/mt76/mt792x_dma.c @@ -12,6 +12,8 @@ irqreturn_t mt792x_irq_handler(int irq, void *dev_instanc= e) { struct mt792x_dev *dev =3D dev_instance; =20 + if (test_bit(MT76_REMOVED, &dev->mt76.phy.state)) + return IRQ_NONE; mt76_wr(dev, dev->irq_map->host_irq_enable, 0); =20 if (!test_bit(MT76_STATE_INITIALIZED, &dev->mphy.state)) --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 850621514FF; Sun, 24 Mar 2024 23:05: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=1711321533; cv=none; b=E8DmeohTFBvd29Q389UOubsc5kKFXDVHCU0TKIEMeUU82YKpwGgIEm6UCtxibO6scKoGKLAdiOQy4FeQtsp0b7/Tuuf9k9FdLLYXe+AOO4wVLbmqY5ELitmPeaEsfoYuZyt8I+NOTGtKfUBHBnKhbdsjVNPznJF5HxhqovIcVAo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321533; c=relaxed/simple; bh=UJVecGRcsJMrble1axSJMuG0b3FUpXz2QsuhpnXy+d0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=jlWwuwl3kLvYeQM1UJZLfrqAn1OJ5TfnKlAc1l54+BZJBWT7fRFE+l3oDuW+UNPE26K95NeYYEDSpc3OeVJMkYrzzzhtaZg58AlKMKMVyx3YxnLA7Gzfq8JXs4dwjPEmiKw7vCh6MQPjcquMYEz80J6wfs85tvVNMhhs845bGMM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=GGBcZMO4; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="GGBcZMO4" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B00B1C433C7; Sun, 24 Mar 2024 23:05:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321532; bh=UJVecGRcsJMrble1axSJMuG0b3FUpXz2QsuhpnXy+d0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=GGBcZMO4FXacUp6mMS8G9NG4weGxl9KQL1/1ECP3i68rfFGGRMY4FvYleCNQRyTGk 3WqW081654j/7W+DTg2BkJDvh4EZZTkAHn+Hg5dssTQf+UF3IALd/XngSX9aqVpRsS K6CapOzC0Y4Ha7H3eKRMfMCzQH22YM/nUq+sCD6E3GSorKKOjnKlaCeAEzBDkeAmT4 xjzgimexRfsrxHtVYFFnNtaXCeAB4+SfFfQ8H67rCYJrBnOA8lRSdy+RE4OEcipJm0 ZH6RXj1oNKZirX01LZwV3fVtZQTzGBhvg7nl+5Znbjs+gCQErDzhq7s35ePcb6wR3l KHmB/VMPpWeYw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Ming Yen Hsieh , Leon Yen , Felix Fietkau , Sasha Levin Subject: [PATCH 6.6 259/638] wifi: mt76: mt792x: fix a potential loading failure of the 6Ghz channel config from ACPI Date: Sun, 24 Mar 2024 18:54:56 -0400 Message-ID: <20240324230116.1348576-260-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Yen Hsieh [ Upstream commit 07ce1d46372489d90f9cccebb3277d1af801c4b9 ] In some case, the MTCL table will exist, but MTDS table will not. So the SAR will init fail. This patch make MTCL and MTDS can exist with no dependence. Fixes: f965333e491e ("mt76: mt7921: introduce ACPI SAR support") Signed-off-by: Ming Yen Hsieh Signed-off-by: Leon Yen Signed-off-by: Felix Fietkau Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- .../wireless/mediatek/mt76/mt792x_acpi_sar.c | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/drivers/net/wireless/mediatek/mt76/mt792x_acpi_sar.c b/drivers= /net/wireless/mediatek/mt76/mt792x_acpi_sar.c index 303c0f5c9c662..c4e3bfcc519e2 100644 --- a/drivers/net/wireless/mediatek/mt76/mt792x_acpi_sar.c +++ b/drivers/net/wireless/mediatek/mt76/mt792x_acpi_sar.c @@ -66,13 +66,15 @@ mt792x_acpi_read(struct mt792x_dev *dev, u8 *method, u8= **tbl, u32 *len) } =20 /* MTCL : Country List Table for 6G band */ -static void +static int mt792x_asar_acpi_read_mtcl(struct mt792x_dev *dev, u8 **table, u8 *version) { - if (mt792x_acpi_read(dev, MT792x_ACPI_MTCL, table, NULL) < 0) - *version =3D 1; - else - *version =3D 2; + int ret; + + *version =3D ((ret =3D mt792x_acpi_read(dev, MT792x_ACPI_MTCL, table, NUL= L)) < 0) + ? 1 : 2; + + return ret; } =20 /* MTDS : Dynamic SAR Power Table */ @@ -166,16 +168,16 @@ int mt792x_init_acpi_sar(struct mt792x_dev *dev) if (!asar) return -ENOMEM; =20 - mt792x_asar_acpi_read_mtcl(dev, (u8 **)&asar->countrylist, &asar->ver); + ret =3D mt792x_asar_acpi_read_mtcl(dev, (u8 **)&asar->countrylist, &asar-= >ver); + if (ret) { + devm_kfree(dev->mt76.dev, asar->countrylist); + asar->countrylist =3D NULL; + } =20 - /* MTDS is mandatory. Return error if table is invalid */ ret =3D mt792x_asar_acpi_read_mtds(dev, (u8 **)&asar->dyn, asar->ver); if (ret) { devm_kfree(dev->mt76.dev, asar->dyn); - devm_kfree(dev->mt76.dev, asar->countrylist); - devm_kfree(dev->mt76.dev, asar); - - return ret; + asar->dyn =3D NULL; } =20 /* MTGS is optional */ @@ -290,7 +292,7 @@ int mt792x_init_acpi_sar_power(struct mt792x_phy *phy, = bool set_default) const struct cfg80211_sar_capa *capa =3D phy->mt76->hw->wiphy->sar_capa; int i; =20 - if (!phy->acpisar) + if (!phy->acpisar || !((struct mt792x_acpi_sar *)phy->acpisar)->dyn) return 0; =20 /* When ACPI SAR enabled in HW, we should apply rules for .frp --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6F8ED137900; Sun, 24 Mar 2024 23:05: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=1711321534; cv=none; b=IhScYPa5t8uQo/2epinzW1Z7R6zJV6dVRm52GKUH0CDe5qorllXDuu6uFUJE7NVg2CkVPyA95jOFiz7eYCAguInWPBCILqLdiFK3LmBdAj4qt4f4GblqOz5Zl8hqZDVlBQsejuBXXfM1O6uom1L4WJIAZVIwRCjHX7MQbuhF2Qc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321534; c=relaxed/simple; bh=iBV/5/Z+cGNqIANUq+vBJr418QFN4hXW/Rfok5Qg3Zw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=JMlNMO/t/kPPJ8sTohy9m5rglRPeTOnIStlluZeHN+YZLINl7HC781hNC3ey8y9dBO4sSXLicyJkkFDM93MLaO+NGzPzjcFIbcSTNmghh7IBX3E50ZJdfBtEgFhK7fd87zfb4ibAKEgThXU3jprRBsEmG3pa6jYSP3f5ezMouwA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=G7JyKRLP; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="G7JyKRLP" Received: by smtp.kernel.org (Postfix) with ESMTPSA id AC4F7C43399; Sun, 24 Mar 2024 23:05:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321533; bh=iBV/5/Z+cGNqIANUq+vBJr418QFN4hXW/Rfok5Qg3Zw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=G7JyKRLP8FTIHcClqyzw4A/IyFR6tNq63sa4elPZlg3LpbbM/MmbTLlv8Vi+8AU6c AqGtQw6iFElowght9IcAvOMZb8Zhzv98yKiFpKqW2/O9Q3U41Em3/DEAZZ4k62kwEi VfHOqcXw1M8pRtV1674NC7B5GbBrUW23sRCI9MiefmRU5dh7COdd9LOkNgeHn9GPR4 kbqgZizzpR7X/tvjbO2Rcz/4k7oNwcSgmmZawDLszv9yyudvNRvF4J7YhEgA8+CFmQ gDx8S3HRF7n4t0F8d2uY/l0cupXibt050kDny3vW8CNpcP1HEQ5yz1URb6J1AkZ5RN r6osQU3qOgWzQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Lad Prabhakar , Geert Uytterhoeven , Sasha Levin Subject: [PATCH 6.6 260/638] arm64: dts: renesas: rzg2l: Add missing interrupts to IRQC nodes Date: Sun, 24 Mar 2024 18:54:57 -0400 Message-ID: <20240324230116.1348576-261-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Lad Prabhakar [ Upstream commit 14fe225dd5fcd5928583b0bcc34398a581f51602 ] The IRQC IP block supports Bus error and ECCRAM interrupts on RZ/G2L and alike SoC's (listed below). Update the IRQC nodes with the missing interrupts, and additionally, include the 'interrupt-names' properties in the IRQC nodes so that the driver can parse interrupts by name. - R9A07G043U - RZ/G2UL - R9A07G044L/R9A07G044LC - RZ/{G2L,G2LC} - R9A07G054 - RZ/V2L Fixes: 5edc51af5b30 ("arm64: dts: renesas: r9a07g044: Add IRQC node") Fixes: 48ab6eddd8bb ("arm64: dts: renesas: r9a07g043u: Add IRQC node") Fixes: 379478ab09e0 ("arm64: dts: renesas: r9a07g054: Add IRQC node") Signed-off-by: Lad Prabhakar Reviewed-by: Geert Uytterhoeven Link: https://lore.kernel.org/r/20240205144421.51195-3-prabhakar.mahadev-la= d.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/renesas/r9a07g043u.dtsi | 12 +++++++++-- arch/arm64/boot/dts/renesas/r9a07g044.dtsi | 22 ++++++++++++++++++++- arch/arm64/boot/dts/renesas/r9a07g054.dtsi | 22 ++++++++++++++++++++- 3 files changed, 52 insertions(+), 4 deletions(-) diff --git a/arch/arm64/boot/dts/renesas/r9a07g043u.dtsi b/arch/arm64/boot/= dts/renesas/r9a07g043u.dtsi index 2ab231572d95f..b3f83d0ebcbb5 100644 --- a/arch/arm64/boot/dts/renesas/r9a07g043u.dtsi +++ b/arch/arm64/boot/dts/renesas/r9a07g043u.dtsi @@ -109,7 +109,13 @@ irqc: interrupt-controller@110a0000 { , , , - ; + , + , + , + , + , + , + ; interrupt-names =3D "nmi", "irq0", "irq1", "irq2", "irq3", "irq4", "irq5", "irq6", "irq7", @@ -121,7 +127,9 @@ irqc: interrupt-controller@110a0000 { "tint20", "tint21", "tint22", "tint23", "tint24", "tint25", "tint26", "tint27", "tint28", "tint29", "tint30", "tint31", - "bus-err"; + "bus-err", "ec7tie1-0", "ec7tie2-0", + "ec7tiovf-0", "ec7tie1-1", "ec7tie2-1", + "ec7tiovf-1"; clocks =3D <&cpg CPG_MOD R9A07G043_IA55_CLK>, <&cpg CPG_MOD R9A07G043_IA55_PCLK>; clock-names =3D "clk", "pclk"; diff --git a/arch/arm64/boot/dts/renesas/r9a07g044.dtsi b/arch/arm64/boot/d= ts/renesas/r9a07g044.dtsi index 66f68fc2b2411..081d8f49db879 100644 --- a/arch/arm64/boot/dts/renesas/r9a07g044.dtsi +++ b/arch/arm64/boot/dts/renesas/r9a07g044.dtsi @@ -905,7 +905,27 @@ irqc: interrupt-controller@110a0000 { , , , - ; + , + , + , + , + , + , + , + ; + interrupt-names =3D "nmi", "irq0", "irq1", "irq2", "irq3", + "irq4", "irq5", "irq6", "irq7", + "tint0", "tint1", "tint2", "tint3", + "tint4", "tint5", "tint6", "tint7", + "tint8", "tint9", "tint10", "tint11", + "tint12", "tint13", "tint14", "tint15", + "tint16", "tint17", "tint18", "tint19", + "tint20", "tint21", "tint22", "tint23", + "tint24", "tint25", "tint26", "tint27", + "tint28", "tint29", "tint30", "tint31", + "bus-err", "ec7tie1-0", "ec7tie2-0", + "ec7tiovf-0", "ec7tie1-1", "ec7tie2-1", + "ec7tiovf-1"; clocks =3D <&cpg CPG_MOD R9A07G044_IA55_CLK>, <&cpg CPG_MOD R9A07G044_IA55_PCLK>; clock-names =3D "clk", "pclk"; diff --git a/arch/arm64/boot/dts/renesas/r9a07g054.dtsi b/arch/arm64/boot/d= ts/renesas/r9a07g054.dtsi index 1f1d481dc7830..0d327464d2baf 100644 --- a/arch/arm64/boot/dts/renesas/r9a07g054.dtsi +++ b/arch/arm64/boot/dts/renesas/r9a07g054.dtsi @@ -912,7 +912,27 @@ irqc: interrupt-controller@110a0000 { , , , - ; + , + , + , + , + , + , + , + ; + interrupt-names =3D "nmi", "irq0", "irq1", "irq2", "irq3", + "irq4", "irq5", "irq6", "irq7", + "tint0", "tint1", "tint2", "tint3", + "tint4", "tint5", "tint6", "tint7", + "tint8", "tint9", "tint10", "tint11", + "tint12", "tint13", "tint14", "tint15", + "tint16", "tint17", "tint18", "tint19", + "tint20", "tint21", "tint22", "tint23", + "tint24", "tint25", "tint26", "tint27", + "tint28", "tint29", "tint30", "tint31", + "bus-err", "ec7tie1-0", "ec7tie2-0", + "ec7tiovf-0", "ec7tie1-1", "ec7tie2-1", + "ec7tiovf-1"; clocks =3D <&cpg CPG_MOD R9A07G054_IA55_CLK>, <&cpg CPG_MOD R9A07G054_IA55_PCLK>; clock-names =3D "clk", "pclk"; --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3FBC613790B; Sun, 24 Mar 2024 23:05: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=1711321535; cv=none; b=freg0k3sA8/zy8DqJHIWh3Xueabq+6W70Ru3vy8lzRL/NfUCId2AeW1ddtLkIfxuibqrI4RUAHjznbCGETFYOSpTrC1HxVdQ5Brjd6+qS2kpMWqnHVrzeY4qxqGCmrfFqqit+FfSHLMJxySFIuvJ3x/qOjh3I7H66icgQNgR31c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321535; c=relaxed/simple; bh=58B98bGY5tMD2svD0Au4W1Qr/ZKoc4cnw7wxauTqbjE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=LipqhBPlvf7yUmN115WAO7JQUR+dKPO0kXQV6On/NIW/KytPno+I9y6wGkAfT2499k3fAByK+QilVmqgGRk1X+RcW60UrnIS+7pZgu8uuqCHCyCx0MVE1LhOuf/570Q+CCZVcObZxnF3XdDz9DMrB2VVNtjO+6dXTi0d9soSB/M= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=QyS/3wAv; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="QyS/3wAv" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 94F65C433F1; Sun, 24 Mar 2024 23:05:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321534; bh=58B98bGY5tMD2svD0Au4W1Qr/ZKoc4cnw7wxauTqbjE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=QyS/3wAvhgyWPLGXSSTD8Zm3lfiTcRpNuu/ROoRIMN2lGo8VOvakZmeDz+OqSJYst pX7eMz5//Zq87JsAdAcJibi/tYsMPdKSkXcPy+oasA93sF7E9Y8cS4ER2qHUpyg3TO cAPUl2vDpoBOrfp7TZRReOw7fT8EWe0vmS+X+E+v+IAgZch/bazmVbbwmCQ887Ex2W H4ngSlyklBkT85xqZw7pevmnJa6cKtSbczZC+OWyY+RvYlxwFuwFMbRmkwMhTaPfjQ 6CH0feNUllutIwi/V/vQu6DYWNlPRLz5UfO/8iH8HgYRERQ8+8F3DPdjgT9tOWxoKZ wcJ6E2v4GCOrg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Geert Uytterhoeven , Sasha Levin Subject: [PATCH 6.6 261/638] arm64: dts: renesas: r8a779a0: Correct avb[01] reg sizes Date: Sun, 24 Mar 2024 18:54:58 -0400 Message-ID: <20240324230116.1348576-262-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 4e67a03564971..504ac8c93faf5 100644 --- a/arch/arm64/boot/dts/renesas/r8a779a0.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a779a0.dtsi @@ -658,7 +658,7 @@ channel7 { 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 , , , @@ -706,7 +706,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0EA08137914; Sun, 24 Mar 2024 23:05: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=1711321536; cv=none; b=nfZbwC8SyXG3uzp1uwYTuh3b18FUXSwhZeXjy1diV0+5zpttv7hM4P67rEK15i2WcQ56eHMEKgsXDbpevtLTd+G5QF7ZNKDxdNyq/Kkj1oEsYySm3M9O4A3TQexbKWyKyC8PEDmUBII8FzqIUOE/hlDDop5XJDEV576usPUV6/c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321536; c=relaxed/simple; bh=hmQWRWL7arDI/JH7/+hDhSSggeI1GZPVqcl3qHGLP78=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Jo2bfwKaHyGyEWZw9PMF2g3dkX5WJ5IHRDBdCRP/J06bq6lWwIuy8vLENL8ndNAgc9L0MNdLmB4XL2guzVbKM7yBDvn+WZpYg5wN+GInFDStw/Wr9FfrEMOiKfTy0dYTY5Y8ZrtNsDKZiaXwm/1SMriel9c1GDnY70I7dUSDLDw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=SMqS4Cf9; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="SMqS4Cf9" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 64756C433C7; Sun, 24 Mar 2024 23:05:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321534; bh=hmQWRWL7arDI/JH7/+hDhSSggeI1GZPVqcl3qHGLP78=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=SMqS4Cf9zD8J2Bmio6ZM7rWv+1CBbUmtmL7VeJie1Ynn7vXTcV7iDzL5mGKgji7kK XnNKNNchy5p5KLGapqDrJx6pfb/AqvHIjOZexIruzMWm29ZYY41GyXRvTdbFDF6Fcr RhuU4Kr4HLGeeimSXqCLicNupc3L5dMmUtaxBJm4SNkVJGvYycalfebHmeb05yjvUX XisOEMMMNMzrn0j9/eQRPsnrnwdP0LSQIUb5htWT+7m1LnNyt+3hN1mpTwGqO1yvms d0tk0P2wx6A61yJswaXqrvnebkzIj3qLmkMo5CWXYBSlJublLE+9NbSMKT6SJ7J+07 V4Ij8fW4tlNDA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Geert Uytterhoeven , Sasha Levin Subject: [PATCH 6.6 262/638] arm64: dts: renesas: r8a779g0: Correct avb[01] reg sizes Date: Sun, 24 Mar 2024 18:54:59 -0400 Message-ID: <20240324230116.1348576-263-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 7edbb5880dc3317a5eaec2166de71ff394598e6b ] All Ethernet AVB instances on R-Car V4H 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: 848c82db56923a8b ("arm64: dts: renesas: r8a779g0: Add RAVB nodes") Signed-off-by: Geert Uytterhoeven Link: https://lore.kernel.org/r/83437778614a7c96f4d8f1be98dffeee29bb4a0b.17= 07660323.git.geert+renesas@glider.be Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/renesas/r8a779g0.dtsi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm64/boot/dts/renesas/r8a779g0.dtsi b/arch/arm64/boot/dt= s/renesas/r8a779g0.dtsi index 0c83940b3d8a1..d7677595204dc 100644 --- a/arch/arm64/boot/dts/renesas/r8a779g0.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a779g0.dtsi @@ -767,7 +767,7 @@ channel7 { avb0: ethernet@e6800000 { compatible =3D "renesas,etheravb-r8a779g0", "renesas,etheravb-rcar-gen4"; - reg =3D <0 0xe6800000 0 0x800>; + reg =3D <0 0xe6800000 0 0x1000>; interrupts =3D , , , @@ -814,7 +814,7 @@ avb0: ethernet@e6800000 { avb1: ethernet@e6810000 { compatible =3D "renesas,etheravb-r8a779g0", "renesas,etheravb-rcar-gen4"; - reg =3D <0 0xe6810000 0 0x800>; + reg =3D <0 0xe6810000 0 0x1000>; interrupts =3D , , , --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0B33E2081C7; Sun, 24 Mar 2024 23:05: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=1711321537; cv=none; b=rGGyTA5ZONw3CHvqdOVryjMzC3RWrPnVwHSt9bc6YqyksF4cYMyBV7WShV0l+5nDJE4A1nabyXkyQE2/xPY4EYTXh0OglZhgBF7sRS2VjB4CTGM5BfSYZGVSSzi9NV2jxYbxbWNXAOxTpvSWRPO8kEgNKPHTZ88CXb30gsZNTGE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321537; c=relaxed/simple; bh=7r+hqqR9aWBYbXhY4GOQIVpSC4uVIjfUGAu/CsCryA0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=f3Q21ovRbOO5wtuODxJHeRWvfqDb44YHzI6UHXCFG1+1AqAO31wdV+n1ylHX9d0RLSoX1cLt7eFbST6YP87x8bsQbCty9Nwd977wzg+/R27LxpUTM+WlMtiHhgr3RZcwhEd2w3haFrcbhv1QhRnkFeJYSq519B6pT0JxxlI37Nw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=NTk3DAYf; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="NTk3DAYf" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 35464C433A6; Sun, 24 Mar 2024 23:05:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321535; bh=7r+hqqR9aWBYbXhY4GOQIVpSC4uVIjfUGAu/CsCryA0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=NTk3DAYf5KgEJOhVfxQgPe+P0TnYBZihB1lNqAwIAD+FNZc5/68MV4z2RfQVK5inF 8dhhV0H2t2saPYxlyILm3Klxr3tmAelw28CypUKrC6pi+YN+Ma762TR3Py0UsERTPz ZAXpeNRefOWBiufBXaHYFvam+aFoOwj8LCeiwV/zrJMU+2ahZbFUQDaPOjR57OToPI 0rc2sIDe7RImOgafB3NnSAjxLdUZRT0ojHDWws+iev8Th33CbXfKATrpAmBoU4EcqT ntfIeITwXuVFfSF+3ccePXDs1jDYks3FQEX3hjy34Ez/y4foi1xYYHuqdUJY1GT+uY BU46WwyWp7p5A== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jeremy Kerr , Jian Zhang , Paolo Abeni , Sasha Levin Subject: [PATCH 6.6 263/638] net: mctp: copy skb ext data when fragmenting Date: Sun, 24 Mar 2024 18:55:00 -0400 Message-ID: <20240324230116.1348576-264-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Jeremy Kerr [ Upstream commit 1394c1dec1c619a46867ed32791a29695372bff8 ] If we're fragmenting on local output, the original packet may contain ext data for the MCTP flows. We'll want this in the resulting fragment skbs too. So, do a skb_ext_copy() in the fragmentation path, and implement the MCTP-specific parts of an ext copy operation. Fixes: 67737c457281 ("mctp: Pass flow data & flow release events to drivers= ") Reported-by: Jian Zhang Signed-off-by: Jeremy Kerr Signed-off-by: Paolo Abeni Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- net/core/skbuff.c | 8 ++++++++ net/mctp/route.c | 3 +++ 2 files changed, 11 insertions(+) diff --git a/net/core/skbuff.c b/net/core/skbuff.c index 011d69029112a..60876262b3fb3 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -6659,6 +6659,14 @@ static struct skb_ext *skb_ext_maybe_cow(struct skb_= ext *old, for (i =3D 0; i < sp->len; i++) xfrm_state_hold(sp->xvec[i]); } +#endif +#ifdef CONFIG_MCTP_FLOWS + if (old_active & (1 << SKB_EXT_MCTP)) { + struct mctp_flow *flow =3D skb_ext_get_ptr(old, SKB_EXT_MCTP); + + if (flow->key) + refcount_inc(&flow->key->refs); + } #endif __skb_ext_put(old); return new; diff --git a/net/mctp/route.c b/net/mctp/route.c index ceee44ea09d97..01c530dbc1a65 100644 --- a/net/mctp/route.c +++ b/net/mctp/route.c @@ -843,6 +843,9 @@ static int mctp_do_fragment_route(struct mctp_route *rt= , struct sk_buff *skb, /* copy message payload */ skb_copy_bits(skb, pos, skb_transport_header(skb2), size); =20 + /* we need to copy the extensions, for MCTP flow data */ + skb_ext_copy(skb2, skb); + /* do route */ rc =3D rt->output(rt, skb2); if (rc) --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1B1282081D2; Sun, 24 Mar 2024 23:05: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=1711321538; cv=none; b=js8ae86Es3A978MWK0l8RCQWx1kHx3h8egigSMftvmvXlNpG++WZ27Xazk0BbXuxcJvqQBBfAtNj5KTqOrDUQroDwFL0KRrF05WHAexZYwTgGS+vbe7fP4eSQr7UKxzA8JPZQBgCldAmjlynEM0hDSLL9AD/hcRqPcm4hxuS2Ik= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321538; c=relaxed/simple; bh=7lzkxn/fcpW5aR9NZMw0L74ShbRw/t6/fn29jwpJNTU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=NuCJQWmn6BgWAh8qi0LNVNfM/4OwlhPyZ3vkpEUrY6+jJjRi/y8+l4i+hdHORdJVQAZrkSp8L6xLp1FENa1V2tGlDHiemoYeEM6Tdx73UmylHdxMS+EAiUsVB1XA3vz/gGq0I9EJfb5D/QziW+clqI3sqC/GKzj0pZWBtDM1eQk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ZBcvzevb; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ZBcvzevb" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 30C0CC433F1; Sun, 24 Mar 2024 23:05:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321537; bh=7lzkxn/fcpW5aR9NZMw0L74ShbRw/t6/fn29jwpJNTU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ZBcvzevb9G9PpvWGNd6bx/4tkiVVXDfhqcI1AcYgpTUF2cHdTihZ8F9xOCOc8Rtsh LVZg+vlw4ND+MDnszq3NXfRtFTYHTj/Kuo5JrjBHHgEu8GSD3oA/LTBrg7RjItDyKx Ectq9TIYysWzgXM/BwA8CgtWpjVa+uEcX/JF751qEst+1Wy5rpSMQljYb5o4pynGtp gkR+yjuWEH8tdaoWFzXJJ3ID3hr2G04GXc0cvwgqGWJV1BGdK/JIqXizIbsTKNBQAu pyNGaaBqSRlc1clo200o3GuB+hm66pnudKm+THvUJRiIO0AF9TckwFAM0EGH/+7HNZ rSYBTS++wHBDw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Kees Cook , "Guilherme G . Piccoli" , Tony Luck , linux-hardening@vger.kernel.org, Sasha Levin Subject: [PATCH 6.6 264/638] pstore: inode: Convert mutex usage to guard(mutex) Date: Sun, 24 Mar 2024 18:55:01 -0400 Message-ID: <20240324230116.1348576-265-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 e2eeddefb046dbc771a6fa426f7f98fb25adfe68 ] Replace open-coded mutex handling with cleanup.h guard(mutex) and scoped_guard(mutex, ...). Cc: Guilherme G. Piccoli Cc: Tony Luck Cc: Link: https://lore.kernel.org/r/20231205182622.1329923-2-keescook@chromium.= org Signed-off-by: Kees Cook Stable-dep-of: a43e0fc5e913 ("pstore: inode: Only d_invalidate() is needed") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- fs/pstore/inode.c | 76 +++++++++++++++++++---------------------------- 1 file changed, 31 insertions(+), 45 deletions(-) diff --git a/fs/pstore/inode.c b/fs/pstore/inode.c index 585360706b335..904863dbf5327 100644 --- a/fs/pstore/inode.c +++ b/fs/pstore/inode.c @@ -182,25 +182,21 @@ static int pstore_unlink(struct inode *dir, struct de= ntry *dentry) { struct pstore_private *p =3D d_inode(dentry)->i_private; struct pstore_record *record =3D p->record; - int rc =3D 0; =20 if (!record->psi->erase) return -EPERM; =20 /* Make sure we can't race while removing this file. */ - mutex_lock(&records_list_lock); - if (!list_empty(&p->list)) - list_del_init(&p->list); - else - rc =3D -ENOENT; - p->dentry =3D NULL; - mutex_unlock(&records_list_lock); - if (rc) - return rc; - - mutex_lock(&record->psi->read_mutex); - record->psi->erase(record); - mutex_unlock(&record->psi->read_mutex); + scoped_guard(mutex, &records_list_lock) { + if (!list_empty(&p->list)) + list_del_init(&p->list); + else + return -ENOENT; + p->dentry =3D NULL; + } + + scoped_guard(mutex, &record->psi->read_mutex) + record->psi->erase(record); =20 return simple_unlink(dir, dentry); } @@ -292,19 +288,16 @@ static struct dentry *psinfo_lock_root(void) { struct dentry *root; =20 - mutex_lock(&pstore_sb_lock); + guard(mutex)(&pstore_sb_lock); /* * Having no backend is fine -- no records appear. * Not being mounted is fine -- nothing to do. */ - if (!psinfo || !pstore_sb) { - mutex_unlock(&pstore_sb_lock); + if (!psinfo || !pstore_sb) return NULL; - } =20 root =3D pstore_sb->s_root; inode_lock(d_inode(root)); - mutex_unlock(&pstore_sb_lock); =20 return root; } @@ -319,19 +312,19 @@ int pstore_put_backend_records(struct pstore_info *ps= i) if (!root) return 0; =20 - mutex_lock(&records_list_lock); - list_for_each_entry_safe(pos, tmp, &records_list, list) { - if (pos->record->psi =3D=3D psi) { - list_del_init(&pos->list); - rc =3D simple_unlink(d_inode(root), pos->dentry); - if (WARN_ON(rc)) - break; - d_drop(pos->dentry); - dput(pos->dentry); - pos->dentry =3D NULL; + scoped_guard(mutex, &records_list_lock) { + list_for_each_entry_safe(pos, tmp, &records_list, list) { + if (pos->record->psi =3D=3D psi) { + list_del_init(&pos->list); + rc =3D simple_unlink(d_inode(root), pos->dentry); + if (WARN_ON(rc)) + break; + d_drop(pos->dentry); + dput(pos->dentry); + pos->dentry =3D NULL; + } } } - mutex_unlock(&records_list_lock); =20 inode_unlock(d_inode(root)); =20 @@ -355,20 +348,20 @@ int pstore_mkfile(struct dentry *root, struct pstore_= record *record) if (WARN_ON(!inode_is_locked(d_inode(root)))) return -EINVAL; =20 - rc =3D -EEXIST; + guard(mutex)(&records_list_lock); + /* Skip records that are already present in the filesystem. */ - mutex_lock(&records_list_lock); list_for_each_entry(pos, &records_list, list) { if (pos->record->type =3D=3D record->type && pos->record->id =3D=3D record->id && pos->record->psi =3D=3D record->psi) - goto fail; + return -EEXIST; } =20 rc =3D -ENOMEM; inode =3D pstore_get_inode(root->d_sb); if (!inode) - goto fail; + return -ENOMEM; inode->i_mode =3D S_IFREG | 0444; inode->i_fop =3D &pstore_file_operations; scnprintf(name, sizeof(name), "%s-%s-%llu%s", @@ -395,7 +388,6 @@ int pstore_mkfile(struct dentry *root, struct pstore_re= cord *record) d_add(dentry, inode); =20 list_add(&private->list, &records_list); - mutex_unlock(&records_list_lock); =20 return 0; =20 @@ -403,8 +395,6 @@ int pstore_mkfile(struct dentry *root, struct pstore_re= cord *record) free_pstore_private(private); fail_inode: iput(inode); -fail: - mutex_unlock(&records_list_lock); return rc; } =20 @@ -450,9 +440,8 @@ static int pstore_fill_super(struct super_block *sb, vo= id *data, int silent) if (!sb->s_root) return -ENOMEM; =20 - mutex_lock(&pstore_sb_lock); - pstore_sb =3D sb; - mutex_unlock(&pstore_sb_lock); + scoped_guard(mutex, &pstore_sb_lock) + pstore_sb =3D sb; =20 pstore_get_records(0); =20 @@ -467,17 +456,14 @@ static struct dentry *pstore_mount(struct file_system= _type *fs_type, =20 static void pstore_kill_sb(struct super_block *sb) { - mutex_lock(&pstore_sb_lock); + guard(mutex)(&pstore_sb_lock); WARN_ON(pstore_sb && pstore_sb !=3D sb); =20 kill_litter_super(sb); pstore_sb =3D NULL; =20 - mutex_lock(&records_list_lock); + guard(mutex)(&records_list_lock); INIT_LIST_HEAD(&records_list); - mutex_unlock(&records_list_lock); - - mutex_unlock(&pstore_sb_lock); } =20 static struct file_system_type pstore_fs_type =3D { --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D980F2081DE; Sun, 24 Mar 2024 23:05: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=1711321538; cv=none; b=Mi0Ba9hcCCECAVywXXJvdF9oUTN+K1ygLKJcUEz2Ay4OQODDiuXWbH7t5NunQARHAgijWLLzjPK9kErBqCDgIUEwEFQewcGTSp7i3WQwSEUIor6LY1xTxUziPo7T4cjjqtF4ELsOKf07uHlVnhZi2dc8AysAr87xHltR6BY73Jc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321538; c=relaxed/simple; bh=wIy1ReAnJ6KkGpuEl6h0vgRVgJgCpUexnLvJ/Gt3G4I=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=bZykxDVXaLGVD8hLkAbnhfT/IyXOND9K7YggVty6EHMg84X6LEKEEHQ+I9Hq2SAUstm9EX0hvP9jaQYSDwfcFHo6koNMPDjT+p+gfIzZV4/dbbAZd3III/YSSXU/tTlAB9Nk289ocQYXlIUq2UcUeGVnbi9BtblkP840zMGDTYM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=qo6e4r+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="qo6e4r+u" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 41071C433C7; Sun, 24 Mar 2024 23:05:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321537; bh=wIy1ReAnJ6KkGpuEl6h0vgRVgJgCpUexnLvJ/Gt3G4I=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qo6e4r+uRAJcjGzRCn+KfuZokHdtV+lPcVkTV+5H5a0uyIdhetMFVq/GMvgZOXusl 1YtVlvuLNRzZdN8qiKc/+sYTpGKDd3DMdxnGHC2TAM+qCTdcLHpfnk7/nyBsympNQX C1Xr32JnixJ4EZwdVSGDpnAshOL8mBVH22WVtGt3FOmQWF16xu5RgbbG6lX6oxpXOK BBxw8bHCKeHDzHxuhRxKQH6HkN6vf6G0i148RDa5UYGdIT1rHorAY6CGsdktoejxmq j6V8qy8MJASYXBGFm2ziAGo0owm2rLQcATqBT+hPEyb2Jeci6hbpHUsgbqL/gJ46DC welDHHdYl5I5g== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Kees Cook , Alexander Viro Subject: [PATCH 6.6 265/638] pstore: inode: Only d_invalidate() is needed Date: Sun, 24 Mar 2024 18:55:02 -0400 Message-ID: <20240324230116.1348576-266-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 a43e0fc5e9134a46515de2f2f8d4100b74e50de3 ] Unloading a modular pstore backend with records in pstorefs would trigger the dput() double-drop warning: WARNING: CPU: 0 PID: 2569 at fs/dcache.c:762 dput.part.0+0x3f3/0x410 Using the combo of d_drop()/dput() (as mentioned in Documentation/filesystems/vfs.rst) isn't the right approach here, and leads to the reference counting problem seen above. Use d_invalidate() and update the code to not bother checking for error codes that can never happen. Suggested-by: Alexander Viro Fixes: 609e28bb139e ("pstore: Remove filesystem records when backend is unr= egistered") Signed-off-by: Kees Cook Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- fs/pstore/inode.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/fs/pstore/inode.c b/fs/pstore/inode.c index 904863dbf5327..7dbbf3b6d98d3 100644 --- a/fs/pstore/inode.c +++ b/fs/pstore/inode.c @@ -306,7 +306,6 @@ int pstore_put_backend_records(struct pstore_info *psi) { struct pstore_private *pos, *tmp; struct dentry *root; - int rc =3D 0; =20 root =3D psinfo_lock_root(); if (!root) @@ -316,11 +315,8 @@ int pstore_put_backend_records(struct pstore_info *psi) list_for_each_entry_safe(pos, tmp, &records_list, list) { if (pos->record->psi =3D=3D psi) { list_del_init(&pos->list); - rc =3D simple_unlink(d_inode(root), pos->dentry); - if (WARN_ON(rc)) - break; - d_drop(pos->dentry); - dput(pos->dentry); + d_invalidate(pos->dentry); + simple_unlink(d_inode(root), pos->dentry); pos->dentry =3D NULL; } } @@ -328,7 +324,7 @@ int pstore_put_backend_records(struct pstore_info *psi) =20 inode_unlock(d_inode(root)); =20 - return rc; + return 0; } =20 /* --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D03542081DC; Sun, 24 Mar 2024 23:05: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=1711321538; cv=none; b=VUmeFvCtVLP2PQS1RuL67UZcM7n8j506SR74eYvZxTKucItULk46vCAYAztrlcMfrwW/HroNFYZAOKfK/zX5ceJ24nYkZVuFZv0dG/1qonCr/ax2wHg00ms8nVf/8scNouSa5glLCF881+PAUA8ETVgi0LHJc5O8Gwgl9fRSYVg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321538; c=relaxed/simple; bh=PSfaJaGHfeh9RYxvNOEV3FNhCqWgQCV/Di0zLdoOfeM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=hKpZxkxQlhFHpauQYN0rSb6+Hsull7X2l40gT4bxw+rm9EnafqfsEBaCT7dIMIEJTc0ZEBcwINJ9xiAHaFoGks/0GeAZLHZZMhzI8PIUo9l6EEY0Fk1tNHyjTcxxC52/PrCdKz+BHneHZ+Ceh25cQVJLlI2J0hw33uQfAWFPUL0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=P6uzc96q; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="P6uzc96q" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0A833C43394; Sun, 24 Mar 2024 23:05:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321538; bh=PSfaJaGHfeh9RYxvNOEV3FNhCqWgQCV/Di0zLdoOfeM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=P6uzc96q7+idQJ76ZOcqXXWYFmAOGqI85rfmD3xZERWNTAD4XN7fgGQdwEQrV4ji1 lbbvsNSzOclNTOZn1Pnq8XVaOnop7cv2LFiOtMXt2L+wNVZIIc4VFjN/9dhXGQNFgA rQpohrh4u0Sh4LmxcAa7uglZQNBZ/AMR933SATd/v4UGMbPvGkVSTPnIW14d+iKUoP nsBODQ7u3gIjggBJp9rQXOwpOmPl5gcVIjet8kWyTEHhrYGPwFiGK/KXsOkXozNKXB lRkw1R9qYGW3uM565k3tPJRMW29wwq5cZx64Qk7AXe6TYNNz/3XPleNcbkuNDFunCT nglKmVrGQu9aA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Chen-Yu Tsai , Andre Przywara , Jernej Skrabec , Sasha Levin Subject: [PATCH 6.6 266/638] arm64: dts: allwinner: h6: Add RX DMA channel for SPDIF Date: Sun, 24 Mar 2024 18:55:03 -0400 Message-ID: <20240324230116.1348576-267-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 7b59348c11f3355e284d77bbe3d33632ddadcfc2 ] The SPDIF hardware found on the H6 supports both transmit and receive functions. However it is missing the RX DMA channel. Add the SPDIF hardware block's RX DMA channel. Also remove the by-default pinmux, since the end device can choose to implement either or both functionalities. Fixes: f95b598df419 ("arm64: dts: allwinner: Add SPDIF node for Allwinner H= 6") Signed-off-by: Chen-Yu Tsai Reviewed-by: Andre Przywara Reviewed-by: Jernej Skrabec Link: https://lore.kernel.org/r/20240127163247.384439-6-wens@kernel.org Signed-off-by: Jernej Skrabec Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/allwinner/sun50i-h6-beelink-gs1.dts | 2 ++ arch/arm64/boot/dts/allwinner/sun50i-h6-tanix.dtsi | 2 ++ arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 7 +++---- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-beelink-gs1.dts b/arch= /arm64/boot/dts/allwinner/sun50i-h6-beelink-gs1.dts index 9ec49ac2f6fd5..381d58cea092d 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h6-beelink-gs1.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-beelink-gs1.dts @@ -291,6 +291,8 @@ sw { }; =20 &spdif { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&spdif_tx_pin>; status =3D "okay"; }; =20 diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-tanix.dtsi b/arch/arm6= 4/boot/dts/allwinner/sun50i-h6-tanix.dtsi index 4903d6358112d..855b7d43bc503 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h6-tanix.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-tanix.dtsi @@ -166,6 +166,8 @@ &r_ir { }; =20 &spdif { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&spdif_tx_pin>; status =3D "okay"; }; =20 diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi b/arch/arm64/boot= /dts/allwinner/sun50i-h6.dtsi index ca1d287a0a01d..d11e5041bae9a 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi @@ -406,6 +406,7 @@ spi1_cs_pin: spi1-cs-pin { function =3D "spi1"; }; =20 + /omit-if-no-ref/ spdif_tx_pin: spdif-tx-pin { pins =3D "PH7"; function =3D "spdif"; @@ -655,10 +656,8 @@ spdif: spdif@5093000 { clocks =3D <&ccu CLK_BUS_SPDIF>, <&ccu CLK_SPDIF>; clock-names =3D "apb", "spdif"; resets =3D <&ccu RST_BUS_SPDIF>; - dmas =3D <&dma 2>; - dma-names =3D "tx"; - pinctrl-names =3D "default"; - pinctrl-0 =3D <&spdif_tx_pin>; + dmas =3D <&dma 2>, <&dma 2>; + dma-names =3D "rx", "tx"; status =3D "disabled"; }; =20 --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 36E8A2081E3; Sun, 24 Mar 2024 23:05: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=1711321541; cv=none; b=d6rvY5fbHJfq+EZVhCV5W+eqEIonZ0PHLdvBzmLT7l+PJ8LlyBqAtfX3lyiaBGvG45tSkHBqX+Yb5MYvFG5hfR/YG1Uk304zZbMihZ28OuxPRtHzQz3l7644zkBiDlEKx2cK9O4Avnha/svHKMtD4PXmCxWB+3RmxHEnF8EUv50= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321541; c=relaxed/simple; bh=ND4MKUcYcMyYShL2dADwCd1T3/24PLG/95Zp8DoRkb4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=pCmxn9YYSHPGgs/b41tt7AsZI6WOQPGkeIJi1aExXUaZl8ib/VhbsBZo6QTJQfoD6jznGWXZukXqFvcS4vYmfLFUOhM3P1wQUPLuyLUz+OSfqlA5ZewfI9BZARUfWd9m4tJldh4F5dnVbQgONuyBPM87DiZ5JtYbRMm56gkxHiI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=iFHOWFJc; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="iFHOWFJc" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 03D59C43390; Sun, 24 Mar 2024 23:05:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321539; bh=ND4MKUcYcMyYShL2dADwCd1T3/24PLG/95Zp8DoRkb4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=iFHOWFJcuHqjOWLMBQi55spAsz5aCa+8mvR7BUpb4RxTqFKfJwdFqZtQsxceRSMDZ ewJUmop5Q9Wb0zfm9uVsbUU5e9xHFg0T/PLVNUq8eHEsB1JvYwCJIOlydEUz+BlvfP BRHTKmjJzzNlRb8462dZBHZ+dZfKzgoGYHj9neZo3whRWxTdwalf8wjJx1nW3XNiee H0vkngiia91kyJhJwXXj5y2V9bJaf68tjuS20IEBCGRuDKui2X79rWyWoLA/pjOCZt juJBXvivupqO5mJ7tmiNfA0w9B/zoIjAmBgyPoBjoEdxA706OCaaDT+jOMV+Fe//ic zd7F0LljWkArA== 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 6.6 267/638] ARM: dts: imx6dl-yapp4: Fix typo in the QCA switch register address Date: Sun, 24 Mar 2024 18:55:04 -0400 Message-ID: <20240324230116.1348576-268-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-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 Tested-by: Takeshi Ogasawara --- arch/arm/boot/dts/nxp/imx/imx6dl-yapp4-common.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/nxp/imx/imx6dl-yapp4-common.dtsi b/arch/arm/= boot/dts/nxp/imx/imx6dl-yapp4-common.dtsi index 3be38a3c4bb11..d2b3e09eb7df8 100644 --- a/arch/arm/boot/dts/nxp/imx/imx6dl-yapp4-common.dtsi +++ b/arch/arm/boot/dts/nxp/imx/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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 115022081FD; Sun, 24 Mar 2024 23:05: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=1711321542; cv=none; b=RsVMFW8g340lsRJ1PMKIXIv2OYUThvCnb7CEop9cxTU+a6E4KY8wfL7ugEbTLj81wNx2R2rw9M6P7q+pbYFBO04Kv86rZ2FozUopSUNFeeRg5dxFgfjiBA+r7eu8UW/L7OXUYR6OAOnNav2icl6FUlfFp2EYzqsnhMl8Doz1xKA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321542; c=relaxed/simple; bh=qDdkBp52whbIdsEQJeQ73Fo2VF9QAYIUfc9LlJxEzNg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=a8QKTuHv84MVU+x+Y0wPJN/+w34+h3TRE5Gd7LH7RdVh3P5y1+v9fz5VdLMeKMkN8LwvsywM4Vvg2jdKDYyh7x3y9n1fYLLqJQ/SFbQQcoayhjJIhF+qNTcVkuBTbfrCRX2Rrid2FhFhIJbejPZgzWuSYQ+Ipi1keOU8G5aaUbY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=EkavrFOP; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="EkavrFOP" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 02B8CC43399; Sun, 24 Mar 2024 23:05:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321540; bh=qDdkBp52whbIdsEQJeQ73Fo2VF9QAYIUfc9LlJxEzNg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=EkavrFOPD3c+kGhuHZ05GESqdLg+sToYSKhUjoWO0YXSycXpcOgN/AAfbwSWlnT6B C/yVfhynkGDc6Wpajei9cYrAMPvESgDYeAwlOmAqqS0khYFP5xgb2m3+f1drWI88+Z tU1Bb6ysrGdrq07pUYSKS4G9TfBAY6lgf+PjVD1mI/CMpSDZKa+0VIAqx+2YLuIqn2 HTzZ86GscvPSdWO3AOOcoW3XQep1tcE8C0H16PMZmlDzCOF434TPtgVItkgJjPDDiY Xc8CJE58jgv0y99bhyYIsyb266P4U4bpO6BwfSzT/hn2ml/Uq9OXy7ePaFc7lxa+W3 8Y5X7Whxw5JYQ== 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 6.6 268/638] ARM: dts: imx6dl-yapp4: Move the internal switch PHYs under the switch node Date: Sun, 24 Mar 2024 18:55:05 -0400 Message-ID: <20240324230116.1348576-269-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-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 Tested-by: Takeshi Ogasawara --- .../boot/dts/nxp/imx/imx6dl-yapp4-common.dtsi | 23 ++++++++++++------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/arch/arm/boot/dts/nxp/imx/imx6dl-yapp4-common.dtsi b/arch/arm/= boot/dts/nxp/imx/imx6dl-yapp4-common.dtsi index d2b3e09eb7df8..c32ea040fecdd 100644 --- a/arch/arm/boot/dts/nxp/imx/imx6dl-yapp4-common.dtsi +++ b/arch/arm/boot/dts/nxp/imx/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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9D34A137909; Sun, 24 Mar 2024 23:05: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=1711321542; cv=none; b=cqhv0P/6gPEEmn7L6a8x6oNLr2Ujd9+xCZT9XTjault47suoMaG6SodPd2r1ZkUuec4IwYey16Hehqs3JQ9necKDxbPCu4i3+rDNLpAP5rP5IDs5uqVdGJTSnxAzRQjUpA0L7xRRl15jIkQIQZQcLBi/CoDi0xvQ7CqHdPdqaHY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321542; c=relaxed/simple; bh=tN614vzaUT52efr1bB/r45OV/PkKSNPmC9OVEROEBJ8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=UQOiQotdivSN/Na3ov+A7ygrFT8J2MyFH345dudxU0oxCBr2PxnDNF2oKDrUQxTeKdIE9CA1BptZgZKrrYQfqJUlx5my7tboGPh9F4GivlRcqXh/CNUg8IAv0Z9UgBX7Hioya5jBVwImCa61tQ+k4TSAUCox/coCXl7CyFPkCEA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=eNZqu2n8; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="eNZqu2n8" Received: by smtp.kernel.org (Postfix) with ESMTPSA id DCA77C43394; Sun, 24 Mar 2024 23:05:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321541; bh=tN614vzaUT52efr1bB/r45OV/PkKSNPmC9OVEROEBJ8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=eNZqu2n8+Hlb2Ntub5RNl1rbD7/Kj3P+TyawgE3wjm7OEq5J89VXqHjloQa4Ts1BT c8V6e4hDXStEBmpe99etXQ+L0ImDB8nqcQCjEUDbi2j+HBXcmkaN/TpBE4t1fnKEBV uhtUKM0M+LZoVfcgimGMshHitV+pdJs6KBIAg/hHgV5maL1p3/Lmdq5ixtdmkBUNKX jVdp8oHvG6omGsXa0CIoi+8RoRWi/wtukuX+4JU04mgd/4SorN0hSMkkUPSLbZhqUL xjC0Lme+VgbfoFirFfPi6fpJuNs3pmLJOtPi9tAmT0qrbZKV55XZY9g+Dd+jH16869 7OxXetFlR6qWA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Marek Vasut , Shawn Guo , Sasha Levin Subject: [PATCH 6.6 269/638] arm64: dts: imx8mp: Set SPI NOR to max 40 MHz on Data Modul i.MX8M Plus eDM SBC Date: Sun, 24 Mar 2024 18:55:06 -0400 Message-ID: <20240324230116.1348576-270-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 13ab6f174a6b577bd7d09124b47ec8ace2682e42 ] The SPI NOR bus routing on this board cannot go above 50 MHz, set the clock frequency to maximum of 40 MHz to be within a safe margin. Remove the comment as well. Fixes: 562d222f23f0 ("arm64: dts: imx8mp: Add support for Data Modul i.MX8M= Plus eDM SBC") Signed-off-by: Marek Vasut Signed-off-by: Shawn Guo Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/freescale/imx8mp-data-modul-edm-sbc.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/freescale/imx8mp-data-modul-edm-sbc.dts b/= arch/arm64/boot/dts/freescale/imx8mp-data-modul-edm-sbc.dts index 116bf9738a8a4..cd44bf83745ca 100644 --- a/arch/arm64/boot/dts/freescale/imx8mp-data-modul-edm-sbc.dts +++ b/arch/arm64/boot/dts/freescale/imx8mp-data-modul-edm-sbc.dts @@ -121,7 +121,7 @@ &ecspi1 { flash@0 { /* W25Q128JVEI */ compatible =3D "jedec,spi-nor"; reg =3D <0>; - spi-max-frequency =3D <100000000>; /* Up to 133 MHz */ + spi-max-frequency =3D <40000000>; spi-tx-bus-width =3D <1>; spi-rx-bus-width =3D <1>; }; --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8F093137923; Sun, 24 Mar 2024 23:05: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=1711321543; cv=none; b=Hf4c12VrMqiSArJ4KUIli9HIPRONNuFKtp1ruR2//N972P3eJLtM8vRVdQB33yysrCjCDtTNWE76adZMP57l/JoU/hqN6NrL8Qsr/xFBl/5KswPA9ltlEzJ5JkWA1qyQF+urmgUFvUCGIO3YNeiV9aQPlJJZtvzFBtZwwM5O1LU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321543; c=relaxed/simple; bh=y5w/BJhZ9ZAo7JQPzIZug2Ac9FBly8WTfC9ZuWIKE8w=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=rwYn7lRwCCqAqx7aYfhvZU88s/T83jjWEBSlteAf76pekDcI9FWdj6CLXB2nk4ugET0RuN+/mDMe0NVZ/FStzU+NDR/mfDGFRM3LbHENaIyKo6DbreqKjp8xHnUYNianlSqAMIvUgx2XuwJ5K43NGtCE3gr2pEHQtKHk3H/UFeQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=TAV/67AB; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="TAV/67AB" Received: by smtp.kernel.org (Postfix) with ESMTPSA id C22F3C43390; Sun, 24 Mar 2024 23:05:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321542; bh=y5w/BJhZ9ZAo7JQPzIZug2Ac9FBly8WTfC9ZuWIKE8w=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=TAV/67AB6cj4AnmwbP4BdzqBuJ1gvuZ8A/xbFUudD5SWWeUb/MIK3Hga6op8XsyTN KlhjRjGZwRJFhe/dv6WCKXNAYSP+YYPBfmgIOCa1AAdTemQROHS8O60r4bvl6P6XLL UyMXGV+r3MRUbj1rN6kLmHuE/o4j+LxY1t43hJEK3GaCrKEAZkFO9jkkMhtPf0OMfz L8M1fNJrZU9OUJWrY0MWvFpJ/03Lm+E77PKvAsDLmiimVbrcxHPDfWGNln3UhIvMWm fQfkPKKKb/wOLGzvcVWYXqTbjMvk3OBpx0vip7QadVnnsm3vPZAVOVkXvL33VBS5eo HMXiwLK3QXzwg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Liu Ying , Shawn Guo , Sasha Levin Subject: [PATCH 6.6 270/638] arm64: dts: imx8mp-evk: Fix hdmi@3d node Date: Sun, 24 Mar 2024 18:55:07 -0400 Message-ID: <20240324230116.1348576-271-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Liu Ying [ Upstream commit 0ff08803eca417dfa9372194bebf3d1b1f501f98 ] The hdmi@3d node's compatible string is "adi,adv7535" instead of "adi,adv7533" or "adi,adv751*". Fix the hdmi@3d node by means of: * Use default register addresses for "cec", "edid" and "packet", because there is no need to use a non-default address map. * Add missing interrupt related properties. * Drop "adi,input-*" properties which are only valid for adv751*. * Add VEXT_3V3 fixed regulator. * Add "*-supply" properties, since most are required. * Fix label names - s/adv7533/adv7535/. Fixes: 65344b9bed3a ("arm64: dts: imx8mp-evk: Add HDMI support") Signed-off-by: Liu Ying Signed-off-by: Shawn Guo Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/freescale/imx8mp-evk.dts | 33 +++++++++++++------- 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/arch/arm64/boot/dts/freescale/imx8mp-evk.dts b/arch/arm64/boot= /dts/freescale/imx8mp-evk.dts index cc9d468b43ab8..92f8cc05fe9da 100644 --- a/arch/arm64/boot/dts/freescale/imx8mp-evk.dts +++ b/arch/arm64/boot/dts/freescale/imx8mp-evk.dts @@ -23,7 +23,7 @@ hdmi-connector { =20 port { hdmi_connector_in: endpoint { - remote-endpoint =3D <&adv7533_out>; + remote-endpoint =3D <&adv7535_out>; }; }; }; @@ -107,6 +107,13 @@ reg_usdhc2_vmmc: regulator-usdhc2 { enable-active-high; }; =20 + reg_vext_3v3: regulator-vext-3v3 { + compatible =3D "regulator-fixed"; + regulator-name =3D "VEXT_3V3"; + regulator-min-microvolt =3D <3300000>; + regulator-max-microvolt =3D <3300000>; + }; + sound { compatible =3D "simple-audio-card"; simple-audio-card,name =3D "wm8960-audio"; @@ -342,7 +349,7 @@ BUCK4 { regulator-always-on; }; =20 - BUCK5 { + reg_buck5: BUCK5 { regulator-name =3D "BUCK5"; regulator-min-microvolt =3D <1650000>; regulator-max-microvolt =3D <1950000>; @@ -393,14 +400,16 @@ &i2c2 { =20 hdmi@3d { compatible =3D "adi,adv7535"; - reg =3D <0x3d>, <0x3c>, <0x3e>, <0x3f>; - reg-names =3D "main", "cec", "edid", "packet"; + reg =3D <0x3d>; + interrupt-parent =3D <&gpio1>; + interrupts =3D <9 IRQ_TYPE_EDGE_FALLING>; adi,dsi-lanes =3D <4>; - adi,input-depth =3D <8>; - adi,input-colorspace =3D "rgb"; - adi,input-clock =3D "1x"; - adi,input-style =3D <1>; - adi,input-justification =3D "evenly"; + avdd-supply =3D <®_buck5>; + dvdd-supply =3D <®_buck5>; + pvdd-supply =3D <®_buck5>; + a2vdd-supply =3D <®_buck5>; + v3p3-supply =3D <®_vext_3v3>; + v1p2-supply =3D <®_buck5>; =20 ports { #address-cells =3D <1>; @@ -409,7 +418,7 @@ ports { port@0 { reg =3D <0>; =20 - adv7533_in: endpoint { + adv7535_in: endpoint { remote-endpoint =3D <&dsi_out>; }; }; @@ -417,7 +426,7 @@ adv7533_in: endpoint { port@1 { reg =3D <1>; =20 - adv7533_out: endpoint { + adv7535_out: endpoint { remote-endpoint =3D <&hdmi_connector_in>; }; }; @@ -502,7 +511,7 @@ port@1 { reg =3D <1>; =20 dsi_out: endpoint { - remote-endpoint =3D <&adv7533_in>; + remote-endpoint =3D <&adv7535_in>; data-lanes =3D <1 2 3 4>; }; }; --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 66FF8208961; Sun, 24 Mar 2024 23:05: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=1711321544; cv=none; b=mdY15Nwe8+wUDAdvRzH+xtH2nchWdsIYvKbf7+XBfewT9VnKC5WvctrlwWWJzGV56HjH7WSTUOSFK5Q4NvU1fN52Unxzp17paRZO3T1SrqKiXiVMgvyyxKm+N9CVazsmZt85kUz7yrWprkRkSgJvMSKYHJ1Q5ZIgEqKTLiMTAM4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321544; c=relaxed/simple; bh=Ta11fKnZobjyFkQcnU/qNvjknrk6rRLtjqxBTTMP/JQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=nTU0K7sSWnCOSPAI6x0pV7inTUBpgyKj7XzHSKa4xCidzD8rbfKryJrVpwnhoADXpfsZj1Q15yZFqSYy7Ga8x7i7GPCGaFU/cqsYNyoZ/A4c3n6Eu2VtK5QnUL/Sv1fDKsW/8GnyLkLBnrBop0M8JseJzGmRxiC9vjrj3Bfhfko= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=rEmUqNBc; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="rEmUqNBc" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A6D16C43601; Sun, 24 Mar 2024 23:05:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321543; bh=Ta11fKnZobjyFkQcnU/qNvjknrk6rRLtjqxBTTMP/JQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=rEmUqNBc5HCwXIYY7LHvDU7ZPPxUuOujHc4hmtGx/iAgtEGGvqe2e0rrGoD6BtKNY 2ejP/KgIKhCgrgM3ajzfTta6sY/sayyGO8CTiSNND5PrrrvHUp3LT/uvob0tqcUxnS BxQFzphrNOVDbp9owOTxe/qIBTRGWJie4bpSGDhOrPJLkCp3hqgsRTInEL/VK14T5x YxFYt9q29btTkPOyErsk8OmOw6BkX2aIMpNd7giuYDx2CvIreIpfsWXAn2vaUJIq2M pfz2aIpDCTeBPjSDbZD6tttUJsHqbSwaxZERBI+hF93s6bEuWb4Z2Can+zU/P/b26j 3fpBTok+0Y+qA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: John Keeping , Mark Brown , Sasha Levin Subject: [PATCH 6.6 271/638] regulator: userspace-consumer: add module device table Date: Sun, 24 Mar 2024 18:55:08 -0400 Message-ID: <20240324230116.1348576-272-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: John Keeping [ Upstream commit 531a0c0cdbff9cecf41073220a826f8b1132f9ab ] The userspace consumer can be built as a module but it cannot be automatically probed as there is no device table to match it up with device tree nodes. Add the missing macro so that the module can load automatically. Fixes: 5c51d4afcf3fd ("regulator: userspace-consumer: Handle regulator-outp= ut DT nodes") Signed-off-by: John Keeping Link: https://msgid.link/r/20240226160554.1453283-1-jkeeping@inmusicbrands.= com Signed-off-by: Mark Brown Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/regulator/userspace-consumer.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/regulator/userspace-consumer.c b/drivers/regulator/use= rspace-consumer.c index 97f075ed68c95..cb1de24b98626 100644 --- a/drivers/regulator/userspace-consumer.c +++ b/drivers/regulator/userspace-consumer.c @@ -210,6 +210,7 @@ static const struct of_device_id regulator_userspace_co= nsumer_of_match[] =3D { { .compatible =3D "regulator-output", }, {}, }; +MODULE_DEVICE_TABLE(of, regulator_userspace_consumer_of_match); =20 static struct platform_driver regulator_userspace_consumer_driver =3D { .probe =3D regulator_userspace_consumer_probe, --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6356B20896D; Sun, 24 Mar 2024 23:05: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=1711321545; cv=none; b=aBChNZXYKvSC0W4Y8ukVJ9JBNF+jVoQBY/e7G1vEdrQ+2Wr4vZJX4gS9nnl25rcCW+UsUJX/LxHECjQUL+8Slh4e4g06qPvD2oj5IV0DSv0YcBkGK4ReujYvktqe5qr0juRFmcwoXgC7dX339Dvh+wFbFTCLfSxbrJp4/aSy1kc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321545; c=relaxed/simple; bh=bTdSv5L7VcN31a4nlJmxGo8AQdF1ZSbWH60gaYXbq3U=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=RYZrbnv7uJbWdeEx/mI3FOvT+/13MRMTR8rVtrHTVzqa9y/nx6XxTLcR96V3XwdBMb+BZBd6/cTphA9GrecNRkjF3GUWc04ItiaQbC/5hyMrIXuFHp83CMs6YtcGFO6TVb4ndbRwmAcEQdpzFPpylMcLAJzWRplkdiLfwTcMSG0= 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/NgIM08; arc=none smtp.client-ip=10.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/NgIM08" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8E861C433C7; Sun, 24 Mar 2024 23:05:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321544; bh=bTdSv5L7VcN31a4nlJmxGo8AQdF1ZSbWH60gaYXbq3U=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=O/NgIM084Xj7w/U9prJ492AEbbYUNEOKSWFcFUMHC/vINqKgQzpcrcHzkkE1hp7xP z9xBvREyPIOXUu8eHX8wIDNC2tQLu9bn2cGQXz0PenfV4VIqQKEZ86wbbozpk40BNI l6lZJnBfP/OYORSKHAZfORep95Xd1LkbOmfyxUHi/wRqIEGAgdeKXAJEgEZqzjXMW+ wbvEH08IKZpzO20IofLCI9VMTVvXZUaYu0hqPAa9V2Bxy/oXG/8r8s2yJyRqIhl4N+ VvFDmoSfJccprJxo/madDswwTOAX0Zw11v/0bQJNfQabOi0EN3ByK6VNHmRHAsxX06 8UI6IVFSCsz6A== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Stephen Boyd , Dmitry Torokhov , Bartosz Golaszewski , Sasha Levin Subject: [PATCH 6.6 272/638] gpiolib: Pass consumer device through to core in devm_fwnode_gpiod_get_index() Date: Sun, 24 Mar 2024 18:55:09 -0400 Message-ID: <20240324230116.1348576-273-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Boyd [ Upstream commit 0d776cfd5e5b559fdf2e38285c2aea4b7048acbd ] This devm API takes a consumer device as an argument to setup the devm action, but throws it away when calling further into gpiolib. This leads to odd debug messages like this: (NULL device *): using DT '/gpio-keys/switch-pen-insert' for '(null)' GPIO= lookup Let's pass the consumer device down, by directly calling what fwnode_gpiod_get_index() calls but pass the device used for devm. This changes the message to look like this instead: gpio-keys gpio-keys: using DT '/gpio-keys/switch-pen-insert' for '(null)' = GPIO lookup Note that callers of fwnode_gpiod_get_index() will still see the NULL device pointer debug message, but there's not much we can do about that because the API doesn't take a struct device. Cc: Dmitry Torokhov Fixes: 8eb1f71e7acc ("gpiolib: consolidate GPIO lookups") Signed-off-by: Stephen Boyd Signed-off-by: Bartosz Golaszewski Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/gpio/gpiolib-devres.c | 2 +- drivers/gpio/gpiolib.c | 14 +++++++------- drivers/gpio/gpiolib.h | 8 ++++++++ 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/drivers/gpio/gpiolib-devres.c b/drivers/gpio/gpiolib-devres.c index fe9ce6b19f15c..4987e62dcb3d1 100644 --- a/drivers/gpio/gpiolib-devres.c +++ b/drivers/gpio/gpiolib-devres.c @@ -158,7 +158,7 @@ struct gpio_desc *devm_fwnode_gpiod_get_index(struct de= vice *dev, if (!dr) return ERR_PTR(-ENOMEM); =20 - desc =3D fwnode_gpiod_get_index(fwnode, con_id, index, flags, label); + desc =3D gpiod_find_and_request(dev, fwnode, con_id, index, flags, label,= false); if (IS_ERR(desc)) { devres_free(dr); return desc; diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c index deca1d43de9ca..1c512ed3fa6d9 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c @@ -4021,13 +4021,13 @@ static struct gpio_desc *gpiod_find_by_fwnode(struc= t fwnode_handle *fwnode, return desc; } =20 -static struct gpio_desc *gpiod_find_and_request(struct device *consumer, - struct fwnode_handle *fwnode, - const char *con_id, - unsigned int idx, - enum gpiod_flags flags, - const char *label, - bool platform_lookup_allowed) +struct gpio_desc *gpiod_find_and_request(struct device *consumer, + struct fwnode_handle *fwnode, + const char *con_id, + unsigned int idx, + enum gpiod_flags flags, + const char *label, + bool platform_lookup_allowed) { unsigned long lookupflags =3D GPIO_LOOKUP_FLAGS_DEFAULT; struct gpio_desc *desc; diff --git a/drivers/gpio/gpiolib.h b/drivers/gpio/gpiolib.h index aa19260836893..9bbde38238d33 100644 --- a/drivers/gpio/gpiolib.h +++ b/drivers/gpio/gpiolib.h @@ -207,6 +207,14 @@ static inline int gpiod_request_user(struct gpio_desc = *desc, const char *label) return ret; } =20 +struct gpio_desc *gpiod_find_and_request(struct device *consumer, + struct fwnode_handle *fwnode, + const char *con_id, + unsigned int idx, + enum gpiod_flags flags, + const char *label, + bool platform_lookup_allowed); + int gpiod_configure_flags(struct gpio_desc *desc, const char *con_id, unsigned long lflags, enum gpiod_flags dflags); int gpio_set_debounce_timeout(struct gpio_desc *desc, unsigned int debounc= e); --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4D9CA20897B; Sun, 24 Mar 2024 23:05: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=1711321546; cv=none; b=HhLy0V0rgJkRkDg5HvvIBvdV0tPCT0BCri2/QZpkqNwKFOFsS42KTVcLcpkkLbQKRXbBO3lOfauVjejMvBeB/fzUZH2zYJGgLEzHJxQ2S/0cAfnJMNQNNt1crr+CeGyhtPRl75Ze7ewLWTF5pvasCjr8b2G4FbB3bF+16TuehrQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321546; c=relaxed/simple; bh=SshzBxQWI3HSxD262UrFfxJZBE5bBzCQvEdLf58jmno=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=stUMSUhUnQCGQS4lugSGoKLMtQZGQdf0bpwNbBayNV7x51W3Z/e53qeAbMJgPBPpv9hRwoLZJ7pMqSX+7GOizg/Qo+sMtAKSW5tOE1Ouwcl1C7DQLr4ulYIS2QgiK9pfDELkC3QjNZpOAsqUrxlmNhPo7QWqqnht4FGANeU3+Yw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=kHNczzss; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="kHNczzss" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8B124C43390; Sun, 24 Mar 2024 23:05:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321545; bh=SshzBxQWI3HSxD262UrFfxJZBE5bBzCQvEdLf58jmno=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=kHNczzss6K4FyRx+WY+lPAf05CwnBi69ONgilUAW5L9+XY/1HLwYp6eXpd9ICvxax V7Evnb3qb0K2VAfqRBMDxzNXqEkPVAVRTFgHY0YFVIi18OXU/e+Nd8uYJxU+ZlGCIF O4LHaEsTD6+WlOljckZBSMB72D/ZcHr0ecW/fs77Fb6IzDPh4kNEAiOCtHAv1tpIn0 slFWqPwSjDHfZ9JJxWlw/rXGPNEDE6sq1EbHz2fOYA9L4vVw6TkGna3unT7KiAexC6 sjynlpP4/HkiOptKeA2VmsRuXPTYA18cas2/Up3of3k+DOKcwTYkDHar1+QGEmUMLN Umc3E6dF4YzKA== 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 6.6 273/638] arm64: dts: marvell: reorder crypto interrupts on Armada SoCs Date: Sun, 24 Mar 2024 18:55:10 -0400 Message-ID: <20240324230116.1348576-274-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-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 Tested-by: Takeshi Ogasawara --- 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 e300145ad1a6f..1cc3fa1c354de 100644 --- a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi +++ b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi @@ -431,14 +431,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 4ec1aae0a3a9c..7e595ac80043a 100644 --- a/arch/arm64/boot/dts/marvell/armada-cp11x.dtsi +++ b/arch/arm64/boot/dts/marvell/armada-cp11x.dtsi @@ -511,14 +511,14 @@ CP11X_LABEL(sdhci0): mmc@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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2C308208979; Sun, 24 Mar 2024 23:05: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=1711321546; cv=none; b=Gf1wSXo3CAxNCJkIx/mt24ZNwrrt9V6UK7GT4Pch5c0NXMU+3nkzNEQt1WbHHlJwbCLhaBUBbylplid4VC51xnD7vdDH62QYYUArkCGvd//P9QzjKhmtzA4L7ZcHhahWiwCwmgDB2eFqhC109TsIW3HQIf3A5kpyoCxdbZ0+8Yk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321546; c=relaxed/simple; bh=gnliY6VElyIEbYJAxbLMX+CdhNylV1UaV2epdCmgx4k=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=F28bi7S5BRA6e4b191H43XN2K5fn82qBaDXcwT2hRK6xj2gvz+zKFz6Jbdxu2pR1PCPzeeAMyrmbnxV6RWggctLYAoP4seyxJZunVrNAH8lGa/Fu+O6IjKtcfhgs+Zwek4NTESssY9plqLuA3aeY8nyvC8SRnTu4oM6+WSRTTug= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=SA6/KYzm; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="SA6/KYzm" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7313DC43399; Sun, 24 Mar 2024 23:05:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321546; bh=gnliY6VElyIEbYJAxbLMX+CdhNylV1UaV2epdCmgx4k=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=SA6/KYzm9Po6Tg6BDrlzDjtWi+5c5SLJCi28DHBvcReG8GYDSkCAF4in2fLSoW+Vn Xp+7HgSZ6gUel6rdpqW5ESBcHssqgWuIp47Y/3SCd1ySkdBpMxIRt9nGbz6er1TRKd Dkf06E6vSb7NG3qQ02WHPCCNNkrpDdJS2Vb8QGszuFbsFJYKrH0xLrusH0DPgQNxH6 tLtSxAL9XaFEykYH9IiRuxRSwC4lv1N3cF7EPbvV/D6wAb6/ncj6AxChaxjSgXeCuo ZCyQp5I+Xhb5Bc/70GiI4uaREFc04H/4/AkUppzo9I6ugyI31KqN2N5GVmm6TLzG+Q I02RshSGfGgRg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: David McFarland , "Rafael J . Wysocki" , Sasha Levin Subject: [PATCH 6.6 274/638] ACPI: resource: Add Infinity laptops to irq1_edge_low_force_override Date: Sun, 24 Mar 2024 18:55:11 -0400 Message-ID: <20240324230116.1348576-275-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- drivers/acpi/resource.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/drivers/acpi/resource.c b/drivers/acpi/resource.c index 85ae394e793e6..b8378033117d4 100644 --- a/drivers/acpi/resource.c +++ b/drivers/acpi/resource.c @@ -550,6 +550,18 @@ static const struct dmi_system_id pcspecialist_laptop[= ] =3D { DMI_MATCH(DMI_BOARD_NAME, "GM6BG0Q"), }, }, + { + /* 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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0DBE1208984; Sun, 24 Mar 2024 23:05: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=1711321548; cv=none; b=ItYeGaOV2q4gkcCgm4IZZbwHFWBFq+bSLakGw109j1SboALlIXaWNRYuQX20TfKMnvFxbL0XtxO4KZ3JReOhSKF1jioicHF1JySUgP6c42uEXk28k9kz16iGqF6UEg6gytkuIwUv1tBvrAnyvlPVJtUJdbJc+4jPzEtCSPlGBaI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321548; c=relaxed/simple; bh=vSXBLHwVf5dgt++K+6k96qdHTcUOWapdasyCUaiH4Eg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Z6a119hdSmLrCF+Y/fzZwZGbXFW3j3w3xdBtugmRYDdooKeNWC7bq0dzqWmffr3PBz9syzmOWusmbe5Yxy2A2t4FyWo21sXZ95TBT9ivTJHOyr3fDzqD0dZ0PHliAMQlxj19DA7qEM+l1ycskFf3FzLzb/1J0hLYsHDqGbAIVRw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=hBj3r0RT; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="hBj3r0RT" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5265BC43394; Sun, 24 Mar 2024 23:05:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321546; bh=vSXBLHwVf5dgt++K+6k96qdHTcUOWapdasyCUaiH4Eg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=hBj3r0RTClPapeNs/f9uL0524enuCO5Dgiuwc9vKlFdAQrYTtIwBbxefutJBFAZvc BR1f/vNz6btXKC1Nxdcwv20tgHXtDdYL2UX7QMAoz1rGbZxAM7lfZ5TK29kSPfBgLh wiBgnfuv9/oNxBMozx7+JdX+AqLN0dwWeBK4OUW7kGL1ngjyeY0S8EA4JH0twEjtF1 mmmJr3ONT40hxOkC9R+3wkZnjsEdSoUXjUgLxRXsvg24gManTCecSSkG6/7MG6kka4 CdGsZF7WPJcnfh1a6n6Q9vvOWhfNKP9J8c2AsE51YxKcKPDyGno4FOnDvTpn0TLXdW XfG9iiaAHyF5w== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: "Alexey I. Froloff" , "Rafael J . Wysocki" , Sasha Levin Subject: [PATCH 6.6 275/638] ACPI: resource: Do IRQ override on Lunnen Ground laptops Date: Sun, 24 Mar 2024 18:55:12 -0400 Message-ID: <20240324230116.1348576-276-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- drivers/acpi/resource.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/drivers/acpi/resource.c b/drivers/acpi/resource.c index b8378033117d4..ab1865e22864b 100644 --- a/drivers/acpi/resource.c +++ b/drivers/acpi/resource.c @@ -562,6 +562,20 @@ static const struct dmi_system_id pcspecialist_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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0D669208989; Sun, 24 Mar 2024 23:05: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=1711321549; cv=none; b=SHny56A2irsEI5qUjOaClSqFTMkN6yIuozQmju3rJFU4rZy1ifXFX/HqYnI66lxn5w4UEHyGE6sGPSueO3piDQjwKDNFvRwnCRfrJ6Ql3WVzah9oUJT4R5wK0rgHCVou1UEhieutRj/TuZibi046qdc7OiaKgpFy/qGmpWlC8w4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321549; c=relaxed/simple; bh=ko3SOaIWgbG8YON21og9hSLDB2wMrpiFM2HPWVRL5d0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=BMhkdR1loNqoV4ty9615AkeQErC2NV2rJrfsI2rEreiHv2vSZYnumKOdfketmnko1zq+g5FQMXKagrY9WnbL/JxZ3NkstWs7PHZeMu6a2+J5heRGvv8Sah/PW4NHbW0pvFgYblSwIQ+xC0InWeDpHtiJSjtw27ygKiJ4qZJCFIQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=KNVinnUE; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="KNVinnUE" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 31E42C433C7; Sun, 24 Mar 2024 23:05:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321547; bh=ko3SOaIWgbG8YON21og9hSLDB2wMrpiFM2HPWVRL5d0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=KNVinnUEjO7w8DldJDZqeSyzt3C0KM4VcAHjgomBpESI6yBg41AfcBEfTqXqKIIH4 diVTXTAaf+28+szVNRabClAS3id7W39uXaCy78WNRLuuxrfuOpLWlG3od2u4i4QB4d h0wBuiopGQY3j+q5J+qvIeS5jRkWAT1C0cs2bQjIL7XDAQLcM3bzaQAet+gaOCs61U K4JufDAQmG/W3weTW92Qh1E/5YqJgZfFcarO98iITpljgqt5fsKy6inS4YEqxjTPNL 7n93PjlTai8jM+YnV+uDXBoo4tbWGn5TsMaZGTIttnzfpG1TAw6IAJkchaU+NJ+sy8 pdoZSCnN4NIOw== 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 6.6 276/638] ACPI: resource: Add MAIBENBEN X577 to irq1_edge_low_force_override Date: Sun, 24 Mar 2024 18:55:13 -0400 Message-ID: <20240324230116.1348576-277-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- drivers/acpi/resource.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/acpi/resource.c b/drivers/acpi/resource.c index ab1865e22864b..b9d219ac4e6bd 100644 --- a/drivers/acpi/resource.c +++ b/drivers/acpi/resource.c @@ -576,6 +576,13 @@ static const struct dmi_system_id pcspecialist_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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3F1FD208990; Sun, 24 Mar 2024 23:05: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=1711321549; cv=none; b=QZ7GKrhlcpk0oshwyxBJ64UK9U7od02+h0P4/NHzdfZ0Yxm+WTQMqE1IP34v6DRKz08E0t/OzX0aWUywZ2xCqxyark64f8wPTDh1oRhC6KnGQT6fTz3AvU8hDcNHOAu5FGRWKoI9gGZ1o1QEALxb01kdR+krLn7gQl5Eh+jI9tY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321549; c=relaxed/simple; bh=g2YXO61G3NauVALNbXM7ivW6aNYn2CeUlSl5s3qq4tQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Ul5Yvk22cg/0vvohOOHdYP4CDZc5wmeZLeJEiteMZTExpRNiHWAIHBiImk+6K0cQKf8k3a2DJisPAhCe5QwSlaEUh7nVNiy24EUGK55Gg8WyTIUzRC6BAA+Vr703aP/oNZ2hm1k9NOB+6Nq5dtwA8Ht6cs06itASHJbv9zii+y0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=mZ2G/9CK; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="mZ2G/9CK" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 30D72C433F1; Sun, 24 Mar 2024 23:05:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321548; bh=g2YXO61G3NauVALNbXM7ivW6aNYn2CeUlSl5s3qq4tQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=mZ2G/9CKNITl5Tip3KF4G4M0lP4Jc2MmiXTQRNB0PHvhbTuuH0x9gzIx0N+gnFXK6 L2mVd8QmSBjDprpqaEjMUI83PV2lABtPyGitMc6hl9Zby9CebhiewOWxvm4WBKgZg0 ZJ1ZL048zfWIIBPOOIzQxfpLFCMZqN0YN1PBRcqYX2Foiwacho/beDM9jPOnjfAuPE yZlIuPPBR60v+LMYhGgET79WSyGYi9gaGZ7EfdasOzma88WZD0QbxKdxnbNj5tLsrc a1u0mVKlHO2MS5NaQpPPrv1FBE7hjRoplCc4IaLPvuO4q8RmdlHBkkLpAJKN7Pa1R6 pO5ArErMveiPg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: "Rafael J. Wysocki" , Jonathan Cameron , Sasha Levin Subject: [PATCH 6.6 277/638] ACPI: scan: Fix device check notification handling Date: Sun, 24 Mar 2024 18:55:14 -0400 Message-ID: <20240324230116.1348576-278-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 1d249d0f61ae4..597d75baa1cc3 100644 --- a/drivers/acpi/scan.c +++ b/drivers/acpi/scan.c @@ -314,18 +314,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E8BC920896F; Sun, 24 Mar 2024 23:05: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=1711321550; cv=none; b=D2wZJbqo/eOw9kuCy9t/49jp1ddHLDfZWRlAMQp7dLppPTk/MK9HUZtXYINgC7POMzYS9wD8EcbeSsBgAEVzHEDz/0jzc6nDrqAi/gVMTQzLIg7tMDjR4YFW37Jyauh9147yVx45CWw7XN8Y3A9NCdGYcZrZoGn9Nh2YqH/LctQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321550; c=relaxed/simple; bh=z901vsT93gAMo7P7wHc1SqImBhKlT8ttrHj/M2zhTDg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=IO1vJef3FyEHLyaAsi+fIDXsZIrR3YvihwPAhIltlHpbKmha8EVDfGVOll4w69BsP1BoRmTQ3EW9ObhHZBdm2nIidcwNGxHK1TnGrJtBiPmL/6ARUUzViIMYh/2hfTxYL0MT1+B6TJK9+afytFBv0+Z7r08Sto9PkkbIeVoFiDE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=eOUgBjsJ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="eOUgBjsJ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1AAB5C43399; Sun, 24 Mar 2024 23:05:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321549; bh=z901vsT93gAMo7P7wHc1SqImBhKlT8ttrHj/M2zhTDg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=eOUgBjsJGZouvLfUQmxd+Jo1ylI/Tt2QL4Isv9UFPmlUGhBqKfXD6B8+c/z7aAWRF 8aQSaAv4ZV8L4/h78LDdlnx2FP8V+kvPuPJgyjcPAI8tjBwTGGUlb04qMQcUhIhcvD FcabbLY36Bk7QyX1Fvm/sPUyC0boQPoSzcn43E6o2p5m9dCn8sM757W0dkvblwrNnP UuA6wLB/jxYCny5GfW09nPGsNlT90byMV5X0eJXMmixtHrAtBDJSDYeFXoGs5BYBDn i4PnRwDdaimE73LhyiuZEjBEN9fhEmKFk2YMEUeXp5oNB2nN3c0Vh6WcvUrbxJxcTj ePAc732GWh9Fw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Heiko Stuebner , Piotr Oniszczuk , =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= , Sasha Levin Subject: [PATCH 6.6 278/638] arm64: dts: rockchip: add missing interrupt-names for rk356x vdpu Date: Sun, 24 Mar 2024 18:55:15 -0400 Message-ID: <20240324230116.1348576-279-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-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: Heiko Stuebner [ Upstream commit d1c44d9afa6f89aa0e10a191f30868eb12cd719f ] The video-codec@fdea0400 was missing the interrupt-names property that is part of the binding. Add it. Fixes: 944be6fba401 ("arm64: dts: rockchip: Add VPU support for RK3568/RK35= 66") Cc: Piotr Oniszczuk Acked-by: Uwe Kleine-K=C3=B6nig Signed-off-by: Heiko Stuebner Link: https://lore.kernel.org/r/20240227173526.710056-1-heiko@sntech.de Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/rockchip/rk356x.dtsi | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm64/boot/dts/rockchip/rk356x.dtsi b/arch/arm64/boot/dts= /rockchip/rk356x.dtsi index b7e2b475f0707..3cd097adb3686 100644 --- a/arch/arm64/boot/dts/rockchip/rk356x.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk356x.dtsi @@ -597,6 +597,7 @@ vpu: video-codec@fdea0400 { compatible =3D "rockchip,rk3568-vpu"; reg =3D <0x0 0xfdea0000 0x0 0x800>; interrupts =3D ; + interrupt-names =3D "vdpu"; clocks =3D <&cru ACLK_VPU>, <&cru HCLK_VPU>; clock-names =3D "aclk", "hclk"; iommus =3D <&vdpu_mmu>; --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D983913792B; Sun, 24 Mar 2024 23:05: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=1711321551; cv=none; b=h7JnrGRtdVlBEWTclVQJ1dXHT5/8VioGgxjiRfo749LkPdx/G8wZlU7cuD7PzBTJXQtytrkwZKmd6qk9m5hGmj76vMqu3eg2OCbAzw276Kr9PeFLbJQLzvbk1PhBVR9TZy+nSleJyQvnVeMJs67lUJj74XgNGaEaAAwPsOoPpk4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321551; c=relaxed/simple; bh=wPy3lN9HwuEVnsMDePAyiIG0fyWowzYQFWhLYgHqdgo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Z9Qj4MlFe2UZVd0GGLwwUas37zf+YlQKFAiZ5ejd5QocVQDQS3UX0ga3BcZ1TLdN0Za4ZkpDF7uBW+hGRw5rJkSyvux2OLPTaScytjhFtnpESW84009w0mbY8tHx4GKDdQFF6b8CD+Hjb60BK3Ze8M9BhhioLY2+O/W1fFYoDlk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=vA7tUz+P; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="vA7tUz+P" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 19C1AC43394; Sun, 24 Mar 2024 23:05:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321550; bh=wPy3lN9HwuEVnsMDePAyiIG0fyWowzYQFWhLYgHqdgo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=vA7tUz+P2TTeY//dkR2Qn60bkwVFMtJS3locNNr9lwIyPXt//osPLpmxhFpNvmKGv qSDzU1SNkgCBBtGy/K0cyoiwMiyfZNvAsZ39FJzwr4rb3o6FYgVPNFSV9fznOOlRG8 cSXRUrm3oRm8WhjSRUej6rKmC78idNNaNZuWy/NbiEJO6ePieobh7RwaRN7I7u67Dd r0TJTgQUsDO4OVZOY6KAm4W0cJa3vQcQMPOHTkFw0s8hPm7WpwjEx09vLaz6CC8F6B kdag32eXIRLqRKTOL6DWDfTTX/yl2cunGrtUr0IvdnZ1lojifTV2MvYo/gqcV+TWw3 kiDvKUunYkPsQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Heiko Stuebner , =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= , Sasha Levin Subject: [PATCH 6.6 279/638] arm64: dts: rockchip: fix reset-names for rk356x i2s2 controller Date: Sun, 24 Mar 2024 18:55:16 -0400 Message-ID: <20240324230116.1348576-280-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-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: Heiko Stuebner [ Upstream commit 0fc19ab75acde78558bd0f6fe3e5f63cf8ee88b0 ] The dtbscheck reports a warning for a wrong reset-names property for the i2s2 controller on rk356x socs. The other controllers on the soc provide tx and rx directions and hence two resets and separate clocks for each direction, while i2s2 only provides one reset. This was so far named just "m" which isn't part of the binding. The clock-names the controller uses all end in "tx", so use the matching "tx-m" reset-name for the i2s controller. Fixes: 755f37010f3e ("arm64: dts: rockchip: RK356x: Add I2S2 device node") Acked-by: Uwe Kleine-K=C3=B6nig Signed-off-by: Heiko Stuebner Link: https://lore.kernel.org/r/20240227173526.710056-2-heiko@sntech.de Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/rockchip/rk356x.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/rockchip/rk356x.dtsi b/arch/arm64/boot/dts= /rockchip/rk356x.dtsi index 3cd097adb3686..820c98dbccc0a 100644 --- a/arch/arm64/boot/dts/rockchip/rk356x.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk356x.dtsi @@ -1117,7 +1117,7 @@ i2s2_2ch: i2s@fe420000 { dmas =3D <&dmac1 4>, <&dmac1 5>; dma-names =3D "tx", "rx"; resets =3D <&cru SRST_M_I2S2_2CH>; - reset-names =3D "m"; + reset-names =3D "tx-m"; rockchip,grf =3D <&grf>; pinctrl-names =3D "default"; pinctrl-0 =3D <&i2s2m0_sclktx --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 06920137936; Sun, 24 Mar 2024 23:05: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=1711321553; cv=none; b=EuckhKTqLniqPl5ysGflEy8qW7T8wS9KZKt5dOguMIj4naAeV3E3m3/45Kr0jtHkOPWiCwYqi071EOehaiHY44KgpUbZpvr9Ppy5XVHKpdK9nKlApJ4G0qQ/rQCGGRmF+DTGdoWhvXj2yExWW6mtdKr9NROTQ6h/Ja9mpP1x/JA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321553; c=relaxed/simple; bh=fEwnBI35cXTjGoBBgXolNQPB6xmc4Wr8Ex5Lp9+T2DU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=eqVUGeNEBpqYc1rEgF1/ah3PXhtYOECqOeAcFemL10S0QpMptdQS7io2vcMU2aX7aKEA4aHK1ABTt6lMULBMmz59MrjFPMuLg8WfIaiSD416o/0p2jdpDpmJwif6HStiR6fqD+hIsErzciA/FJHFjtzOHHQqNcpepOb8HQbNeS0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=nAHubKPM; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="nAHubKPM" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 020E9C433C7; Sun, 24 Mar 2024 23:05:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321551; bh=fEwnBI35cXTjGoBBgXolNQPB6xmc4Wr8Ex5Lp9+T2DU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nAHubKPMxnbdN901JwDofDfaaonz3WdiYhPnHre3TiHEWFaferRCgBjS4fU8BmuYb j6wd7PfFsMtEQuWXQRBFUTL2deYcMCeKTHaJgpCXOmDVd++GnbDcbYGISGk+LmvBti Pv7H5mvIYFuQtT8h3KtnwyJPFY6S4v+seqUlAFB05p37EujbCz1XXctryWvClV0QTZ /bBcVKU0hNfYFN7v3i9NFWw5CT9+EmfW4KNg1GC/abBj80eRHDREnPo1GlA2obo301 JM88EYx+iDNJZYtdTakOzts/vA+C/I04pTGe3bPiPQNPvOsKCvGFnqac9ZIndE8Z3E aZ1Et+wPnPvvA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Heiko Stuebner , Sugar Zhang , Cristian Ciocaltea , Quentin Schulz , Heiko Stuebner , Sasha Levin Subject: [PATCH 6.6 280/638] arm64: dts: rockchip: drop rockchip,trcm-sync-tx-only from rk3588 i2s Date: Sun, 24 Mar 2024 18:55:17 -0400 Message-ID: <20240324230116.1348576-281-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Heiko Stuebner [ Upstream commit a8037ceb89649659831e86a87a9329d1bb43c735 ] The rockchip,trcm-sync-tx-only property is at this time only documented for the tdm variant of Rockchip i2s controllers. While there was a series [0] adding code and binding for the property, it doesn't seem to have gone forward back in 2021. So for now fix the devicetree check by removing the property from rk3588 i2s controllers until support for it gets merged. [0] https://patchwork.kernel.org/project/linux-rockchip/patch/1629796734-42= 43-5-git-send-email-sugar.zhang@rock-chips.com/ Fixes: 8ae112a5554f ("arm64: dts: rockchip: Add rk3588s I2S nodes") Cc: Sugar Zhang Cc: Cristian Ciocaltea Signed-off-by: Heiko Stuebner Reviewed-by: Quentin Schulz Link: https://lore.kernel.org/r/20240227164659.705271-2-heiko@sntech.de Signed-off-by: Heiko Stuebner Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/rockchip/rk3588s.dtsi | 2 -- 1 file changed, 2 deletions(-) diff --git a/arch/arm64/boot/dts/rockchip/rk3588s.dtsi b/arch/arm64/boot/dt= s/rockchip/rk3588s.dtsi index 4aa516ff156df..aa18cf1d1afaa 100644 --- a/arch/arm64/boot/dts/rockchip/rk3588s.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk3588s.dtsi @@ -1542,7 +1542,6 @@ i2s2_2ch: i2s@fe490000 { dmas =3D <&dmac1 0>, <&dmac1 1>; dma-names =3D "tx", "rx"; power-domains =3D <&power RK3588_PD_AUDIO>; - rockchip,trcm-sync-tx-only; pinctrl-names =3D "default"; pinctrl-0 =3D <&i2s2m1_lrck &i2s2m1_sclk @@ -1563,7 +1562,6 @@ i2s3_2ch: i2s@fe4a0000 { dmas =3D <&dmac1 2>, <&dmac1 3>; dma-names =3D "tx", "rx"; power-domains =3D <&power RK3588_PD_AUDIO>; - rockchip,trcm-sync-tx-only; pinctrl-names =3D "default"; pinctrl-0 =3D <&i2s3_lrck &i2s3_sclk --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 191FA13793C; Sun, 24 Mar 2024 23:05: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=1711321554; cv=none; b=rIRRGhxWrIu1vmzpis6N5JtwmnTgWDHk1hDlcZIUmha3/0VRUPfgwZJxG/M5pGgaJUBBMRX7SW4LsUtmIM3ugTHIGx40HvxbVC0ELPKZMG86RNoMHDN0hSZvnh0L+lIIb8oar0Z5i0lyjW9jMI3VR8yRlA0Z+Lif1W8Wn46YPJA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321554; c=relaxed/simple; bh=mqDHnKF4JwaqvMbLj6PvJjzjGLsRXI6R6B2MXr+ey/o=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=O25/3o94rHPYzspOv2d0pUG634nDEIVtK2Y0oZUvPH1JCm+F057eH0b05LOUPXJRdyL2+jH5scPFsZedy96prqBiLfZjaqVQf77HQ5HKax2iIBzHJpaS6gXVGyNBaB1F7V9TIqwCl1c0TbuHarv3O4rkzl+s+yAHkJ8p4jiEynY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=cwhW9kXR; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="cwhW9kXR" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 297E4C43390; Sun, 24 Mar 2024 23:05:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321553; bh=mqDHnKF4JwaqvMbLj6PvJjzjGLsRXI6R6B2MXr+ey/o=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cwhW9kXR/1oPJfOiqqV3mmtG9j+PjcwFEnEjHbApFsOSKm+m3XPLQzkxfSvhVMnMa FhMS0XWkiJPLaMvFb/MhS/e5Gz8Q63sMBJtsqHRt5OZIt2sncWKbRboME2O6xW6DhC sfGtP/b/Iia6wz3B36TGTadQSe8j910I4VPGKz58nQEGENuDN/oDzd+mOT1s3PFG/g yqmEmgbqXtzBXYj9uGwkT2dmXqEHMf0rApWnlqDSv/s7Dqi34mEoxtWpFwa0QZIxxX tlOp+HTJbaZN+9XAFDv0Qt9DVt8LHZGKtwHgGdapM9/czfR7MvuOkGHH+gNthUpEUE 16ORbLg/LioIw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jason Gunthorpe , Shameerali Kolothum Thodi , Nicolin Chen , Will Deacon , Sasha Levin Subject: [PATCH 6.6 281/638] iommu/arm-smmu-v3: Check that the RID domain is S1 in SVA Date: Sun, 24 Mar 2024 18:55:18 -0400 Message-ID: <20240324230116.1348576-282-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Jason Gunthorpe [ Upstream commit ae91f6552c301e5e8569667e9d5440d5f75a90c4 ] The SVA code only works if the RID domain is a S1 domain and has already installed the cdtable. Originally the check for this was in arm_smmu_sva_bind() but when the op was removed the test didn't get copied over to the new arm_smmu_sva_set_dev_pasid(). Without the test wrong usage usually will hit a WARN_ON() in arm_smmu_write_ctx_desc() due to a missing ctx table. However, the next patches wil change things so that an IDENTITY domain is not a struct arm_smmu_domain and this will get into memory corruption if the struct is wrongly casted. Fail in arm_smmu_sva_set_dev_pasid() if the STE does not have a S1, which is a proxy for the STE having a pointer to the CD table. Write it in a way that will be compatible with the next patches. Fixes: 386fa64fd52b ("arm-smmu-v3/sva: Add SVA domain support") Reported-by: Shameerali Kolothum Thodi Closes: https://lore.kernel.org/linux-iommu/2a828e481416405fb3a4cceb9e075a5= 9@huawei.com/ Tested-by: Nicolin Chen Signed-off-by: Jason Gunthorpe Link: https://lore.kernel.org/r/11-v6-96275f25c39d+2d4-smmuv3_newapi_p1_jgg= @nvidia.com Signed-off-by: Will Deacon Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c b/drivers/iomm= u/arm/arm-smmu-v3/arm-smmu-v3-sva.c index 8a16cd3ef487c..cc33e8297b8d0 100644 --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c @@ -352,7 +352,13 @@ __arm_smmu_sva_bind(struct device *dev, struct mm_stru= ct *mm) struct arm_smmu_bond *bond; struct arm_smmu_master *master =3D dev_iommu_priv_get(dev); struct iommu_domain *domain =3D iommu_get_domain_for_dev(dev); - struct arm_smmu_domain *smmu_domain =3D to_smmu_domain(domain); + struct arm_smmu_domain *smmu_domain; + + if (!(domain->type & __IOMMU_DOMAIN_PAGING)) + return -ENODEV; + smmu_domain =3D to_smmu_domain(domain); + if (smmu_domain->stage !=3D ARM_SMMU_DOMAIN_S1) + return -ENODEV; =20 if (!master || !master->sva_enabled) return ERR_PTR(-ENODEV); --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 581D6137C22; Sun, 24 Mar 2024 23:05: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=1711321555; cv=none; b=FkCpKQNQtozW/iRPXc+wPAbSJiUu8HTuftbPVb6x9jUHfkz0sQxkobGw8qCmM2BUFA/95hYd4twTmNLlZ2ZsS4z5bXOT2WWUxJFrZFFVV9KiVySqVhNtDjnnwUYThDHdnWtf4WCiCivBnR5YWUu2BCjXzze+xtYyz+1QWUIs1zk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321555; c=relaxed/simple; bh=Oy4cmeOCNXlltoZON9vom6KxuGfFKgp8FtaL4HrwVTg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=knGkzqN6USgVUHb+KIxoQG6nkUj7zzYNi5zl6OjoCokdsPULbOAC8lZVyuFmrElxsHnS9ClLwC7k6CbKfCVLWezhLw8qercdiYYLjIM0eNXdhuCQ3cpqvzC5zixM1lNRclFGtrfHRW/ve7jANzdksdVQ5huxmSsBn9pPBy5U5bU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=G6FMd3s+; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="G6FMd3s+" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3C173C433C7; Sun, 24 Mar 2024 23:05:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321553; bh=Oy4cmeOCNXlltoZON9vom6KxuGfFKgp8FtaL4HrwVTg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=G6FMd3s+lk+08q5clbCFwCENSmkRYqJek8jCyPInHvbFtcHw6mjwGoT79cjkLFA+K JHY0djz7ANeUVtTyr/lBy425enhe6bLk8J5Bik/vwPTQjjUFYbkimXQk+wlYuG1R2A H/91U19UoKiBNqfa5GgD0Vy8UTh8kJ/tRhBRBxXZUGGKaL3Yz0xN9pe7a22GyXH30e 1RtGlq1j3nMuBypBXSNOQyMt/8n6EYS/eoI4yEixkeiIfXLEctiKwD5YzCEvkFw4dL ilX0KKPxwSPjaHeiV9n8B7u7mqFkfH6QIcw+fp59QBkeZXEz6xBjBG5X3ztASdgbjw QxMTYwZjwT2aQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Josh Poimboeuf , kernel test robot , Kees Cook , Sasha Levin Subject: [PATCH 6.6 282/638] objtool: Fix UNWIND_HINT_{SAVE,RESTORE} across basic blocks Date: Sun, 24 Mar 2024 18:55:19 -0400 Message-ID: <20240324230116.1348576-283-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Josh Poimboeuf [ Upstream commit 10b4c4bce3f5541f54bcc2039720b11d2bc96d79 ] If SAVE and RESTORE unwind hints are in different basic blocks, and objtool sees the RESTORE before the SAVE, it errors out with: vmlinux.o: warning: objtool: vmw_port_hb_in+0x242: objtool isn't smart en= ough to handle this CFI save/restore combo In such a case, defer following the RESTORE block until the straight-line path gets followed later. Fixes: 8faea26e6111 ("objtool: Re-add UNWIND_HINT_{SAVE_RESTORE}") Reported-by: kernel test robot Closes: https://lore.kernel.org/oe-kbuild-all/202402240702.zJFNmahW-lkp@int= el.com/ Signed-off-by: Josh Poimboeuf Link: https://lore.kernel.org/r/20240227073527.avcm5naavbv3cj5s@treble Signed-off-by: Kees Cook Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- tools/objtool/check.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/tools/objtool/check.c b/tools/objtool/check.c index e308d1ba664ef..e3fc263b1b206 100644 --- a/tools/objtool/check.c +++ b/tools/objtool/check.c @@ -3604,6 +3604,18 @@ static int validate_branch(struct objtool_file *file= , struct symbol *func, } =20 if (!save_insn->visited) { + /* + * If the restore hint insn is at the + * beginning of a basic block and was + * branched to from elsewhere, and the + * save insn hasn't been visited yet, + * defer following this branch for now. + * It will be seen later via the + * straight-line path. + */ + if (!prev_insn) + return 0; + WARN_INSN(insn, "objtool isn't smart enough to handle this CFI save/r= estore combo"); return 1; } --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0616D1E965D; Sun, 24 Mar 2024 23:05: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=1711321555; cv=none; b=lfDIBt8uIHATt/A+hn5WHpOyr0AFJhmtCfT+NLs/o2F4v1WaKCuwife3KYfjPX4TjC7ZrIG6mqlOWVMimBjDJ2UlznK0jIpGSO/zbyCizoApPfz0n9y2ymhepPitjeE2ALdNzRf+gGfZlJZZUp0mtBCgSfxBKi2GyC7kU9A8dcY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321555; c=relaxed/simple; bh=CWRgix+uDvTPQLyz3Skw1HxUUQ9clC+hsv2lUdDt+KI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=gaKClxmQbCblHwy0OxlmJxoOGvCVuc4YiAlrg7MbaoaU40rLKAC8ez+RQDfJTpP/s3SeffBH4PgTUNjelciWFlCdrWZtmviX8hO3tSS2utCObrAB6Vhig91is/SHtWBf01PbXUYoNkxltOEaLhI83naRYctxHMXjWI734G6Mtb0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=G2MP/LPb; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="G2MP/LPb" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 36F82C43394; Sun, 24 Mar 2024 23:05:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321554; bh=CWRgix+uDvTPQLyz3Skw1HxUUQ9clC+hsv2lUdDt+KI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=G2MP/LPbNx5WJSANoKGJAYdLphh1S1aXDzVZXv7kZpql9C8737IxvmPeOUzalNNTU Di8wdp1iUwA087ap9vU2gmNnCUi607CZ7B3syRzk+v2nwXj8wyG2UfIZo1eUXK9n+D 1XasxBg6XxfdTEr/io8CWQpJD8BDK0vxdhOVfnMUGw8Z/zBXo4khOTtxh8nP2s+8EH bigW6BSY6c2CWvUlHqttnlN2qJd0p3iRFOC+6LrnsFq4Lz0dtcE1twD0m3rYvaqpl/ Vm9cSrirB/Pa94Bw/xtefQ4jT5RfX4CIholry+gxPnmW+VxkIyPKPiCC/mCvvg3Hui Hnaxr/gA/ABsg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Kees Cook , Guixiong Wei , Juergen Gross , Sasha Levin Subject: [PATCH 6.6 283/638] x86, relocs: Ignore relocations in .notes section Date: Sun, 24 Mar 2024 18:55:20 -0400 Message-ID: <20240324230116.1348576-284-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 d30949e25ebd9..e7013283640f5 100644 --- a/arch/x86/tools/relocs.c +++ b/arch/x86/tools/relocs.c @@ -653,6 +653,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 02E732092EB; Sun, 24 Mar 2024 23:05: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=1711321557; cv=none; b=lHJhad2wFGLU5NtCGlkVSlHN0PTneOphDytVfHa2q8HJXSe/fo9MYiL0jJLRwjEjCzYKJIIvoZlondrm0cGQAfdBM26YwlCDipERfy5JS0+676hlCumIQ1YYcMqyMRILqWQ9sVDxPdMSTBNn+uiuPU+fHcA4f1QyR8dd6gyFo98= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321557; c=relaxed/simple; bh=0ZbiRjqbqQPMs4lhJ5vHIlkejiYFnKo63dXZozmQ290=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=J7rA52M986rZxALPKrg4YXyqhDbukyeusbOI20tpmeM+gxuyGxMEmBlnK6s7sGBUW9h+FVYLTDUnyjgCGsjyMTZdrvS7fIcH9Lf8kZBKPmX0H2rDrgjrBg/vDf5gCjrUrkNf2pUdcymIUL4LLUzsDYIKvr4TESo/Kb9vcBVefK4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=EeciWO1O; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="EeciWO1O" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2B767C433F1; Sun, 24 Mar 2024 23:05:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321555; bh=0ZbiRjqbqQPMs4lhJ5vHIlkejiYFnKo63dXZozmQ290=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=EeciWO1Oum1BSIQAKgXYPeZBjZGiw+tmPFMJ1nW2jS/KHSHH+t2O0z1EzqBTmqPin KSAXPffctZU+ldXfDBoJ/leM62mdTsHivW3UXviQY6i0KJtKhm1Wd7lEWsmaokIFk6 sCjz+YL28k3A+04qO3afIM7kzILCZLVDYsbNkSocRGjwWnpgNuAw/b70PauXXVtZ+N HChC+KdB0AjUQYosvAUoinLz/SYHN8DC453DAS9zu/HmBa+0jmt1M3IsoQgIhNAcdV CnwFQw/ywMLk2VWFUi9rhshk6nGHnzslkAPa8cN6rUgiW8BOEXl/SoFjKZNQGgTOkA 1jxRS/54vRxgw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Zhipeng Lu , Jeff Layton , Chuck Lever , Sasha Levin Subject: [PATCH 6.6 284/638] SUNRPC: fix a memleak in gss_import_v2_context Date: Sun, 24 Mar 2024 18:55:21 -0400 Message-ID: <20240324230116.1348576-285-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 e67b652d8e8591d3b1e569dbcdfcee15993e91fa ] The ctx->mech_used.data allocated by kmemdup is not freed in neither gss_import_v2_context nor it only caller gss_krb5_import_sec_context, which frees ctx on error. Thus, this patch reform the last call of gss_import_v2_context to the gss_krb5_import_ctx_v2, preventing the memleak while keepping the return formation. Fixes: 47d848077629 ("gss_krb5: handle new context format from gssd") Signed-off-by: Zhipeng Lu Reviewed-by: Jeff Layton Signed-off-by: Chuck Lever Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- net/sunrpc/auth_gss/gss_krb5_mech.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/net/sunrpc/auth_gss/gss_krb5_mech.c b/net/sunrpc/auth_gss/gss_= krb5_mech.c index e31cfdf7eadcb..f6fc80e1d658b 100644 --- a/net/sunrpc/auth_gss/gss_krb5_mech.c +++ b/net/sunrpc/auth_gss/gss_krb5_mech.c @@ -398,6 +398,7 @@ gss_import_v2_context(const void *p, const void *end, s= truct krb5_ctx *ctx, u64 seq_send64; int keylen; u32 time32; + int ret; =20 p =3D simple_get_bytes(p, end, &ctx->flags, sizeof(ctx->flags)); if (IS_ERR(p)) @@ -450,8 +451,16 @@ gss_import_v2_context(const void *p, const void *end, = struct krb5_ctx *ctx, } ctx->mech_used.len =3D gss_kerberos_mech.gm_oid.len; =20 - return gss_krb5_import_ctx_v2(ctx, gfp_mask); + ret =3D gss_krb5_import_ctx_v2(ctx, gfp_mask); + if (ret) { + p =3D ERR_PTR(ret); + goto out_free; + } =20 + return 0; + +out_free: + kfree(ctx->mech_used.data); out_err: return PTR_ERR(p); } --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D9BE92092EE; Sun, 24 Mar 2024 23:05: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=1711321557; cv=none; b=cBpaVTClWsErmq7/idoffB8T1veJN1zWIvBpjqWVVbk5shScNwSv4ev3oYNi7zk4lO5Nlc699nWlhmmFHxfizIw8aww86VLjDLesko2NDcLeHHAEFs6AQ4LlgJi1zoNntEh/s3mt3/ANsxDmgvQrrnxaTpdbwFnS9D3ynmt+TrU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321557; c=relaxed/simple; bh=uRoRsaHWAWpKpAmF0MLAb2S1bcEcuSVKZ2mxImqiWlo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=fJQHPjCWgGBeWRWxjbSE+KYkrwWIf7FQyZxVdFX1DGSM8JGWedLOwft3Yqpsn1w6BGFW+S26NXq/yToD8hEw1AhHraA4qCu2uq0fOLdfIEppVAuPoUZNB1l53wGyXhLLDDQoR3ohwsvl2bAyywkr4Oy6r9UAIX8dF68YnGxA8z4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=SeAHk9uX; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="SeAHk9uX" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 26800C433A6; Sun, 24 Mar 2024 23:05:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321556; bh=uRoRsaHWAWpKpAmF0MLAb2S1bcEcuSVKZ2mxImqiWlo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=SeAHk9uXBRqPWZiVYjbMszM73CE1ASiTeQ68CD9WNqC3F4+Xy1eSFZMojhXvWkybc CLxpB4VZRp2DBZ18+Ci/SY7thMBXA2rwaeWyGoSTHopTBDd0saVrFVqOMCyPPVUBFx ADBMRF+5bA6PWikMse1gwD8PyyOI1CU61ziskfeZUy+ikimaHEAJ+JVZnEMBv4JAju tHVW4AUs1QlT41moPQAx9IyIipKsxW67piN2iI7ebq4EiodxYEU2TSMBeNTr75T98x UzbUDpqwRCyIHMvkCZ7wGCtiY/j/XPaKPKpp1ZTk/JcbjqXrY/sMMkuvDd1Fw4Pg5l IMvG5mil9dlfQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Zhipeng Lu , Chuck Lever , Sasha Levin Subject: [PATCH 6.6 285/638] SUNRPC: fix some memleaks in gssx_dec_option_array Date: Sun, 24 Mar 2024 18:55:22 -0400 Message-ID: <20240324230116.1348576-286-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 320612092F7; Sun, 24 Mar 2024 23:05: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=1711321559; cv=none; b=p3Yd+CuuO2se08U21L+FQXSquwkLm4KSDOwrq87Ocrf5S+laHL1Yts5X2N993qehd7RCUHY5piZIK4zSh/HSthkRPW6ShY3oI+U1EEgjkseNgFCZKSRHyVGMAjZ+PlnQZeEt5ErdIFct76fzlqpHcX7sHvHUXm4K/bmx9xw+0q4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321559; c=relaxed/simple; bh=SABHHO5iWkeJQHPBFzdh88YsNhXLEezPk/RzQRrTY9I=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=cr1egLt1rNlLNuJU1oKpGcKukgNTDv7cQEAqojOnXu7UMOIZftx8lYYfxbpAz4NO9+RFsSXNiOFjjprhxh4rPcMYxmtvRI3yZ7ZyAMHVyXHoZdtn2HSN96rjtRtXKoHjExtp9mvsbj7uBiN1ekI9Iq+7Ot/CFcph9F2e3tVVz3Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=gWOAXrYJ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="gWOAXrYJ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 08A91C43394; Sun, 24 Mar 2024 23:05:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321557; bh=SABHHO5iWkeJQHPBFzdh88YsNhXLEezPk/RzQRrTY9I=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=gWOAXrYJj3vwbdUqNZMBzyy/4m8KDXPdXTAxeou/I8eCCaxTomAR1vHo5q/Nv0GFC 3XLdCqM06loEI4SrxxFDDyQLReDyPVKIGshrz0BjbMMupuz/+oochSMfpwKpz0yc/2 hKyRWmoA7BOR083Tmznhi6ozMkGXOtlI7cm80XotKUjf9RQa1pEhNaLGU6XV3MMrn5 rPBYhqLhgaBT8ulWpbVYb5xxmAJtblg2lEqnFMGCPf8/IAe+OovTSojXBthnyst1Fm U5HxyPE43WqimHXJMwQ+Tx2iKjjRyaEGy7Zs0srrOvwwDsXF8nWCez0KKDjpoZLX5U Hv/K0hsvFz1BQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Abel Vesa , Neil Armstrong , Konrad Dybcio , Bjorn Andersson , Sasha Levin Subject: [PATCH 6.6 286/638] arm64: dts: qcom: sm8550: Fix SPMI channels size Date: Sun, 24 Mar 2024 18:55:23 -0400 Message-ID: <20240324230116.1348576-287-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Abel Vesa [ Upstream commit 77dd1e50ffcba33c3195ae4fc78f354368ddacb2 ] The actual size of the channels registers region is 4MB, according to the documentation. This issue was not caught until now because the driver was supposed to allow same regions being mapped multiple times for supporting multiple buses. Thie driver is using platform_get_resource_byname() and devm_ioremap() towards that purpose, which intentionally avoids devm_request_mem_region() altogether. Fixes: ffc50b2d3828 ("arm64: dts: qcom: Add base SM8550 dtsi") Reviewed-by: Neil Armstrong Signed-off-by: Abel Vesa Reviewed-by: Konrad Dybcio Tested-by: Neil Armstrong # on SM8550-QRD Link: https://lore.kernel.org/r/20240221-dts-qcom-sm8550-fix-spmi-chnls-siz= e-v2-1-72b5efd9dc4f@linaro.org Signed-off-by: Bjorn Andersson Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/arm64/boot/dts/qcom/sm8550.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/qcom/sm8550.dtsi b/arch/arm64/boot/dts/qco= m/sm8550.dtsi index 076715ef09d56..90e6cd239f569 100644 --- a/arch/arm64/boot/dts/qcom/sm8550.dtsi +++ b/arch/arm64/boot/dts/qcom/sm8550.dtsi @@ -3017,7 +3017,7 @@ sram@c3f0000 { spmi_bus: spmi@c400000 { compatible =3D "qcom,spmi-pmic-arb"; reg =3D <0 0x0c400000 0 0x3000>, - <0 0x0c500000 0 0x4000000>, + <0 0x0c500000 0 0x400000>, <0 0x0c440000 0 0x80000>, <0 0x0c4c0000 0 0x20000>, <0 0x0c42d000 0 0x4000>; --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CC3D02092F3; Sun, 24 Mar 2024 23:05: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=1711321558; cv=none; b=VODCXHvGDpdo2AdNYn+fgFupfR+bqJFHkwmhs0r0xYoat+1NBYHk15yGLBmnbSUVEpgOFlj6YofCzfTVl9Ht/ipFmylNjUGhTagrUr1jGc2m25N/iegZd3wqugaOoGVl5hOR+mLGQWdg3N5e5ge8c7sRG34Ojs30MZWYPPdC1ds= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321558; c=relaxed/simple; bh=bu/cLGl0Ou6FdE2ZToeEYLdGrXcfFHwS3SKibvwNMpo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=C+fdq+xbgnibbqaAvywRJTWgrI56z9D9nZZckkEk5vp0/g0Q0gRKj9gGSxgiJ+Pn3yQOxwbWcauArbWb7peh8ABLA3E8xyhZykK4Dy/8CHUrsQPhfUpg6tGQDDYc+0AyOQrEvLg0zKN/jCrFZJtOLN2udJhlxYn6PT+/CPvl1Xc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=WM5ecH68; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="WM5ecH68" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1D15DC43399; Sun, 24 Mar 2024 23:05:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321558; bh=bu/cLGl0Ou6FdE2ZToeEYLdGrXcfFHwS3SKibvwNMpo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=WM5ecH68BA8uuta57TM/JFlw1zrtXDDDBruDBj6tEkmfSemwu3j0zFl+uweYuha+6 gMO1J1LbhJqXY1lLSP1P7S87OF5ilg20+9SDP6gYHSm4KVYgBu/pQYAxTDMh6cUj8v OoqCg5h1lHErsVsY50dmfUoNO+d8A3SKZm/9WUGB4tDtJYXvq3eEQvzUibQ01wn9n/ Gl3yMmUsVN952SNRoMYwLmjmMEKMHKUwfSxpWtzR5tib6YVUXBJ7lKTqHiCVtwDxR+ BBIP6x1pkQbQjxUnEcRRe02JhUxHXqQKQ7bWlG7l/uLIg3Y6hBYb3wb1lIMlb2Lv+y glXQojJuvMTrQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Christophe JAILLET , Ulf Hansson , Sasha Levin Subject: [PATCH 6.6 287/638] mmc: wmt-sdmmc: remove an incorrect release_mem_region() call in the .remove function Date: Sun, 24 Mar 2024 18:55:24 -0400 Message-ID: <20240324230116.1348576-288-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 77d5f1d244899..860380931b6cd 100644 --- a/drivers/mmc/host/wmt-sdmmc.c +++ b/drivers/mmc/host/wmt-sdmmc.c @@ -883,7 +883,6 @@ static void 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); @@ -911,9 +910,6 @@ static void 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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0518F2092FF; Sun, 24 Mar 2024 23:06: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=1711321561; cv=none; b=PnKDEmZSaMkWv8Y0q31G0+3SJdgGlY3XI+UXFRi90GoJuli55gc3JTNvSJKa3Twuse9DhgAJUm2xfrAZpRGCgysi82BYukU8XRn0qnvZKw4G5faS1NUIUse0N6Z33K0/T2Ykt8kyAqIh9e/3q5eAZ+ynZe6HSZG2FHDej8aQfxg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321561; c=relaxed/simple; bh=yoUldDTV2NJujGlAxoNcWJ40t+aa06GDaoJ4gRjf/do=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=dTfTQBfvlG6eL8MZMPY87IqI+Y97rEkZSOQ2uO0zX06OdbkXyvpmuvOCS14R9kwXDXNzjCfWBmVgDJcp6jIhZ0USqaGkI14YvfhB5KRtd0eVt32Z7YInkueAD6BiQtezEXB2oNrsPlFtapxiJeWr5D64nvTkHSNIYNvvsMHzCWo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=OYl0NBsx; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="OYl0NBsx" Received: by smtp.kernel.org (Postfix) with ESMTPSA id F2019C433F1; Sun, 24 Mar 2024 23:05:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321559; bh=yoUldDTV2NJujGlAxoNcWJ40t+aa06GDaoJ4gRjf/do=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=OYl0NBsxAyoyww8j2/A5E8h955apwZkACoVDrwEHe4B5bKYPtA+u2mKJRBlSPDhsb RS91ADAHl8xXC9VNL9S34u8EQpjtoQuoRIIyxkpW+OIEzPsNCeka2Otejjjs4LF4QW n07wcE2kQWhA2RglT+uGCr6EYOqDf8ywPEcOVR7pT/J7tLrApDicVdgh2pnKheaqYU EkJTOucYpgxi+RLy4F+V/zwv0NWD37vncK4Vo3AU0M6h2RTOSHNJn2QqD9lT46+r4i kXyns2gfPe+6pNY/sYagcuZlPl14Qw1e5V8lTNVf2BOgXa83Yfwic7GVxstERIFVIp kQb5PL6cSoZKw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Perry Yuan , Mario Limonciello , Gino Badouri , "Gautham R . Shenoy" , "Rafael J . Wysocki" , Sasha Levin Subject: [PATCH 6.6 288/638] ACPI: CPPC: enable AMD CPPC V2 support for family 17h processors Date: Sun, 24 Mar 2024 18:55:25 -0400 Message-ID: <20240324230116.1348576-289-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Perry Yuan [ Upstream commit a51ab63b297ce9e26e3ffb9be896018a42d5f32f ] As there are some AMD processors which only support CPPC V2 firmware and BIOS implementation, the amd_pstate driver will be failed to load when system booting with below kernel warning message: [ 0.477523] amd_pstate: the _CPC object is not present in SBIOS or ACPI = disabled To make the amd_pstate driver can be loaded on those TR40 processors, it needs to match x86_model from 0x30 to 0x7F for family 17H. With the change, the system can load amd_pstate driver as expected. Reviewed-by: Mario Limonciello Reported-by: Gino Badouri Closes: https://bugzilla.kernel.org/show_bug.cgi?id=3D218171 Fixes: fbd74d1689 ("ACPI: CPPC: Fix enabling CPPC on AMD systems with share= d memory") Signed-off-by: Perry Yuan Reviewed-by: Gautham R. Shenoy Signed-off-by: Rafael J. Wysocki Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/x86/kernel/acpi/cppc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/kernel/acpi/cppc.c b/arch/x86/kernel/acpi/cppc.c index 8d8752b44f113..ff8f25faca3dd 100644 --- a/arch/x86/kernel/acpi/cppc.c +++ b/arch/x86/kernel/acpi/cppc.c @@ -20,7 +20,7 @@ bool cpc_supported_by_cpu(void) (boot_cpu_data.x86_model >=3D 0x20 && boot_cpu_data.x86_model <=3D 0= x2f))) return true; else if (boot_cpu_data.x86 =3D=3D 0x17 && - boot_cpu_data.x86_model >=3D 0x70 && boot_cpu_data.x86_model <=3D 0x7f) + boot_cpu_data.x86_model >=3D 0x30 && boot_cpu_data.x86_model <=3D 0x7f) return true; return boot_cpu_has(X86_FEATURE_CPPC); } --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 007882092FE; Sun, 24 Mar 2024 23:06: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=1711321561; cv=none; b=PCG/qV0I+zS1CV7Fp8UbWke90vu7iQsdsVCIFaoedc7OlaB3d12zw42Bav3EnJwg3f6RVQEWdIUFPF60IRTDgKx8A47vt8bU5cqkhrOUVgfivlSI6WzTed75LmpKnjDJWc8sXGr+D1q2lzl0nNPBcpknSmu/JWvjQ0YHHlFlaZA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321561; c=relaxed/simple; bh=k9fXtCbqXNZ0AnUWWV++CufZSs17sIiecx+63pb9vlI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=KO52f8X9R7Cjm+sTWGU4KdMc3CGpAI0p/eJHS6Hh6ilUgc/OaQjWaTK/PV2MrBvweq9pQFM1tMpRRpxEWDYztzmmw2K+CDrLsadHw3XmCUpooxI9veF2lHNaKhHx0WTjAktn/w4nWjE1E4wPxSstNBJHgSDCJgEQ4njYkgaJtCo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=LlIJ3Zzk; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="LlIJ3Zzk" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2A4C8C433C7; Sun, 24 Mar 2024 23:06:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321560; bh=k9fXtCbqXNZ0AnUWWV++CufZSs17sIiecx+63pb9vlI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=LlIJ3ZzkCtuxsQ0Obxk7HF0tK5XCrBAuirZyAfjAGK+R0lcLatkQh4CO5I3Z0ogAk n9AMbqBB1ZbZlpvUGi+V/0BG9TOB108duq0ieaL0RtRolpyJZZCzIcPx4aYKTBpi4D RovtCuI2P3ppo85OjupInX4TtA9DJShg9zEKclKVDbnyRtLg1dJfb9sGFVFcOCbDpU CCXWYHKhrof3OSjPjPzB/y49oT3WNu3lUAqAMwCA/aQG48T+nnJvJ82YGak0+q+6GA VjFnN/DWCkbStfCnUivuAIeiWSyPYbfgop2vYbEf2ODOKMmaV+kCWg7q2wpMtJSh6y TplLhgHKUaL8g== 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 6.6 289/638] wifi: rtw88: 8821cu: Fix firmware upload fail Date: Sun, 24 Mar 2024 18:55:26 -0400 Message-ID: <20240324230116.1348576-290-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 41a7acb7dde8395f52a707bbba7712a898dfafb0 ] RTL8822CU, RTL8822BU, and RTL8821CU need an extra register write after reading and writing certain addresses. Without this, the firmware upload fails approximately more than 50% of the time. Tested with RTL8811CU (Tenda U9 V2.0) which is the same as RTL8821CU but without Bluetooth. Fixes: a82dfd33d123 ("wifi: rtw88: Add common USB chip support") Signed-off-by: Bitterblue Smith Acked-by: Ping-Ke Shih Signed-off-by: Kalle Valo Link: https://msgid.link/f12ed39d-28e8-4b8b-8d22-447bcf295afc@gmail.com Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/net/wireless/realtek/rtw88/usb.c | 40 ++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/drivers/net/wireless/realtek/rtw88/usb.c b/drivers/net/wireles= s/realtek/rtw88/usb.c index e6ab1ac6d7093..a0188511099a1 100644 --- a/drivers/net/wireless/realtek/rtw88/usb.c +++ b/drivers/net/wireless/realtek/rtw88/usb.c @@ -33,6 +33,36 @@ static void rtw_usb_fill_tx_checksum(struct rtw_usb *rtw= usb, rtw_tx_fill_txdesc_checksum(rtwdev, &pkt_info, skb->data); } =20 +static void rtw_usb_reg_sec(struct rtw_dev *rtwdev, u32 addr, __le32 *data) +{ + struct rtw_usb *rtwusb =3D rtw_get_usb_priv(rtwdev); + struct usb_device *udev =3D rtwusb->udev; + bool reg_on_section =3D false; + u16 t_reg =3D 0x4e0; + u8 t_len =3D 1; + int status; + + /* There are three sections: + * 1. on (0x00~0xFF; 0x1000~0x10FF): this section is always powered on + * 2. off (< 0xFE00, excluding "on" section): this section could be + * powered off + * 3. local (>=3D 0xFE00): usb specific registers section + */ + if (addr <=3D 0xff || (addr >=3D 0x1000 && addr <=3D 0x10ff)) + reg_on_section =3D true; + + if (!reg_on_section) + return; + + status =3D usb_control_msg(udev, usb_sndctrlpipe(udev, 0), + RTW_USB_CMD_REQ, RTW_USB_CMD_WRITE, + t_reg, 0, data, t_len, 500); + + if (status !=3D t_len && status !=3D -ENODEV) + rtw_err(rtwdev, "%s: reg 0x%x, usb write %u fail, status: %d\n", + __func__, t_reg, t_len, status); +} + static u32 rtw_usb_read(struct rtw_dev *rtwdev, u32 addr, u16 len) { struct rtw_usb *rtwusb =3D rtw_get_usb_priv(rtwdev); @@ -58,6 +88,11 @@ static u32 rtw_usb_read(struct rtw_dev *rtwdev, u32 addr= , u16 len) rtw_err(rtwdev, "read register 0x%x failed with %d\n", addr, ret); =20 + if (rtwdev->chip->id =3D=3D RTW_CHIP_TYPE_8822C || + rtwdev->chip->id =3D=3D RTW_CHIP_TYPE_8822B || + rtwdev->chip->id =3D=3D RTW_CHIP_TYPE_8821C) + rtw_usb_reg_sec(rtwdev, addr, data); + return le32_to_cpu(*data); } =20 @@ -102,6 +137,11 @@ static void rtw_usb_write(struct rtw_dev *rtwdev, u32 = addr, u32 val, int len) if (ret < 0 && ret !=3D -ENODEV && count++ < 4) rtw_err(rtwdev, "write register 0x%x failed with %d\n", addr, ret); + + if (rtwdev->chip->id =3D=3D RTW_CHIP_TYPE_8822C || + rtwdev->chip->id =3D=3D RTW_CHIP_TYPE_8822B || + rtwdev->chip->id =3D=3D RTW_CHIP_TYPE_8821C) + rtw_usb_reg_sec(rtwdev, addr, data); } =20 static void rtw_usb_write8(struct rtw_dev *rtwdev, u32 addr, u8 val) --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F0B202092FD; Sun, 24 Mar 2024 23:06: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=1711321563; cv=none; b=lAl9nVThztLmXNDYRXZJPCEvCTTpS1v9OMQASZF7QS05x9W01Nif4TlcYFl/eKdc8o8lsuggTioWuvXZLv5SaGRQwC8MG9rDtWnGuJhhRi/SNvJiIA6ZyjznH9KQ0cxE3B0e4SLRNXNBZhsSq4AEtSGjEEKQrVX0DCgyzZK6tiA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321563; c=relaxed/simple; bh=2as4bBo5Q9U5cUurpFOJDy4sVzMO8/WedLyf9JYhGBY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Fn1HGlf2LTSnr/1EUNyiZBsw8ml6qjO2b04c7nx7TOvkhvMwdyWsQ1IBxw3UJ/N4NyvbCwVQJO8kyr7fWe0EQQQj9KH7p11kuv7deWZt2jWGFitELkWUm4BG1nKZJfZ97M65YFEyJvVbp5/9duVf3imTuu2DXOitm8Vqkb1ImVc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=WwTxFUxJ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="WwTxFUxJ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2560AC433F1; Sun, 24 Mar 2024 23:06:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321561; bh=2as4bBo5Q9U5cUurpFOJDy4sVzMO8/WedLyf9JYhGBY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=WwTxFUxJpqWcxZFT+ZVA5nM9IFUydG8Hm1usWn7jpNzLYZ2gmkReCAMefp5XpeyEV 6JWyz84ZKfWSluAxd7hun6qpIQv9/1/DA2qhllWcX2CM1g7xqTKc1KRY2ZH75BDEf1 QM98iMOgvxrvovw+RyjvAbiYQdDXvJaeT+aJnn3n62ziEe3nfxY5D17l/aSwc8qe3E o0nJYZPxaRltBFVomZvo/sViMpOwiQptUgGQqf+8WXG25EodMzU95fN7ITS7C7GISF 2PQz6lyOMZhDDrvYKRIXUj1JGubP9ViMsppICAZ2MVO56Hrav1LYzmYd3D4K1XiRq7 Yvq34O3+94VnQ== 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 6.6 290/638] wifi: rtw88: 8821c: Fix beacon loss and disconnect Date: Sun, 24 Mar 2024 18:55:27 -0400 Message-ID: <20240324230116.1348576-291-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 e1dfa21427baeb813f9a2f9ceab6b7d32c3ca425 ] Tenda U9 V2.0, which contains RTL8811CU, is practically unusable because of frequent disconnections: Feb 23 14:46:45 ideapad2 wpa_supplicant[427]: wlp3s0f3u2: CTRL-EVENT-BEACON= -LOSS Feb 23 14:46:46 ideapad2 wpa_supplicant[427]: wlp3s0f3u2: CTRL-EVENT-DISCON= NECTED bssid=3D90:55:de:__:__:__ reason=3D4 locally_generated=3D1 Feb 23 14:46:52 ideapad2 wpa_supplicant[427]: wlp3s0f3u2: CTRL-EVENT-CONNEC= TED - Connection to 90:55:de:__:__:__ completed [id=3D0 id_str=3D] Feb 23 14:46:54 ideapad2 wpa_supplicant[427]: wlp3s0f3u2: CTRL-EVENT-BEACON= -LOSS Feb 23 14:46:55 ideapad2 wpa_supplicant[427]: wlp3s0f3u2: CTRL-EVENT-DISCON= NECTED bssid=3D90:55:de:__:__:__ reason=3D4 locally_generated=3D1 Feb 23 14:47:01 ideapad2 wpa_supplicant[427]: wlp3s0f3u2: CTRL-EVENT-CONNEC= TED - Connection to 90:55:de:__:__:__ completed [id=3D0 id_str=3D] Feb 23 14:47:04 ideapad2 wpa_supplicant[427]: wlp3s0f3u2: CTRL-EVENT-BEACON= -LOSS Feb 23 14:47:05 ideapad2 wpa_supplicant[427]: wlp3s0f3u2: CTRL-EVENT-DISCON= NECTED bssid=3D90:55:de:__:__:__ reason=3D4 locally_generated=3D1 This is caused by a mistake in the chip initialisation. This version of the chip requires loading an extra AGC table right after the main one, but the extra table is being loaded at the wrong time, in rtw_chip_board_info_setup(). Move the extra AGC table loading to the right place, in rtw_phy_load_tables(). The rtw_chip_board_info_setup() can only do "software" things, and rtw_phy_load_tables() can really do IO. Fixes: 5d6651fe8583 ("rtw88: 8821c: support RFE type2 wifi NIC") Signed-off-by: Bitterblue Smith Acked-by: Ping-Ke Shih Signed-off-by: Kalle Valo Link: https://msgid.link/276c31d8-b9a8-4e54-a3ac-09b74657aff7@gmail.com Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/net/wireless/realtek/rtw88/main.c | 2 -- drivers/net/wireless/realtek/rtw88/phy.c | 3 +++ 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/realtek/rtw88/main.c b/drivers/net/wirele= ss/realtek/rtw88/main.c index 4a33d2e47f33f..63673005c2fb1 100644 --- a/drivers/net/wireless/realtek/rtw88/main.c +++ b/drivers/net/wireless/realtek/rtw88/main.c @@ -2027,8 +2027,6 @@ static int rtw_chip_board_info_setup(struct rtw_dev *= rtwdev) rtw_phy_setup_phy_cond(rtwdev, hal->pkg_type); =20 rtw_phy_init_tx_power(rtwdev); - if (rfe_def->agc_btg_tbl) - rtw_load_table(rtwdev, rfe_def->agc_btg_tbl); rtw_load_table(rtwdev, rfe_def->phy_pg_tbl); rtw_load_table(rtwdev, rfe_def->txpwr_lmt_tbl); rtw_phy_tx_power_by_rate_config(hal); diff --git a/drivers/net/wireless/realtek/rtw88/phy.c b/drivers/net/wireles= s/realtek/rtw88/phy.c index 128e75a81bf3c..37ef80c9091db 100644 --- a/drivers/net/wireless/realtek/rtw88/phy.c +++ b/drivers/net/wireless/realtek/rtw88/phy.c @@ -1761,12 +1761,15 @@ static void rtw_load_rfk_table(struct rtw_dev *rtwd= ev) =20 void rtw_phy_load_tables(struct rtw_dev *rtwdev) { + const struct rtw_rfe_def *rfe_def =3D rtw_get_rfe_def(rtwdev); const struct rtw_chip_info *chip =3D rtwdev->chip; u8 rf_path; =20 rtw_load_table(rtwdev, chip->mac_tbl); rtw_load_table(rtwdev, chip->bb_tbl); rtw_load_table(rtwdev, chip->agc_tbl); + if (rfe_def->agc_btg_tbl) + rtw_load_table(rtwdev, rfe_def->agc_btg_tbl); rtw_load_rfk_table(rtwdev); =20 for (rf_path =3D 0; rf_path < rtwdev->hal.rf_path_num; rf_path++) { --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EB559209314; Sun, 24 Mar 2024 23:06: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=1711321564; cv=none; b=TQbPQPsUD3mlsuBbFBP7Ro1ZfnrytiJoMQzi4EXWL4Fat8ydikpJIMmRtSSoshEQeorSeLIdZ9wQoYdYzTYGSkIRoG8JRpfGFl3bq6cclSMFz7aPPmUbKxEix8MRFl6fIMje04tmemzxuAyboHH9+GyThFqSg7dzhEgtkr8yHdE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321564; c=relaxed/simple; bh=hjfTsG3FxMG0UeWB/cpPvLl/vRyoBBKXFNi5QWwVFTI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=fhjIA+M/mvevPNUfvS/ZHiOOAp9FkkFQwrT9cDCyzjq/gdygP3hBAWSPCr0Bg7qvwAg6lonLzB3tmPuhFTivhCGahcYgzAMlZUlPqiDWGN1SJNdraz9mhCHZ+ZprOJko8FGcNVohmbuUGS6nock5bouojR3jDpD7wZTzLCVvUvE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=dhkdzP8e; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="dhkdzP8e" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 204D5C43390; Sun, 24 Mar 2024 23:06:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321562; bh=hjfTsG3FxMG0UeWB/cpPvLl/vRyoBBKXFNi5QWwVFTI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=dhkdzP8el+m+PXAFw+om/sN5TahKePmaZq12qbGhaSBMRVtqA632EJ5Qb9sHS7/PV gergiPDmeo65UrRhQUatb4kwLOti0sdnnboOLSGEivpDui4BeFosJXEBLkBgO9cTdJ UemnNfEWyv9fkvBlIKCWk4TFHVENtdQ1G3VbPKbTb3dK8Y1SvxZRFuitoaOfunFwV8 S33DCo1VIMGRh/CWbuTj6IPbVHgsNgurWUSBPvhX2MYfUYLkfTYAam16UQ6WBrv6gL eNoF2/ZAINIuIRy/C30HB3xCfQo4bFF+Z3Mt2ffA1ef4zpu8yfekY/0aqdFccJQ2Ff 1PDK7z6aKIBvw== 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 6.6 291/638] wifi: rtw88: 8821c: Fix false alarm count Date: Sun, 24 Mar 2024 18:55:28 -0400 Message-ID: <20240324230116.1348576-292-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 adf224618a2a6..5f3a3a88c3d0d 100644 --- a/drivers/net/wireless/realtek/rtw88/rtw8821c.c +++ b/drivers/net/wireless/realtek/rtw88/rtw8821c.c @@ -706,9 +706,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0C2F220931D; Sun, 24 Mar 2024 23:06: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=1711321565; cv=none; b=s7jnKFTA+S5EAUVkPGwbT9VuKcsn5g4aBmm6PVXHKSTfCAsier3cwcuPNyiFuKCG+s4UJuY7wF935WGXImgt57FG/gyRCpivyeaSe9dYlF4BST1so7OEyBF/5Qu7PRKcM5Er6PK54b1u5K6yzr5KRBIeYCLKFfX0vm1NeZJnbak= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321565; c=relaxed/simple; bh=pc24hiC309vacFRrZlWMKE7979a18upVKEad8E06QT8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=YX4pmz/r4+pTK4YK3TfCOe2iE4E+/KaGuu1mX5xPteCYEXFeLZoGdaN8/4SH0HRiH3j3y3a7IL2FP8Sd8yATo1tEPAL3LsHkYkhiEz1ylfYvKLruN8HsmiAS4noT1+Rc3zllgMiOht+C+oA/x9ZWaBpBJtL7+nEgCqftqK2J0rY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Dq8xwZRK; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Dq8xwZRK" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1AE0AC43399; Sun, 24 Mar 2024 23:06:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321563; bh=pc24hiC309vacFRrZlWMKE7979a18upVKEad8E06QT8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Dq8xwZRKp+kVFGyDPLjXfSuXdnBmsMttyDGSHkzz5uFQteuy5b0WVnmX9Yphq6d5R WbzOF92xbiF224Tay7pTl9i1/aPjUHa3l79SlKAUdg2PcyfRL2YgP6KBisaatE87xV AvyMEuedAcMWQvFqAXlXhRsHYURTEqFVyMvL7MOwF2sIMhhk2IpF6OvNSQ6sf7XMaJ 2EiYtvY1Rv5dgk/cGK+Os6m3Pxl5X0z+XGRmCEVsNzBXeR8X1zM5lHlZBZGEAjvWuC R5YVtS0GYVSjffP61AuZW73vNfqyPlO/c/UiTa6IP2RSqfWR8mYhlbpisSM792x8z1 A6BoLe+rvCC1A== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Duoming Zhou , Arend van Spriel , Kees Cook , Kalle Valo , Sasha Levin Subject: [PATCH 6.6 292/638] wifi: brcm80211: handle pmk_op allocation failure Date: Sun, 24 Mar 2024 18:55:29 -0400 Message-ID: <20240324230116.1348576-293-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 b4152222e04cb8afeeca239c90e3fcaf4c553b42 ] The kzalloc() in brcmf_pmksa_v3_op() will return null if the physical memory has run out. As a result, if we dereference the null value, the null pointer dereference bug will happen. Return -ENOMEM from brcmf_pmksa_v3_op() if kzalloc() fails for pmk_op. Fixes: a96202acaea4 ("wifi: brcmfmac: cfg80211: Add support for PMKID_V3 op= erations") Acked-by: Arend van Spriel Signed-off-by: Duoming Zhou Reviewed-by: Kees Cook Signed-off-by: Kalle Valo Link: https://msgid.link/20240229103153.18533-1-duoming@zju.edu.cn Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c b/= drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c index 6049f9a761d9d..df9c26593dbe1 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c @@ -4323,6 +4323,9 @@ brcmf_pmksa_v3_op(struct brcmf_if *ifp, struct cfg802= 11_pmksa *pmksa, int ret; =20 pmk_op =3D kzalloc(sizeof(*pmk_op), GFP_KERNEL); + if (!pmk_op) + return -ENOMEM; + pmk_op->version =3D cpu_to_le16(BRCMF_PMKSA_VER_3); =20 if (!pmksa) { --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4A42B4DA19; Sun, 24 Mar 2024 23:06: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=1711321565; cv=none; b=GhySO8cz7CAturGreWQ7K8A9liqnkp/4bbXmQN43goUAxyDzMszfEKjAEtQIFskhtIZtvvNLx35XmdT5l0G7f6aAscibydsCzpuGFOXWxUOZWPoeHhz3q/GqMuVcswlo6eoPBP88hVEOML3TWAQD1rrDzYJ7XYbNPo9jt5NJxZ4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321565; c=relaxed/simple; bh=0h+dVccax6ro0iS08S+b3SQ+pRrc0gTGC3ATwkrtnoI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=eRuPsfbKws2tOfSOzTGEEiJBd7zibcBhgPie0FQX1LVe1AxPCPjZTFJhod6Kma56//UCUzdfsKMh4gTu0cYEeno9NhjR7Pr1sc6GIENfcS2ppHLskwA039haHiddNdot92eQMnlnIcTbKKr32tMtDtt5mWelumzIbbApJl9tNFA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=SaiHNNtc; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="SaiHNNtc" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2CDCBC43390; Sun, 24 Mar 2024 23:06:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321565; bh=0h+dVccax6ro0iS08S+b3SQ+pRrc0gTGC3ATwkrtnoI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=SaiHNNtcn8XYMnqmPV/sQEs4xbUXv/AbpTTGW02QXYvcSM8+DI9Ui3dpFKoODlLlo z7u/y2oDz87nytQt6SzzS/HwsAL9LZl37XudVozNUhX1ZbGxVwIbmSUm5RvuIVQwZ/ NGxInmXcwibnhidXJuJqbFz/1yrTXLriyRfRZRl/2IfZbk840buErbItmA10/V4EQn JU/kctReqrb4pF871TJ/Bv+PTzHkicWIVolgU2w7YZIAuxgd8LvnWlqSDnjYR1PpV2 /lxP/DORxghVNhaPDmdM6eFgrCcXwUc6M+24UZXu/egwc941EIkK1mi3Fpf8aqzzcC WUG4kKpyRiGkw== 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 6.6 293/638] PCI: Make pci_dev_is_disconnected() helper public for other drivers Date: Sun, 24 Mar 2024 18:55:30 -0400 Message-ID: <20240324230116.1348576-294-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 99abc4cec0df1..1b4f941829724 100644 --- a/drivers/pci/pci.h +++ b/drivers/pci/pci.h @@ -363,11 +363,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 3af5f29985511..b548d5646a86d 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h @@ -2477,6 +2477,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6F758137C20; Sun, 24 Mar 2024 23:06: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=1711321566; cv=none; b=CYX62MA8AgLXMTIphAQs7SB1gm3ATqW9YucIpdiKAbOnG+V/C1rt4gWz4yLklebpIRJsSVQx+RPXdzWoqxqwll2HFPkVWVVlPcMwLrKByKoFpFEZS60Tftu5PML5klYN8h+HEaU6CSSGg1TvJU4C2kNaz5OZ+kgO6S+Q+ecefMo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321566; c=relaxed/simple; bh=ZJxjWE0dAvPo4GNl9f//ajaqYmlXkfeRUspvfjVP8mc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=inDR3D3iDGmHCkvPnkanvD4N8axdO5WjTtmWQzbKOn+7QMYelw0tLDxCvz6nfe1xzyx45wn5VqcBP1Whri3D83tuPW8uueP+7YgdPWVZWe2D6/kx7kzetBI22Y43yh89+M8J2O77D3d2V38KQOK8K+Qmqe6QUvSr8z94OE3WHts= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=iigcmzHX; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="iigcmzHX" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6D91EC433A6; Sun, 24 Mar 2024 23:06:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321566; bh=ZJxjWE0dAvPo4GNl9f//ajaqYmlXkfeRUspvfjVP8mc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=iigcmzHXKq4AdPob5LTR++uIQ2Q1e1rhfYLU/jYSv2qgzcmy+hmXXp4jYaLiU6J4o aMuG70MV3XhEH40hwch2EzMpqP4QDHAms7nV5AoA+JlGLd30rWgDO4jc0D30RAlWA8 8zMtk9YN6dpZadqiKLlxCPjydD244Ob373gXM9ZBKzl9asPxBxq2m40BW9q0HY2Edu 1OMXb+hLv4+PewpANwWWq55nq6KOvdTUjfDNCMKIu+lLdyjoDa3ThiGN1PyLuliZvd fAoIRp5RH4p/XPVfn5x/9tdHVlu0s7ZDAdM3mREyeCD7ABeswNXCfwiQo6dfdbQ4av RMH7Ubgs4bLXg== 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 6.6 294/638] iommu/vt-d: Don't issue ATS Invalidation request when device is disconnected Date: Sun, 24 Mar 2024 18:55:31 -0400 Message-ID: <20240324230116.1348576-295-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 8f92b92f3d2ab..8faa93cffac45 100644 --- a/drivers/iommu/intel/pasid.c +++ b/drivers/iommu/intel/pasid.c @@ -428,6 +428,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 877A6137C32; Sun, 24 Mar 2024 23:06: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=1711321568; cv=none; b=iOrOQ1bxjxPed3oK/7Kct7251PNrehNo5LvROJ4cjaKFzchVl9Oj6DO2kBGn1rXYtm/PB/4upUDREv7ThcwPjtSYylkZnPzpB9xZBn2Vns8DaPW1GqO3y6TkF2DbAiY4Z53VSVCWp1WhepszA+cKVs/iyeWkXhQooqI2g0C44JM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321568; c=relaxed/simple; bh=xugdmSYwMuWoMycuaG+jFuw+gky5u1f9lWH9XzODijo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=d2VEHLjdAcInbqa2ycYZVenb4mLEOHRqKqAmUp+FEGNICZ6OYXkIjWMtBUEogU0Zi7b49Z1kkVEFuaE4uqAKYjHxNobtImFx17gqcVnxNv7YXXfKKLhGAvOwNwY0yBtQ2HwTGA4DK1tpBAlGI6dqsdeCbnBItDWVZEGoVdd6adA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=jtmffhM1; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="jtmffhM1" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 944D7C43399; Sun, 24 Mar 2024 23:06:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321567; bh=xugdmSYwMuWoMycuaG+jFuw+gky5u1f9lWH9XzODijo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jtmffhM1E98L3Ku//ViJoFyhF89KHboow/RfU/Rx5s6FgyMziSgjOqHS1wVzZMY5b nMAeStQGIVHvJUcYJ441qmWlB2xFZlLyrmIcS9/qKJCIf03yXoBN6zyvqp/rHWMa8d Ygf8s0CKrq3jy5etnrsq4MoeTyqP9tclP3bIuarw47pLFGF9E4VGf3cV8PD2s6nV2O BNTG56f8r/7PtrdDeHLOzdKP85dTkowTErwv3GRp91RMVFr6vSA1MLLAp8ilR80t4s F8UOPIOzXQm/blBfH3P8OPs/UnU70zv6UayfHX2sE2+wjVOH/qOQ/B9g9hGNCmviR9 34DcYR8olS0cw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Vinicius Costa Gomes , Kurt Kanzenbach , Naama Meir , Tony Nguyen , Sasha Levin Subject: [PATCH 6.6 295/638] igc: Fix missing time sync events Date: Sun, 24 Mar 2024 18:55:32 -0400 Message-ID: <20240324230116.1348576-296-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 244ae992e3e80e5c9c272c77324c831148457f95 ] Fix "double" clearing of interrupts, which can cause external events or timestamps to be missed. The IGC_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 IGC_TSIRC into 'tsicr'; 2. handle the interrupts present in 'tsirc' and mark them in 'ack'; 3. write 'ack' into IGC_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: 2c344ae24501 ("igc: Add support for TX timestamping") Reviewed-by: Kurt Kanzenbach Tested-by: Kurt Kanzenbach # Intel i225 Signed-off-by: Vinicius Costa Gomes Tested-by: Naama Meir Signed-off-by: Tony Nguyen Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/net/ethernet/intel/igc/igc_main.c | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/drivers/net/ethernet/intel/igc/igc_main.c b/drivers/net/ethern= et/intel/igc/igc_main.c index e549ffca88e39..fc1de116d5548 100644 --- a/drivers/net/ethernet/intel/igc/igc_main.c +++ b/drivers/net/ethernet/intel/igc/igc_main.c @@ -5304,25 +5304,22 @@ igc_features_check(struct sk_buff *skb, struct net_= device *dev, =20 static void igc_tsync_interrupt(struct igc_adapter *adapter) { - u32 ack, tsauxc, sec, nsec, tsicr; struct igc_hw *hw =3D &adapter->hw; + u32 tsauxc, sec, nsec, tsicr; struct ptp_clock_event event; struct timespec64 ts; =20 tsicr =3D rd32(IGC_TSICR); - ack =3D 0; =20 if (tsicr & IGC_TSICR_SYS_WRAP) { event.type =3D PTP_CLOCK_PPS; if (adapter->ptp_caps.pps) ptp_clock_event(adapter->ptp_clock, &event); - ack |=3D IGC_TSICR_SYS_WRAP; } =20 if (tsicr & IGC_TSICR_TXTS) { /* retrieve hardware timestamp */ igc_ptp_tx_tstamp_event(adapter); - ack |=3D IGC_TSICR_TXTS; } =20 if (tsicr & IGC_TSICR_TT0) { @@ -5336,7 +5333,6 @@ static void igc_tsync_interrupt(struct igc_adapter *a= dapter) wr32(IGC_TSAUXC, tsauxc); adapter->perout[0].start =3D ts; spin_unlock(&adapter->tmreg_lock); - ack |=3D IGC_TSICR_TT0; } =20 if (tsicr & IGC_TSICR_TT1) { @@ -5350,7 +5346,6 @@ static void igc_tsync_interrupt(struct igc_adapter *a= dapter) wr32(IGC_TSAUXC, tsauxc); adapter->perout[1].start =3D ts; spin_unlock(&adapter->tmreg_lock); - ack |=3D IGC_TSICR_TT1; } =20 if (tsicr & IGC_TSICR_AUTT0) { @@ -5360,7 +5355,6 @@ static void igc_tsync_interrupt(struct igc_adapter *a= dapter) event.index =3D 0; event.timestamp =3D sec * NSEC_PER_SEC + nsec; ptp_clock_event(adapter->ptp_clock, &event); - ack |=3D IGC_TSICR_AUTT0; } =20 if (tsicr & IGC_TSICR_AUTT1) { @@ -5370,11 +5364,7 @@ static void igc_tsync_interrupt(struct igc_adapter *= adapter) event.index =3D 1; event.timestamp =3D sec * NSEC_PER_SEC + nsec; ptp_clock_event(adapter->ptp_clock, &event); - ack |=3D IGC_TSICR_AUTT1; } - - /* acknowledge the interrupts */ - wr32(IGC_TSICR, ack); } =20 /** --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 98907137C37; Sun, 24 Mar 2024 23:06: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=1711321569; cv=none; b=RW2kXuysLsHXhBDkaFRP6dGQqwdslOa3fMEKuOK0I8zYa0s1Ftya3df1yBqpfjfCG0eDUTDYu6AD7rRflOsModYkpD7/RofaX3iW1M0XZh1akE6FmFci5FRPNcXGc1cplTu/DDAaLRzAVHpt8wqjDuUdUUaBjnsHO8VX/cv7BBc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321569; c=relaxed/simple; bh=uBcSLHXRyE6dQb2A9gm9vxlYQW46b9gnve9H65mF034=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=m+jnGemrc/+Y1iyHbiz6RG4S/LaT1ooT1EvuFmPHqV4XvaBd6502hKbGCHjbBdmhCJPBEOpyVkK6dk0Saz5D7z6Er4/LXD8HVSh8shrbE3S9wQeLM8BhraT2YMF5BsQTDniWWJQRd4ZtfcndPzG9sVxfk5jErBwpaHMrt1qoo0w= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=YkeTCNnm; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="YkeTCNnm" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A94E8C433A6; Sun, 24 Mar 2024 23:06:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321568; bh=uBcSLHXRyE6dQb2A9gm9vxlYQW46b9gnve9H65mF034=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=YkeTCNnmz5Z6tH0uWxHeomXAdXFp65O5xJEOTYvXgNRIbKEx2TntKsMalFGE/UFVf zA2uUMkADGZYPdwhpV7EknveHaZLCq3F+JFBosmW4UWQsP1rv/vuByaal4Q6GhKHfl VV2oys+V1gwFX7n7/oBfKJMMG5Fp/yVy7ci9e3Az8sCo/rsq0I0YCZkcjPihPajr48 kL1LKO8rQ4mEWzjdnkVWIrGYaN+MA+f8bdYF3Ob9mp+2XC6Ck/YQ98Hdjz4WQxzKPw Jl1AaVioHbVYtmSn0ZLx+xHTl0lRZMDYri7F9Bfg12NadzCa+GUHfjC+0Czl5p2BWU gZ7EitW9YvbEw== 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 6.6 296/638] igb: Fix missing time sync events Date: Sun, 24 Mar 2024 18:55:33 -0400 Message-ID: <20240324230116.1348576-297-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 76b34cee1da3c..11921141b6079 100644 --- a/drivers/net/ethernet/intel/igb/igb_main.c +++ b/drivers/net/ethernet/intel/igb/igb_main.c @@ -6985,44 +6985,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 07104137C39; Sun, 24 Mar 2024 23:06: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=1711321570; cv=none; b=tNLtTXitA3dYTuhz/cJxDPxzAyDYlU6yyhZrzd3/UUhD7jUA7ZQlF/zQndsDQIaSqeipmSia8k/Bb7N6b0IgbtWs3Qw+uTJ7HuB1YzGY2Xl4LhtWMJ7AH1K3Qu3ILEWp8zcwlsBgcsQkVh2VbxOCSe3lI5YYCXAdmGhrx52/OBM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321570; c=relaxed/simple; bh=Pyt0ViNt/NxQb9umfa1yxApnmliIPJZW05Akdhj054A=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Ul5BAh6KoI1Ifv6+FLsp3acwTOEdZ1gZpjfNiReOjDgmkTH1K6aYrorink/goGJPK8RqzZEBNHg2zT2IdP3q54kFalTLruy1wme501lgQUlzbMg1Bx15npPlTpPemYQebc0EdwEsz6BtnMIF2TGKPjecpBswLngcysyXEoR2CF4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=TsDio8bD; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="TsDio8bD" Received: by smtp.kernel.org (Postfix) with ESMTPSA id BC48EC433C7; Sun, 24 Mar 2024 23:06:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321569; bh=Pyt0ViNt/NxQb9umfa1yxApnmliIPJZW05Akdhj054A=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=TsDio8bDSmppirD5E8Q6fjXbMBtqAglwb8sTuipTPnbqVUtFkt9mMMaOeqyVT83xS Yy6Q58J/GxEebYUYmUTGjhpfFmxPwwQ1Q/QhSU7vm6EZnOwK8JCag0YYns7IyVyKUQ hwL2iSn1lCeVLToTIA5SlZODRt8hOgNXz+joHPG6U0HVC0hakcon1TG52npBk69J1f Lg4lk+nQ41bVaOCOp3r9QpBprBOEoYk4q5C58wtk5I7x31ptkxyEEBkB/MXyAgVxk1 TuPnhp+TUAiIyrRde7o4n0381EFn8snditL/cHfbKHB7LPl5kSOKtdT3HpA4woDoBM 6GedQEORlugyw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Przemek Kitszel , Nebojsa Stevanovic , Christian Rohmann , Jacob Keller , Simon Horman , Pucha Himasekhar Reddy , Tony Nguyen , Sasha Levin Subject: [PATCH 6.6 297/638] ice: fix stats being updated by way too large values Date: Sun, 24 Mar 2024 18:55:34 -0400 Message-ID: <20240324230116.1348576-298-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Przemek Kitszel [ Upstream commit 257310e998700e60382fbd3f4fd275fdbd9b2aaf ] Simplify stats accumulation logic to fix the case where we don't take previous stat value into account, we should always respect it. Main netdev stats of our PF (Tx/Rx packets/bytes) were reported orders of magnitude too big during OpenStack reconfiguration events, possibly other reconfiguration cases too. The regression was reported to be between 6.1 and 6.2, so I was almost certain that on of the two "preserve stats over reset" commits were the culprit. While reading the code, it was found that in some cases we will increase the stats by arbitrarily large number (thanks to ignoring "-prev" part of condition, after zeroing it). Note that this fixes also the case where we were around limits of u64, but that was not the regression reported. Full disclosure: I remember suggesting this particular piece of code to Ben a few years ago, so blame on me. Fixes: 2fd5e433cd26 ("ice: Accumulate HW and Netdev statistics over reset") Reported-by: Nebojsa Stevanovic Link: https://lore.kernel.org/intel-wired-lan/VI1PR02MB439744DEDAA7B59B9A28= 33FE912EA@VI1PR02MB4397.eurprd02.prod.outlook.com Reported-by: Christian Rohmann Link: https://lore.kernel.org/intel-wired-lan/f38a6ca4-af05-48b1-a3e6-17ef2= 054e525@inovex.de Reviewed-by: Jacob Keller Signed-off-by: Przemek Kitszel Reviewed-by: Simon Horman 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 Tested-by: Takeshi Ogasawara --- drivers/net/ethernet/intel/ice/ice_main.c | 24 +++++++++++------------ 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/drivers/net/ethernet/intel/ice/ice_main.c b/drivers/net/ethern= et/intel/ice/ice_main.c index d23f2ebddeb45..8ebb6517f6b96 100644 --- a/drivers/net/ethernet/intel/ice/ice_main.c +++ b/drivers/net/ethernet/intel/ice/ice_main.c @@ -6557,6 +6557,7 @@ static void ice_update_vsi_ring_stats(struct ice_vsi = *vsi) { struct rtnl_link_stats64 *net_stats, *stats_prev; struct rtnl_link_stats64 *vsi_stats; + struct ice_pf *pf =3D vsi->back; u64 pkts, bytes; int i; =20 @@ -6602,21 +6603,18 @@ static void ice_update_vsi_ring_stats(struct ice_vs= i *vsi) net_stats =3D &vsi->net_stats; stats_prev =3D &vsi->net_stats_prev; =20 - /* clear prev counters after reset */ - if (vsi_stats->tx_packets < stats_prev->tx_packets || - vsi_stats->rx_packets < stats_prev->rx_packets) { - stats_prev->tx_packets =3D 0; - stats_prev->tx_bytes =3D 0; - stats_prev->rx_packets =3D 0; - stats_prev->rx_bytes =3D 0; + /* Update netdev counters, but keep in mind that values could start at + * random value after PF reset. And as we increase the reported stat by + * diff of Prev-Cur, we need to be sure that Prev is valid. If it's not, + * let's skip this round. + */ + if (likely(pf->stat_prev_loaded)) { + net_stats->tx_packets +=3D vsi_stats->tx_packets - stats_prev->tx_packet= s; + net_stats->tx_bytes +=3D vsi_stats->tx_bytes - stats_prev->tx_bytes; + net_stats->rx_packets +=3D vsi_stats->rx_packets - stats_prev->rx_packet= s; + net_stats->rx_bytes +=3D vsi_stats->rx_bytes - stats_prev->rx_bytes; } =20 - /* update netdev counters */ - net_stats->tx_packets +=3D vsi_stats->tx_packets - stats_prev->tx_packets; - net_stats->tx_bytes +=3D vsi_stats->tx_bytes - stats_prev->tx_bytes; - net_stats->rx_packets +=3D vsi_stats->rx_packets - stats_prev->rx_packets; - net_stats->rx_bytes +=3D vsi_stats->rx_bytes - stats_prev->rx_bytes; - stats_prev->tx_packets =3D vsi_stats->tx_packets; stats_prev->tx_bytes =3D vsi_stats->tx_bytes; stats_prev->rx_packets =3D vsi_stats->rx_packets; --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1D92A137C35; Sun, 24 Mar 2024 23:06: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=1711321571; cv=none; b=j8xU3LFlbcvlmPWNHMlRrUU9ADlYfCCYwAb/yDVLvoJMj90wa+s4jSCKKyyYF6Pl5gTF1npE2Sv6wi999UDkzf2RAAH4WoB4jlAvP1T7ZtvWISviNFESSw294SDZ1cm6bF3NLHPx59NZZ3ykFLVoyJFJKbdSiJNoqGa/PlTAk/w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321571; c=relaxed/simple; bh=n0ZZGalvuA0PD6jzMmVDBM2mpyQqpmLP63G0KklBvQ4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=UPJIc+Uf6Ykls6mZ5BjY9nGrzg03sROS3nNkOf1evTJyhR6yoU/rATYvGaGx4jXdn7LXkJh+b659xfeDqTGAF9cgMj9SrvETVmuRvhHW6zWhiaCqeRXnvvkN5g1wyL6jEWuk2PTsHJjas0hcFvGa2QKc+cNHzqYO5yqAa/TZ6Vw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=SX67PqPb; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="SX67PqPb" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2CD49C43390; Sun, 24 Mar 2024 23:06:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321570; bh=n0ZZGalvuA0PD6jzMmVDBM2mpyQqpmLP63G0KklBvQ4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=SX67PqPbjR7C/DskaxLUyQ1HO23CGaD8b/B4O4mnrFvAQLGHAV0rHQCCjI2GSN0WC t3AA7QxTM593winP0D13EUgGZPpOm+WjNL9aMtOh47OErTfFlw201ZMlZyFk3acoVq MHJRrodPMlT36231v7u3/4btEYt7gu/3rrjWPtlYaDsd+4hwuKWgKR/8CtXGXq9RUj +6qQTIFEjmiakuOh8qx7eNRpAIAM1fgc490rObM61CKF7LhW9QZmjihMc3deVYbxjx 8eJDDgC2WqRIpuYST92zlII6+vYPvSOtlcqTZJJhI2P5nBg1tew6qviTT+iOdFKB/Z PDrQlxk3bIjog== 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 6.6 298/638] Bluetooth: Remove HCI_POWER_OFF_TIMEOUT Date: Sun, 24 Mar 2024 18:55:35 -0400 Message-ID: <20240324230116.1348576-299-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-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 968667f2e0345a67a6eea5a502f4659085666564 ] With commit cf75ad8b41d2 ("Bluetooth: hci_sync: Convert MGMT_SET_POWERED"), the power off sequence got refactored so that this timeout was no longer necessary, let's remove the leftover define from the header too. Fixes: cf75ad8b41d2 ("Bluetooth: hci_sync: Convert MGMT_SET_POWERED") 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 Tested-by: Takeshi Ogasawara --- include/net/bluetooth/hci.h | 1 - 1 file changed, 1 deletion(-) diff --git a/include/net/bluetooth/hci.h b/include/net/bluetooth/hci.h index bdee5d649cc61..f7918c7551834 100644 --- a/include/net/bluetooth/hci.h +++ b/include/net/bluetooth/hci.h @@ -437,7 +437,6 @@ enum { #define HCI_NCMD_TIMEOUT msecs_to_jiffies(4000) /* 4 seconds */ #define HCI_ACL_TX_TIMEOUT msecs_to_jiffies(45000) /* 45 seconds */ #define HCI_AUTO_OFF_TIMEOUT msecs_to_jiffies(2000) /* 2 seconds */ -#define HCI_POWER_OFF_TIMEOUT msecs_to_jiffies(5000) /* 5 seconds */ #define HCI_LE_CONN_TIMEOUT msecs_to_jiffies(20000) /* 20 seconds */ #define HCI_LE_AUTOCONN_TIMEOUT msecs_to_jiffies(4000) /* 4 seconds */ =20 --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CBD6F1DCC81; Sun, 24 Mar 2024 23:06: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=1711321572; cv=none; b=VEelyXSozs6mW5dxsXAkR+fIBcneFBq8rMdF5uS2s9X7do9v1n7XIL/4wq9uWsxFKbz/AxQpTcWwbBnmK+3uxQ8QDTHTqqzGqUiS7pW8PK0RIaIfVVITsWH56L8e10HWWjG7snmyOhtnIyaDnxSqB65rzzczhTnOCbpEnLlBjFM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321572; c=relaxed/simple; bh=fxh2FzIss8jfV/LFAffOsp5nCtgdW3PvQ5ctpWMXbPg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=t6CwacSqG9mJcrnQRorx+G0FAyrOO6+T7blNSZ45chwdp7kr1zs0iS9DT+8dzR+1oHVEUDf54bd1+994O4Go3fC6YyQxtcRLninjFrqkAJno7GOynCjRtYy2Y18AMEvL1PBSL2GqWBwbUev6O4I3DfJtMLwwNbg0ROLw8O7BAlM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=EWaYO1iQ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="EWaYO1iQ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 15F36C433C7; Sun, 24 Mar 2024 23:06:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321571; bh=fxh2FzIss8jfV/LFAffOsp5nCtgdW3PvQ5ctpWMXbPg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=EWaYO1iQx1LawQu51vqRURydQox6+RrIxzJvbFbnVr466ZLVi+hq9Cq4R6Flcm0K8 nmdzwj0sW6SAjlVeoWe3QMZpeYgZzSLkQ/V6f+Rb57sd+993HxdqoVjT6XQbiBaLcV Cj/DTf67hZM/GDkWwSW22ZlKQ7Ulym//EP9RiJjjn6j57pBuwROPClkdQljbyrl4P5 84gIdNzNgoFSkjoTNoEMiczbwrgVxdFOI9OeugnwFYnHaEg19sMguJbjkd0iU6sgBG UPl8rzxXH1LaMuE3KdAKB5gdtdD5tyUUE5/i6ZQJeea5Y7MLHnj7aalNTGL4d96ihI 5nkUj6+22286Q== 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 6.6 299/638] Bluetooth: mgmt: Remove leftover queuing of power_off work Date: Sun, 24 Mar 2024 18:55:36 -0400 Message-ID: <20240324230116.1348576-300-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-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 fee054b7579fe252f8b9e6c17b9c5bfdaa84dd7e ] Queuing of power_off work was introduced in these functions with commits 8b064a3ad377 ("Bluetooth: Clean up HCI state when doing power off") and c9910d0fb4fc ("Bluetooth: Fix disconnecting connections in non-connected states") in an effort to clean up state and do things like disconnecting devices before actually powering off the device. After that, commit a3172b7eb4a2 ("Bluetooth: Add timer to force power off") introduced a timeout to ensure that the device actually got powered off, even if some of the cleanup work would never complete. This code later got refactored with commit cf75ad8b41d2 ("Bluetooth: hci_sync: Convert MGMT_SET_POWERED"), which made powering off the device synchronous and removed the need for initiating the power_off work from other places. The timeout mentioned above got removed too, because we now also made use of the command timeout during power on/off. These days the power_off work still exists, but it only seems to only be used for HCI_AUTO_OFF functionality, which is why we never noticed those two leftover places where we queue power_off work. So let's remove that code. Fixes: cf75ad8b41d2 ("Bluetooth: hci_sync: Convert MGMT_SET_POWERED") 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 Tested-by: Takeshi Ogasawara --- net/bluetooth/mgmt.c | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c index 2448a154a4069..324f06e2e9ddb 100644 --- a/net/bluetooth/mgmt.c +++ b/net/bluetooth/mgmt.c @@ -9766,14 +9766,6 @@ void mgmt_device_disconnected(struct hci_dev *hdev, = bdaddr_t *bdaddr, struct mgmt_ev_device_disconnected ev; struct sock *sk =3D NULL; =20 - /* The connection is still in hci_conn_hash so test for 1 - * instead of 0 to know if this is the last one. - */ - if (mgmt_powering_down(hdev) && hci_conn_count(hdev) =3D=3D 1) { - cancel_delayed_work(&hdev->power_off); - queue_work(hdev->req_workqueue, &hdev->power_off.work); - } - if (!mgmt_connected) return; =20 @@ -9830,14 +9822,6 @@ void mgmt_connect_failed(struct hci_dev *hdev, bdadd= r_t *bdaddr, u8 link_type, { struct mgmt_ev_connect_failed ev; =20 - /* The connection is still in hci_conn_hash so test for 1 - * instead of 0 to know if this is the last one. - */ - if (mgmt_powering_down(hdev) && hci_conn_count(hdev) =3D=3D 1) { - cancel_delayed_work(&hdev->power_off); - queue_work(hdev->req_workqueue, &hdev->power_off.work); - } - bacpy(&ev.addr.bdaddr, bdaddr); ev.addr.type =3D link_to_bdaddr(link_type, addr_type); ev.status =3D mgmt_status(status); --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E0F4A137C50; Sun, 24 Mar 2024 23:06: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=1711321573; cv=none; b=d9drQOu95JK3Y3L6/bXDStaquB0/CJcznOpRKlSKEpGXaeWEO5XJ9bIJfQ+UP9l1Xs3KA2UCYOpsmbMRfNvn/7H4QLg8u4+60um1SdJhvee/1+PWd25Ge6JHT/zX3o/2JonUfxoeOZqmEOXttmuyj0caymhOZFsWwQJb5phAB18= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321573; c=relaxed/simple; bh=7x2qa7Ur4GD7/JcMySOCNNILoDMJyQqY7Lk2tRcGAc4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=gL+KU3cqGOzszTBiwMjbmYqKY7er1lF4yxV1bP6S+aLWyDxFkahFP8hnRcP54AK7lIrL5N7WezVdehS9gz6Sm5CfBeTrnu+WrgjLeMIRzqXTzsl1htZYrA/Htf0w6tmzu/MqRZYbpZroY9ZVju2OdWONIkzHsnUXArMMY0EtMCc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=XP6kGj5T; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="XP6kGj5T" Received: by smtp.kernel.org (Postfix) with ESMTPSA id F217DC43390; Sun, 24 Mar 2024 23:06:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321572; bh=7x2qa7Ur4GD7/JcMySOCNNILoDMJyQqY7Lk2tRcGAc4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=XP6kGj5T4HUHJ38jkw/Z94ltToiWk++mUA0VnROTomoT9Ov+58bV8IzupbG3vtaJ4 7aYN4sRnHq2DNuQEbpG+3OPjDgD9KclbKcEjM+BnfgX1U1XU7aOb6RtoXSAdbJ0RSk L/AJqAoK/slXUFmHDucM6t1G8YPI9XmRBF4ZrkZGDaZ1dMIDsgH9P2Z5fLDIiDpfOJ 3i9rkezrrrdyuCRDZH/9WlXAjuWB/bXyU94r/9rz8TqjDOq8hYDBlGEV27mFq8T7W1 3KOmHqYI6ZbHt2uaPIwDIxFt9n2U22wX/W3ED2ofhemehVnUj+CLKGSerpvYqOQHB4 tDzKrX+X5MKhw== 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 6.6 300/638] Bluetooth: Remove superfluous call to hci_conn_check_pending() Date: Sun, 24 Mar 2024 18:55:37 -0400 Message-ID: <20240324230116.1348576-301-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-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 Tested-by: Takeshi Ogasawara --- 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 bc383b680db87..f731b8fea19f5 100644 --- a/net/bluetooth/hci_event.c +++ b/net/bluetooth/hci_event.c @@ -3556,8 +3556,6 @@ static void hci_remote_name_evt(struct hci_dev *hdev,= void *data, =20 bt_dev_dbg(hdev, "status 0x%2.2x", ev->status); =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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DF9CA137C56; Sun, 24 Mar 2024 23:06: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=1711321575; cv=none; b=TZv2pYk7MyF7ijxDiMU6Mb2rAzkB8uzduhLfaZyZohLOiqUbt+5Wns1Qa+WlgqBnc505xvFh+3WKPIcAyim2FAlUTpyz4sL2vGY6es+tz+v2vbJpaISBUqvP7GGeUJaSwsN5qiKkseZNSOEZ79QL3p36FPwNuXO0HQx8ITZV8Dw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321575; c=relaxed/simple; bh=S9Exf+p0YB6vlQOShoCTMdBRd0IKfLtloweNE775p4k=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=JvMseDgVkDSCuAFKNs5GkvdvDJPvHNY5tR3Dy9/QT33yqZmmbVFcRShFuyo9gMbjGS3t8AUgFCBHCK4LdPjnLPzTBRwPVaGhzFWErBs69z/7PNF4dGhtSCx6Tq0h7AtdUA8YzoDXyXDb7PvGbaLYx43Vp/c3YBuDDLwsx1wDpBw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=IUdTkodi; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="IUdTkodi" Received: by smtp.kernel.org (Postfix) with ESMTPSA id DAE9DC433F1; Sun, 24 Mar 2024 23:06:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321573; bh=S9Exf+p0YB6vlQOShoCTMdBRd0IKfLtloweNE775p4k=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=IUdTkodiJuVPl3fyi0xcWrJY7USalKYlybYq4L9tRsiv5SgIt5lm4ChfazToK2avA 6QCg5GbTvtQeZzm2VDDFdVMh/Tp6Fw5g5Ma4hU3oOMVQDTA9imxi8D+VaF7K1HHY7Q 1nopLlyJIlpWKeYg0FGy/ig5rcPXhdOOC9NV/croM/GtTRkBTqrP7d76QJHJDg4u/4 FQXt3ETr8B1E6+Kqab94faf9IX+f4TRLyvcOn7g3xJ4IWIWa5NsilSdhdtDcYLxxno xo01BVjIS8dmSl7Zvd3m8VG/13GY3FpelSKNg8A4RICX8vODwNryQW6GwOQRCOHxlX NCwXyppiRR5jQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Luiz Augusto von Dentz , Sasha Levin Subject: [PATCH 6.6 301/638] Bluetooth: Remove BT_HS Date: Sun, 24 Mar 2024 18:55:38 -0400 Message-ID: <20240324230116.1348576-302-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 e7b02296fb400ee64822fbdd81a0718449066333 ] High Speed, Alternate MAC and PHY (AMP) extension, has been removed from Bluetooth Core specification on 5.3: https://www.bluetooth.com/blog/new-core-specification-v5-3-feature-enhancem= ents/ Fixes: 244bc377591c ("Bluetooth: Add BT_HS config option") Signed-off-by: Luiz Augusto von Dentz Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- include/net/bluetooth/hci.h | 1 - include/net/bluetooth/l2cap.h | 42 -- net/bluetooth/Kconfig | 8 - net/bluetooth/Makefile | 1 - net/bluetooth/a2mp.c | 1054 -------------------------------- net/bluetooth/a2mp.h | 154 ----- net/bluetooth/amp.c | 590 ------------------ net/bluetooth/amp.h | 60 -- net/bluetooth/hci_conn.c | 4 - net/bluetooth/hci_event.c | 2 - net/bluetooth/l2cap_core.c | 1069 +-------------------------------- net/bluetooth/l2cap_sock.c | 18 +- net/bluetooth/mgmt.c | 73 +-- 13 files changed, 20 insertions(+), 3056 deletions(-) delete mode 100644 net/bluetooth/a2mp.c delete mode 100644 net/bluetooth/a2mp.h delete mode 100644 net/bluetooth/amp.c delete mode 100644 net/bluetooth/amp.h diff --git a/include/net/bluetooth/hci.h b/include/net/bluetooth/hci.h index f7918c7551834..0d231024570a3 100644 --- a/include/net/bluetooth/hci.h +++ b/include/net/bluetooth/hci.h @@ -393,7 +393,6 @@ enum { HCI_LIMITED_PRIVACY, HCI_RPA_EXPIRED, HCI_RPA_RESOLVING, - HCI_HS_ENABLED, HCI_LE_ENABLED, HCI_ADVERTISING, HCI_ADVERTISING_CONNECTABLE, diff --git a/include/net/bluetooth/l2cap.h b/include/net/bluetooth/l2cap.h index cf393e72d6ed6..92d7197f9a563 100644 --- a/include/net/bluetooth/l2cap.h +++ b/include/net/bluetooth/l2cap.h @@ -59,8 +59,6 @@ #define L2CAP_WAIT_ACK_POLL_PERIOD msecs_to_jiffies(200) #define L2CAP_WAIT_ACK_TIMEOUT msecs_to_jiffies(10000) =20 -#define L2CAP_A2MP_DEFAULT_MTU 670 - /* L2CAP socket address */ struct sockaddr_l2 { sa_family_t l2_family; @@ -109,12 +107,6 @@ struct l2cap_conninfo { #define L2CAP_ECHO_RSP 0x09 #define L2CAP_INFO_REQ 0x0a #define L2CAP_INFO_RSP 0x0b -#define L2CAP_CREATE_CHAN_REQ 0x0c -#define L2CAP_CREATE_CHAN_RSP 0x0d -#define L2CAP_MOVE_CHAN_REQ 0x0e -#define L2CAP_MOVE_CHAN_RSP 0x0f -#define L2CAP_MOVE_CHAN_CFM 0x10 -#define L2CAP_MOVE_CHAN_CFM_RSP 0x11 #define L2CAP_CONN_PARAM_UPDATE_REQ 0x12 #define L2CAP_CONN_PARAM_UPDATE_RSP 0x13 #define L2CAP_LE_CONN_REQ 0x14 @@ -144,7 +136,6 @@ struct l2cap_conninfo { /* L2CAP fixed channels */ #define L2CAP_FC_SIG_BREDR 0x02 #define L2CAP_FC_CONNLESS 0x04 -#define L2CAP_FC_A2MP 0x08 #define L2CAP_FC_ATT 0x10 #define L2CAP_FC_SIG_LE 0x20 #define L2CAP_FC_SMP_LE 0x40 @@ -267,7 +258,6 @@ struct l2cap_conn_rsp { /* channel identifier */ #define L2CAP_CID_SIGNALING 0x0001 #define L2CAP_CID_CONN_LESS 0x0002 -#define L2CAP_CID_A2MP 0x0003 #define L2CAP_CID_ATT 0x0004 #define L2CAP_CID_LE_SIGNALING 0x0005 #define L2CAP_CID_SMP 0x0006 @@ -282,7 +272,6 @@ struct l2cap_conn_rsp { #define L2CAP_CR_BAD_PSM 0x0002 #define L2CAP_CR_SEC_BLOCK 0x0003 #define L2CAP_CR_NO_MEM 0x0004 -#define L2CAP_CR_BAD_AMP 0x0005 #define L2CAP_CR_INVALID_SCID 0x0006 #define L2CAP_CR_SCID_IN_USE 0x0007 =20 @@ -404,29 +393,6 @@ struct l2cap_info_rsp { __u8 data[]; } __packed; =20 -struct l2cap_create_chan_req { - __le16 psm; - __le16 scid; - __u8 amp_id; -} __packed; - -struct l2cap_create_chan_rsp { - __le16 dcid; - __le16 scid; - __le16 result; - __le16 status; -} __packed; - -struct l2cap_move_chan_req { - __le16 icid; - __u8 dest_amp_id; -} __packed; - -struct l2cap_move_chan_rsp { - __le16 icid; - __le16 result; -} __packed; - #define L2CAP_MR_SUCCESS 0x0000 #define L2CAP_MR_PEND 0x0001 #define L2CAP_MR_BAD_ID 0x0002 @@ -539,8 +505,6 @@ struct l2cap_seq_list { =20 struct l2cap_chan { struct l2cap_conn *conn; - struct hci_conn *hs_hcon; - struct hci_chan *hs_hchan; struct kref kref; atomic_t nesting; =20 @@ -591,12 +555,6 @@ struct l2cap_chan { unsigned long conn_state; unsigned long flags; =20 - __u8 remote_amp_id; - __u8 local_amp_id; - __u8 move_id; - __u8 move_state; - __u8 move_role; - __u16 next_tx_seq; __u16 expected_ack_seq; __u16 expected_tx_seq; diff --git a/net/bluetooth/Kconfig b/net/bluetooth/Kconfig index da7cac0a1b716..6b2b65a667008 100644 --- a/net/bluetooth/Kconfig +++ b/net/bluetooth/Kconfig @@ -62,14 +62,6 @@ source "net/bluetooth/cmtp/Kconfig" =20 source "net/bluetooth/hidp/Kconfig" =20 -config BT_HS - bool "Bluetooth High Speed (HS) features" - depends on BT_BREDR - help - Bluetooth High Speed includes support for off-loading - Bluetooth connections via 802.11 (wifi) physical layer - available with Bluetooth version 3.0 or later. - config BT_LE bool "Bluetooth Low Energy (LE) features" depends on BT diff --git a/net/bluetooth/Makefile b/net/bluetooth/Makefile index 141ac1fda0bfa..628d448d78be3 100644 --- a/net/bluetooth/Makefile +++ b/net/bluetooth/Makefile @@ -21,7 +21,6 @@ bluetooth-$(CONFIG_DEV_COREDUMP) +=3D coredump.o =20 bluetooth-$(CONFIG_BT_BREDR) +=3D sco.o bluetooth-$(CONFIG_BT_LE) +=3D iso.o -bluetooth-$(CONFIG_BT_HS) +=3D a2mp.o amp.o bluetooth-$(CONFIG_BT_LEDS) +=3D leds.o bluetooth-$(CONFIG_BT_MSFTEXT) +=3D msft.o bluetooth-$(CONFIG_BT_AOSPEXT) +=3D aosp.o diff --git a/net/bluetooth/a2mp.c b/net/bluetooth/a2mp.c deleted file mode 100644 index e7adb8a98cf90..0000000000000 --- a/net/bluetooth/a2mp.c +++ /dev/null @@ -1,1054 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-only -/* - Copyright (c) 2010,2011 Code Aurora Forum. All rights reserved. - Copyright (c) 2011,2012 Intel Corp. - -*/ - -#include -#include -#include - -#include "hci_request.h" -#include "a2mp.h" -#include "amp.h" - -#define A2MP_FEAT_EXT 0x8000 - -/* Global AMP Manager list */ -static LIST_HEAD(amp_mgr_list); -static DEFINE_MUTEX(amp_mgr_list_lock); - -/* A2MP build & send command helper functions */ -static struct a2mp_cmd *__a2mp_build(u8 code, u8 ident, u16 len, void *dat= a) -{ - struct a2mp_cmd *cmd; - int plen; - - plen =3D sizeof(*cmd) + len; - cmd =3D kzalloc(plen, GFP_KERNEL); - if (!cmd) - return NULL; - - cmd->code =3D code; - cmd->ident =3D ident; - cmd->len =3D cpu_to_le16(len); - - memcpy(cmd->data, data, len); - - return cmd; -} - -static void a2mp_send(struct amp_mgr *mgr, u8 code, u8 ident, u16 len, voi= d *data) -{ - struct l2cap_chan *chan =3D mgr->a2mp_chan; - struct a2mp_cmd *cmd; - u16 total_len =3D len + sizeof(*cmd); - struct kvec iv; - struct msghdr msg; - - cmd =3D __a2mp_build(code, ident, len, data); - if (!cmd) - return; - - iv.iov_base =3D cmd; - iv.iov_len =3D total_len; - - memset(&msg, 0, sizeof(msg)); - - iov_iter_kvec(&msg.msg_iter, ITER_SOURCE, &iv, 1, total_len); - - l2cap_chan_send(chan, &msg, total_len); - - kfree(cmd); -} - -static u8 __next_ident(struct amp_mgr *mgr) -{ - if (++mgr->ident =3D=3D 0) - mgr->ident =3D 1; - - return mgr->ident; -} - -static struct amp_mgr *amp_mgr_lookup_by_state(u8 state) -{ - struct amp_mgr *mgr; - - mutex_lock(&_mgr_list_lock); - list_for_each_entry(mgr, &_mgr_list, list) { - if (test_and_clear_bit(state, &mgr->state)) { - amp_mgr_get(mgr); - mutex_unlock(&_mgr_list_lock); - return mgr; - } - } - mutex_unlock(&_mgr_list_lock); - - return NULL; -} - -/* hci_dev_list shall be locked */ -static void __a2mp_add_cl(struct amp_mgr *mgr, struct a2mp_cl *cl) -{ - struct hci_dev *hdev; - int i =3D 1; - - cl[0].id =3D AMP_ID_BREDR; - cl[0].type =3D AMP_TYPE_BREDR; - cl[0].status =3D AMP_STATUS_BLUETOOTH_ONLY; - - list_for_each_entry(hdev, &hci_dev_list, list) { - if (hdev->dev_type =3D=3D HCI_AMP) { - cl[i].id =3D hdev->id; - cl[i].type =3D hdev->amp_type; - if (test_bit(HCI_UP, &hdev->flags)) - cl[i].status =3D hdev->amp_status; - else - cl[i].status =3D AMP_STATUS_POWERED_DOWN; - i++; - } - } -} - -/* Processing A2MP messages */ -static int a2mp_command_rej(struct amp_mgr *mgr, struct sk_buff *skb, - struct a2mp_cmd *hdr) -{ - struct a2mp_cmd_rej *rej =3D (void *) skb->data; - - if (le16_to_cpu(hdr->len) < sizeof(*rej)) - return -EINVAL; - - BT_DBG("ident %u reason %d", hdr->ident, le16_to_cpu(rej->reason)); - - skb_pull(skb, sizeof(*rej)); - - return 0; -} - -static int a2mp_discover_req(struct amp_mgr *mgr, struct sk_buff *skb, - struct a2mp_cmd *hdr) -{ - struct a2mp_discov_req *req =3D (void *) skb->data; - u16 len =3D le16_to_cpu(hdr->len); - struct a2mp_discov_rsp *rsp; - u16 ext_feat; - u8 num_ctrl; - struct hci_dev *hdev; - - if (len < sizeof(*req)) - return -EINVAL; - - skb_pull(skb, sizeof(*req)); - - ext_feat =3D le16_to_cpu(req->ext_feat); - - BT_DBG("mtu %d efm 0x%4.4x", le16_to_cpu(req->mtu), ext_feat); - - /* check that packet is not broken for now */ - while (ext_feat & A2MP_FEAT_EXT) { - if (len < sizeof(ext_feat)) - return -EINVAL; - - ext_feat =3D get_unaligned_le16(skb->data); - BT_DBG("efm 0x%4.4x", ext_feat); - len -=3D sizeof(ext_feat); - skb_pull(skb, sizeof(ext_feat)); - } - - read_lock(&hci_dev_list_lock); - - /* at minimum the BR/EDR needs to be listed */ - num_ctrl =3D 1; - - list_for_each_entry(hdev, &hci_dev_list, list) { - if (hdev->dev_type =3D=3D HCI_AMP) - num_ctrl++; - } - - len =3D struct_size(rsp, cl, num_ctrl); - rsp =3D kmalloc(len, GFP_ATOMIC); - if (!rsp) { - read_unlock(&hci_dev_list_lock); - return -ENOMEM; - } - - rsp->mtu =3D cpu_to_le16(L2CAP_A2MP_DEFAULT_MTU); - rsp->ext_feat =3D 0; - - __a2mp_add_cl(mgr, rsp->cl); - - read_unlock(&hci_dev_list_lock); - - a2mp_send(mgr, A2MP_DISCOVER_RSP, hdr->ident, len, rsp); - - kfree(rsp); - return 0; -} - -static int a2mp_discover_rsp(struct amp_mgr *mgr, struct sk_buff *skb, - struct a2mp_cmd *hdr) -{ - struct a2mp_discov_rsp *rsp =3D (void *) skb->data; - u16 len =3D le16_to_cpu(hdr->len); - struct a2mp_cl *cl; - u16 ext_feat; - bool found =3D false; - - if (len < sizeof(*rsp)) - return -EINVAL; - - len -=3D sizeof(*rsp); - skb_pull(skb, sizeof(*rsp)); - - ext_feat =3D le16_to_cpu(rsp->ext_feat); - - BT_DBG("mtu %d efm 0x%4.4x", le16_to_cpu(rsp->mtu), ext_feat); - - /* check that packet is not broken for now */ - while (ext_feat & A2MP_FEAT_EXT) { - if (len < sizeof(ext_feat)) - return -EINVAL; - - ext_feat =3D get_unaligned_le16(skb->data); - BT_DBG("efm 0x%4.4x", ext_feat); - len -=3D sizeof(ext_feat); - skb_pull(skb, sizeof(ext_feat)); - } - - cl =3D (void *) skb->data; - while (len >=3D sizeof(*cl)) { - BT_DBG("Remote AMP id %u type %u status %u", cl->id, cl->type, - cl->status); - - if (cl->id !=3D AMP_ID_BREDR && cl->type !=3D AMP_TYPE_BREDR) { - struct a2mp_info_req req; - - found =3D true; - - memset(&req, 0, sizeof(req)); - - req.id =3D cl->id; - a2mp_send(mgr, A2MP_GETINFO_REQ, __next_ident(mgr), - sizeof(req), &req); - } - - len -=3D sizeof(*cl); - cl =3D skb_pull(skb, sizeof(*cl)); - } - - /* Fall back to L2CAP init sequence */ - if (!found) { - struct l2cap_conn *conn =3D mgr->l2cap_conn; - struct l2cap_chan *chan; - - mutex_lock(&conn->chan_lock); - - list_for_each_entry(chan, &conn->chan_l, list) { - - BT_DBG("chan %p state %s", chan, - state_to_string(chan->state)); - - if (chan->scid =3D=3D L2CAP_CID_A2MP) - continue; - - l2cap_chan_lock(chan); - - if (chan->state =3D=3D BT_CONNECT) - l2cap_send_conn_req(chan); - - l2cap_chan_unlock(chan); - } - - mutex_unlock(&conn->chan_lock); - } - - return 0; -} - -static int a2mp_change_notify(struct amp_mgr *mgr, struct sk_buff *skb, - struct a2mp_cmd *hdr) -{ - struct a2mp_cl *cl =3D (void *) skb->data; - - while (skb->len >=3D sizeof(*cl)) { - BT_DBG("Controller id %u type %u status %u", cl->id, cl->type, - cl->status); - cl =3D skb_pull(skb, sizeof(*cl)); - } - - /* TODO send A2MP_CHANGE_RSP */ - - return 0; -} - -static void read_local_amp_info_complete(struct hci_dev *hdev, u8 status, - u16 opcode) -{ - BT_DBG("%s status 0x%2.2x", hdev->name, status); - - a2mp_send_getinfo_rsp(hdev); -} - -static int a2mp_getinfo_req(struct amp_mgr *mgr, struct sk_buff *skb, - struct a2mp_cmd *hdr) -{ - struct a2mp_info_req *req =3D (void *) skb->data; - struct hci_dev *hdev; - struct hci_request hreq; - int err =3D 0; - - if (le16_to_cpu(hdr->len) < sizeof(*req)) - return -EINVAL; - - BT_DBG("id %u", req->id); - - hdev =3D hci_dev_get(req->id); - if (!hdev || hdev->dev_type !=3D HCI_AMP) { - struct a2mp_info_rsp rsp; - - memset(&rsp, 0, sizeof(rsp)); - - rsp.id =3D req->id; - rsp.status =3D A2MP_STATUS_INVALID_CTRL_ID; - - a2mp_send(mgr, A2MP_GETINFO_RSP, hdr->ident, sizeof(rsp), - &rsp); - - goto done; - } - - set_bit(READ_LOC_AMP_INFO, &mgr->state); - hci_req_init(&hreq, hdev); - hci_req_add(&hreq, HCI_OP_READ_LOCAL_AMP_INFO, 0, NULL); - err =3D hci_req_run(&hreq, read_local_amp_info_complete); - if (err < 0) - a2mp_send_getinfo_rsp(hdev); - -done: - if (hdev) - hci_dev_put(hdev); - - skb_pull(skb, sizeof(*req)); - return 0; -} - -static int a2mp_getinfo_rsp(struct amp_mgr *mgr, struct sk_buff *skb, - struct a2mp_cmd *hdr) -{ - struct a2mp_info_rsp *rsp =3D (struct a2mp_info_rsp *) skb->data; - struct a2mp_amp_assoc_req req; - struct amp_ctrl *ctrl; - - if (le16_to_cpu(hdr->len) < sizeof(*rsp)) - return -EINVAL; - - BT_DBG("id %u status 0x%2.2x", rsp->id, rsp->status); - - if (rsp->status) - return -EINVAL; - - ctrl =3D amp_ctrl_add(mgr, rsp->id); - if (!ctrl) - return -ENOMEM; - - memset(&req, 0, sizeof(req)); - - req.id =3D rsp->id; - a2mp_send(mgr, A2MP_GETAMPASSOC_REQ, __next_ident(mgr), sizeof(req), - &req); - - skb_pull(skb, sizeof(*rsp)); - return 0; -} - -static int a2mp_getampassoc_req(struct amp_mgr *mgr, struct sk_buff *skb, - struct a2mp_cmd *hdr) -{ - struct a2mp_amp_assoc_req *req =3D (void *) skb->data; - struct hci_dev *hdev; - struct amp_mgr *tmp; - - if (le16_to_cpu(hdr->len) < sizeof(*req)) - return -EINVAL; - - BT_DBG("id %u", req->id); - - /* Make sure that other request is not processed */ - tmp =3D amp_mgr_lookup_by_state(READ_LOC_AMP_ASSOC); - - hdev =3D hci_dev_get(req->id); - if (!hdev || hdev->amp_type =3D=3D AMP_TYPE_BREDR || tmp) { - struct a2mp_amp_assoc_rsp rsp; - - memset(&rsp, 0, sizeof(rsp)); - rsp.id =3D req->id; - - if (tmp) { - rsp.status =3D A2MP_STATUS_COLLISION_OCCURED; - amp_mgr_put(tmp); - } else { - rsp.status =3D A2MP_STATUS_INVALID_CTRL_ID; - } - - a2mp_send(mgr, A2MP_GETAMPASSOC_RSP, hdr->ident, sizeof(rsp), - &rsp); - - goto done; - } - - amp_read_loc_assoc(hdev, mgr); - -done: - if (hdev) - hci_dev_put(hdev); - - skb_pull(skb, sizeof(*req)); - return 0; -} - -static int a2mp_getampassoc_rsp(struct amp_mgr *mgr, struct sk_buff *skb, - struct a2mp_cmd *hdr) -{ - struct a2mp_amp_assoc_rsp *rsp =3D (void *) skb->data; - u16 len =3D le16_to_cpu(hdr->len); - struct hci_dev *hdev; - struct amp_ctrl *ctrl; - struct hci_conn *hcon; - size_t assoc_len; - - if (len < sizeof(*rsp)) - return -EINVAL; - - assoc_len =3D len - sizeof(*rsp); - - BT_DBG("id %u status 0x%2.2x assoc len %zu", rsp->id, rsp->status, - assoc_len); - - if (rsp->status) - return -EINVAL; - - /* Save remote ASSOC data */ - ctrl =3D amp_ctrl_lookup(mgr, rsp->id); - if (ctrl) { - u8 *assoc; - - assoc =3D kmemdup(rsp->amp_assoc, assoc_len, GFP_KERNEL); - if (!assoc) { - amp_ctrl_put(ctrl); - return -ENOMEM; - } - - ctrl->assoc =3D assoc; - ctrl->assoc_len =3D assoc_len; - ctrl->assoc_rem_len =3D assoc_len; - ctrl->assoc_len_so_far =3D 0; - - amp_ctrl_put(ctrl); - } - - /* Create Phys Link */ - hdev =3D hci_dev_get(rsp->id); - if (!hdev) - return -EINVAL; - - hcon =3D phylink_add(hdev, mgr, rsp->id, true); - if (!hcon) - goto done; - - BT_DBG("Created hcon %p: loc:%u -> rem:%u", hcon, hdev->id, rsp->id); - - mgr->bredr_chan->remote_amp_id =3D rsp->id; - - amp_create_phylink(hdev, mgr, hcon); - -done: - hci_dev_put(hdev); - skb_pull(skb, len); - return 0; -} - -static int a2mp_createphyslink_req(struct amp_mgr *mgr, struct sk_buff *sk= b, - struct a2mp_cmd *hdr) -{ - struct a2mp_physlink_req *req =3D (void *) skb->data; - struct a2mp_physlink_rsp rsp; - struct hci_dev *hdev; - struct hci_conn *hcon; - struct amp_ctrl *ctrl; - - if (le16_to_cpu(hdr->len) < sizeof(*req)) - return -EINVAL; - - BT_DBG("local_id %u, remote_id %u", req->local_id, req->remote_id); - - memset(&rsp, 0, sizeof(rsp)); - - rsp.local_id =3D req->remote_id; - rsp.remote_id =3D req->local_id; - - hdev =3D hci_dev_get(req->remote_id); - if (!hdev || hdev->amp_type =3D=3D AMP_TYPE_BREDR) { - rsp.status =3D A2MP_STATUS_INVALID_CTRL_ID; - goto send_rsp; - } - - ctrl =3D amp_ctrl_lookup(mgr, rsp.remote_id); - if (!ctrl) { - ctrl =3D amp_ctrl_add(mgr, rsp.remote_id); - if (ctrl) { - amp_ctrl_get(ctrl); - } else { - rsp.status =3D A2MP_STATUS_UNABLE_START_LINK_CREATION; - goto send_rsp; - } - } - - if (ctrl) { - size_t assoc_len =3D le16_to_cpu(hdr->len) - sizeof(*req); - u8 *assoc; - - assoc =3D kmemdup(req->amp_assoc, assoc_len, GFP_KERNEL); - if (!assoc) { - amp_ctrl_put(ctrl); - hci_dev_put(hdev); - return -ENOMEM; - } - - ctrl->assoc =3D assoc; - ctrl->assoc_len =3D assoc_len; - ctrl->assoc_rem_len =3D assoc_len; - ctrl->assoc_len_so_far =3D 0; - - amp_ctrl_put(ctrl); - } - - hcon =3D phylink_add(hdev, mgr, req->local_id, false); - if (hcon) { - amp_accept_phylink(hdev, mgr, hcon); - rsp.status =3D A2MP_STATUS_SUCCESS; - } else { - rsp.status =3D A2MP_STATUS_UNABLE_START_LINK_CREATION; - } - -send_rsp: - if (hdev) - hci_dev_put(hdev); - - /* Reply error now and success after HCI Write Remote AMP Assoc - command complete with success status - */ - if (rsp.status !=3D A2MP_STATUS_SUCCESS) { - a2mp_send(mgr, A2MP_CREATEPHYSLINK_RSP, hdr->ident, - sizeof(rsp), &rsp); - } else { - set_bit(WRITE_REMOTE_AMP_ASSOC, &mgr->state); - mgr->ident =3D hdr->ident; - } - - skb_pull(skb, le16_to_cpu(hdr->len)); - return 0; -} - -static int a2mp_discphyslink_req(struct amp_mgr *mgr, struct sk_buff *skb, - struct a2mp_cmd *hdr) -{ - struct a2mp_physlink_req *req =3D (void *) skb->data; - struct a2mp_physlink_rsp rsp; - struct hci_dev *hdev; - struct hci_conn *hcon; - - if (le16_to_cpu(hdr->len) < sizeof(*req)) - return -EINVAL; - - BT_DBG("local_id %u remote_id %u", req->local_id, req->remote_id); - - memset(&rsp, 0, sizeof(rsp)); - - rsp.local_id =3D req->remote_id; - rsp.remote_id =3D req->local_id; - rsp.status =3D A2MP_STATUS_SUCCESS; - - hdev =3D hci_dev_get(req->remote_id); - if (!hdev) { - rsp.status =3D A2MP_STATUS_INVALID_CTRL_ID; - goto send_rsp; - } - - hcon =3D hci_conn_hash_lookup_ba(hdev, AMP_LINK, - &mgr->l2cap_conn->hcon->dst); - if (!hcon) { - bt_dev_err(hdev, "no phys link exist"); - rsp.status =3D A2MP_STATUS_NO_PHYSICAL_LINK_EXISTS; - goto clean; - } - - /* TODO Disconnect Phys Link here */ - -clean: - hci_dev_put(hdev); - -send_rsp: - a2mp_send(mgr, A2MP_DISCONNPHYSLINK_RSP, hdr->ident, sizeof(rsp), &rsp); - - skb_pull(skb, sizeof(*req)); - return 0; -} - -static inline int a2mp_cmd_rsp(struct amp_mgr *mgr, struct sk_buff *skb, - struct a2mp_cmd *hdr) -{ - BT_DBG("ident %u code 0x%2.2x", hdr->ident, hdr->code); - - skb_pull(skb, le16_to_cpu(hdr->len)); - return 0; -} - -/* Handle A2MP signalling */ -static int a2mp_chan_recv_cb(struct l2cap_chan *chan, struct sk_buff *skb) -{ - struct a2mp_cmd *hdr; - struct amp_mgr *mgr =3D chan->data; - int err =3D 0; - - amp_mgr_get(mgr); - - while (skb->len >=3D sizeof(*hdr)) { - u16 len; - - hdr =3D (void *) skb->data; - len =3D le16_to_cpu(hdr->len); - - BT_DBG("code 0x%2.2x id %u len %u", hdr->code, hdr->ident, len); - - skb_pull(skb, sizeof(*hdr)); - - if (len > skb->len || !hdr->ident) { - err =3D -EINVAL; - break; - } - - mgr->ident =3D hdr->ident; - - switch (hdr->code) { - case A2MP_COMMAND_REJ: - a2mp_command_rej(mgr, skb, hdr); - break; - - case A2MP_DISCOVER_REQ: - err =3D a2mp_discover_req(mgr, skb, hdr); - break; - - case A2MP_CHANGE_NOTIFY: - err =3D a2mp_change_notify(mgr, skb, hdr); - break; - - case A2MP_GETINFO_REQ: - err =3D a2mp_getinfo_req(mgr, skb, hdr); - break; - - case A2MP_GETAMPASSOC_REQ: - err =3D a2mp_getampassoc_req(mgr, skb, hdr); - break; - - case A2MP_CREATEPHYSLINK_REQ: - err =3D a2mp_createphyslink_req(mgr, skb, hdr); - break; - - case A2MP_DISCONNPHYSLINK_REQ: - err =3D a2mp_discphyslink_req(mgr, skb, hdr); - break; - - case A2MP_DISCOVER_RSP: - err =3D a2mp_discover_rsp(mgr, skb, hdr); - break; - - case A2MP_GETINFO_RSP: - err =3D a2mp_getinfo_rsp(mgr, skb, hdr); - break; - - case A2MP_GETAMPASSOC_RSP: - err =3D a2mp_getampassoc_rsp(mgr, skb, hdr); - break; - - case A2MP_CHANGE_RSP: - case A2MP_CREATEPHYSLINK_RSP: - case A2MP_DISCONNPHYSLINK_RSP: - err =3D a2mp_cmd_rsp(mgr, skb, hdr); - break; - - default: - BT_ERR("Unknown A2MP sig cmd 0x%2.2x", hdr->code); - err =3D -EINVAL; - break; - } - } - - if (err) { - struct a2mp_cmd_rej rej; - - memset(&rej, 0, sizeof(rej)); - - rej.reason =3D cpu_to_le16(0); - hdr =3D (void *) skb->data; - - BT_DBG("Send A2MP Rej: cmd 0x%2.2x err %d", hdr->code, err); - - a2mp_send(mgr, A2MP_COMMAND_REJ, hdr->ident, sizeof(rej), - &rej); - } - - /* Always free skb and return success error code to prevent - from sending L2CAP Disconnect over A2MP channel */ - kfree_skb(skb); - - amp_mgr_put(mgr); - - return 0; -} - -static void a2mp_chan_close_cb(struct l2cap_chan *chan) -{ - l2cap_chan_put(chan); -} - -static void a2mp_chan_state_change_cb(struct l2cap_chan *chan, int state, - int err) -{ - struct amp_mgr *mgr =3D chan->data; - - if (!mgr) - return; - - BT_DBG("chan %p state %s", chan, state_to_string(state)); - - chan->state =3D state; - - switch (state) { - case BT_CLOSED: - if (mgr) - amp_mgr_put(mgr); - break; - } -} - -static struct sk_buff *a2mp_chan_alloc_skb_cb(struct l2cap_chan *chan, - unsigned long hdr_len, - unsigned long len, int nb) -{ - struct sk_buff *skb; - - skb =3D bt_skb_alloc(hdr_len + len, GFP_KERNEL); - if (!skb) - return ERR_PTR(-ENOMEM); - - return skb; -} - -static const struct l2cap_ops a2mp_chan_ops =3D { - .name =3D "L2CAP A2MP channel", - .recv =3D a2mp_chan_recv_cb, - .close =3D a2mp_chan_close_cb, - .state_change =3D a2mp_chan_state_change_cb, - .alloc_skb =3D a2mp_chan_alloc_skb_cb, - - /* Not implemented for A2MP */ - .new_connection =3D l2cap_chan_no_new_connection, - .teardown =3D l2cap_chan_no_teardown, - .ready =3D l2cap_chan_no_ready, - .defer =3D l2cap_chan_no_defer, - .resume =3D l2cap_chan_no_resume, - .set_shutdown =3D l2cap_chan_no_set_shutdown, - .get_sndtimeo =3D l2cap_chan_no_get_sndtimeo, -}; - -static struct l2cap_chan *a2mp_chan_open(struct l2cap_conn *conn, bool loc= ked) -{ - struct l2cap_chan *chan; - int err; - - chan =3D l2cap_chan_create(); - if (!chan) - return NULL; - - BT_DBG("chan %p", chan); - - chan->chan_type =3D L2CAP_CHAN_FIXED; - chan->scid =3D L2CAP_CID_A2MP; - chan->dcid =3D L2CAP_CID_A2MP; - chan->omtu =3D L2CAP_A2MP_DEFAULT_MTU; - chan->imtu =3D L2CAP_A2MP_DEFAULT_MTU; - chan->flush_to =3D L2CAP_DEFAULT_FLUSH_TO; - - chan->ops =3D &a2mp_chan_ops; - - l2cap_chan_set_defaults(chan); - chan->remote_max_tx =3D chan->max_tx; - chan->remote_tx_win =3D chan->tx_win; - - chan->retrans_timeout =3D L2CAP_DEFAULT_RETRANS_TO; - chan->monitor_timeout =3D L2CAP_DEFAULT_MONITOR_TO; - - skb_queue_head_init(&chan->tx_q); - - chan->mode =3D L2CAP_MODE_ERTM; - - err =3D l2cap_ertm_init(chan); - if (err < 0) { - l2cap_chan_del(chan, 0); - return NULL; - } - - chan->conf_state =3D 0; - - if (locked) - __l2cap_chan_add(conn, chan); - else - l2cap_chan_add(conn, chan); - - chan->remote_mps =3D chan->omtu; - chan->mps =3D chan->omtu; - - chan->state =3D BT_CONNECTED; - - return chan; -} - -/* AMP Manager functions */ -struct amp_mgr *amp_mgr_get(struct amp_mgr *mgr) -{ - BT_DBG("mgr %p orig refcnt %d", mgr, kref_read(&mgr->kref)); - - kref_get(&mgr->kref); - - return mgr; -} - -static void amp_mgr_destroy(struct kref *kref) -{ - struct amp_mgr *mgr =3D container_of(kref, struct amp_mgr, kref); - - BT_DBG("mgr %p", mgr); - - mutex_lock(&_mgr_list_lock); - list_del(&mgr->list); - mutex_unlock(&_mgr_list_lock); - - amp_ctrl_list_flush(mgr); - kfree(mgr); -} - -int amp_mgr_put(struct amp_mgr *mgr) -{ - BT_DBG("mgr %p orig refcnt %d", mgr, kref_read(&mgr->kref)); - - return kref_put(&mgr->kref, &_mgr_destroy); -} - -static struct amp_mgr *amp_mgr_create(struct l2cap_conn *conn, bool locked) -{ - struct amp_mgr *mgr; - struct l2cap_chan *chan; - - mgr =3D kzalloc(sizeof(*mgr), GFP_KERNEL); - if (!mgr) - return NULL; - - BT_DBG("conn %p mgr %p", conn, mgr); - - mgr->l2cap_conn =3D conn; - - chan =3D a2mp_chan_open(conn, locked); - if (!chan) { - kfree(mgr); - return NULL; - } - - mgr->a2mp_chan =3D chan; - chan->data =3D mgr; - - conn->hcon->amp_mgr =3D mgr; - - kref_init(&mgr->kref); - - /* Remote AMP ctrl list initialization */ - INIT_LIST_HEAD(&mgr->amp_ctrls); - mutex_init(&mgr->amp_ctrls_lock); - - mutex_lock(&_mgr_list_lock); - list_add(&mgr->list, &_mgr_list); - mutex_unlock(&_mgr_list_lock); - - return mgr; -} - -struct l2cap_chan *a2mp_channel_create(struct l2cap_conn *conn, - struct sk_buff *skb) -{ - struct amp_mgr *mgr; - - if (conn->hcon->type !=3D ACL_LINK) - return NULL; - - mgr =3D amp_mgr_create(conn, false); - if (!mgr) { - BT_ERR("Could not create AMP manager"); - return NULL; - } - - BT_DBG("mgr: %p chan %p", mgr, mgr->a2mp_chan); - - return mgr->a2mp_chan; -} - -void a2mp_send_getinfo_rsp(struct hci_dev *hdev) -{ - struct amp_mgr *mgr; - struct a2mp_info_rsp rsp; - - mgr =3D amp_mgr_lookup_by_state(READ_LOC_AMP_INFO); - if (!mgr) - return; - - BT_DBG("%s mgr %p", hdev->name, mgr); - - memset(&rsp, 0, sizeof(rsp)); - - rsp.id =3D hdev->id; - rsp.status =3D A2MP_STATUS_INVALID_CTRL_ID; - - if (hdev->amp_type !=3D AMP_TYPE_BREDR) { - rsp.status =3D 0; - rsp.total_bw =3D cpu_to_le32(hdev->amp_total_bw); - rsp.max_bw =3D cpu_to_le32(hdev->amp_max_bw); - rsp.min_latency =3D cpu_to_le32(hdev->amp_min_latency); - rsp.pal_cap =3D cpu_to_le16(hdev->amp_pal_cap); - rsp.assoc_size =3D cpu_to_le16(hdev->amp_assoc_size); - } - - a2mp_send(mgr, A2MP_GETINFO_RSP, mgr->ident, sizeof(rsp), &rsp); - amp_mgr_put(mgr); -} - -void a2mp_send_getampassoc_rsp(struct hci_dev *hdev, u8 status) -{ - struct amp_mgr *mgr; - struct amp_assoc *loc_assoc =3D &hdev->loc_assoc; - struct a2mp_amp_assoc_rsp *rsp; - size_t len; - - mgr =3D amp_mgr_lookup_by_state(READ_LOC_AMP_ASSOC); - if (!mgr) - return; - - BT_DBG("%s mgr %p", hdev->name, mgr); - - len =3D sizeof(struct a2mp_amp_assoc_rsp) + loc_assoc->len; - rsp =3D kzalloc(len, GFP_KERNEL); - if (!rsp) { - amp_mgr_put(mgr); - return; - } - - rsp->id =3D hdev->id; - - if (status) { - rsp->status =3D A2MP_STATUS_INVALID_CTRL_ID; - } else { - rsp->status =3D A2MP_STATUS_SUCCESS; - memcpy(rsp->amp_assoc, loc_assoc->data, loc_assoc->len); - } - - a2mp_send(mgr, A2MP_GETAMPASSOC_RSP, mgr->ident, len, rsp); - amp_mgr_put(mgr); - kfree(rsp); -} - -void a2mp_send_create_phy_link_req(struct hci_dev *hdev, u8 status) -{ - struct amp_mgr *mgr; - struct amp_assoc *loc_assoc =3D &hdev->loc_assoc; - struct a2mp_physlink_req *req; - struct l2cap_chan *bredr_chan; - size_t len; - - mgr =3D amp_mgr_lookup_by_state(READ_LOC_AMP_ASSOC_FINAL); - if (!mgr) - return; - - len =3D sizeof(*req) + loc_assoc->len; - - BT_DBG("%s mgr %p assoc_len %zu", hdev->name, mgr, len); - - req =3D kzalloc(len, GFP_KERNEL); - if (!req) { - amp_mgr_put(mgr); - return; - } - - bredr_chan =3D mgr->bredr_chan; - if (!bredr_chan) - goto clean; - - req->local_id =3D hdev->id; - req->remote_id =3D bredr_chan->remote_amp_id; - memcpy(req->amp_assoc, loc_assoc->data, loc_assoc->len); - - a2mp_send(mgr, A2MP_CREATEPHYSLINK_REQ, __next_ident(mgr), len, req); - -clean: - amp_mgr_put(mgr); - kfree(req); -} - -void a2mp_send_create_phy_link_rsp(struct hci_dev *hdev, u8 status) -{ - struct amp_mgr *mgr; - struct a2mp_physlink_rsp rsp; - struct hci_conn *hs_hcon; - - mgr =3D amp_mgr_lookup_by_state(WRITE_REMOTE_AMP_ASSOC); - if (!mgr) - return; - - memset(&rsp, 0, sizeof(rsp)); - - hs_hcon =3D hci_conn_hash_lookup_state(hdev, AMP_LINK, BT_CONNECT); - if (!hs_hcon) { - rsp.status =3D A2MP_STATUS_UNABLE_START_LINK_CREATION; - } else { - rsp.remote_id =3D hs_hcon->remote_id; - rsp.status =3D A2MP_STATUS_SUCCESS; - } - - BT_DBG("%s mgr %p hs_hcon %p status %u", hdev->name, mgr, hs_hcon, - status); - - rsp.local_id =3D hdev->id; - a2mp_send(mgr, A2MP_CREATEPHYSLINK_RSP, mgr->ident, sizeof(rsp), &rsp); - amp_mgr_put(mgr); -} - -void a2mp_discover_amp(struct l2cap_chan *chan) -{ - struct l2cap_conn *conn =3D chan->conn; - struct amp_mgr *mgr =3D conn->hcon->amp_mgr; - struct a2mp_discov_req req; - - BT_DBG("chan %p conn %p mgr %p", chan, conn, mgr); - - if (!mgr) { - mgr =3D amp_mgr_create(conn, true); - if (!mgr) - return; - } - - mgr->bredr_chan =3D chan; - - memset(&req, 0, sizeof(req)); - - req.mtu =3D cpu_to_le16(L2CAP_A2MP_DEFAULT_MTU); - req.ext_feat =3D 0; - a2mp_send(mgr, A2MP_DISCOVER_REQ, 1, sizeof(req), &req); -} diff --git a/net/bluetooth/a2mp.h b/net/bluetooth/a2mp.h deleted file mode 100644 index 2fd253a61a2a1..0000000000000 --- a/net/bluetooth/a2mp.h +++ /dev/null @@ -1,154 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-only */ -/* - Copyright (c) 2010,2011 Code Aurora Forum. All rights reserved. - Copyright (c) 2011,2012 Intel Corp. - -*/ - -#ifndef __A2MP_H -#define __A2MP_H - -#include - -enum amp_mgr_state { - READ_LOC_AMP_INFO, - READ_LOC_AMP_ASSOC, - READ_LOC_AMP_ASSOC_FINAL, - WRITE_REMOTE_AMP_ASSOC, -}; - -struct amp_mgr { - struct list_head list; - struct l2cap_conn *l2cap_conn; - struct l2cap_chan *a2mp_chan; - struct l2cap_chan *bredr_chan; - struct kref kref; - __u8 ident; - __u8 handle; - unsigned long state; - unsigned long flags; - - struct list_head amp_ctrls; - struct mutex amp_ctrls_lock; -}; - -struct a2mp_cmd { - __u8 code; - __u8 ident; - __le16 len; - __u8 data[]; -} __packed; - -/* A2MP command codes */ -#define A2MP_COMMAND_REJ 0x01 -struct a2mp_cmd_rej { - __le16 reason; - __u8 data[]; -} __packed; - -#define A2MP_DISCOVER_REQ 0x02 -struct a2mp_discov_req { - __le16 mtu; - __le16 ext_feat; -} __packed; - -struct a2mp_cl { - __u8 id; - __u8 type; - __u8 status; -} __packed; - -#define A2MP_DISCOVER_RSP 0x03 -struct a2mp_discov_rsp { - __le16 mtu; - __le16 ext_feat; - struct a2mp_cl cl[]; -} __packed; - -#define A2MP_CHANGE_NOTIFY 0x04 -#define A2MP_CHANGE_RSP 0x05 - -#define A2MP_GETINFO_REQ 0x06 -struct a2mp_info_req { - __u8 id; -} __packed; - -#define A2MP_GETINFO_RSP 0x07 -struct a2mp_info_rsp { - __u8 id; - __u8 status; - __le32 total_bw; - __le32 max_bw; - __le32 min_latency; - __le16 pal_cap; - __le16 assoc_size; -} __packed; - -#define A2MP_GETAMPASSOC_REQ 0x08 -struct a2mp_amp_assoc_req { - __u8 id; -} __packed; - -#define A2MP_GETAMPASSOC_RSP 0x09 -struct a2mp_amp_assoc_rsp { - __u8 id; - __u8 status; - __u8 amp_assoc[]; -} __packed; - -#define A2MP_CREATEPHYSLINK_REQ 0x0A -#define A2MP_DISCONNPHYSLINK_REQ 0x0C -struct a2mp_physlink_req { - __u8 local_id; - __u8 remote_id; - __u8 amp_assoc[]; -} __packed; - -#define A2MP_CREATEPHYSLINK_RSP 0x0B -#define A2MP_DISCONNPHYSLINK_RSP 0x0D -struct a2mp_physlink_rsp { - __u8 local_id; - __u8 remote_id; - __u8 status; -} __packed; - -/* A2MP response status */ -#define A2MP_STATUS_SUCCESS 0x00 -#define A2MP_STATUS_INVALID_CTRL_ID 0x01 -#define A2MP_STATUS_UNABLE_START_LINK_CREATION 0x02 -#define A2MP_STATUS_NO_PHYSICAL_LINK_EXISTS 0x02 -#define A2MP_STATUS_COLLISION_OCCURED 0x03 -#define A2MP_STATUS_DISCONN_REQ_RECVD 0x04 -#define A2MP_STATUS_PHYS_LINK_EXISTS 0x05 -#define A2MP_STATUS_SECURITY_VIOLATION 0x06 - -struct amp_mgr *amp_mgr_get(struct amp_mgr *mgr); - -#if IS_ENABLED(CONFIG_BT_HS) -int amp_mgr_put(struct amp_mgr *mgr); -struct l2cap_chan *a2mp_channel_create(struct l2cap_conn *conn, - struct sk_buff *skb); -void a2mp_discover_amp(struct l2cap_chan *chan); -#else -static inline int amp_mgr_put(struct amp_mgr *mgr) -{ - return 0; -} - -static inline struct l2cap_chan *a2mp_channel_create(struct l2cap_conn *co= nn, - struct sk_buff *skb) -{ - return NULL; -} - -static inline void a2mp_discover_amp(struct l2cap_chan *chan) -{ -} -#endif - -void a2mp_send_getinfo_rsp(struct hci_dev *hdev); -void a2mp_send_getampassoc_rsp(struct hci_dev *hdev, u8 status); -void a2mp_send_create_phy_link_req(struct hci_dev *hdev, u8 status); -void a2mp_send_create_phy_link_rsp(struct hci_dev *hdev, u8 status); - -#endif /* __A2MP_H */ diff --git a/net/bluetooth/amp.c b/net/bluetooth/amp.c deleted file mode 100644 index 5d698f19868c5..0000000000000 --- a/net/bluetooth/amp.c +++ /dev/null @@ -1,590 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-only -/* - Copyright (c) 2011,2012 Intel Corp. - -*/ - -#include -#include -#include -#include - -#include "hci_request.h" -#include "a2mp.h" -#include "amp.h" - -/* Remote AMP Controllers interface */ -void amp_ctrl_get(struct amp_ctrl *ctrl) -{ - BT_DBG("ctrl %p orig refcnt %d", ctrl, - kref_read(&ctrl->kref)); - - kref_get(&ctrl->kref); -} - -static void amp_ctrl_destroy(struct kref *kref) -{ - struct amp_ctrl *ctrl =3D container_of(kref, struct amp_ctrl, kref); - - BT_DBG("ctrl %p", ctrl); - - kfree(ctrl->assoc); - kfree(ctrl); -} - -int amp_ctrl_put(struct amp_ctrl *ctrl) -{ - BT_DBG("ctrl %p orig refcnt %d", ctrl, - kref_read(&ctrl->kref)); - - return kref_put(&ctrl->kref, &_ctrl_destroy); -} - -struct amp_ctrl *amp_ctrl_add(struct amp_mgr *mgr, u8 id) -{ - struct amp_ctrl *ctrl; - - ctrl =3D kzalloc(sizeof(*ctrl), GFP_KERNEL); - if (!ctrl) - return NULL; - - kref_init(&ctrl->kref); - ctrl->id =3D id; - - mutex_lock(&mgr->amp_ctrls_lock); - list_add(&ctrl->list, &mgr->amp_ctrls); - mutex_unlock(&mgr->amp_ctrls_lock); - - BT_DBG("mgr %p ctrl %p", mgr, ctrl); - - return ctrl; -} - -void amp_ctrl_list_flush(struct amp_mgr *mgr) -{ - struct amp_ctrl *ctrl, *n; - - BT_DBG("mgr %p", mgr); - - mutex_lock(&mgr->amp_ctrls_lock); - list_for_each_entry_safe(ctrl, n, &mgr->amp_ctrls, list) { - list_del(&ctrl->list); - amp_ctrl_put(ctrl); - } - mutex_unlock(&mgr->amp_ctrls_lock); -} - -struct amp_ctrl *amp_ctrl_lookup(struct amp_mgr *mgr, u8 id) -{ - struct amp_ctrl *ctrl; - - BT_DBG("mgr %p id %u", mgr, id); - - mutex_lock(&mgr->amp_ctrls_lock); - list_for_each_entry(ctrl, &mgr->amp_ctrls, list) { - if (ctrl->id =3D=3D id) { - amp_ctrl_get(ctrl); - mutex_unlock(&mgr->amp_ctrls_lock); - return ctrl; - } - } - mutex_unlock(&mgr->amp_ctrls_lock); - - return NULL; -} - -/* Physical Link interface */ -static u8 __next_handle(struct amp_mgr *mgr) -{ - if (++mgr->handle =3D=3D 0) - mgr->handle =3D 1; - - return mgr->handle; -} - -struct hci_conn *phylink_add(struct hci_dev *hdev, struct amp_mgr *mgr, - u8 remote_id, bool out) -{ - bdaddr_t *dst =3D &mgr->l2cap_conn->hcon->dst; - struct hci_conn *hcon; - u8 role =3D out ? HCI_ROLE_MASTER : HCI_ROLE_SLAVE; - - hcon =3D hci_conn_add(hdev, AMP_LINK, dst, role, __next_handle(mgr)); - if (!hcon) - return NULL; - - BT_DBG("hcon %p dst %pMR", hcon, dst); - - hcon->state =3D BT_CONNECT; - hcon->attempt++; - hcon->remote_id =3D remote_id; - hcon->amp_mgr =3D amp_mgr_get(mgr); - - return hcon; -} - -/* AMP crypto key generation interface */ -static int hmac_sha256(u8 *key, u8 ksize, char *plaintext, u8 psize, u8 *o= utput) -{ - struct crypto_shash *tfm; - struct shash_desc *shash; - int ret; - - if (!ksize) - return -EINVAL; - - tfm =3D crypto_alloc_shash("hmac(sha256)", 0, 0); - if (IS_ERR(tfm)) { - BT_DBG("crypto_alloc_ahash failed: err %ld", PTR_ERR(tfm)); - return PTR_ERR(tfm); - } - - ret =3D crypto_shash_setkey(tfm, key, ksize); - if (ret) { - BT_DBG("crypto_ahash_setkey failed: err %d", ret); - goto failed; - } - - shash =3D kzalloc(sizeof(*shash) + crypto_shash_descsize(tfm), - GFP_KERNEL); - if (!shash) { - ret =3D -ENOMEM; - goto failed; - } - - shash->tfm =3D tfm; - - ret =3D crypto_shash_digest(shash, plaintext, psize, output); - - kfree(shash); - -failed: - crypto_free_shash(tfm); - return ret; -} - -int phylink_gen_key(struct hci_conn *conn, u8 *data, u8 *len, u8 *type) -{ - struct hci_dev *hdev =3D conn->hdev; - struct link_key *key; - u8 keybuf[HCI_AMP_LINK_KEY_SIZE]; - u8 gamp_key[HCI_AMP_LINK_KEY_SIZE]; - int err; - - if (!hci_conn_check_link_mode(conn)) - return -EACCES; - - BT_DBG("conn %p key_type %d", conn, conn->key_type); - - /* Legacy key */ - if (conn->key_type < 3) { - bt_dev_err(hdev, "legacy key type %u", conn->key_type); - return -EACCES; - } - - *type =3D conn->key_type; - *len =3D HCI_AMP_LINK_KEY_SIZE; - - key =3D hci_find_link_key(hdev, &conn->dst); - if (!key) { - BT_DBG("No Link key for conn %p dst %pMR", conn, &conn->dst); - return -EACCES; - } - - /* BR/EDR Link Key concatenated together with itself */ - memcpy(&keybuf[0], key->val, HCI_LINK_KEY_SIZE); - memcpy(&keybuf[HCI_LINK_KEY_SIZE], key->val, HCI_LINK_KEY_SIZE); - - /* Derive Generic AMP Link Key (gamp) */ - err =3D hmac_sha256(keybuf, HCI_AMP_LINK_KEY_SIZE, "gamp", 4, gamp_key); - if (err) { - bt_dev_err(hdev, "could not derive Generic AMP Key: err %d", err); - return err; - } - - if (conn->key_type =3D=3D HCI_LK_DEBUG_COMBINATION) { - BT_DBG("Use Generic AMP Key (gamp)"); - memcpy(data, gamp_key, HCI_AMP_LINK_KEY_SIZE); - return err; - } - - /* Derive Dedicated AMP Link Key: "802b" is 802.11 PAL keyID */ - return hmac_sha256(gamp_key, HCI_AMP_LINK_KEY_SIZE, "802b", 4, data); -} - -static void read_local_amp_assoc_complete(struct hci_dev *hdev, u8 status, - u16 opcode, struct sk_buff *skb) -{ - struct hci_rp_read_local_amp_assoc *rp =3D (void *)skb->data; - struct amp_assoc *assoc =3D &hdev->loc_assoc; - size_t rem_len, frag_len; - - BT_DBG("%s status 0x%2.2x", hdev->name, rp->status); - - if (rp->status) - goto send_rsp; - - frag_len =3D skb->len - sizeof(*rp); - rem_len =3D __le16_to_cpu(rp->rem_len); - - if (rem_len > frag_len) { - BT_DBG("frag_len %zu rem_len %zu", frag_len, rem_len); - - memcpy(assoc->data + assoc->offset, rp->frag, frag_len); - assoc->offset +=3D frag_len; - - /* Read other fragments */ - amp_read_loc_assoc_frag(hdev, rp->phy_handle); - - return; - } - - memcpy(assoc->data + assoc->offset, rp->frag, rem_len); - assoc->len =3D assoc->offset + rem_len; - assoc->offset =3D 0; - -send_rsp: - /* Send A2MP Rsp when all fragments are received */ - a2mp_send_getampassoc_rsp(hdev, rp->status); - a2mp_send_create_phy_link_req(hdev, rp->status); -} - -void amp_read_loc_assoc_frag(struct hci_dev *hdev, u8 phy_handle) -{ - struct hci_cp_read_local_amp_assoc cp; - struct amp_assoc *loc_assoc =3D &hdev->loc_assoc; - struct hci_request req; - int err; - - BT_DBG("%s handle %u", hdev->name, phy_handle); - - cp.phy_handle =3D phy_handle; - cp.max_len =3D cpu_to_le16(hdev->amp_assoc_size); - cp.len_so_far =3D cpu_to_le16(loc_assoc->offset); - - hci_req_init(&req, hdev); - hci_req_add(&req, HCI_OP_READ_LOCAL_AMP_ASSOC, sizeof(cp), &cp); - err =3D hci_req_run_skb(&req, read_local_amp_assoc_complete); - if (err < 0) - a2mp_send_getampassoc_rsp(hdev, A2MP_STATUS_INVALID_CTRL_ID); -} - -void amp_read_loc_assoc(struct hci_dev *hdev, struct amp_mgr *mgr) -{ - struct hci_cp_read_local_amp_assoc cp; - struct hci_request req; - int err; - - memset(&hdev->loc_assoc, 0, sizeof(struct amp_assoc)); - memset(&cp, 0, sizeof(cp)); - - cp.max_len =3D cpu_to_le16(hdev->amp_assoc_size); - - set_bit(READ_LOC_AMP_ASSOC, &mgr->state); - hci_req_init(&req, hdev); - hci_req_add(&req, HCI_OP_READ_LOCAL_AMP_ASSOC, sizeof(cp), &cp); - err =3D hci_req_run_skb(&req, read_local_amp_assoc_complete); - if (err < 0) - a2mp_send_getampassoc_rsp(hdev, A2MP_STATUS_INVALID_CTRL_ID); -} - -void amp_read_loc_assoc_final_data(struct hci_dev *hdev, - struct hci_conn *hcon) -{ - struct hci_cp_read_local_amp_assoc cp; - struct amp_mgr *mgr =3D hcon->amp_mgr; - struct hci_request req; - int err; - - if (!mgr) - return; - - cp.phy_handle =3D hcon->handle; - cp.len_so_far =3D cpu_to_le16(0); - cp.max_len =3D cpu_to_le16(hdev->amp_assoc_size); - - set_bit(READ_LOC_AMP_ASSOC_FINAL, &mgr->state); - - /* Read Local AMP Assoc final link information data */ - hci_req_init(&req, hdev); - hci_req_add(&req, HCI_OP_READ_LOCAL_AMP_ASSOC, sizeof(cp), &cp); - err =3D hci_req_run_skb(&req, read_local_amp_assoc_complete); - if (err < 0) - a2mp_send_getampassoc_rsp(hdev, A2MP_STATUS_INVALID_CTRL_ID); -} - -static void write_remote_amp_assoc_complete(struct hci_dev *hdev, u8 statu= s, - u16 opcode, struct sk_buff *skb) -{ - struct hci_rp_write_remote_amp_assoc *rp =3D (void *)skb->data; - - BT_DBG("%s status 0x%2.2x phy_handle 0x%2.2x", - hdev->name, rp->status, rp->phy_handle); - - if (rp->status) - return; - - amp_write_rem_assoc_continue(hdev, rp->phy_handle); -} - -/* Write AMP Assoc data fragments, returns true with last fragment written= */ -static bool amp_write_rem_assoc_frag(struct hci_dev *hdev, - struct hci_conn *hcon) -{ - struct hci_cp_write_remote_amp_assoc *cp; - struct amp_mgr *mgr =3D hcon->amp_mgr; - struct amp_ctrl *ctrl; - struct hci_request req; - u16 frag_len, len; - - ctrl =3D amp_ctrl_lookup(mgr, hcon->remote_id); - if (!ctrl) - return false; - - if (!ctrl->assoc_rem_len) { - BT_DBG("all fragments are written"); - ctrl->assoc_rem_len =3D ctrl->assoc_len; - ctrl->assoc_len_so_far =3D 0; - - amp_ctrl_put(ctrl); - return true; - } - - frag_len =3D min_t(u16, 248, ctrl->assoc_rem_len); - len =3D frag_len + sizeof(*cp); - - cp =3D kzalloc(len, GFP_KERNEL); - if (!cp) { - amp_ctrl_put(ctrl); - return false; - } - - BT_DBG("hcon %p ctrl %p frag_len %u assoc_len %u rem_len %u", - hcon, ctrl, frag_len, ctrl->assoc_len, ctrl->assoc_rem_len); - - cp->phy_handle =3D hcon->handle; - cp->len_so_far =3D cpu_to_le16(ctrl->assoc_len_so_far); - cp->rem_len =3D cpu_to_le16(ctrl->assoc_rem_len); - memcpy(cp->frag, ctrl->assoc, frag_len); - - ctrl->assoc_len_so_far +=3D frag_len; - ctrl->assoc_rem_len -=3D frag_len; - - amp_ctrl_put(ctrl); - - hci_req_init(&req, hdev); - hci_req_add(&req, HCI_OP_WRITE_REMOTE_AMP_ASSOC, len, cp); - hci_req_run_skb(&req, write_remote_amp_assoc_complete); - - kfree(cp); - - return false; -} - -void amp_write_rem_assoc_continue(struct hci_dev *hdev, u8 handle) -{ - struct hci_conn *hcon; - - BT_DBG("%s phy handle 0x%2.2x", hdev->name, handle); - - hcon =3D hci_conn_hash_lookup_handle(hdev, handle); - if (!hcon) - return; - - /* Send A2MP create phylink rsp when all fragments are written */ - if (amp_write_rem_assoc_frag(hdev, hcon)) - a2mp_send_create_phy_link_rsp(hdev, 0); -} - -void amp_write_remote_assoc(struct hci_dev *hdev, u8 handle) -{ - struct hci_conn *hcon; - - BT_DBG("%s phy handle 0x%2.2x", hdev->name, handle); - - hcon =3D hci_conn_hash_lookup_handle(hdev, handle); - if (!hcon) - return; - - BT_DBG("%s phy handle 0x%2.2x hcon %p", hdev->name, handle, hcon); - - amp_write_rem_assoc_frag(hdev, hcon); -} - -static void create_phylink_complete(struct hci_dev *hdev, u8 status, - u16 opcode) -{ - struct hci_cp_create_phy_link *cp; - - BT_DBG("%s status 0x%2.2x", hdev->name, status); - - cp =3D hci_sent_cmd_data(hdev, HCI_OP_CREATE_PHY_LINK); - if (!cp) - return; - - hci_dev_lock(hdev); - - if (status) { - struct hci_conn *hcon; - - hcon =3D hci_conn_hash_lookup_handle(hdev, cp->phy_handle); - if (hcon) - hci_conn_del(hcon); - } else { - amp_write_remote_assoc(hdev, cp->phy_handle); - } - - hci_dev_unlock(hdev); -} - -void amp_create_phylink(struct hci_dev *hdev, struct amp_mgr *mgr, - struct hci_conn *hcon) -{ - struct hci_cp_create_phy_link cp; - struct hci_request req; - - cp.phy_handle =3D hcon->handle; - - BT_DBG("%s hcon %p phy handle 0x%2.2x", hdev->name, hcon, - hcon->handle); - - if (phylink_gen_key(mgr->l2cap_conn->hcon, cp.key, &cp.key_len, - &cp.key_type)) { - BT_DBG("Cannot create link key"); - return; - } - - hci_req_init(&req, hdev); - hci_req_add(&req, HCI_OP_CREATE_PHY_LINK, sizeof(cp), &cp); - hci_req_run(&req, create_phylink_complete); -} - -static void accept_phylink_complete(struct hci_dev *hdev, u8 status, - u16 opcode) -{ - struct hci_cp_accept_phy_link *cp; - - BT_DBG("%s status 0x%2.2x", hdev->name, status); - - if (status) - return; - - cp =3D hci_sent_cmd_data(hdev, HCI_OP_ACCEPT_PHY_LINK); - if (!cp) - return; - - amp_write_remote_assoc(hdev, cp->phy_handle); -} - -void amp_accept_phylink(struct hci_dev *hdev, struct amp_mgr *mgr, - struct hci_conn *hcon) -{ - struct hci_cp_accept_phy_link cp; - struct hci_request req; - - cp.phy_handle =3D hcon->handle; - - BT_DBG("%s hcon %p phy handle 0x%2.2x", hdev->name, hcon, - hcon->handle); - - if (phylink_gen_key(mgr->l2cap_conn->hcon, cp.key, &cp.key_len, - &cp.key_type)) { - BT_DBG("Cannot create link key"); - return; - } - - hci_req_init(&req, hdev); - hci_req_add(&req, HCI_OP_ACCEPT_PHY_LINK, sizeof(cp), &cp); - hci_req_run(&req, accept_phylink_complete); -} - -void amp_physical_cfm(struct hci_conn *bredr_hcon, struct hci_conn *hs_hco= n) -{ - struct hci_dev *bredr_hdev =3D hci_dev_hold(bredr_hcon->hdev); - struct amp_mgr *mgr =3D hs_hcon->amp_mgr; - struct l2cap_chan *bredr_chan; - - BT_DBG("bredr_hcon %p hs_hcon %p mgr %p", bredr_hcon, hs_hcon, mgr); - - if (!bredr_hdev || !mgr || !mgr->bredr_chan) - return; - - bredr_chan =3D mgr->bredr_chan; - - l2cap_chan_lock(bredr_chan); - - set_bit(FLAG_EFS_ENABLE, &bredr_chan->flags); - bredr_chan->remote_amp_id =3D hs_hcon->remote_id; - bredr_chan->local_amp_id =3D hs_hcon->hdev->id; - bredr_chan->hs_hcon =3D hs_hcon; - bredr_chan->conn->mtu =3D hs_hcon->hdev->block_mtu; - - __l2cap_physical_cfm(bredr_chan, 0); - - l2cap_chan_unlock(bredr_chan); - - hci_dev_put(bredr_hdev); -} - -void amp_create_logical_link(struct l2cap_chan *chan) -{ - struct hci_conn *hs_hcon =3D chan->hs_hcon; - struct hci_cp_create_accept_logical_link cp; - struct hci_dev *hdev; - - BT_DBG("chan %p hs_hcon %p dst %pMR", chan, hs_hcon, - &chan->conn->hcon->dst); - - if (!hs_hcon) - return; - - hdev =3D hci_dev_hold(chan->hs_hcon->hdev); - if (!hdev) - return; - - cp.phy_handle =3D hs_hcon->handle; - - cp.tx_flow_spec.id =3D chan->local_id; - cp.tx_flow_spec.stype =3D chan->local_stype; - cp.tx_flow_spec.msdu =3D cpu_to_le16(chan->local_msdu); - cp.tx_flow_spec.sdu_itime =3D cpu_to_le32(chan->local_sdu_itime); - cp.tx_flow_spec.acc_lat =3D cpu_to_le32(chan->local_acc_lat); - cp.tx_flow_spec.flush_to =3D cpu_to_le32(chan->local_flush_to); - - cp.rx_flow_spec.id =3D chan->remote_id; - cp.rx_flow_spec.stype =3D chan->remote_stype; - cp.rx_flow_spec.msdu =3D cpu_to_le16(chan->remote_msdu); - cp.rx_flow_spec.sdu_itime =3D cpu_to_le32(chan->remote_sdu_itime); - cp.rx_flow_spec.acc_lat =3D cpu_to_le32(chan->remote_acc_lat); - cp.rx_flow_spec.flush_to =3D cpu_to_le32(chan->remote_flush_to); - - if (hs_hcon->out) - hci_send_cmd(hdev, HCI_OP_CREATE_LOGICAL_LINK, sizeof(cp), - &cp); - else - hci_send_cmd(hdev, HCI_OP_ACCEPT_LOGICAL_LINK, sizeof(cp), - &cp); - - hci_dev_put(hdev); -} - -void amp_disconnect_logical_link(struct hci_chan *hchan) -{ - struct hci_conn *hcon =3D hchan->conn; - struct hci_cp_disconn_logical_link cp; - - if (hcon->state !=3D BT_CONNECTED) { - BT_DBG("hchan %p not connected", hchan); - return; - } - - cp.log_handle =3D cpu_to_le16(hchan->handle); - hci_send_cmd(hcon->hdev, HCI_OP_DISCONN_LOGICAL_LINK, sizeof(cp), &cp); -} - -void amp_destroy_logical_link(struct hci_chan *hchan, u8 reason) -{ - BT_DBG("hchan %p", hchan); - - hci_chan_del(hchan); -} diff --git a/net/bluetooth/amp.h b/net/bluetooth/amp.h deleted file mode 100644 index 97c87abd129f6..0000000000000 --- a/net/bluetooth/amp.h +++ /dev/null @@ -1,60 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-only */ -/* - Copyright (c) 2011,2012 Intel Corp. - -*/ - -#ifndef __AMP_H -#define __AMP_H - -struct amp_ctrl { - struct list_head list; - struct kref kref; - __u8 id; - __u16 assoc_len_so_far; - __u16 assoc_rem_len; - __u16 assoc_len; - __u8 *assoc; -}; - -int amp_ctrl_put(struct amp_ctrl *ctrl); -void amp_ctrl_get(struct amp_ctrl *ctrl); -struct amp_ctrl *amp_ctrl_add(struct amp_mgr *mgr, u8 id); -struct amp_ctrl *amp_ctrl_lookup(struct amp_mgr *mgr, u8 id); -void amp_ctrl_list_flush(struct amp_mgr *mgr); - -struct hci_conn *phylink_add(struct hci_dev *hdev, struct amp_mgr *mgr, - u8 remote_id, bool out); - -int phylink_gen_key(struct hci_conn *hcon, u8 *data, u8 *len, u8 *type); - -void amp_read_loc_assoc_frag(struct hci_dev *hdev, u8 phy_handle); -void amp_read_loc_assoc(struct hci_dev *hdev, struct amp_mgr *mgr); -void amp_read_loc_assoc_final_data(struct hci_dev *hdev, - struct hci_conn *hcon); -void amp_create_phylink(struct hci_dev *hdev, struct amp_mgr *mgr, - struct hci_conn *hcon); -void amp_accept_phylink(struct hci_dev *hdev, struct amp_mgr *mgr, - struct hci_conn *hcon); - -#if IS_ENABLED(CONFIG_BT_HS) -void amp_create_logical_link(struct l2cap_chan *chan); -void amp_disconnect_logical_link(struct hci_chan *hchan); -#else -static inline void amp_create_logical_link(struct l2cap_chan *chan) -{ -} - -static inline void amp_disconnect_logical_link(struct hci_chan *hchan) -{ -} -#endif - -void amp_write_remote_assoc(struct hci_dev *hdev, u8 handle); -void amp_write_rem_assoc_continue(struct hci_dev *hdev, u8 handle); -void amp_physical_cfm(struct hci_conn *bredr_hcon, struct hci_conn *hs_hco= n); -void amp_create_logical_link(struct l2cap_chan *chan); -void amp_disconnect_logical_link(struct hci_chan *hchan); -void amp_destroy_logical_link(struct hci_chan *hchan, u8 reason); - -#endif /* __AMP_H */ diff --git a/net/bluetooth/hci_conn.c b/net/bluetooth/hci_conn.c index 1fdf4b905365e..6cdd2d2af2d95 100644 --- a/net/bluetooth/hci_conn.c +++ b/net/bluetooth/hci_conn.c @@ -36,7 +36,6 @@ =20 #include "hci_request.h" #include "smp.h" -#include "a2mp.h" #include "eir.h" =20 struct sco_param { @@ -1146,9 +1145,6 @@ void hci_conn_del(struct hci_conn *conn) } } =20 - if (conn->amp_mgr) - amp_mgr_put(conn->amp_mgr); - skb_queue_purge(&conn->data_q); =20 /* Remove the connection from the list and cleanup its remaining diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c index f731b8fea19f5..dae5fff7a32b3 100644 --- a/net/bluetooth/hci_event.c +++ b/net/bluetooth/hci_event.c @@ -36,8 +36,6 @@ #include "hci_request.h" #include "hci_debugfs.h" #include "hci_codec.h" -#include "a2mp.h" -#include "amp.h" #include "smp.h" #include "msft.h" #include "eir.h" diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c index 656f49b299d20..ab5a9d42fae71 100644 --- a/net/bluetooth/l2cap_core.c +++ b/net/bluetooth/l2cap_core.c @@ -39,8 +39,6 @@ #include =20 #include "smp.h" -#include "a2mp.h" -#include "amp.h" =20 #define LE_FLOWCTL_MAX_CREDITS 65535 =20 @@ -167,24 +165,6 @@ static struct l2cap_chan *__l2cap_get_chan_by_ident(st= ruct l2cap_conn *conn, return NULL; } =20 -static struct l2cap_chan *l2cap_get_chan_by_ident(struct l2cap_conn *conn, - u8 ident) -{ - struct l2cap_chan *c; - - mutex_lock(&conn->chan_lock); - c =3D __l2cap_get_chan_by_ident(conn, ident); - if (c) { - /* Only lock if chan reference is not 0 */ - c =3D l2cap_chan_hold_unless_zero(c); - if (c) - l2cap_chan_lock(c); - } - mutex_unlock(&conn->chan_lock); - - return c; -} - static struct l2cap_chan *__l2cap_global_chan_by_addr(__le16 psm, bdaddr_t= *src, u8 src_type) { @@ -651,7 +631,6 @@ void l2cap_chan_del(struct l2cap_chan *chan, int err) chan->ops->teardown(chan, err); =20 if (conn) { - struct amp_mgr *mgr =3D conn->hcon->amp_mgr; /* Delete from channel list */ list_del(&chan->list); =20 @@ -666,16 +645,6 @@ void l2cap_chan_del(struct l2cap_chan *chan, int err) if (chan->chan_type !=3D L2CAP_CHAN_FIXED || test_bit(FLAG_HOLD_HCI_CONN, &chan->flags)) hci_conn_drop(conn->hcon); - - if (mgr && mgr->bredr_chan =3D=3D chan) - mgr->bredr_chan =3D NULL; - } - - if (chan->hs_hchan) { - struct hci_chan *hs_hchan =3D chan->hs_hchan; - - BT_DBG("chan %p disconnect hs_hchan %p", chan, hs_hchan); - amp_disconnect_logical_link(hs_hchan); } =20 if (test_bit(CONF_NOT_COMPLETE, &chan->conf_state)) @@ -977,12 +946,6 @@ static void l2cap_send_cmd(struct l2cap_conn *conn, u8= ident, u8 code, u16 len, hci_send_acl(conn->hchan, skb, flags); } =20 -static bool __chan_is_moving(struct l2cap_chan *chan) -{ - return chan->move_state !=3D L2CAP_MOVE_STABLE && - chan->move_state !=3D L2CAP_MOVE_WAIT_PREPARE; -} - static void l2cap_do_send(struct l2cap_chan *chan, struct sk_buff *skb) { struct hci_conn *hcon =3D chan->conn->hcon; @@ -991,15 +954,6 @@ static void l2cap_do_send(struct l2cap_chan *chan, str= uct sk_buff *skb) BT_DBG("chan %p, skb %p len %d priority %u", chan, skb, skb->len, skb->priority); =20 - if (chan->hs_hcon && !__chan_is_moving(chan)) { - if (chan->hs_hchan) - hci_send_acl(chan->hs_hchan, skb, ACL_COMPLETE); - else - kfree_skb(skb); - - return; - } - /* Use NO_FLUSH for LE links (where this is the only option) or * if the BR/EDR link supports it and flushing has not been * explicitly requested (through FLAG_FLUSHABLE). @@ -1180,9 +1134,6 @@ static void l2cap_send_sframe(struct l2cap_chan *chan, if (!control->sframe) return; =20 - if (__chan_is_moving(chan)) - return; - if (test_and_clear_bit(CONN_SEND_FBIT, &chan->conn_state) && !control->poll) control->final =3D 1; @@ -1237,40 +1188,6 @@ static inline int __l2cap_no_conn_pending(struct l2c= ap_chan *chan) return !test_bit(CONF_CONNECT_PEND, &chan->conf_state); } =20 -static bool __amp_capable(struct l2cap_chan *chan) -{ - struct l2cap_conn *conn =3D chan->conn; - struct hci_dev *hdev; - bool amp_available =3D false; - - if (!(conn->local_fixed_chan & L2CAP_FC_A2MP)) - return false; - - if (!(conn->remote_fixed_chan & L2CAP_FC_A2MP)) - return false; - - read_lock(&hci_dev_list_lock); - list_for_each_entry(hdev, &hci_dev_list, list) { - if (hdev->amp_type !=3D AMP_TYPE_BREDR && - test_bit(HCI_UP, &hdev->flags)) { - amp_available =3D true; - break; - } - } - read_unlock(&hci_dev_list_lock); - - if (chan->chan_policy =3D=3D BT_CHANNEL_POLICY_AMP_PREFERRED) - return amp_available; - - return false; -} - -static bool l2cap_check_efs(struct l2cap_chan *chan) -{ - /* Check EFS parameters */ - return true; -} - void l2cap_send_conn_req(struct l2cap_chan *chan) { struct l2cap_conn *conn =3D chan->conn; @@ -1286,76 +1203,6 @@ void l2cap_send_conn_req(struct l2cap_chan *chan) l2cap_send_cmd(conn, chan->ident, L2CAP_CONN_REQ, sizeof(req), &req); } =20 -static void l2cap_send_create_chan_req(struct l2cap_chan *chan, u8 amp_id) -{ - struct l2cap_create_chan_req req; - req.scid =3D cpu_to_le16(chan->scid); - req.psm =3D chan->psm; - req.amp_id =3D amp_id; - - chan->ident =3D l2cap_get_ident(chan->conn); - - l2cap_send_cmd(chan->conn, chan->ident, L2CAP_CREATE_CHAN_REQ, - sizeof(req), &req); -} - -static void l2cap_move_setup(struct l2cap_chan *chan) -{ - struct sk_buff *skb; - - BT_DBG("chan %p", chan); - - if (chan->mode !=3D L2CAP_MODE_ERTM) - return; - - __clear_retrans_timer(chan); - __clear_monitor_timer(chan); - __clear_ack_timer(chan); - - chan->retry_count =3D 0; - skb_queue_walk(&chan->tx_q, skb) { - if (bt_cb(skb)->l2cap.retries) - bt_cb(skb)->l2cap.retries =3D 1; - else - break; - } - - chan->expected_tx_seq =3D chan->buffer_seq; - - clear_bit(CONN_REJ_ACT, &chan->conn_state); - clear_bit(CONN_SREJ_ACT, &chan->conn_state); - l2cap_seq_list_clear(&chan->retrans_list); - l2cap_seq_list_clear(&chan->srej_list); - skb_queue_purge(&chan->srej_q); - - chan->tx_state =3D L2CAP_TX_STATE_XMIT; - chan->rx_state =3D L2CAP_RX_STATE_MOVE; - - set_bit(CONN_REMOTE_BUSY, &chan->conn_state); -} - -static void l2cap_move_done(struct l2cap_chan *chan) -{ - u8 move_role =3D chan->move_role; - BT_DBG("chan %p", chan); - - chan->move_state =3D L2CAP_MOVE_STABLE; - chan->move_role =3D L2CAP_MOVE_ROLE_NONE; - - if (chan->mode !=3D L2CAP_MODE_ERTM) - return; - - switch (move_role) { - case L2CAP_MOVE_ROLE_INITIATOR: - l2cap_tx(chan, NULL, NULL, L2CAP_EV_EXPLICIT_POLL); - chan->rx_state =3D L2CAP_RX_STATE_WAIT_F; - break; - case L2CAP_MOVE_ROLE_RESPONDER: - chan->rx_state =3D L2CAP_RX_STATE_WAIT_P; - break; - } -} - static void l2cap_chan_ready(struct l2cap_chan *chan) { /* The channel may have already been flagged as connected in @@ -1505,10 +1352,7 @@ static void l2cap_le_start(struct l2cap_chan *chan) =20 static void l2cap_start_connection(struct l2cap_chan *chan) { - if (__amp_capable(chan)) { - BT_DBG("chan %p AMP capable: discover AMPs", chan); - a2mp_discover_amp(chan); - } else if (chan->conn->hcon->type =3D=3D LE_LINK) { + if (chan->conn->hcon->type =3D=3D LE_LINK) { l2cap_le_start(chan); } else { l2cap_send_conn_req(chan); @@ -1611,11 +1455,6 @@ static void l2cap_send_disconn_req(struct l2cap_chan= *chan, int err) __clear_ack_timer(chan); } =20 - if (chan->scid =3D=3D L2CAP_CID_A2MP) { - l2cap_state_change(chan, BT_DISCONN); - return; - } - req.dcid =3D cpu_to_le16(chan->dcid); req.scid =3D cpu_to_le16(chan->scid); l2cap_send_cmd(conn, l2cap_get_ident(conn), L2CAP_DISCONN_REQ, @@ -1754,11 +1593,6 @@ static void l2cap_conn_ready(struct l2cap_conn *conn) =20 l2cap_chan_lock(chan); =20 - if (chan->scid =3D=3D L2CAP_CID_A2MP) { - l2cap_chan_unlock(chan); - continue; - } - if (hcon->type =3D=3D LE_LINK) { l2cap_le_start(chan); } else if (chan->chan_type !=3D L2CAP_CHAN_CONN_ORIENTED) { @@ -2067,9 +1901,6 @@ static void l2cap_streaming_send(struct l2cap_chan *c= han, =20 BT_DBG("chan %p, skbs %p", chan, skbs); =20 - if (__chan_is_moving(chan)) - return; - skb_queue_splice_tail_init(skbs, &chan->tx_q); =20 while (!skb_queue_empty(&chan->tx_q)) { @@ -2112,9 +1943,6 @@ static int l2cap_ertm_send(struct l2cap_chan *chan) if (test_bit(CONN_REMOTE_BUSY, &chan->conn_state)) return 0; =20 - if (__chan_is_moving(chan)) - return 0; - while (chan->tx_send_head && chan->unacked_frames < chan->remote_tx_win && chan->tx_state =3D=3D L2CAP_TX_STATE_XMIT) { @@ -2180,9 +2008,6 @@ static void l2cap_ertm_resend(struct l2cap_chan *chan) if (test_bit(CONN_REMOTE_BUSY, &chan->conn_state)) return; =20 - if (__chan_is_moving(chan)) - return; - while (chan->retrans_list.head !=3D L2CAP_SEQ_LIST_CLEAR) { seq =3D l2cap_seq_list_pop(&chan->retrans_list); =20 @@ -2522,8 +2347,7 @@ static int l2cap_segment_sdu(struct l2cap_chan *chan, pdu_len =3D chan->conn->mtu; =20 /* Constrain PDU size for BR/EDR connections */ - if (!chan->hs_hcon) - pdu_len =3D min_t(size_t, pdu_len, L2CAP_BREDR_MAX_PAYLOAD); + pdu_len =3D min_t(size_t, pdu_len, L2CAP_BREDR_MAX_PAYLOAD); =20 /* Adjust for largest possible L2CAP overhead. */ if (chan->fcs) @@ -3287,11 +3111,6 @@ int l2cap_ertm_init(struct l2cap_chan *chan) =20 skb_queue_head_init(&chan->tx_q); =20 - chan->local_amp_id =3D AMP_ID_BREDR; - chan->move_id =3D AMP_ID_BREDR; - chan->move_state =3D L2CAP_MOVE_STABLE; - chan->move_role =3D L2CAP_MOVE_ROLE_NONE; - if (chan->mode !=3D L2CAP_MODE_ERTM) return 0; =20 @@ -3326,52 +3145,19 @@ static inline __u8 l2cap_select_mode(__u8 mode, __u= 16 remote_feat_mask) =20 static inline bool __l2cap_ews_supported(struct l2cap_conn *conn) { - return ((conn->local_fixed_chan & L2CAP_FC_A2MP) && - (conn->feat_mask & L2CAP_FEAT_EXT_WINDOW)); + return (conn->feat_mask & L2CAP_FEAT_EXT_WINDOW); } =20 static inline bool __l2cap_efs_supported(struct l2cap_conn *conn) { - return ((conn->local_fixed_chan & L2CAP_FC_A2MP) && - (conn->feat_mask & L2CAP_FEAT_EXT_FLOW)); + return (conn->feat_mask & L2CAP_FEAT_EXT_FLOW); } =20 static void __l2cap_set_ertm_timeouts(struct l2cap_chan *chan, struct l2cap_conf_rfc *rfc) { - if (chan->local_amp_id !=3D AMP_ID_BREDR && chan->hs_hcon) { - u64 ertm_to =3D chan->hs_hcon->hdev->amp_be_flush_to; - - /* Class 1 devices have must have ERTM timeouts - * exceeding the Link Supervision Timeout. The - * default Link Supervision Timeout for AMP - * controllers is 10 seconds. - * - * Class 1 devices use 0xffffffff for their - * best-effort flush timeout, so the clamping logic - * will result in a timeout that meets the above - * requirement. ERTM timeouts are 16-bit values, so - * the maximum timeout is 65.535 seconds. - */ - - /* Convert timeout to milliseconds and round */ - ertm_to =3D DIV_ROUND_UP_ULL(ertm_to, 1000); - - /* This is the recommended formula for class 2 devices - * that start ERTM timers when packets are sent to the - * controller. - */ - ertm_to =3D 3 * ertm_to + 500; - - if (ertm_to > 0xffff) - ertm_to =3D 0xffff; - - rfc->retrans_timeout =3D cpu_to_le16((u16) ertm_to); - rfc->monitor_timeout =3D rfc->retrans_timeout; - } else { - rfc->retrans_timeout =3D cpu_to_le16(L2CAP_DEFAULT_RETRANS_TO); - rfc->monitor_timeout =3D cpu_to_le16(L2CAP_DEFAULT_MONITOR_TO); - } + rfc->retrans_timeout =3D cpu_to_le16(L2CAP_DEFAULT_RETRANS_TO); + rfc->monitor_timeout =3D cpu_to_le16(L2CAP_DEFAULT_MONITOR_TO); } =20 static inline void l2cap_txwin_setup(struct l2cap_chan *chan) @@ -3623,13 +3409,7 @@ static int l2cap_parse_conf_req(struct l2cap_chan *c= han, void *data, size_t data case L2CAP_CONF_EWS: if (olen !=3D 2) break; - if (!(chan->conn->local_fixed_chan & L2CAP_FC_A2MP)) - return -ECONNREFUSED; - set_bit(FLAG_EXT_CTRL, &chan->flags); - set_bit(CONF_EWS_RECV, &chan->conf_state); - chan->tx_win_max =3D L2CAP_DEFAULT_EXT_WINDOW; - chan->remote_tx_win =3D val; - break; + return -ECONNREFUSED; =20 default: if (hint) @@ -4027,11 +3807,7 @@ void __l2cap_connect_rsp_defer(struct l2cap_chan *ch= an) rsp.dcid =3D cpu_to_le16(chan->scid); rsp.result =3D cpu_to_le16(L2CAP_CR_SUCCESS); rsp.status =3D cpu_to_le16(L2CAP_CS_NO_INFO); - - if (chan->hs_hcon) - rsp_code =3D L2CAP_CREATE_CHAN_RSP; - else - rsp_code =3D L2CAP_CONN_RSP; + rsp_code =3D L2CAP_CONN_RSP; =20 BT_DBG("chan %p rsp_code %u", chan, rsp_code); =20 @@ -4190,7 +3966,6 @@ static struct l2cap_chan *l2cap_connect(struct l2cap_= conn *conn, chan->dst_type =3D bdaddr_dst_type(conn->hcon); chan->psm =3D psm; chan->dcid =3D scid; - chan->local_amp_id =3D amp_id; =20 __l2cap_chan_add(conn, chan); =20 @@ -4516,10 +4291,7 @@ static inline int l2cap_config_req(struct l2cap_conn= *conn, /* check compatibility */ =20 /* Send rsp for BR/EDR channel */ - if (!chan->hs_hcon) - l2cap_send_efs_conf_rsp(chan, rsp, cmd->ident, flags); - else - chan->ident =3D cmd->ident; + l2cap_send_efs_conf_rsp(chan, rsp, cmd->ident, flags); } =20 unlock: @@ -4571,15 +4343,7 @@ static inline int l2cap_config_rsp(struct l2cap_conn= *conn, goto done; } =20 - if (!chan->hs_hcon) { - l2cap_send_efs_conf_rsp(chan, buf, cmd->ident, - 0); - } else { - if (l2cap_check_efs(chan)) { - amp_create_logical_link(chan); - chan->ident =3D cmd->ident; - } - } + l2cap_send_efs_conf_rsp(chan, buf, cmd->ident, 0); } goto done; =20 @@ -4750,9 +4514,6 @@ static inline int l2cap_information_req(struct l2cap_= conn *conn, if (!disable_ertm) feat_mask |=3D L2CAP_FEAT_ERTM | L2CAP_FEAT_STREAMING | L2CAP_FEAT_FCS; - if (conn->local_fixed_chan & L2CAP_FC_A2MP) - feat_mask |=3D L2CAP_FEAT_EXT_FLOW - | L2CAP_FEAT_EXT_WINDOW; =20 put_unaligned_le32(feat_mask, rsp->data); l2cap_send_cmd(conn, cmd->ident, L2CAP_INFO_RSP, sizeof(buf), @@ -4841,751 +4602,6 @@ static inline int l2cap_information_rsp(struct l2ca= p_conn *conn, return 0; } =20 -static int l2cap_create_channel_req(struct l2cap_conn *conn, - struct l2cap_cmd_hdr *cmd, - u16 cmd_len, void *data) -{ - struct l2cap_create_chan_req *req =3D data; - struct l2cap_create_chan_rsp rsp; - struct l2cap_chan *chan; - struct hci_dev *hdev; - u16 psm, scid; - - if (cmd_len !=3D sizeof(*req)) - return -EPROTO; - - if (!(conn->local_fixed_chan & L2CAP_FC_A2MP)) - return -EINVAL; - - psm =3D le16_to_cpu(req->psm); - scid =3D le16_to_cpu(req->scid); - - BT_DBG("psm 0x%2.2x, scid 0x%4.4x, amp_id %d", psm, scid, req->amp_id); - - /* For controller id 0 make BR/EDR connection */ - if (req->amp_id =3D=3D AMP_ID_BREDR) { - l2cap_connect(conn, cmd, data, L2CAP_CREATE_CHAN_RSP, - req->amp_id); - return 0; - } - - /* Validate AMP controller id */ - hdev =3D hci_dev_get(req->amp_id); - if (!hdev) - goto error; - - if (hdev->dev_type !=3D HCI_AMP || !test_bit(HCI_UP, &hdev->flags)) { - hci_dev_put(hdev); - goto error; - } - - chan =3D l2cap_connect(conn, cmd, data, L2CAP_CREATE_CHAN_RSP, - req->amp_id); - if (chan) { - struct amp_mgr *mgr =3D conn->hcon->amp_mgr; - struct hci_conn *hs_hcon; - - hs_hcon =3D hci_conn_hash_lookup_ba(hdev, AMP_LINK, - &conn->hcon->dst); - if (!hs_hcon) { - hci_dev_put(hdev); - cmd_reject_invalid_cid(conn, cmd->ident, chan->scid, - chan->dcid); - return 0; - } - - BT_DBG("mgr %p bredr_chan %p hs_hcon %p", mgr, chan, hs_hcon); - - mgr->bredr_chan =3D chan; - chan->hs_hcon =3D hs_hcon; - chan->fcs =3D L2CAP_FCS_NONE; - conn->mtu =3D hdev->block_mtu; - } - - hci_dev_put(hdev); - - return 0; - -error: - rsp.dcid =3D 0; - rsp.scid =3D cpu_to_le16(scid); - rsp.result =3D cpu_to_le16(L2CAP_CR_BAD_AMP); - rsp.status =3D cpu_to_le16(L2CAP_CS_NO_INFO); - - l2cap_send_cmd(conn, cmd->ident, L2CAP_CREATE_CHAN_RSP, - sizeof(rsp), &rsp); - - return 0; -} - -static void l2cap_send_move_chan_req(struct l2cap_chan *chan, u8 dest_amp_= id) -{ - struct l2cap_move_chan_req req; - u8 ident; - - BT_DBG("chan %p, dest_amp_id %d", chan, dest_amp_id); - - ident =3D l2cap_get_ident(chan->conn); - chan->ident =3D ident; - - req.icid =3D cpu_to_le16(chan->scid); - req.dest_amp_id =3D dest_amp_id; - - l2cap_send_cmd(chan->conn, ident, L2CAP_MOVE_CHAN_REQ, sizeof(req), - &req); - - __set_chan_timer(chan, L2CAP_MOVE_TIMEOUT); -} - -static void l2cap_send_move_chan_rsp(struct l2cap_chan *chan, u16 result) -{ - struct l2cap_move_chan_rsp rsp; - - BT_DBG("chan %p, result 0x%4.4x", chan, result); - - rsp.icid =3D cpu_to_le16(chan->dcid); - rsp.result =3D cpu_to_le16(result); - - l2cap_send_cmd(chan->conn, chan->ident, L2CAP_MOVE_CHAN_RSP, - sizeof(rsp), &rsp); -} - -static void l2cap_send_move_chan_cfm(struct l2cap_chan *chan, u16 result) -{ - struct l2cap_move_chan_cfm cfm; - - BT_DBG("chan %p, result 0x%4.4x", chan, result); - - chan->ident =3D l2cap_get_ident(chan->conn); - - cfm.icid =3D cpu_to_le16(chan->scid); - cfm.result =3D cpu_to_le16(result); - - l2cap_send_cmd(chan->conn, chan->ident, L2CAP_MOVE_CHAN_CFM, - sizeof(cfm), &cfm); - - __set_chan_timer(chan, L2CAP_MOVE_TIMEOUT); -} - -static void l2cap_send_move_chan_cfm_icid(struct l2cap_conn *conn, u16 ici= d) -{ - struct l2cap_move_chan_cfm cfm; - - BT_DBG("conn %p, icid 0x%4.4x", conn, icid); - - cfm.icid =3D cpu_to_le16(icid); - cfm.result =3D cpu_to_le16(L2CAP_MC_UNCONFIRMED); - - l2cap_send_cmd(conn, l2cap_get_ident(conn), L2CAP_MOVE_CHAN_CFM, - sizeof(cfm), &cfm); -} - -static void l2cap_send_move_chan_cfm_rsp(struct l2cap_conn *conn, u8 ident, - u16 icid) -{ - struct l2cap_move_chan_cfm_rsp rsp; - - BT_DBG("icid 0x%4.4x", icid); - - rsp.icid =3D cpu_to_le16(icid); - l2cap_send_cmd(conn, ident, L2CAP_MOVE_CHAN_CFM_RSP, sizeof(rsp), &rsp); -} - -static void __release_logical_link(struct l2cap_chan *chan) -{ - chan->hs_hchan =3D NULL; - chan->hs_hcon =3D NULL; - - /* Placeholder - release the logical link */ -} - -static void l2cap_logical_fail(struct l2cap_chan *chan) -{ - /* Logical link setup failed */ - if (chan->state !=3D BT_CONNECTED) { - /* Create channel failure, disconnect */ - l2cap_send_disconn_req(chan, ECONNRESET); - return; - } - - switch (chan->move_role) { - case L2CAP_MOVE_ROLE_RESPONDER: - l2cap_move_done(chan); - l2cap_send_move_chan_rsp(chan, L2CAP_MR_NOT_SUPP); - break; - case L2CAP_MOVE_ROLE_INITIATOR: - if (chan->move_state =3D=3D L2CAP_MOVE_WAIT_LOGICAL_COMP || - chan->move_state =3D=3D L2CAP_MOVE_WAIT_LOGICAL_CFM) { - /* Remote has only sent pending or - * success responses, clean up - */ - l2cap_move_done(chan); - } - - /* Other amp move states imply that the move - * has already aborted - */ - l2cap_send_move_chan_cfm(chan, L2CAP_MC_UNCONFIRMED); - break; - } -} - -static void l2cap_logical_finish_create(struct l2cap_chan *chan, - struct hci_chan *hchan) -{ - struct l2cap_conf_rsp rsp; - - chan->hs_hchan =3D hchan; - chan->hs_hcon->l2cap_data =3D chan->conn; - - l2cap_send_efs_conf_rsp(chan, &rsp, chan->ident, 0); - - if (test_bit(CONF_INPUT_DONE, &chan->conf_state)) { - int err; - - set_default_fcs(chan); - - err =3D l2cap_ertm_init(chan); - if (err < 0) - l2cap_send_disconn_req(chan, -err); - else - l2cap_chan_ready(chan); - } -} - -static void l2cap_logical_finish_move(struct l2cap_chan *chan, - struct hci_chan *hchan) -{ - chan->hs_hcon =3D hchan->conn; - chan->hs_hcon->l2cap_data =3D chan->conn; - - BT_DBG("move_state %d", chan->move_state); - - switch (chan->move_state) { - case L2CAP_MOVE_WAIT_LOGICAL_COMP: - /* Move confirm will be sent after a success - * response is received - */ - chan->move_state =3D L2CAP_MOVE_WAIT_RSP_SUCCESS; - break; - case L2CAP_MOVE_WAIT_LOGICAL_CFM: - if (test_bit(CONN_LOCAL_BUSY, &chan->conn_state)) { - chan->move_state =3D L2CAP_MOVE_WAIT_LOCAL_BUSY; - } else if (chan->move_role =3D=3D L2CAP_MOVE_ROLE_INITIATOR) { - chan->move_state =3D L2CAP_MOVE_WAIT_CONFIRM_RSP; - l2cap_send_move_chan_cfm(chan, L2CAP_MC_CONFIRMED); - } else if (chan->move_role =3D=3D L2CAP_MOVE_ROLE_RESPONDER) { - chan->move_state =3D L2CAP_MOVE_WAIT_CONFIRM; - l2cap_send_move_chan_rsp(chan, L2CAP_MR_SUCCESS); - } - break; - default: - /* Move was not in expected state, free the channel */ - __release_logical_link(chan); - - chan->move_state =3D L2CAP_MOVE_STABLE; - } -} - -/* Call with chan locked */ -void l2cap_logical_cfm(struct l2cap_chan *chan, struct hci_chan *hchan, - u8 status) -{ - BT_DBG("chan %p, hchan %p, status %d", chan, hchan, status); - - if (status) { - l2cap_logical_fail(chan); - __release_logical_link(chan); - return; - } - - if (chan->state !=3D BT_CONNECTED) { - /* Ignore logical link if channel is on BR/EDR */ - if (chan->local_amp_id !=3D AMP_ID_BREDR) - l2cap_logical_finish_create(chan, hchan); - } else { - l2cap_logical_finish_move(chan, hchan); - } -} - -void l2cap_move_start(struct l2cap_chan *chan) -{ - BT_DBG("chan %p", chan); - - if (chan->local_amp_id =3D=3D AMP_ID_BREDR) { - if (chan->chan_policy !=3D BT_CHANNEL_POLICY_AMP_PREFERRED) - return; - chan->move_role =3D L2CAP_MOVE_ROLE_INITIATOR; - chan->move_state =3D L2CAP_MOVE_WAIT_PREPARE; - /* Placeholder - start physical link setup */ - } else { - chan->move_role =3D L2CAP_MOVE_ROLE_INITIATOR; - chan->move_state =3D L2CAP_MOVE_WAIT_RSP_SUCCESS; - chan->move_id =3D 0; - l2cap_move_setup(chan); - l2cap_send_move_chan_req(chan, 0); - } -} - -static void l2cap_do_create(struct l2cap_chan *chan, int result, - u8 local_amp_id, u8 remote_amp_id) -{ - BT_DBG("chan %p state %s %u -> %u", chan, state_to_string(chan->state), - local_amp_id, remote_amp_id); - - chan->fcs =3D L2CAP_FCS_NONE; - - /* Outgoing channel on AMP */ - if (chan->state =3D=3D BT_CONNECT) { - if (result =3D=3D L2CAP_CR_SUCCESS) { - chan->local_amp_id =3D local_amp_id; - l2cap_send_create_chan_req(chan, remote_amp_id); - } else { - /* Revert to BR/EDR connect */ - l2cap_send_conn_req(chan); - } - - return; - } - - /* Incoming channel on AMP */ - if (__l2cap_no_conn_pending(chan)) { - struct l2cap_conn_rsp rsp; - char buf[128]; - rsp.scid =3D cpu_to_le16(chan->dcid); - rsp.dcid =3D cpu_to_le16(chan->scid); - - if (result =3D=3D L2CAP_CR_SUCCESS) { - /* Send successful response */ - rsp.result =3D cpu_to_le16(L2CAP_CR_SUCCESS); - rsp.status =3D cpu_to_le16(L2CAP_CS_NO_INFO); - } else { - /* Send negative response */ - rsp.result =3D cpu_to_le16(L2CAP_CR_NO_MEM); - rsp.status =3D cpu_to_le16(L2CAP_CS_NO_INFO); - } - - l2cap_send_cmd(chan->conn, chan->ident, L2CAP_CREATE_CHAN_RSP, - sizeof(rsp), &rsp); - - if (result =3D=3D L2CAP_CR_SUCCESS) { - l2cap_state_change(chan, BT_CONFIG); - set_bit(CONF_REQ_SENT, &chan->conf_state); - l2cap_send_cmd(chan->conn, l2cap_get_ident(chan->conn), - L2CAP_CONF_REQ, - l2cap_build_conf_req(chan, buf, sizeof(buf)), buf); - chan->num_conf_req++; - } - } -} - -static void l2cap_do_move_initiate(struct l2cap_chan *chan, u8 local_amp_i= d, - u8 remote_amp_id) -{ - l2cap_move_setup(chan); - chan->move_id =3D local_amp_id; - chan->move_state =3D L2CAP_MOVE_WAIT_RSP; - - l2cap_send_move_chan_req(chan, remote_amp_id); -} - -static void l2cap_do_move_respond(struct l2cap_chan *chan, int result) -{ - struct hci_chan *hchan =3D NULL; - - /* Placeholder - get hci_chan for logical link */ - - if (hchan) { - if (hchan->state =3D=3D BT_CONNECTED) { - /* Logical link is ready to go */ - chan->hs_hcon =3D hchan->conn; - chan->hs_hcon->l2cap_data =3D chan->conn; - chan->move_state =3D L2CAP_MOVE_WAIT_CONFIRM; - l2cap_send_move_chan_rsp(chan, L2CAP_MR_SUCCESS); - - l2cap_logical_cfm(chan, hchan, L2CAP_MR_SUCCESS); - } else { - /* Wait for logical link to be ready */ - chan->move_state =3D L2CAP_MOVE_WAIT_LOGICAL_CFM; - } - } else { - /* Logical link not available */ - l2cap_send_move_chan_rsp(chan, L2CAP_MR_NOT_ALLOWED); - } -} - -static void l2cap_do_move_cancel(struct l2cap_chan *chan, int result) -{ - if (chan->move_role =3D=3D L2CAP_MOVE_ROLE_RESPONDER) { - u8 rsp_result; - if (result =3D=3D -EINVAL) - rsp_result =3D L2CAP_MR_BAD_ID; - else - rsp_result =3D L2CAP_MR_NOT_ALLOWED; - - l2cap_send_move_chan_rsp(chan, rsp_result); - } - - chan->move_role =3D L2CAP_MOVE_ROLE_NONE; - chan->move_state =3D L2CAP_MOVE_STABLE; - - /* Restart data transmission */ - l2cap_ertm_send(chan); -} - -/* Invoke with locked chan */ -void __l2cap_physical_cfm(struct l2cap_chan *chan, int result) -{ - u8 local_amp_id =3D chan->local_amp_id; - u8 remote_amp_id =3D chan->remote_amp_id; - - BT_DBG("chan %p, result %d, local_amp_id %d, remote_amp_id %d", - chan, result, local_amp_id, remote_amp_id); - - if (chan->state =3D=3D BT_DISCONN || chan->state =3D=3D BT_CLOSED) - return; - - if (chan->state !=3D BT_CONNECTED) { - l2cap_do_create(chan, result, local_amp_id, remote_amp_id); - } else if (result !=3D L2CAP_MR_SUCCESS) { - l2cap_do_move_cancel(chan, result); - } else { - switch (chan->move_role) { - case L2CAP_MOVE_ROLE_INITIATOR: - l2cap_do_move_initiate(chan, local_amp_id, - remote_amp_id); - break; - case L2CAP_MOVE_ROLE_RESPONDER: - l2cap_do_move_respond(chan, result); - break; - default: - l2cap_do_move_cancel(chan, result); - break; - } - } -} - -static inline int l2cap_move_channel_req(struct l2cap_conn *conn, - struct l2cap_cmd_hdr *cmd, - u16 cmd_len, void *data) -{ - struct l2cap_move_chan_req *req =3D data; - struct l2cap_move_chan_rsp rsp; - struct l2cap_chan *chan; - u16 icid =3D 0; - u16 result =3D L2CAP_MR_NOT_ALLOWED; - - if (cmd_len !=3D sizeof(*req)) - return -EPROTO; - - icid =3D le16_to_cpu(req->icid); - - BT_DBG("icid 0x%4.4x, dest_amp_id %d", icid, req->dest_amp_id); - - if (!(conn->local_fixed_chan & L2CAP_FC_A2MP)) - return -EINVAL; - - chan =3D l2cap_get_chan_by_dcid(conn, icid); - if (!chan) { - rsp.icid =3D cpu_to_le16(icid); - rsp.result =3D cpu_to_le16(L2CAP_MR_NOT_ALLOWED); - l2cap_send_cmd(conn, cmd->ident, L2CAP_MOVE_CHAN_RSP, - sizeof(rsp), &rsp); - return 0; - } - - chan->ident =3D cmd->ident; - - if (chan->scid < L2CAP_CID_DYN_START || - chan->chan_policy =3D=3D BT_CHANNEL_POLICY_BREDR_ONLY || - (chan->mode !=3D L2CAP_MODE_ERTM && - chan->mode !=3D L2CAP_MODE_STREAMING)) { - result =3D L2CAP_MR_NOT_ALLOWED; - goto send_move_response; - } - - if (chan->local_amp_id =3D=3D req->dest_amp_id) { - result =3D L2CAP_MR_SAME_ID; - goto send_move_response; - } - - if (req->dest_amp_id !=3D AMP_ID_BREDR) { - struct hci_dev *hdev; - hdev =3D hci_dev_get(req->dest_amp_id); - if (!hdev || hdev->dev_type !=3D HCI_AMP || - !test_bit(HCI_UP, &hdev->flags)) { - if (hdev) - hci_dev_put(hdev); - - result =3D L2CAP_MR_BAD_ID; - goto send_move_response; - } - hci_dev_put(hdev); - } - - /* Detect a move collision. Only send a collision response - * if this side has "lost", otherwise proceed with the move. - * The winner has the larger bd_addr. - */ - if ((__chan_is_moving(chan) || - chan->move_role !=3D L2CAP_MOVE_ROLE_NONE) && - bacmp(&conn->hcon->src, &conn->hcon->dst) > 0) { - result =3D L2CAP_MR_COLLISION; - goto send_move_response; - } - - chan->move_role =3D L2CAP_MOVE_ROLE_RESPONDER; - l2cap_move_setup(chan); - chan->move_id =3D req->dest_amp_id; - - if (req->dest_amp_id =3D=3D AMP_ID_BREDR) { - /* Moving to BR/EDR */ - if (test_bit(CONN_LOCAL_BUSY, &chan->conn_state)) { - chan->move_state =3D L2CAP_MOVE_WAIT_LOCAL_BUSY; - result =3D L2CAP_MR_PEND; - } else { - chan->move_state =3D L2CAP_MOVE_WAIT_CONFIRM; - result =3D L2CAP_MR_SUCCESS; - } - } else { - chan->move_state =3D L2CAP_MOVE_WAIT_PREPARE; - /* Placeholder - uncomment when amp functions are available */ - /*amp_accept_physical(chan, req->dest_amp_id);*/ - result =3D L2CAP_MR_PEND; - } - -send_move_response: - l2cap_send_move_chan_rsp(chan, result); - - l2cap_chan_unlock(chan); - l2cap_chan_put(chan); - - return 0; -} - -static void l2cap_move_continue(struct l2cap_conn *conn, u16 icid, u16 res= ult) -{ - struct l2cap_chan *chan; - struct hci_chan *hchan =3D NULL; - - chan =3D l2cap_get_chan_by_scid(conn, icid); - if (!chan) { - l2cap_send_move_chan_cfm_icid(conn, icid); - return; - } - - __clear_chan_timer(chan); - if (result =3D=3D L2CAP_MR_PEND) - __set_chan_timer(chan, L2CAP_MOVE_ERTX_TIMEOUT); - - switch (chan->move_state) { - case L2CAP_MOVE_WAIT_LOGICAL_COMP: - /* Move confirm will be sent when logical link - * is complete. - */ - chan->move_state =3D L2CAP_MOVE_WAIT_LOGICAL_CFM; - break; - case L2CAP_MOVE_WAIT_RSP_SUCCESS: - if (result =3D=3D L2CAP_MR_PEND) { - break; - } else if (test_bit(CONN_LOCAL_BUSY, - &chan->conn_state)) { - chan->move_state =3D L2CAP_MOVE_WAIT_LOCAL_BUSY; - } else { - /* Logical link is up or moving to BR/EDR, - * proceed with move - */ - chan->move_state =3D L2CAP_MOVE_WAIT_CONFIRM_RSP; - l2cap_send_move_chan_cfm(chan, L2CAP_MC_CONFIRMED); - } - break; - case L2CAP_MOVE_WAIT_RSP: - /* Moving to AMP */ - if (result =3D=3D L2CAP_MR_SUCCESS) { - /* Remote is ready, send confirm immediately - * after logical link is ready - */ - chan->move_state =3D L2CAP_MOVE_WAIT_LOGICAL_CFM; - } else { - /* Both logical link and move success - * are required to confirm - */ - chan->move_state =3D L2CAP_MOVE_WAIT_LOGICAL_COMP; - } - - /* Placeholder - get hci_chan for logical link */ - if (!hchan) { - /* Logical link not available */ - l2cap_send_move_chan_cfm(chan, L2CAP_MC_UNCONFIRMED); - break; - } - - /* If the logical link is not yet connected, do not - * send confirmation. - */ - if (hchan->state !=3D BT_CONNECTED) - break; - - /* Logical link is already ready to go */ - - chan->hs_hcon =3D hchan->conn; - chan->hs_hcon->l2cap_data =3D chan->conn; - - if (result =3D=3D L2CAP_MR_SUCCESS) { - /* Can confirm now */ - l2cap_send_move_chan_cfm(chan, L2CAP_MC_CONFIRMED); - } else { - /* Now only need move success - * to confirm - */ - chan->move_state =3D L2CAP_MOVE_WAIT_RSP_SUCCESS; - } - - l2cap_logical_cfm(chan, hchan, L2CAP_MR_SUCCESS); - break; - default: - /* Any other amp move state means the move failed. */ - chan->move_id =3D chan->local_amp_id; - l2cap_move_done(chan); - l2cap_send_move_chan_cfm(chan, L2CAP_MC_UNCONFIRMED); - } - - l2cap_chan_unlock(chan); - l2cap_chan_put(chan); -} - -static void l2cap_move_fail(struct l2cap_conn *conn, u8 ident, u16 icid, - u16 result) -{ - struct l2cap_chan *chan; - - chan =3D l2cap_get_chan_by_ident(conn, ident); - if (!chan) { - /* Could not locate channel, icid is best guess */ - l2cap_send_move_chan_cfm_icid(conn, icid); - return; - } - - __clear_chan_timer(chan); - - if (chan->move_role =3D=3D L2CAP_MOVE_ROLE_INITIATOR) { - if (result =3D=3D L2CAP_MR_COLLISION) { - chan->move_role =3D L2CAP_MOVE_ROLE_RESPONDER; - } else { - /* Cleanup - cancel move */ - chan->move_id =3D chan->local_amp_id; - l2cap_move_done(chan); - } - } - - l2cap_send_move_chan_cfm(chan, L2CAP_MC_UNCONFIRMED); - - l2cap_chan_unlock(chan); - l2cap_chan_put(chan); -} - -static int l2cap_move_channel_rsp(struct l2cap_conn *conn, - struct l2cap_cmd_hdr *cmd, - u16 cmd_len, void *data) -{ - struct l2cap_move_chan_rsp *rsp =3D data; - u16 icid, result; - - if (cmd_len !=3D sizeof(*rsp)) - return -EPROTO; - - icid =3D le16_to_cpu(rsp->icid); - result =3D le16_to_cpu(rsp->result); - - BT_DBG("icid 0x%4.4x, result 0x%4.4x", icid, result); - - if (result =3D=3D L2CAP_MR_SUCCESS || result =3D=3D L2CAP_MR_PEND) - l2cap_move_continue(conn, icid, result); - else - l2cap_move_fail(conn, cmd->ident, icid, result); - - return 0; -} - -static int l2cap_move_channel_confirm(struct l2cap_conn *conn, - struct l2cap_cmd_hdr *cmd, - u16 cmd_len, void *data) -{ - struct l2cap_move_chan_cfm *cfm =3D data; - struct l2cap_chan *chan; - u16 icid, result; - - if (cmd_len !=3D sizeof(*cfm)) - return -EPROTO; - - icid =3D le16_to_cpu(cfm->icid); - result =3D le16_to_cpu(cfm->result); - - BT_DBG("icid 0x%4.4x, result 0x%4.4x", icid, result); - - chan =3D l2cap_get_chan_by_dcid(conn, icid); - if (!chan) { - /* Spec requires a response even if the icid was not found */ - l2cap_send_move_chan_cfm_rsp(conn, cmd->ident, icid); - return 0; - } - - if (chan->move_state =3D=3D L2CAP_MOVE_WAIT_CONFIRM) { - if (result =3D=3D L2CAP_MC_CONFIRMED) { - chan->local_amp_id =3D chan->move_id; - if (chan->local_amp_id =3D=3D AMP_ID_BREDR) - __release_logical_link(chan); - } else { - chan->move_id =3D chan->local_amp_id; - } - - l2cap_move_done(chan); - } - - l2cap_send_move_chan_cfm_rsp(conn, cmd->ident, icid); - - l2cap_chan_unlock(chan); - l2cap_chan_put(chan); - - return 0; -} - -static inline int l2cap_move_channel_confirm_rsp(struct l2cap_conn *conn, - struct l2cap_cmd_hdr *cmd, - u16 cmd_len, void *data) -{ - struct l2cap_move_chan_cfm_rsp *rsp =3D data; - struct l2cap_chan *chan; - u16 icid; - - if (cmd_len !=3D sizeof(*rsp)) - return -EPROTO; - - icid =3D le16_to_cpu(rsp->icid); - - BT_DBG("icid 0x%4.4x", icid); - - chan =3D l2cap_get_chan_by_scid(conn, icid); - if (!chan) - return 0; - - __clear_chan_timer(chan); - - if (chan->move_state =3D=3D L2CAP_MOVE_WAIT_CONFIRM_RSP) { - chan->local_amp_id =3D chan->move_id; - - if (chan->local_amp_id =3D=3D AMP_ID_BREDR && chan->hs_hchan) - __release_logical_link(chan); - - l2cap_move_done(chan); - } - - l2cap_chan_unlock(chan); - l2cap_chan_put(chan); - - return 0; -} - static inline int l2cap_conn_param_update_req(struct l2cap_conn *conn, struct l2cap_cmd_hdr *cmd, u16 cmd_len, u8 *data) @@ -5745,7 +4761,6 @@ static inline int l2cap_bredr_sig_cmd(struct l2cap_co= nn *conn, break; =20 case L2CAP_CONN_RSP: - case L2CAP_CREATE_CHAN_RSP: l2cap_connect_create_rsp(conn, cmd, cmd_len, data); break; =20 @@ -5780,26 +4795,6 @@ static inline int l2cap_bredr_sig_cmd(struct l2cap_c= onn *conn, l2cap_information_rsp(conn, cmd, cmd_len, data); break; =20 - case L2CAP_CREATE_CHAN_REQ: - err =3D l2cap_create_channel_req(conn, cmd, cmd_len, data); - break; - - case L2CAP_MOVE_CHAN_REQ: - err =3D l2cap_move_channel_req(conn, cmd, cmd_len, data); - break; - - case L2CAP_MOVE_CHAN_RSP: - l2cap_move_channel_rsp(conn, cmd, cmd_len, data); - break; - - case L2CAP_MOVE_CHAN_CFM: - err =3D l2cap_move_channel_confirm(conn, cmd, cmd_len, data); - break; - - case L2CAP_MOVE_CHAN_CFM_RSP: - l2cap_move_channel_confirm_rsp(conn, cmd, cmd_len, data); - break; - default: BT_ERR("Unknown BR/EDR signaling command 0x%2.2x", cmd->code); err =3D -EINVAL; @@ -7051,8 +6046,8 @@ static int l2cap_rx_state_recv(struct l2cap_chan *cha= n, if (control->final) { clear_bit(CONN_REMOTE_BUSY, &chan->conn_state); =20 - if (!test_and_clear_bit(CONN_REJ_ACT, &chan->conn_state) && - !__chan_is_moving(chan)) { + if (!test_and_clear_bit(CONN_REJ_ACT, + &chan->conn_state)) { control->final =3D 0; l2cap_retransmit_all(chan, control); } @@ -7245,11 +6240,7 @@ static int l2cap_finish_move(struct l2cap_chan *chan) BT_DBG("chan %p", chan); =20 chan->rx_state =3D L2CAP_RX_STATE_RECV; - - if (chan->hs_hcon) - chan->conn->mtu =3D chan->hs_hcon->hdev->block_mtu; - else - chan->conn->mtu =3D chan->conn->hcon->hdev->acl_mtu; + chan->conn->mtu =3D chan->conn->hcon->hdev->acl_mtu; =20 return l2cap_resegment(chan); } @@ -7316,11 +6307,7 @@ static int l2cap_rx_state_wait_f(struct l2cap_chan *= chan, */ chan->next_tx_seq =3D control->reqseq; chan->unacked_frames =3D 0; - - if (chan->hs_hcon) - chan->conn->mtu =3D chan->hs_hcon->hdev->block_mtu; - else - chan->conn->mtu =3D chan->conn->hcon->hdev->acl_mtu; + chan->conn->mtu =3D chan->conn->hcon->hdev->acl_mtu; =20 err =3D l2cap_resegment(chan); =20 @@ -7672,21 +6659,10 @@ static void l2cap_data_channel(struct l2cap_conn *c= onn, u16 cid, =20 chan =3D l2cap_get_chan_by_scid(conn, cid); if (!chan) { - if (cid =3D=3D L2CAP_CID_A2MP) { - chan =3D a2mp_channel_create(conn, skb); - if (!chan) { - kfree_skb(skb); - return; - } - - l2cap_chan_hold(chan); - l2cap_chan_lock(chan); - } else { - BT_DBG("unknown cid 0x%4.4x", cid); - /* Drop packet and return */ - kfree_skb(skb); - return; - } + BT_DBG("unknown cid 0x%4.4x", cid); + /* Drop packet and return */ + kfree_skb(skb); + return; } =20 BT_DBG("chan %p, len %d", chan, skb->len); @@ -7887,10 +6863,6 @@ static struct l2cap_conn *l2cap_conn_add(struct hci_= conn *hcon) =20 conn->local_fixed_chan =3D L2CAP_FC_SIG_BREDR | L2CAP_FC_CONNLESS; =20 - if (hcon->type =3D=3D ACL_LINK && - hci_dev_test_flag(hcon->hdev, HCI_HS_ENABLED)) - conn->local_fixed_chan |=3D L2CAP_FC_A2MP; - if (hci_dev_test_flag(hcon->hdev, HCI_LE_ENABLED) && (bredr_sc_enabled(hcon->hdev) || hci_dev_test_flag(hcon->hdev, HCI_FORCE_BREDR_SMP))) @@ -8355,11 +7327,6 @@ static void l2cap_security_cfm(struct hci_conn *hcon= , u8 status, u8 encrypt) BT_DBG("chan %p scid 0x%4.4x state %s", chan, chan->scid, state_to_string(chan->state)); =20 - if (chan->scid =3D=3D L2CAP_CID_A2MP) { - l2cap_chan_unlock(chan); - continue; - } - if (!status && encrypt) chan->sec_level =3D hcon->sec_level; =20 diff --git a/net/bluetooth/l2cap_sock.c b/net/bluetooth/l2cap_sock.c index 3bdfc3f1e73d0..aac00f103f91f 100644 --- a/net/bluetooth/l2cap_sock.c +++ b/net/bluetooth/l2cap_sock.c @@ -1027,23 +1027,7 @@ static int l2cap_sock_setsockopt(struct socket *sock= , int level, int optname, break; } =20 - if (opt > BT_CHANNEL_POLICY_AMP_PREFERRED) { - err =3D -EINVAL; - break; - } - - if (chan->mode !=3D L2CAP_MODE_ERTM && - chan->mode !=3D L2CAP_MODE_STREAMING) { - err =3D -EOPNOTSUPP; - break; - } - - chan->chan_policy =3D (u8) opt; - - if (sk->sk_state =3D=3D BT_CONNECTED && - chan->move_role =3D=3D L2CAP_MOVE_ROLE_NONE) - l2cap_move_start(chan); - + err =3D -EOPNOTSUPP; break; =20 case BT_SNDMTU: diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c index 324f06e2e9ddb..2186ac57981e5 100644 --- a/net/bluetooth/mgmt.c +++ b/net/bluetooth/mgmt.c @@ -835,8 +835,6 @@ static u32 get_supported_settings(struct hci_dev *hdev) =20 if (lmp_ssp_capable(hdev)) { settings |=3D MGMT_SETTING_SSP; - if (IS_ENABLED(CONFIG_BT_HS)) - settings |=3D MGMT_SETTING_HS; } =20 if (lmp_sc_capable(hdev)) @@ -901,9 +899,6 @@ static u32 get_current_settings(struct hci_dev *hdev) if (hci_dev_test_flag(hdev, HCI_SSP_ENABLED)) settings |=3D MGMT_SETTING_SSP; =20 - if (hci_dev_test_flag(hdev, HCI_HS_ENABLED)) - settings |=3D MGMT_SETTING_HS; - if (hci_dev_test_flag(hdev, HCI_ADVERTISING)) settings |=3D MGMT_SETTING_ADVERTISING; =20 @@ -1930,7 +1925,6 @@ static void set_ssp_complete(struct hci_dev *hdev, vo= id *data, int err) =20 if (enable && hci_dev_test_and_clear_flag(hdev, HCI_SSP_ENABLED)) { - hci_dev_clear_flag(hdev, HCI_HS_ENABLED); new_settings(hdev, NULL); } =20 @@ -1943,12 +1937,6 @@ static void set_ssp_complete(struct hci_dev *hdev, v= oid *data, int err) changed =3D !hci_dev_test_and_set_flag(hdev, HCI_SSP_ENABLED); } else { changed =3D hci_dev_test_and_clear_flag(hdev, HCI_SSP_ENABLED); - - if (!changed) - changed =3D hci_dev_test_and_clear_flag(hdev, - HCI_HS_ENABLED); - else - hci_dev_clear_flag(hdev, HCI_HS_ENABLED); } =20 mgmt_pending_foreach(MGMT_OP_SET_SSP, hdev, settings_rsp, &match); @@ -2012,11 +2000,6 @@ static int set_ssp(struct sock *sk, struct hci_dev *= hdev, void *data, u16 len) } else { changed =3D hci_dev_test_and_clear_flag(hdev, HCI_SSP_ENABLED); - if (!changed) - changed =3D hci_dev_test_and_clear_flag(hdev, - HCI_HS_ENABLED); - else - hci_dev_clear_flag(hdev, HCI_HS_ENABLED); } =20 err =3D send_settings_rsp(sk, MGMT_OP_SET_SSP, hdev); @@ -2062,63 +2045,10 @@ static int set_ssp(struct sock *sk, struct hci_dev = *hdev, void *data, u16 len) =20 static int set_hs(struct sock *sk, struct hci_dev *hdev, void *data, u16 l= en) { - struct mgmt_mode *cp =3D data; - bool changed; - u8 status; - int err; - bt_dev_dbg(hdev, "sock %p", sk); =20 - if (!IS_ENABLED(CONFIG_BT_HS)) - return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_HS, + return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_HS, MGMT_STATUS_NOT_SUPPORTED); - - status =3D mgmt_bredr_support(hdev); - if (status) - return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_HS, status); - - if (!lmp_ssp_capable(hdev)) - return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_HS, - MGMT_STATUS_NOT_SUPPORTED); - - if (!hci_dev_test_flag(hdev, HCI_SSP_ENABLED)) - return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_HS, - MGMT_STATUS_REJECTED); - - if (cp->val !=3D 0x00 && cp->val !=3D 0x01) - return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_HS, - MGMT_STATUS_INVALID_PARAMS); - - hci_dev_lock(hdev); - - if (pending_find(MGMT_OP_SET_SSP, hdev)) { - err =3D mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_HS, - MGMT_STATUS_BUSY); - goto unlock; - } - - if (cp->val) { - changed =3D !hci_dev_test_and_set_flag(hdev, HCI_HS_ENABLED); - } else { - if (hdev_is_powered(hdev)) { - err =3D mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_HS, - MGMT_STATUS_REJECTED); - goto unlock; - } - - changed =3D hci_dev_test_and_clear_flag(hdev, HCI_HS_ENABLED); - } - - err =3D send_settings_rsp(sk, MGMT_OP_SET_HS, hdev); - if (err < 0) - goto unlock; - - if (changed) - err =3D new_settings(hdev, sk); - -unlock: - hci_dev_unlock(hdev); - return err; } =20 static void set_le_complete(struct hci_dev *hdev, void *data, int err) @@ -6766,7 +6696,6 @@ static int set_bredr(struct sock *sk, struct hci_dev = *hdev, void *data, u16 len) hci_dev_clear_flag(hdev, HCI_SSP_ENABLED); hci_dev_clear_flag(hdev, HCI_LINK_SECURITY); hci_dev_clear_flag(hdev, HCI_FAST_CONNECTABLE); - hci_dev_clear_flag(hdev, HCI_HS_ENABLED); } =20 hci_dev_change_flag(hdev, HCI_BREDR_ENABLED); --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 69AEC209E04; Sun, 24 Mar 2024 23:06: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=1711321575; cv=none; b=F7YILjg5YQliYzm5AUiCq3PppjrLhB8v5ngAVshT5Xch6ddnKjbsr5vlMXuO5Bfzthc761GWjWl81WpqwAi8fL3R9iQ5ehuUfqf8DLZO70xQL3rGpnsL/Qq6tFigCxjpLgVNma5n25MNTOuBMUewcxLYi3ITJeSK6hN5CCQcAdg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321575; c=relaxed/simple; bh=l0RDBMO4ElUNEm1P/jMYSzC4AlfhT61QfEjifNxkOU8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=jSVyGKz/KqAsIegRIlTvEWuSXljtwC5YpM2/cm/CTglfJJtDuThc5G9Bo9a//9BCA6+R67n1bFtVKEHlqv+N1KDUyzMInG/6bjbRwjDT3yQww4rCrafVAAMDetqC8VceRwGv995ar5fkWFQqhhYTK4l32ylxfzmwlnY/hCaUymE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=s3SXWZSx; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="s3SXWZSx" Received: by smtp.kernel.org (Postfix) with ESMTPSA id BF951C43390; Sun, 24 Mar 2024 23:06:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321574; bh=l0RDBMO4ElUNEm1P/jMYSzC4AlfhT61QfEjifNxkOU8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=s3SXWZSx70yFrU7GbTThsz5ygAkjyoGH9/Y5xXyTXEbemtXb455MxW1UTHt9wwlKZ fGqNjAcw2Rf8sZ5E80ne/GWo3U8HRhnULHFZU5xrJhw76W2zEzSV0bjimcTtE3m59M W7AAQiZu074ZFx6tbJT6bKZoJL2DEtCKoD6fqhUnuBaVEl8AY630yAJGuY1PTRZ1Me UjS43HdSxvZfszOat/O/KngvTDgcCljWSoK3sbwzJVdd9rCxCL3COxvAGQQWdAVPhN tRR0VEc7FSLB+d3tqsm0tpARZkTUQs1amKWU35pOkBHUMCAkszpMfwMVJBLDF6C5Sh xe/NhVhMGd/VQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Luiz Augusto von Dentz , Sasha Levin Subject: [PATCH 6.6 302/638] Bluetooth: hci_event: Fix not indicating new connection for BIG Sync Date: Sun, 24 Mar 2024 18:55:39 -0400 Message-ID: <20240324230116.1348576-303-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 eeda1bf97bb500a901f7a9ee5615bad2160f2378 ] BIG Sync (aka. Broadcast sink) requires to inform that the device is connected when a data path is active otherwise userspace could attempt to free resources allocated to the device object while scanning. Fixes: 1d11d70d1f6b ("Bluetooth: ISO: Pass BIG encryption info through QoS") Signed-off-by: Luiz Augusto von Dentz Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- net/bluetooth/hci_event.c | 21 ++++++++++++++------- net/bluetooth/mgmt.c | 4 ++++ 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c index dae5fff7a32b3..2bfc852283394 100644 --- a/net/bluetooth/hci_event.c +++ b/net/bluetooth/hci_event.c @@ -2524,9 +2524,7 @@ static void hci_check_pending_name(struct hci_dev *hd= ev, struct hci_conn *conn, * Only those in BT_CONFIG or BT_CONNECTED states can be * considered connected. */ - if (conn && - (conn->state =3D=3D BT_CONFIG || conn->state =3D=3D BT_CONNECTED) && - !test_and_set_bit(HCI_CONN_MGMT_CONNECTED, &conn->flags)) + if (conn && (conn->state =3D=3D BT_CONFIG || conn->state =3D=3D BT_CONNEC= TED)) mgmt_device_connected(hdev, conn, name, name_len); =20 if (discov->state =3D=3D DISCOVERY_STOPPED) @@ -3758,8 +3756,9 @@ static void hci_remote_features_evt(struct hci_dev *h= dev, void *data, bacpy(&cp.bdaddr, &conn->dst); cp.pscan_rep_mode =3D 0x02; hci_send_cmd(hdev, HCI_OP_REMOTE_NAME_REQ, sizeof(cp), &cp); - } else if (!test_and_set_bit(HCI_CONN_MGMT_CONNECTED, &conn->flags)) + } else { mgmt_device_connected(hdev, conn, NULL, 0); + } =20 if (!hci_outgoing_auth_needed(hdev, conn)) { conn->state =3D BT_CONNECTED; @@ -3932,6 +3931,11 @@ static u8 hci_cc_le_setup_iso_path(struct hci_dev *h= dev, void *data, * last. */ hci_connect_cfm(conn, rp->status); + + /* Notify device connected in case it is a BIG Sync */ + if (!rp->status && test_bit(HCI_CONN_BIG_SYNC, &conn->flags)) + mgmt_device_connected(hdev, conn, NULL, 0); + break; } =20 @@ -5006,8 +5010,9 @@ static void hci_remote_ext_features_evt(struct hci_de= v *hdev, void *data, bacpy(&cp.bdaddr, &conn->dst); cp.pscan_rep_mode =3D 0x02; hci_send_cmd(hdev, HCI_OP_REMOTE_NAME_REQ, sizeof(cp), &cp); - } else if (!test_and_set_bit(HCI_CONN_MGMT_CONNECTED, &conn->flags)) + } else { mgmt_device_connected(hdev, conn, NULL, 0); + } =20 if (!hci_outgoing_auth_needed(hdev, conn)) { conn->state =3D BT_CONNECTED; @@ -5980,8 +5985,7 @@ static void le_conn_complete_evt(struct hci_dev *hdev= , u8 status, goto unlock; } =20 - if (!test_and_set_bit(HCI_CONN_MGMT_CONNECTED, &conn->flags)) - mgmt_device_connected(hdev, conn, NULL, 0); + mgmt_device_connected(hdev, conn, NULL, 0); =20 conn->sec_level =3D BT_SECURITY_LOW; conn->state =3D BT_CONFIG; @@ -7220,6 +7224,9 @@ static void hci_le_big_info_adv_report_evt(struct hci= _dev *hdev, void *data, /* Notify iso layer */ hci_connect_cfm(pa_sync, 0x00); =20 + /* Notify MGMT layer */ + mgmt_device_connected(hdev, pa_sync, NULL, 0); + unlock: hci_dev_unlock(hdev); } diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c index 2186ac57981e5..b21b981f15a38 100644 --- a/net/bluetooth/mgmt.c +++ b/net/bluetooth/mgmt.c @@ -3118,6 +3118,7 @@ static int disconnect(struct sock *sk, struct hci_dev= *hdev, void *data, static u8 link_to_bdaddr(u8 link_type, u8 addr_type) { switch (link_type) { + case ISO_LINK: case LE_LINK: switch (addr_type) { case ADDR_LE_DEV_PUBLIC: @@ -9610,6 +9611,9 @@ void mgmt_device_connected(struct hci_dev *hdev, stru= ct hci_conn *conn, u16 eir_len =3D 0; u32 flags =3D 0; =20 + if (test_and_set_bit(HCI_CONN_MGMT_CONNECTED, &conn->flags)) + return; + /* allocate buff for LE or BR/EDR adv */ if (conn->le_adv_data_len > 0) skb =3D mgmt_alloc_skb(hdev, MGMT_EV_DEVICE_CONNECTED, --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9A456209E09; Sun, 24 Mar 2024 23:06: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=1711321576; cv=none; b=LpHQcUsxaHw2OLfxaM1RJ5fomloTlqHWbLfxh7d+NFvu/kGbbcFQhU7YH5Cw91SY2Uu2uHDwe/93SxMmPDYc9q40antpcLxpGzOxwSsvvjQ/i1HRJUzW/j/2DkVHsmkMrMPhUbQ0+sxeNDYljRnL6uydvudEmhiqLyEWLZ/AKeU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321576; c=relaxed/simple; bh=wGZxg1q8yDgJDNdNmNtLHsHwcPMgXz5yMjq37oyCMdY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=WaoxZgP+55lMnEqAVQkw6rST2VQz1qw9mTq93Mpi1DZTFzzt72bFjkxHS2MiQQRqkOeinwARH3AdP9/h0Z7eZyypSl1OG68lh3TDR/sw3r+mDEMHtt6gQKWkaCK4LeQTNwt5vAWDYiPPW467FCaqg/q/UO/K6yspFEXeBS61ozI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=bko9vNPg; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="bko9vNPg" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 901A9C433B2; Sun, 24 Mar 2024 23:06:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321575; bh=wGZxg1q8yDgJDNdNmNtLHsHwcPMgXz5yMjq37oyCMdY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=bko9vNPg2bAsoeDUot8HFOuHwWOt3K/G5IHMd2k2fBoeUVqc/WzUU8V3V4y/4TVaP zvjMwPUrval4g2UZ8gYsdlDYguL6M9pMKWu9ZREMcSEoizyIXsvnCjyyfk4hBIBc3e Op2FnvBWcRW83fV+CfdU7V0KOP/2NFFUcySi7Q19zXE4epOXUnM/KjLn9wUKRe3hmU PFhXtCeanR8D1LdNH+XWCTohzAyfKW2O67+ljadXKMuZe66OBNII9wQSJrkW1vXLv6 uKwjRukjvYiryhYFzxXe1ELWQObHVm9+a9m68tFzqVRrys+eb5twIQKXprQloVPxub k9Z1fudAKrBqA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Bartosz Golaszewski , Luiz Augusto von Dentz , Sasha Levin Subject: [PATCH 6.6 303/638] Bluetooth: hci_qca: don't use IS_ERR_OR_NULL() with gpiod_get_optional() Date: Sun, 24 Mar 2024 18:55:40 -0400 Message-ID: <20240324230116.1348576-304-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 f9abcc13b4bcd..f2d4985e036e4 100644 --- a/drivers/bluetooth/hci_qca.c +++ b/drivers/bluetooth/hci_qca.c @@ -2295,7 +2295,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"); @@ -2304,7 +2304,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 || data->soc_type =3D=3D QCA_WCN7850)) @@ -2326,7 +2326,7 @@ static int qca_serdev_probe(struct serdev_device *ser= dev) default: 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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1EFAC209E0B; Sun, 24 Mar 2024 23:06: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=1711321577; cv=none; b=BWlj9cTk7eC3KplAlNqVSo1PSFSNUqoNklxvPop3P9E7DMBXwulu9m98prmyQCeqrVTzu4w053x5m+I2wO/qakui8xjkvkjbprMsUQGy9Okrkskuq6knLFArU47+jGVZ/BHD27nPA22mpJr/sWO/dNtWeeokzNuwMfJk2reJh7s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321577; c=relaxed/simple; bh=RmOjg/qDqeuOtj9CRisVuvUq367qZMFpUGjbUK/BTJw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=B6adm1jMlhgcp8xwBzpobordHUOxoTU25E4D3JZajbeqpVuItx/99EW3cspsj0Qd4gpJ3ZQOwB6ix9rviqgYptfPn7A0LrYcoPSdaGVI7Cf5cFIC1vJv+xmfk8Chd6Aww2KbEoSYEigt188H4EEf2gD2RRcmryt5x4nTvgCRiw0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=OBC5Hk8q; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="OBC5Hk8q" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 73F0CC433C7; Sun, 24 Mar 2024 23:06:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321576; bh=RmOjg/qDqeuOtj9CRisVuvUq367qZMFpUGjbUK/BTJw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=OBC5Hk8qZCoN+EOKodCIK0mXQIH2cA0PZi16N3E9+yn4J6SUwd2gnARjgB4G275Gm FcQ/NwQr3cE0Ft+4sKFAGh1dPpIAQPDf8jQxO+Xi2TfbkIPV3/B4jTKDoKwU/gTuKH +ZiL5BgacxU+1/fVNI9uyR0Ounf0fq20TXNJyYaHpMZ0SZpq3K2m19usnmUga2FC8R dxXSRprXAzEDr3ygnKDZlr+BeleOFD8Uv4pusst1W4wJgp1MAow/0mTtUfivZQsoao sv7NyOMwIVEO3jd39dpVqTPmFYuuGs4M5c/HmufliSJ0JGlyvAm8fKhfaCYOXmliiA Jtgsld7hMx7aQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Luiz Augusto von Dentz , Sasha Levin Subject: [PATCH 6.6 304/638] Bluetooth: hci_core: Cancel request on command timeout Date: Sun, 24 Mar 2024 18:55:41 -0400 Message-ID: <20240324230116.1348576-305-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 63298d6e752fc0ec7f5093860af8bc9f047b30c8 ] If command has timed out call __hci_cmd_sync_cancel to notify the hci_req since it will inevitably cause a timeout. This also rework the code around __hci_cmd_sync_cancel since it was wrongly assuming it needs to cancel timer as well, but sometimes the timers have not been started or in fact they already had timed out in which case they don't need to be cancel yet again. Signed-off-by: Luiz Augusto von Dentz Stable-dep-of: 2615fd9a7c25 ("Bluetooth: hci_sync: Fix overwriting request = callback") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- include/net/bluetooth/hci_sync.h | 2 +- net/bluetooth/hci_core.c | 84 ++++++++++++++++++++++---------- net/bluetooth/hci_request.c | 2 +- net/bluetooth/hci_sync.c | 20 ++++---- net/bluetooth/mgmt.c | 2 +- 5 files changed, 71 insertions(+), 39 deletions(-) diff --git a/include/net/bluetooth/hci_sync.h b/include/net/bluetooth/hci_s= ync.h index 57eeb07aeb251..268145efbe4cb 100644 --- a/include/net/bluetooth/hci_sync.h +++ b/include/net/bluetooth/hci_sync.h @@ -42,7 +42,7 @@ int __hci_cmd_sync_status_sk(struct hci_dev *hdev, u16 op= code, u32 plen, void hci_cmd_sync_init(struct hci_dev *hdev); void hci_cmd_sync_clear(struct hci_dev *hdev); void hci_cmd_sync_cancel(struct hci_dev *hdev, int err); -void __hci_cmd_sync_cancel(struct hci_dev *hdev, int err); +void hci_cmd_sync_cancel_sync(struct hci_dev *hdev, int err); =20 int hci_cmd_sync_submit(struct hci_dev *hdev, hci_cmd_sync_work_func_t fun= c, void *data, hci_cmd_sync_work_destroy_t destroy); diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c index 2821a42cefdc6..539305b9a0e27 100644 --- a/net/bluetooth/hci_core.c +++ b/net/bluetooth/hci_core.c @@ -1492,10 +1492,11 @@ static void hci_cmd_timeout(struct work_struct *wor= k) cmd_timer.work); =20 if (hdev->sent_cmd) { - struct hci_command_hdr *sent =3D (void *) hdev->sent_cmd->data; - u16 opcode =3D __le16_to_cpu(sent->opcode); + u16 opcode =3D hci_skb_opcode(hdev->sent_cmd); =20 bt_dev_err(hdev, "command 0x%4.4x tx timeout", opcode); + + hci_cmd_sync_cancel_sync(hdev, ETIMEDOUT); } else { bt_dev_err(hdev, "command tx timeout"); } @@ -2826,6 +2827,23 @@ int hci_unregister_suspend_notifier(struct hci_dev *= hdev) return ret; } =20 +/* Cancel ongoing command synchronously: + * + * - Cancel command timer + * - Reset command counter + * - Cancel command request + */ +static void hci_cancel_cmd_sync(struct hci_dev *hdev, int err) +{ + bt_dev_dbg(hdev, "err 0x%2.2x", err); + + cancel_delayed_work_sync(&hdev->cmd_timer); + cancel_delayed_work_sync(&hdev->ncmd_timer); + atomic_set(&hdev->cmd_cnt, 1); + + hci_cmd_sync_cancel_sync(hdev, -err); +} + /* Suspend HCI device */ int hci_suspend_dev(struct hci_dev *hdev) { @@ -2843,7 +2861,7 @@ int hci_suspend_dev(struct hci_dev *hdev) return 0; =20 /* Cancel potentially blocking sync operation before suspend */ - __hci_cmd_sync_cancel(hdev, -EHOSTDOWN); + hci_cancel_cmd_sync(hdev, -EHOSTDOWN); =20 hci_req_sync_lock(hdev); ret =3D hci_suspend_sync(hdev); @@ -4128,6 +4146,33 @@ static void hci_rx_work(struct work_struct *work) } } =20 +static void hci_send_cmd_sync(struct hci_dev *hdev, struct sk_buff *skb) +{ + int err; + + bt_dev_dbg(hdev, "skb %p", skb); + + kfree_skb(hdev->sent_cmd); + + hdev->sent_cmd =3D skb_clone(skb, GFP_KERNEL); + if (!hdev->sent_cmd) { + skb_queue_head(&hdev->cmd_q, skb); + queue_work(hdev->workqueue, &hdev->cmd_work); + return; + } + + err =3D hci_send_frame(hdev, skb); + if (err < 0) { + hci_cmd_sync_cancel_sync(hdev, err); + return; + } + + if (hci_req_status_pend(hdev)) + hci_dev_set_flag(hdev, HCI_CMD_PENDING); + + atomic_dec(&hdev->cmd_cnt); +} + static void hci_cmd_work(struct work_struct *work) { struct hci_dev *hdev =3D container_of(work, struct hci_dev, cmd_work); @@ -4142,30 +4187,15 @@ static void hci_cmd_work(struct work_struct *work) if (!skb) return; =20 - kfree_skb(hdev->sent_cmd); - - hdev->sent_cmd =3D skb_clone(skb, GFP_KERNEL); - if (hdev->sent_cmd) { - int res; - if (hci_req_status_pend(hdev)) - hci_dev_set_flag(hdev, HCI_CMD_PENDING); - atomic_dec(&hdev->cmd_cnt); + hci_send_cmd_sync(hdev, skb); =20 - res =3D hci_send_frame(hdev, skb); - if (res < 0) - __hci_cmd_sync_cancel(hdev, -res); - - rcu_read_lock(); - if (test_bit(HCI_RESET, &hdev->flags) || - hci_dev_test_flag(hdev, HCI_CMD_DRAIN_WORKQUEUE)) - cancel_delayed_work(&hdev->cmd_timer); - else - queue_delayed_work(hdev->workqueue, &hdev->cmd_timer, - HCI_CMD_TIMEOUT); - rcu_read_unlock(); - } else { - skb_queue_head(&hdev->cmd_q, skb); - queue_work(hdev->workqueue, &hdev->cmd_work); - } + rcu_read_lock(); + if (test_bit(HCI_RESET, &hdev->flags) || + hci_dev_test_flag(hdev, HCI_CMD_DRAIN_WORKQUEUE)) + cancel_delayed_work(&hdev->cmd_timer); + else + queue_delayed_work(hdev->workqueue, &hdev->cmd_timer, + HCI_CMD_TIMEOUT); + rcu_read_unlock(); } } diff --git a/net/bluetooth/hci_request.c b/net/bluetooth/hci_request.c index 6e023b0104b03..00e02138003ec 100644 --- a/net/bluetooth/hci_request.c +++ b/net/bluetooth/hci_request.c @@ -895,7 +895,7 @@ void hci_request_setup(struct hci_dev *hdev) =20 void hci_request_cancel_all(struct hci_dev *hdev) { - __hci_cmd_sync_cancel(hdev, ENODEV); + hci_cmd_sync_cancel_sync(hdev, ENODEV); =20 cancel_interleave_scan(hdev); } diff --git a/net/bluetooth/hci_sync.c b/net/bluetooth/hci_sync.c index fef9ab95ad3df..3979c1cccb9fb 100644 --- a/net/bluetooth/hci_sync.c +++ b/net/bluetooth/hci_sync.c @@ -652,7 +652,7 @@ void hci_cmd_sync_clear(struct hci_dev *hdev) mutex_unlock(&hdev->cmd_sync_work_lock); } =20 -void __hci_cmd_sync_cancel(struct hci_dev *hdev, int err) +void hci_cmd_sync_cancel(struct hci_dev *hdev, int err) { bt_dev_dbg(hdev, "err 0x%2.2x", err); =20 @@ -660,15 +660,17 @@ void __hci_cmd_sync_cancel(struct hci_dev *hdev, int = err) hdev->req_result =3D err; hdev->req_status =3D HCI_REQ_CANCELED; =20 - cancel_delayed_work_sync(&hdev->cmd_timer); - cancel_delayed_work_sync(&hdev->ncmd_timer); - atomic_set(&hdev->cmd_cnt, 1); - - wake_up_interruptible(&hdev->req_wait_q); + queue_work(hdev->workqueue, &hdev->cmd_sync_cancel_work); } } +EXPORT_SYMBOL(hci_cmd_sync_cancel); =20 -void hci_cmd_sync_cancel(struct hci_dev *hdev, int err) +/* Cancel ongoing command request synchronously: + * + * - Set result and mark status to HCI_REQ_CANCELED + * - Wakeup command sync thread + */ +void hci_cmd_sync_cancel_sync(struct hci_dev *hdev, int err) { bt_dev_dbg(hdev, "err 0x%2.2x", err); =20 @@ -676,10 +678,10 @@ void hci_cmd_sync_cancel(struct hci_dev *hdev, int er= r) hdev->req_result =3D err; hdev->req_status =3D HCI_REQ_CANCELED; =20 - queue_work(hdev->workqueue, &hdev->cmd_sync_cancel_work); + wake_up_interruptible(&hdev->req_wait_q); } } -EXPORT_SYMBOL(hci_cmd_sync_cancel); +EXPORT_SYMBOL(hci_cmd_sync_cancel_sync); =20 /* Submit HCI command to be run in as cmd_sync_work: * diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c index b21b981f15a38..2ffda2ffdbda8 100644 --- a/net/bluetooth/mgmt.c +++ b/net/bluetooth/mgmt.c @@ -1404,7 +1404,7 @@ static int set_powered(struct sock *sk, struct hci_de= v *hdev, void *data, =20 /* Cancel potentially blocking sync operation before power off */ if (cp->val =3D=3D 0x00) { - __hci_cmd_sync_cancel(hdev, -EHOSTDOWN); + hci_cmd_sync_cancel_sync(hdev, -EHOSTDOWN); err =3D hci_cmd_sync_queue(hdev, set_powered_sync, cmd, mgmt_set_powered_complete); } else { --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DEE12209E01; Sun, 24 Mar 2024 23:06: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=1711321577; cv=none; b=lBK8Qcnp+Ic/jVzOahmhVt6weywOAGxF4F6TM/wyylzgHlEQchuJH18NU1Dlq19CKlCgk5fmKyr+LQy1KvvqJ4P143V0LrXB+DS1KWpwuMKPdXMP5qswuy3oguJ9MnXxHhDm+Zx5zt+WyLNs7PSmqvebHNssQgniblkvoqKvWwQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321577; c=relaxed/simple; bh=eJhlv2tetrciK7hb38iISK4mWU499/URLQNPHeN8B7M=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Rs6DWwLFzl0zMnRUyWOdmytbU099FEMLYRy1ji5pvNDMvll3dmYxro3Ot9bf3WEnk+KrMHI45RL5MQ5Q/RzlPhRWsJEwj1v1BlzKsIz/TGV4HWbwGO4B2hrHFrRRGlgaBCIyD7R4uwCYZL96BlW0a9A2FGfESNmVY8MWVoXn4JY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=gaAWktH+; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="gaAWktH+" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4339AC43390; Sun, 24 Mar 2024 23:06:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321576; bh=eJhlv2tetrciK7hb38iISK4mWU499/URLQNPHeN8B7M=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=gaAWktH+0fw6B7ABoh4dMnd2GgUlqszz4sWAocXqFmdwEHPjVDBdNUA7KdZV7nqxe YTwBUAZBJM6T2QubOs1xkAeFqh+ya5CnvVjHZbzujPyQeWIFOEBwczECuZj6pnEsHc 1o2I2fVSj7jYux3p90NGFq9YWPR0qNNQg6Wz+NRsTP0Xzk/RbPdb0JCFkoCmJ8cviF INzwH4oKK4OZpFpREOIytezl9YPkqDUPNLec//LLm3Lw9pvshfjG0cSXPXe4uAevqH YXa3VnZ+cVnTpHN5BRTWKbC0OL8bGQj0VckIRY05rDOLSfNerghuFA4Xvn0pbKgRhh /gv8wCBdqwUVg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Luiz Augusto von Dentz , Sasha Levin Subject: [PATCH 6.6 305/638] Bluetooth: hci_sync: Fix overwriting request callback Date: Sun, 24 Mar 2024 18:55:42 -0400 Message-ID: <20240324230116.1348576-306-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 2615fd9a7c2507eb3be3fbe49dcec88a2f56454a ] In a few cases the stack may generate commands as responses to events which would happen to overwrite the sent_cmd, so this attempts to store the request in req_skb so even if sent_cmd is replaced with a new command the pending request will remain in stored in req_skb. Fixes: 6a98e3836fa2 ("Bluetooth: Add helper for serialized HCI command exec= ution") Signed-off-by: Luiz Augusto von Dentz Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- include/net/bluetooth/hci_core.h | 1 + net/bluetooth/hci_conn.c | 2 +- net/bluetooth/hci_core.c | 46 ++++++++++++++++++++++---------- net/bluetooth/hci_event.c | 18 ++++++------- net/bluetooth/hci_sync.c | 21 ++++++++++++--- 5 files changed, 61 insertions(+), 27 deletions(-) diff --git a/include/net/bluetooth/hci_core.h b/include/net/bluetooth/hci_c= ore.h index b83cfcf666648..103b290d6efb0 100644 --- a/include/net/bluetooth/hci_core.h +++ b/include/net/bluetooth/hci_core.h @@ -553,6 +553,7 @@ struct hci_dev { __u32 req_status; __u32 req_result; struct sk_buff *req_skb; + struct sk_buff *req_rsp; =20 void *smp_data; void *smp_bredr_data; diff --git a/net/bluetooth/hci_conn.c b/net/bluetooth/hci_conn.c index 6cdd2d2af2d95..1f8c8d65350c8 100644 --- a/net/bluetooth/hci_conn.c +++ b/net/bluetooth/hci_conn.c @@ -2936,7 +2936,7 @@ int hci_abort_conn(struct hci_conn *conn, u8 reason) case HCI_EV_LE_CONN_COMPLETE: case HCI_EV_LE_ENHANCED_CONN_COMPLETE: case HCI_EVT_LE_CIS_ESTABLISHED: - hci_cmd_sync_cancel(hdev, -ECANCELED); + hci_cmd_sync_cancel(hdev, ECANCELED); break; } } diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c index 539305b9a0e27..96707deef296b 100644 --- a/net/bluetooth/hci_core.c +++ b/net/bluetooth/hci_core.c @@ -1491,8 +1491,8 @@ static void hci_cmd_timeout(struct work_struct *work) struct hci_dev *hdev =3D container_of(work, struct hci_dev, cmd_timer.work); =20 - if (hdev->sent_cmd) { - u16 opcode =3D hci_skb_opcode(hdev->sent_cmd); + if (hdev->req_skb) { + u16 opcode =3D hci_skb_opcode(hdev->req_skb); =20 bt_dev_err(hdev, "command 0x%4.4x tx timeout", opcode); =20 @@ -2796,6 +2796,7 @@ void hci_release_dev(struct hci_dev *hdev) ida_destroy(&hdev->unset_handle_ida); ida_simple_remove(&hci_index_ida, hdev->id); kfree_skb(hdev->sent_cmd); + kfree_skb(hdev->req_skb); kfree_skb(hdev->recv_event); kfree(hdev); } @@ -3125,21 +3126,33 @@ int __hci_cmd_send(struct hci_dev *hdev, u16 opcode= , u32 plen, EXPORT_SYMBOL(__hci_cmd_send); =20 /* Get data from the previously sent command */ -void *hci_sent_cmd_data(struct hci_dev *hdev, __u16 opcode) +static void *hci_cmd_data(struct sk_buff *skb, __u16 opcode) { struct hci_command_hdr *hdr; =20 - if (!hdev->sent_cmd) + if (!skb || skb->len < HCI_COMMAND_HDR_SIZE) return NULL; =20 - hdr =3D (void *) hdev->sent_cmd->data; + hdr =3D (void *)skb->data; =20 if (hdr->opcode !=3D cpu_to_le16(opcode)) return NULL; =20 - BT_DBG("%s opcode 0x%4.4x", hdev->name, opcode); + return skb->data + HCI_COMMAND_HDR_SIZE; +} =20 - return hdev->sent_cmd->data + HCI_COMMAND_HDR_SIZE; +/* Get data from the previously sent command */ +void *hci_sent_cmd_data(struct hci_dev *hdev, __u16 opcode) +{ + void *data; + + /* Check if opcode matches last sent command */ + data =3D hci_cmd_data(hdev->sent_cmd, opcode); + if (!data) + /* Check if opcode matches last request */ + data =3D hci_cmd_data(hdev->req_skb, opcode); + + return data; } =20 /* Get data from last received event */ @@ -4040,17 +4053,19 @@ void hci_req_cmd_complete(struct hci_dev *hdev, u16= opcode, u8 status, if (!status && !hci_req_is_complete(hdev)) return; =20 + skb =3D hdev->req_skb; + /* If this was the last command in a request the complete - * callback would be found in hdev->sent_cmd instead of the + * callback would be found in hdev->req_skb instead of the * command queue (hdev->cmd_q). */ - if (bt_cb(hdev->sent_cmd)->hci.req_flags & HCI_REQ_SKB) { - *req_complete_skb =3D bt_cb(hdev->sent_cmd)->hci.req_complete_skb; + if (skb && bt_cb(skb)->hci.req_flags & HCI_REQ_SKB) { + *req_complete_skb =3D bt_cb(skb)->hci.req_complete_skb; return; } =20 - if (bt_cb(hdev->sent_cmd)->hci.req_complete) { - *req_complete =3D bt_cb(hdev->sent_cmd)->hci.req_complete; + if (skb && bt_cb(skb)->hci.req_complete) { + *req_complete =3D bt_cb(skb)->hci.req_complete; return; } =20 @@ -4167,8 +4182,11 @@ static void hci_send_cmd_sync(struct hci_dev *hdev, = struct sk_buff *skb) return; } =20 - if (hci_req_status_pend(hdev)) - hci_dev_set_flag(hdev, HCI_CMD_PENDING); + if (hci_req_status_pend(hdev) && + !hci_dev_test_and_set_flag(hdev, HCI_CMD_PENDING)) { + kfree_skb(hdev->req_skb); + hdev->req_skb =3D skb_clone(skb, GFP_KERNEL); + } =20 atomic_dec(&hdev->cmd_cnt); } diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c index 2bfc852283394..2bb8ab9302a97 100644 --- a/net/bluetooth/hci_event.c +++ b/net/bluetooth/hci_event.c @@ -4381,7 +4381,7 @@ static void hci_cmd_status_evt(struct hci_dev *hdev, = void *data, * (since for this kind of commands there will not be a command * complete event). */ - if (ev->status || (hdev->sent_cmd && !hci_skb_event(hdev->sent_cmd))) { + if (ev->status || (hdev->req_skb && !hci_skb_event(hdev->req_skb))) { hci_req_cmd_complete(hdev, *opcode, ev->status, req_complete, req_complete_skb); if (hci_dev_test_flag(hdev, HCI_CMD_PENDING)) { @@ -7337,10 +7337,10 @@ static void hci_le_meta_evt(struct hci_dev *hdev, v= oid *data, bt_dev_dbg(hdev, "subevent 0x%2.2x", ev->subevent); =20 /* Only match event if command OGF is for LE */ - if (hdev->sent_cmd && - hci_opcode_ogf(hci_skb_opcode(hdev->sent_cmd)) =3D=3D 0x08 && - hci_skb_event(hdev->sent_cmd) =3D=3D ev->subevent) { - *opcode =3D hci_skb_opcode(hdev->sent_cmd); + if (hdev->req_skb && + hci_opcode_ogf(hci_skb_opcode(hdev->req_skb)) =3D=3D 0x08 && + hci_skb_event(hdev->req_skb) =3D=3D ev->subevent) { + *opcode =3D hci_skb_opcode(hdev->req_skb); hci_req_cmd_complete(hdev, *opcode, 0x00, req_complete, req_complete_skb); } @@ -7727,10 +7727,10 @@ void hci_event_packet(struct hci_dev *hdev, struct = sk_buff *skb) } =20 /* Only match event if command OGF is not for LE */ - if (hdev->sent_cmd && - hci_opcode_ogf(hci_skb_opcode(hdev->sent_cmd)) !=3D 0x08 && - hci_skb_event(hdev->sent_cmd) =3D=3D event) { - hci_req_cmd_complete(hdev, hci_skb_opcode(hdev->sent_cmd), + if (hdev->req_skb && + hci_opcode_ogf(hci_skb_opcode(hdev->req_skb)) !=3D 0x08 && + hci_skb_event(hdev->req_skb) =3D=3D event) { + hci_req_cmd_complete(hdev, hci_skb_opcode(hdev->req_skb), status, &req_complete, &req_complete_skb); req_evt =3D event; } diff --git a/net/bluetooth/hci_sync.c b/net/bluetooth/hci_sync.c index 3979c1cccb9fb..7da7f8f2026b0 100644 --- a/net/bluetooth/hci_sync.c +++ b/net/bluetooth/hci_sync.c @@ -32,6 +32,10 @@ static void hci_cmd_sync_complete(struct hci_dev *hdev, = u8 result, u16 opcode, hdev->req_result =3D result; hdev->req_status =3D HCI_REQ_DONE; =20 + /* Free the request command so it is not used as response */ + kfree_skb(hdev->req_skb); + hdev->req_skb =3D NULL; + if (skb) { struct sock *sk =3D hci_skb_sk(skb); =20 @@ -39,7 +43,7 @@ static void hci_cmd_sync_complete(struct hci_dev *hdev, u= 8 result, u16 opcode, if (sk) sock_put(sk); =20 - hdev->req_skb =3D skb_get(skb); + hdev->req_rsp =3D skb_get(skb); } =20 wake_up_interruptible(&hdev->req_wait_q); @@ -187,8 +191,8 @@ struct sk_buff *__hci_cmd_sync_sk(struct hci_dev *hdev,= u16 opcode, u32 plen, =20 hdev->req_status =3D 0; hdev->req_result =3D 0; - skb =3D hdev->req_skb; - hdev->req_skb =3D NULL; + skb =3D hdev->req_rsp; + hdev->req_rsp =3D NULL; =20 bt_dev_dbg(hdev, "end: err %d", err); =20 @@ -4904,6 +4908,11 @@ int hci_dev_open_sync(struct hci_dev *hdev) hdev->sent_cmd =3D NULL; } =20 + if (hdev->req_skb) { + kfree_skb(hdev->req_skb); + hdev->req_skb =3D NULL; + } + clear_bit(HCI_RUNNING, &hdev->flags); hci_sock_dev_event(hdev, HCI_DEV_CLOSE); =20 @@ -5065,6 +5074,12 @@ int hci_dev_close_sync(struct hci_dev *hdev) hdev->sent_cmd =3D NULL; } =20 + /* Drop last request */ + if (hdev->req_skb) { + kfree_skb(hdev->req_skb); + hdev->req_skb =3D NULL; + } + clear_bit(HCI_RUNNING, &hdev->flags); hci_sock_dev_event(hdev, HCI_DEV_CLOSE); =20 --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C8E69209E16; Sun, 24 Mar 2024 23:06: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=1711321578; cv=none; b=p4moThybw4xE+IqSAF/HWvPdcZN2oGutrOzH/YlNVvTmee48rRTIJCN825snbbOYRNaG8i9MfTVcnpoBIPa1Euu9dc8OwRZzG9LoA52iV9v1Ki7mGZJjnfWNr5l+55fD0FCPitZ6Dd6+Aqknql688C3rYIptVKr6zSd/OHk1p3c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321578; c=relaxed/simple; bh=ArHPtWX3+1gtQ68zc8c0UMu038IRAJ3nC1hv6nvkR10=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mww0lnrZ/Gscrbe/2e0nDmqTIHl0rutAF4O7hPfQd2+sg4xnIOdoTEWzBwl2ioUalALEkFBsrKBl95y41VXsEg6434imY1V6Atwp2EhWO0FIsSJxaWPkySJrACt1sW5cJwT9fnHPwZBEltNIpmoGoBUHppYVFTy1KVWK17Nwa7Q= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=UV/7wu/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="UV/7wu/z" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 10BAAC43399; Sun, 24 Mar 2024 23:06:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321577; bh=ArHPtWX3+1gtQ68zc8c0UMu038IRAJ3nC1hv6nvkR10=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=UV/7wu/zHPh5gPefd/HqjdyhhA2pscEAl3bztZAvX5IKrQs+KC3k1LXZm7LlYfO8A SVD4jchCWyDvHBHt9tdpKp0RmX6pzYSQifTvCdEceyqNF0tkpXIKN0GVaMobr/T/Nz fyOOKpJ/nR+P8z4mSbUbpagtO0ij7AZfrdy6wkEFKTxaEIcWacHsm6SUX1uiZKyks3 yTSBShS4FkfZ6xIhtk/qxkXKtTWOh6kkbj7P1MnA0eSSfZDVzFV0l71uKPFEXjoun/ coUy3ppsP3TLO6z1udt7PTt/tqTlpxXUMo6UqOfz/2Db9HKNXqLZtKiPwZz2tG5iRF Ma9L8YIxFxOcw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Andrey Skvortsov , Luiz Augusto von Dentz , Sasha Levin Subject: [PATCH 6.6 306/638] Bluetooth: hci_h5: Add ability to allocate memory for private data Date: Sun, 24 Mar 2024 18:55:43 -0400 Message-ID: <20240324230116.1348576-307-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Skvortsov [ Upstream commit 7a6d793e9ca8bc0c1d2f0aa0a02ec380d1124c74 ] In some cases uart-base drivers may need to use priv data. For example, to store information needed for devcoredump. Fixes: 044014ce85a1 ("Bluetooth: btrtl: Add Realtek devcoredump support") Signed-off-by: Andrey Skvortsov Signed-off-by: Luiz Augusto von Dentz Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/bluetooth/hci_h5.c | 4 +++- drivers/bluetooth/hci_serdev.c | 9 +++++---- drivers/bluetooth/hci_uart.h | 12 +++++++++++- 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/drivers/bluetooth/hci_h5.c b/drivers/bluetooth/hci_h5.c index 71e748a9477e4..b66136348bd64 100644 --- a/drivers/bluetooth/hci_h5.c +++ b/drivers/bluetooth/hci_h5.c @@ -113,6 +113,7 @@ struct h5_vnd { int (*suspend)(struct h5 *h5); int (*resume)(struct h5 *h5); const struct acpi_gpio_mapping *acpi_gpio_map; + int sizeof_priv; }; =20 struct h5_device_data { @@ -863,7 +864,8 @@ static int h5_serdev_probe(struct serdev_device *serdev) if (IS_ERR(h5->device_wake_gpio)) return PTR_ERR(h5->device_wake_gpio); =20 - return hci_uart_register_device(&h5->serdev_hu, &h5p); + return hci_uart_register_device_priv(&h5->serdev_hu, &h5p, + h5->vnd->sizeof_priv); } =20 static void h5_serdev_remove(struct serdev_device *serdev) diff --git a/drivers/bluetooth/hci_serdev.c b/drivers/bluetooth/hci_serdev.c index f16fd79bc02b8..611a11fbb2f3a 100644 --- a/drivers/bluetooth/hci_serdev.c +++ b/drivers/bluetooth/hci_serdev.c @@ -300,8 +300,9 @@ static const struct serdev_device_ops hci_serdev_client= _ops =3D { .write_wakeup =3D hci_uart_write_wakeup, }; =20 -int hci_uart_register_device(struct hci_uart *hu, - const struct hci_uart_proto *p) +int hci_uart_register_device_priv(struct hci_uart *hu, + const struct hci_uart_proto *p, + int sizeof_priv) { int err; struct hci_dev *hdev; @@ -325,7 +326,7 @@ int hci_uart_register_device(struct hci_uart *hu, set_bit(HCI_UART_PROTO_READY, &hu->flags); =20 /* Initialize and register HCI device */ - hdev =3D hci_alloc_dev(); + hdev =3D hci_alloc_dev_priv(sizeof_priv); if (!hdev) { BT_ERR("Can't allocate HCI device"); err =3D -ENOMEM; @@ -394,7 +395,7 @@ int hci_uart_register_device(struct hci_uart *hu, percpu_free_rwsem(&hu->proto_lock); return err; } -EXPORT_SYMBOL_GPL(hci_uart_register_device); +EXPORT_SYMBOL_GPL(hci_uart_register_device_priv); =20 void hci_uart_unregister_device(struct hci_uart *hu) { diff --git a/drivers/bluetooth/hci_uart.h b/drivers/bluetooth/hci_uart.h index fb4a2d0d8cc80..68c8c7e95d64d 100644 --- a/drivers/bluetooth/hci_uart.h +++ b/drivers/bluetooth/hci_uart.h @@ -97,7 +97,17 @@ struct hci_uart { =20 int hci_uart_register_proto(const struct hci_uart_proto *p); int hci_uart_unregister_proto(const struct hci_uart_proto *p); -int hci_uart_register_device(struct hci_uart *hu, const struct hci_uart_pr= oto *p); + +int hci_uart_register_device_priv(struct hci_uart *hu, + const struct hci_uart_proto *p, + int sizeof_priv); + +static inline int hci_uart_register_device(struct hci_uart *hu, + const struct hci_uart_proto *p) +{ + return hci_uart_register_device_priv(hu, p, 0); +} + void hci_uart_unregister_device(struct hci_uart *hu); =20 int hci_uart_tx_wakeup(struct hci_uart *hu); --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B214A209E14; Sun, 24 Mar 2024 23:06: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=1711321578; cv=none; b=oGoTx3XzmbjT9UzW7sbBu/ae8FV/ycv4lzdxLfFLUOFpdI1guSALum8/CNi4MGiD6vNBndf56r+GA+HEoGQlUCCzjdaOFzYYMHJCuf9GUs5xF09QyV7Zyxi24M8PoKUXIerbi/DB+pNjF2Yr3BZyxnfBjeyrFJak83/I5WvJ+wE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321578; c=relaxed/simple; bh=ZcHPGh/+6JRCBw+dWU/yC1PN20jUS9Kcv6f7ag8lQs8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Jwr6gc1vldWpGfuni7/2GbwnMJo4FawCQ+2ax7g6+Zmvmw/HknAxKclysKAvz86w2jMQ8PPyBQb76GTpQbfirmONpQYeWffZqA0xcHzXSucNF/7CFfldyIa6vkTUCGBYo//Mrk9WEkDW/qlpu31AXn14V187B2LoJaesDxs7AFk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Ksfqt3Ht; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Ksfqt3Ht" Received: by smtp.kernel.org (Postfix) with ESMTPSA id EEB29C43330; Sun, 24 Mar 2024 23:06:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321578; bh=ZcHPGh/+6JRCBw+dWU/yC1PN20jUS9Kcv6f7ag8lQs8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Ksfqt3Ht1ggajX0yr1oEkkAkhcUZ1RgL+rZkpYKfGlGvyS7TwjIEvsXiuj/UA5wcP AWcXmUn3P1c0B7ZuTCoxo/Rnonw+7iWTgYQcrnxTxu3Z2iJ2kfk0oZNvCco0Jw4dC8 tXu8pPYHjzeABxEy+zEp7O6nvBfw+vgAS+DzbwZQbTWc0wc561eI7sDk1goFG3Ev5I MDyHk+fwihBh4jMYxx7NfOV2gWBMjXTadGdEt+ORDrZUsIGUDOoDkHfNrwIv4+lDiC YnbhaKd7kgvNDUnW65ETo3ehVIFatIunLF/KuARkoGOJLsSLaKxnkyIUaMg8paaW2l C+FUhAtVJ3Ewg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Andrey Skvortsov , Luiz Augusto von Dentz , Sasha Levin Subject: [PATCH 6.6 307/638] Bluetooth: btrtl: fix out of bounds memory access Date: Sun, 24 Mar 2024 18:55:44 -0400 Message-ID: <20240324230116.1348576-308-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Skvortsov [ Upstream commit de4e88ec58c4202efd1f02eebb4939bbf6945358 ] The problem is detected by KASAN. btrtl driver uses private hci data to store 'struct btrealtek_data'. If btrtl driver is used with btusb, then memory for private hci data is allocated in btusb. But no private data is allocated after hci_dev, when btrtl is used with hci_h5. This commit adds memory allocation for hci_h5 case. =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-out-of-bounds in btrtl_initialize+0x6cc/0x958 [btrtl] Write of size 8 at addr ffff00000f5a5748 by task kworker/u9:0/76 Hardware name: Pine64 PinePhone (1.2) (DT) Workqueue: hci0 hci_power_on [bluetooth] Call trace: dump_backtrace+0x9c/0x128 show_stack+0x20/0x38 dump_stack_lvl+0x48/0x60 print_report+0xf8/0x5d8 kasan_report+0x90/0xd0 __asan_store8+0x9c/0xc0 [btrtl] h5_btrtl_setup+0xd0/0x2f8 [hci_uart] h5_setup+0x50/0x80 [hci_uart] hci_uart_setup+0xd4/0x260 [hci_uart] hci_dev_open_sync+0x1cc/0xf68 [bluetooth] hci_dev_do_open+0x34/0x90 [bluetooth] hci_power_on+0xc4/0x3c8 [bluetooth] process_one_work+0x328/0x6f0 worker_thread+0x410/0x778 kthread+0x168/0x178 ret_from_fork+0x10/0x20 Allocated by task 53: kasan_save_stack+0x3c/0x68 kasan_save_track+0x20/0x40 kasan_save_alloc_info+0x68/0x78 __kasan_kmalloc+0xd4/0xd8 __kmalloc+0x1b4/0x3b0 hci_alloc_dev_priv+0x28/0xa58 [bluetooth] hci_uart_register_device+0x118/0x4f8 [hci_uart] h5_serdev_probe+0xf4/0x178 [hci_uart] serdev_drv_probe+0x54/0xa0 really_probe+0x254/0x588 __driver_probe_device+0xc4/0x210 driver_probe_device+0x64/0x160 __driver_attach_async_helper+0x88/0x158 async_run_entry_fn+0xd0/0x388 process_one_work+0x328/0x6f0 worker_thread+0x410/0x778 kthread+0x168/0x178 ret_from_fork+0x10/0x20 Last potentially related work creation: kasan_save_stack+0x3c/0x68 __kasan_record_aux_stack+0xb0/0x150 kasan_record_aux_stack_noalloc+0x14/0x20 __queue_work+0x33c/0x960 queue_work_on+0x98/0xc0 hci_recv_frame+0xc8/0x1e8 [bluetooth] h5_complete_rx_pkt+0x2c8/0x800 [hci_uart] h5_rx_payload+0x98/0xb8 [hci_uart] h5_recv+0x158/0x3d8 [hci_uart] hci_uart_receive_buf+0xa0/0xe8 [hci_uart] ttyport_receive_buf+0xac/0x178 flush_to_ldisc+0x130/0x2c8 process_one_work+0x328/0x6f0 worker_thread+0x410/0x778 kthread+0x168/0x178 ret_from_fork+0x10/0x20 Second to last potentially related work creation: kasan_save_stack+0x3c/0x68 __kasan_record_aux_stack+0xb0/0x150 kasan_record_aux_stack_noalloc+0x14/0x20 __queue_work+0x788/0x960 queue_work_on+0x98/0xc0 __hci_cmd_sync_sk+0x23c/0x7a0 [bluetooth] __hci_cmd_sync+0x24/0x38 [bluetooth] btrtl_initialize+0x760/0x958 [btrtl] h5_btrtl_setup+0xd0/0x2f8 [hci_uart] h5_setup+0x50/0x80 [hci_uart] hci_uart_setup+0xd4/0x260 [hci_uart] hci_dev_open_sync+0x1cc/0xf68 [bluetooth] hci_dev_do_open+0x34/0x90 [bluetooth] hci_power_on+0xc4/0x3c8 [bluetooth] process_one_work+0x328/0x6f0 worker_thread+0x410/0x778 kthread+0x168/0x178 ret_from_fork+0x10/0x20 =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 Fixes: 5b355944b190 ("Bluetooth: btrtl: Add btrealtek data struct") Fixes: 044014ce85a1 ("Bluetooth: btrtl: Add Realtek devcoredump support") Signed-off-by: Andrey Skvortsov Signed-off-by: Luiz Augusto von Dentz Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/bluetooth/hci_h5.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/bluetooth/hci_h5.c b/drivers/bluetooth/hci_h5.c index b66136348bd64..c0436881a533c 100644 --- a/drivers/bluetooth/hci_h5.c +++ b/drivers/bluetooth/hci_h5.c @@ -1072,6 +1072,7 @@ static struct h5_vnd rtl_vnd =3D { .suspend =3D h5_btrtl_suspend, .resume =3D h5_btrtl_resume, .acpi_gpio_map =3D acpi_btrtl_gpios, + .sizeof_priv =3D sizeof(struct btrealtek_data), }; =20 static const struct h5_device_data h5_data_rtl8822cs =3D { --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 89AD3209E1E; Sun, 24 Mar 2024 23:06: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=1711321580; cv=none; b=ayqDg1FkZ4g05RaY/+eeSF0NLFf2koM8kjrria/hodYEsFtRQFBP43VEhC/IOO+/W1aBssMRsK6Iy46NK0wDfsr+reciGgIXa/a+fmpXWgUsYMmcc5DJq01n7aqBQNisObMySyUYHQx+Oew5xrReR7JWkpd0gGkcVLZUpYsQSyc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321580; c=relaxed/simple; bh=Ugg1J7IKQDMYXnCywrahvRSEfKqAl3Vln5nLujV8KfQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=s0B3S2vsi/ljEsOIkBaq4UV+o8od/fhqVVQ9RxDun5jWEkdp5c+lFIxeviuFE3RdvmUYNXqfbyH27MSlSRSx7jG/tZeZDdgE0/x/9AMKJ3ktN8VisvAd7wlS3EN5kQnd9fZ9emyAmflj7ZQSIpjV0kQa3VE9+nZPA1MV3FV9Y5k= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=EH9ZitlB; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="EH9ZitlB" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D3057C433F1; Sun, 24 Mar 2024 23:06:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321579; bh=Ugg1J7IKQDMYXnCywrahvRSEfKqAl3Vln5nLujV8KfQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=EH9ZitlBaim/f5LdD/P2etPt1hbT3ndpZ67Y/cSF1sDJEYuIofSG/Iq+hDsvjFd1T fxXf0ciN1RvF/0d9Mbk5OZ3ZGNZe0CnV1zasnzVbCM6MAPOIWXMpUIDd5Axr29xFtC 0SEgTFu2K0W80Qafez7E34yXA5iZQlMHdcoHl3Ylxyonuo62/AL4kdHVF7iY7BkgeU pAakoL1k9tLb1C0kKdFsHxtk6xR2bJQBY5aT5XTFCuwSQ3fEwb4Y5xkl3ZjXqgNs3i q3eYWNkNkcgZofxsYdhy00geIT52bILd2KpSSWppvjLAwIoQUaMzkLIoHtqaYgoh7l oSZyXRTxwJYWw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Luiz Augusto von Dentz , Sasha Levin Subject: [PATCH 6.6 308/638] Bluetooth: hci_core: Fix possible buffer overflow Date: Sun, 24 Mar 2024 18:55:45 -0400 Message-ID: <20240324230116.1348576-309-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 96707deef296b..85a91c438d721 100644 --- a/net/bluetooth/hci_core.c +++ b/net/bluetooth/hci_core.c @@ -908,7 +908,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 625D3209E24; Sun, 24 Mar 2024 23:06: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=1711321581; cv=none; b=MOLCNd/Nh3xLrkMGrdnr27Mr5Vhl+hSGTL8jSOzIe4Y6ivevnXX7cDKVNIbJhEK77cvnLw27IpjKmYZsUX1KKlxrLXti7BOltCgFhReocASBNakK6wZG9892gS1apmcQDNesC6SoVF4qD/Ip466Yn6s3rF5nKhS/fNS444PyK/0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321581; c=relaxed/simple; bh=937m8QQtPhg4Yw4d9wkhLHxuM3X2FKfxaRJBMMb9aLQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=HeTIaTI0sJdgq4+ZYD6nAH1JEcksIUChrMQuioIarjwENptvg8hbWlraVMiN3lj41WFybk7ZkWieu92PgcCeks4weGB0s2ZeZa2JWHZN8Fs4iv1CusPxCamB3Vr1Kr9+2G4WQslKs+tDrSLbxp1PA+8V1eSOQoif5dZ4DBpzJVE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=h+u9Dgns; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="h+u9Dgns" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9FF01C43394; Sun, 24 Mar 2024 23:06:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321580; bh=937m8QQtPhg4Yw4d9wkhLHxuM3X2FKfxaRJBMMb9aLQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=h+u9DgnsptR5rZiNTZtAzNpBWekvafb5PCCN7esw2yj0d+6n3PvlZZJNcVcJw3+kL lEbL+ho/z6Z5ZLix4n2GqcpiSfqsu3z8okapwRCs5KnjiUSXTiZm7sjD3WJ8qf3xjK 8YmelLNHQ2zRUq6VKIgN5iJPMqrQbAt+7Wxslp3zjNUrXyQ+/9siI5wTnjRSE3xA0L I5xIH3gf8YDnh6YahbtvXbn4amiNCmahd79pNACJrbM+uqTTu9YlL1kK9hUhSQBtPO zVqGTrhH8hPfzDc9559t8iMl7geAqXLXfg+2DdMDZeK+iw1pqmThpWGMB1hBHgJOVe 5vrh2uAuquGHQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Dan Carpenter , Luiz Augusto von Dentz , Sasha Levin Subject: [PATCH 6.6 309/638] Bluetooth: msft: __hci_cmd_sync() doesn't return NULL Date: Sun, 24 Mar 2024 18:55:46 -0400 Message-ID: <20240324230116.1348576-310-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 41c56aa94c647a0f84c5c33fffb3f283e6f0e5bf ] The __hci_cmd_sync() function doesn't return NULL. Checking for NULL doesn't make the code safer, it just confuses people. When a function returns both error pointers and NULL then generally the NULL is a kind of success case. For example, maybe we look up an item then errors mean we ran out of memory but NULL means the item is not found. Or if we request a feature, then error pointers mean that there was an error but NULL means that the feature has been deliberately turned off. In this code it's different. The NULL is handled as if there is a bug in __hci_cmd_sync() where it accidentally returns NULL instead of a proper error code. This was done consistently until commit 9e14606d8f38 ("Bluetooth: msft: Extended monitor tracking by address filter") which deleted the work around for the potential future bug and treated NULL as success. Predicting potential future bugs is complicated, but we should just fix them instead of working around them. Instead of debating whether NULL is failure or success, let's just say it's currently impossible and delete the dead code. Signed-off-by: Dan Carpenter Signed-off-by: Luiz Augusto von Dentz Stable-dep-of: a6e06258f4c3 ("Bluetooth: msft: Fix memory leak") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- net/bluetooth/msft.c | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/net/bluetooth/msft.c b/net/bluetooth/msft.c index abbafa6194ca1..630e3023273b2 100644 --- a/net/bluetooth/msft.c +++ b/net/bluetooth/msft.c @@ -150,10 +150,7 @@ static bool read_supported_features(struct hci_dev *hd= ev, =20 skb =3D __hci_cmd_sync(hdev, hdev->msft_opcode, sizeof(cp), &cp, HCI_CMD_TIMEOUT); - if (IS_ERR_OR_NULL(skb)) { - if (!skb) - skb =3D ERR_PTR(-EIO); - + if (IS_ERR(skb)) { bt_dev_err(hdev, "Failed to read MSFT supported features (%ld)", PTR_ERR(skb)); return false; @@ -353,7 +350,7 @@ static void msft_remove_addr_filters_sync(struct hci_de= v *hdev, u8 handle) =20 skb =3D __hci_cmd_sync(hdev, hdev->msft_opcode, sizeof(cp), &cp, HCI_CMD_TIMEOUT); - if (IS_ERR_OR_NULL(skb)) { + if (IS_ERR(skb)) { kfree(address_filter); continue; } @@ -442,11 +439,8 @@ static int msft_remove_monitor_sync(struct hci_dev *hd= ev, =20 skb =3D __hci_cmd_sync(hdev, hdev->msft_opcode, sizeof(cp), &cp, HCI_CMD_TIMEOUT); - if (IS_ERR_OR_NULL(skb)) { - if (!skb) - return -EIO; + if (IS_ERR(skb)) return PTR_ERR(skb); - } =20 return msft_le_cancel_monitor_advertisement_cb(hdev, hdev->msft_opcode, monitor, skb); @@ -559,7 +553,7 @@ static int msft_add_monitor_sync(struct hci_dev *hdev, skb =3D __hci_cmd_sync(hdev, hdev->msft_opcode, total_size, cp, HCI_CMD_TIMEOUT); =20 - if (IS_ERR_OR_NULL(skb)) { + if (IS_ERR(skb)) { err =3D PTR_ERR(skb); goto out_free; } @@ -740,10 +734,10 @@ static int msft_cancel_address_filter_sync(struct hci= _dev *hdev, void *data) =20 skb =3D __hci_cmd_sync(hdev, hdev->msft_opcode, sizeof(cp), &cp, HCI_CMD_TIMEOUT); - if (IS_ERR_OR_NULL(skb)) { + if (IS_ERR(skb)) { bt_dev_err(hdev, "MSFT: Failed to cancel address (%pMR) filter", &address_filter->bdaddr); - err =3D -EIO; + err =3D PTR_ERR(skb); goto done; } kfree_skb(skb); @@ -893,7 +887,7 @@ static int msft_add_address_filter_sync(struct hci_dev = *hdev, void *data) =20 skb =3D __hci_cmd_sync(hdev, hdev->msft_opcode, size, cp, HCI_CMD_TIMEOUT); - if (IS_ERR_OR_NULL(skb)) { + if (IS_ERR(skb)) { bt_dev_err(hdev, "Failed to enable address %pMR filter", &address_filter->bdaddr); skb =3D NULL; --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2E1FF209E23; Sun, 24 Mar 2024 23:06: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=1711321581; cv=none; b=DmVx9kLte3byEahAuz+taGzOzhf1CUIjNQLf1REOe+85On3k7WntzIdDc7bSsfQuf3IwQmSBroWmabQELSMe/wOjvM187b2ntvVP1gZTVdiRP3IEblBDjg8JDpPmTMGDcSzrylRX2C1Wuuqis3wKRWmt0/Ku+UiEZiZuT7r9QB0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321581; c=relaxed/simple; bh=eZ8P3VvFJh8AOiFHtetE+vSb5xhTtJgCpVECyeF04SA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Aolw926tptvAry5ikPsFtDVES0n3uLdqZ56RH5Fb6t4IPnDbqeAE5sg2CCOc94Z34vQ3ZWGPOP0QPGBcn16EY6DyYlAJDcRL32HSxpKu7FNUGSGnca5wV6/2zlcdcqQKAmqNsQgB9oPIQ2lvu5tXZfBb3mXou8MpLbYT5XocoKs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=tpV0dwVU; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="tpV0dwVU" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 82420C433C7; Sun, 24 Mar 2024 23:06:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321581; bh=eZ8P3VvFJh8AOiFHtetE+vSb5xhTtJgCpVECyeF04SA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=tpV0dwVU1K8mimf10YWJBUcvabNItLokDs5VqCPjaYngt+UunPEwaNfsvzLioVfCb lsdiIw/IYgUte6u3ibnGYbaes4Lb4yAnPYb5/gu28Pqz/v0FZXwnv9Kd2yZp0p84L3 Gwr3kPm5uUpZTdeWS0Lqa/Jk0nKuYTgyYZ5w3AKniye4XwwpNbt0UIR+5bBIp5vIPM zKjzxpnXXAexT3hnIBUMdjRF8b++vS4ICIY4Sz5chRTRpan+gicXmS6qbX+q6fgr7C y4NjrEAJUqISXzYuyO/bc6jiOBJJcu0YjMPss7WfI8avWampQGE80qZpkeVto6omIy 0Sf33djHh0FZQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Luiz Augusto von Dentz , Sasha Levin Subject: [PATCH 6.6 310/638] Bluetooth: msft: Fix memory leak Date: Sun, 24 Mar 2024 18:55:47 -0400 Message-ID: <20240324230116.1348576-311-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 a6e06258f4c31eba0fcd503e19828b5f8fe7b08b ] Fix leaking buffer allocated to send MSFT_OP_LE_MONITOR_ADVERTISEMENT. Fixes: 9e14606d8f38 ("Bluetooth: msft: Extended monitor tracking by address= filter") Signed-off-by: Luiz Augusto von Dentz Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- net/bluetooth/msft.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/net/bluetooth/msft.c b/net/bluetooth/msft.c index 630e3023273b2..9612c5d1b13f6 100644 --- a/net/bluetooth/msft.c +++ b/net/bluetooth/msft.c @@ -875,6 +875,7 @@ static int msft_add_address_filter_sync(struct hci_dev = *hdev, void *data) remove =3D true; goto done; } + cp->sub_opcode =3D MSFT_OP_LE_MONITOR_ADVERTISEMENT; cp->rssi_high =3D address_filter->rssi_high; cp->rssi_low =3D address_filter->rssi_low; @@ -887,6 +888,8 @@ static int msft_add_address_filter_sync(struct hci_dev = *hdev, void *data) =20 skb =3D __hci_cmd_sync(hdev, hdev->msft_opcode, size, cp, HCI_CMD_TIMEOUT); + kfree(cp); + if (IS_ERR(skb)) { bt_dev_err(hdev, "Failed to enable address %pMR filter", &address_filter->bdaddr); --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F0B2B209E2F; Sun, 24 Mar 2024 23:06: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=1711321583; cv=none; b=es0ivuAeQVymnKKvT7te0wCvfHLbDFmCt3ZSmkkUtxFgea/fjIMG0lMllELYxmGr/tb2Av/w4KOtg4n74DQPOb9o5Nwu7v7CgJn6YJTkh5gzfpSTYdjoRluN4BCHcQpaDmInQg4ewwk43NSBeZ0kJT4IQk1rTGLtTI1nMKlr5H4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321583; c=relaxed/simple; bh=epv7NMyYMjfOOD6a1efAZbOUcwhy5jbD9SVjVk810xo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=uS2VPgaE5p+nt++/3kCIqeOzBZI5Xa+AkhCfF3FH9wOe2b308mAKCz47/2V270AmiiFtbGUCWjhn6yH+pAmzaFh+nhGrbX6G+5MmzTDH+TOqibDVylj/bSPfACXkr1ErnyG6LCyQ3BNrQcjlf+INDcJ3KkyjWZ7SmsD3ZYLfUxo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ci65BtE5; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ci65BtE5" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5158FC433B1; Sun, 24 Mar 2024 23:06:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321581; bh=epv7NMyYMjfOOD6a1efAZbOUcwhy5jbD9SVjVk810xo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ci65BtE5gKt+yz2y0Wu/zbK9JH/jwzSCYtHTxCWloOb4Zqqjh2r4U1xN2iL9jutjb HchrEDBdJ35GVZSas7KkL9jlI5ZgQP6AuvUTY/aFOrKo8LVChXAQMr0iFVoQfLjwG9 PsibfrgfJvicPvpkjEtXbLQ5T1EE5464rCbGyawBqEEjvBsx8ZoZc/OZEt1Mof5mCY fmXlv3Ko71d6I5b6xaQ8/kUiAgKwt/7hYyrZ8RD6i3rQe+a7KvQaSJyuaIbpkwjrIt qKcZCQBfcNXIIUxLaT70Op1Doi1PSwinF2A8ihsAi3X9duOWbDt67ThaC0q+TudVCt McocWOwaquCxw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Luiz Augusto von Dentz , Sasha Levin Subject: [PATCH 6.6 311/638] Bluetooth: btusb: Fix memory leak Date: Sun, 24 Mar 2024 18:55:48 -0400 Message-ID: <20240324230116.1348576-312-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 79f4127a502c5905f04da1f20a7bbe07103fb77c ] This checks if CONFIG_DEV_COREDUMP is enabled before attempting to clone the skb and also make sure btmtk_process_coredump frees the skb passed following the same logic. Fixes: 0b7015132878 ("Bluetooth: btusb: mediatek: add MediaTek devcoredump = support") Signed-off-by: Luiz Augusto von Dentz Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/bluetooth/btmtk.c | 4 +++- drivers/bluetooth/btusb.c | 10 ++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/drivers/bluetooth/btmtk.c b/drivers/bluetooth/btmtk.c index aaabb732082cd..285418dbb43f5 100644 --- a/drivers/bluetooth/btmtk.c +++ b/drivers/bluetooth/btmtk.c @@ -372,8 +372,10 @@ int btmtk_process_coredump(struct hci_dev *hdev, struc= t sk_buff *skb) struct btmediatek_data *data =3D hci_get_priv(hdev); int err; =20 - if (!IS_ENABLED(CONFIG_DEV_COREDUMP)) + if (!IS_ENABLED(CONFIG_DEV_COREDUMP)) { + kfree_skb(skb); return 0; + } =20 switch (data->cd_info.state) { case HCI_DEVCOREDUMP_IDLE: diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c index 66080fae072f2..8dbdc51976e7b 100644 --- a/drivers/bluetooth/btusb.c +++ b/drivers/bluetooth/btusb.c @@ -3267,7 +3267,6 @@ static int btusb_recv_acl_mtk(struct hci_dev *hdev, s= truct sk_buff *skb) { struct btusb_data *data =3D hci_get_drvdata(hdev); u16 handle =3D le16_to_cpu(hci_acl_hdr(skb)->handle); - struct sk_buff *skb_cd; =20 switch (handle) { case 0xfc6f: /* Firmware dump from device */ @@ -3280,9 +3279,12 @@ static int btusb_recv_acl_mtk(struct hci_dev *hdev, = struct sk_buff *skb) * for backward compatibility, so we have to clone the packet * extraly for the in-kernel coredump support. */ - skb_cd =3D skb_clone(skb, GFP_ATOMIC); - if (skb_cd) - btmtk_process_coredump(hdev, skb_cd); + if (IS_ENABLED(CONFIG_DEV_COREDUMP)) { + struct sk_buff *skb_cd =3D skb_clone(skb, GFP_ATOMIC); + + if (skb_cd) + btmtk_process_coredump(hdev, skb_cd); + } =20 fallthrough; case 0x05ff: /* Firmware debug logging 1 */ --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C264E209E12; Sun, 24 Mar 2024 23:06: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=1711321582; cv=none; b=dLuj0EdLz7ucbQkhY0tzXwixPMEhafKNgTwzILOwVTSFIrW5EK/u/cNgTu230h0pnfy+QKDUQIhmbmmyELBPTTzZa8hmw3TtVUXoy8DfEXT1CHJQG/oD5SyHkbTxt1ZMLDIjiB8NfCxe1I3PaABL2CJEVpvPgz17upFORbSxUPU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321582; c=relaxed/simple; bh=8Mq+y2b4QoasCHiS9C0t/oVV7yRpu9gPxY4aigJk7HQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=i/DaWvg1FwxLohheunpB6N0v546+mkJwMR36QzXXWNpDyRks/6Nw1If8SSu9qa6OzT13oCb4Q+OXbe2D5CdMK4uueIpVj8g085sVMfasaJ6Z9J5ZpYscmRUnQYFYjlli1RtfirDvx+Za2f8mKhlx7uA7u3iG7PrTlsStzO5Chek= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=tdikQQJW; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="tdikQQJW" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 20746C43390; Sun, 24 Mar 2024 23:06:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321582; bh=8Mq+y2b4QoasCHiS9C0t/oVV7yRpu9gPxY4aigJk7HQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=tdikQQJWQp9xy6d75sHuXuWGMnZOdatrTmAbf93Nf5lkWhqJT21cE4EQTt2e0FhMg t3Md6FPUMxM9FCISLSW0PXFLzc6NzVz1vHItJXoXbRSaknOWUQkIlXTT1p+N9hIVbt LTCZOYEI0dAoH5YsGS4q+2zVY+o+0U/GqokgIvWXoq02ECEECz/6iZjm5g92dRxWuR CDb9QM1WZ4+3oBATM65uullmtkZz4cqvb7ddYMmmmsL14yPMXqpcQpetemgUst9o3B Jytu0FthSXHClyI+B2/uEJ8mP1ycGbUMlQtiQoDMFkMTqqOw0jGT7NqPqJbnCpBfCS SvBp8djl4rGbw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Luiz Augusto von Dentz , Sasha Levin Subject: [PATCH 6.6 312/638] Bluetooth: af_bluetooth: Fix deadlock Date: Sun, 24 Mar 2024 18:55:49 -0400 Message-ID: <20240324230116.1348576-313-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 f7b94bdc1ec107c92262716b073b3e816d4784fb ] Attemting to do sock_lock on .recvmsg may cause a deadlock as shown bellow, so instead of using sock_sock this uses sk_receive_queue.lock on bt_sock_ioctl to avoid the UAF: INFO: task kworker/u9:1:121 blocked for more than 30 seconds. Not tainted 6.7.6-lemon #183 Workqueue: hci0 hci_rx_work Call Trace: __schedule+0x37d/0xa00 schedule+0x32/0xe0 __lock_sock+0x68/0xa0 ? __pfx_autoremove_wake_function+0x10/0x10 lock_sock_nested+0x43/0x50 l2cap_sock_recv_cb+0x21/0xa0 l2cap_recv_frame+0x55b/0x30a0 ? psi_task_switch+0xeb/0x270 ? finish_task_switch.isra.0+0x93/0x2a0 hci_rx_work+0x33a/0x3f0 process_one_work+0x13a/0x2f0 worker_thread+0x2f0/0x410 ? __pfx_worker_thread+0x10/0x10 kthread+0xe0/0x110 ? __pfx_kthread+0x10/0x10 ret_from_fork+0x2c/0x50 ? __pfx_kthread+0x10/0x10 ret_from_fork_asm+0x1b/0x30 Fixes: 2e07e8348ea4 ("Bluetooth: af_bluetooth: Fix Use-After-Free in bt_soc= k_recvmsg") Signed-off-by: Luiz Augusto von Dentz Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- net/bluetooth/af_bluetooth.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/net/bluetooth/af_bluetooth.c b/net/bluetooth/af_bluetooth.c index b93464ac3517f..67604ccec2f42 100644 --- a/net/bluetooth/af_bluetooth.c +++ b/net/bluetooth/af_bluetooth.c @@ -309,14 +309,11 @@ int bt_sock_recvmsg(struct socket *sock, struct msghd= r *msg, size_t len, if (flags & MSG_OOB) return -EOPNOTSUPP; =20 - lock_sock(sk); - skb =3D skb_recv_datagram(sk, flags, &err); if (!skb) { if (sk->sk_shutdown & RCV_SHUTDOWN) err =3D 0; =20 - release_sock(sk); return err; } =20 @@ -346,8 +343,6 @@ int bt_sock_recvmsg(struct socket *sock, struct msghdr = *msg, size_t len, =20 skb_free_datagram(sk, skb); =20 - release_sock(sk); - if (flags & MSG_TRUNC) copied =3D skblen; =20 @@ -570,10 +565,11 @@ int bt_sock_ioctl(struct socket *sock, unsigned int c= md, unsigned long arg) if (sk->sk_state =3D=3D BT_LISTEN) return -EINVAL; =20 - lock_sock(sk); + spin_lock(&sk->sk_receive_queue.lock); skb =3D skb_peek(&sk->sk_receive_queue); amount =3D skb ? skb->len : 0; - release_sock(sk); + spin_unlock(&sk->sk_receive_queue.lock); + err =3D put_user(amount, (int __user *)arg); break; =20 --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B51F5209E3C; Sun, 24 Mar 2024 23:06: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=1711321584; cv=none; b=bh2gxJUp0k2VoqPzvAJK1USBQ4HREccUTwRpjq/t2rDqi47nMz0z1cGgXq/s+sjj/sAlTZB3qazIB/MDMhgSoX3SVXvqCrzteWp6KDDgnFaVjn4XVK3jTiaG6Bp4/ftv27hsKUBg/l33py2BxWQyaEUddYvR1qaO+Lr4xnKzu3M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321584; c=relaxed/simple; bh=CgppWVbYSdfdH7pUfBvvux86ej8YyJiAHOmFHrzmnXI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=AMyy4v9w5p+bzE3bU9l73GRSK9BUbGzFDDTSiN1XVyYLzLWXAY5atRPcnSqzgkGDOhXlgOQXEvwJzl2QCDtCCQms9n02cKk42LXLI52RruCbfilAEbKXm3Q1Ar0Wsx+ut9KkmApC6GkZy5x8WZMGrRQBJrUmJs7vfuJr47wQbWM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ehFZX1Rq; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ehFZX1Rq" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E63BFC433C7; Sun, 24 Mar 2024 23:06:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321583; bh=CgppWVbYSdfdH7pUfBvvux86ej8YyJiAHOmFHrzmnXI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ehFZX1RqvvIXn1wwAHK9tM4cmW8Yk+6Ft6M4tCUuH/YAq2PLPMOsHgoy5+6XmZel9 4JQAV6Qk4TNv87TjgBzaA8yl9ToKvPY793MhxYmVdqWERrf+2+BktdRYz6CaGvUMtc yu9RLIt6vGV7hOsFTdWXmED0AnLFuorWyMvhA73b8x6/poBb2xJwv4LBtXo0hMQOjL vu6j03xISRakk6KjQTZDXqtrEoV7GH1xpnJWaOcVyGKz9wVclU8fg0hsQOtk4DkEnX KMN3wmPabvvzL5v8eMaXyRbwLkJ3kfIFTvXuS7QPWj3yXzQS92+YTkcViv0tcVjfZT T7u90PEMH56aw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Pauli Virtanen , Luiz Augusto von Dentz , Sasha Levin Subject: [PATCH 6.6 313/638] Bluetooth: fix use-after-free in accessing skb after sending it Date: Sun, 24 Mar 2024 18:55:50 -0400 Message-ID: <20240324230116.1348576-314-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Pauli Virtanen [ Upstream commit 947ec0d002dce8577b655793dcc6fc78d67b7cb6 ] hci_send_cmd_sync first sends skb and then tries to clone it. However, the driver may have already freed the skb at that point. Fix by cloning the sent_cmd cloned just above, instead of the original. Log: =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 __copy_skb_header+0x1a/0x240 ... Call Trace: .. __skb_clone+0x59/0x2c0 hci_cmd_work+0x3b3/0x3d0 [bluetooth] process_one_work+0x459/0x900 ... Allocated by task 129: ... __alloc_skb+0x1ae/0x220 __hci_cmd_sync_sk+0x44c/0x7a0 [bluetooth] __hci_cmd_sync_status+0x24/0xb0 [bluetooth] set_cig_params_sync+0x778/0x7d0 [bluetooth] ... Freed by task 0: ... kmem_cache_free+0x157/0x3c0 __usb_hcd_giveback_urb+0x11e/0x1e0 usb_giveback_urb_bh+0x1ad/0x2a0 tasklet_action_common.isra.0+0x259/0x4a0 __do_softirq+0x15b/0x5a7 =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 Fixes: 2615fd9a7c25 ("Bluetooth: hci_sync: Fix overwriting request callback= ") Signed-off-by: Pauli Virtanen Signed-off-by: Luiz Augusto von Dentz Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- 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 85a91c438d721..7d5334b529834 100644 --- a/net/bluetooth/hci_core.c +++ b/net/bluetooth/hci_core.c @@ -4185,7 +4185,7 @@ static void hci_send_cmd_sync(struct hci_dev *hdev, s= truct sk_buff *skb) if (hci_req_status_pend(hdev) && !hci_dev_test_and_set_flag(hdev, HCI_CMD_PENDING)) { kfree_skb(hdev->req_skb); - hdev->req_skb =3D skb_clone(skb, GFP_KERNEL); + hdev->req_skb =3D skb_clone(hdev->sent_cmd, GFP_KERNEL); } =20 atomic_dec(&hdev->cmd_cnt); --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A487512AAC0; Sun, 24 Mar 2024 23:06: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=1711321585; cv=none; b=BJ8C7BaKB1X8WaQQLXLtBMNokwApLKz852PBTgpW4iw3Xx5VT8SwKSdWro62oLaGXch0XIxIIM4QRwyL5cPWYuV0MCEyFF9/L5rKgd42RrWpB/4oTGe7zqrKZGX/X9yR/KSUzyWnpPBiJWPaDAJf1mnnXW6mHEg3wuZ7Bn5ajMA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321585; c=relaxed/simple; bh=cF4utwkVIlwsuri+yGIzK8zQ7Xl4PGNgqJiLSyNkDDs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=IDiSHNSidZTVi/0XMByKEtL4VRt2zALkQqTw513vQvwMVFRXUfVVPCePIa/ulMsV0KTBF63wmJwfFD6PwZBvMAiDeldXGbPU5Ct0gcbYLP/wEI4vLu8idDyCBJmjZTDhVYZGmkTZyZdTGVlruFGi0gM3rd2UKB/ClPthmWlQg3I= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Kdat+2Ue; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Kdat+2Ue" Received: by smtp.kernel.org (Postfix) with ESMTPSA id CAC2EC433F1; Sun, 24 Mar 2024 23:06:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321584; bh=cF4utwkVIlwsuri+yGIzK8zQ7Xl4PGNgqJiLSyNkDDs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Kdat+2UelAKLrsc3Rx+OdbFzmPj1xsHUIJJPBUQXTUkK7TnNqjdamPpboNQ8j2289 G5xfu7271MaV/eDXis6Jx72aT6IZyUNC0xyKVMkMTerBbnmFt+nt4jJ6SnxPBFaqJ9 6UiecBB+ydE0Ivid3TTxDs+elNdLdO8jcJiqTiTRzYzbJODiVIxFWVD+DES33fOXDd xI8mGHj8o107IAe00CbkROn0dxRolEfjbZNvzzSyVDIfJK5fkm1zlsDxq8IhobI6Cw VaBjh9hxQWhTBsgDBlPfCwH5E0VGDQnAHaobp8PsC7d9OlpyYjz/YZxjWQ4lpxTMf2 ORSTHReRqhwqg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Chen Ni , Simon Horman , Jakub Kicinski , Sasha Levin Subject: [PATCH 6.6 314/638] sr9800: Add check for usbnet_get_endpoints Date: Sun, 24 Mar 2024 18:55:51 -0400 Message-ID: <20240324230116.1348576-315-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 f5e19f3ef6cdd..4de5144821835 100644 --- a/drivers/net/usb/sr9800.c +++ b/drivers/net/usb/sr9800.c @@ -737,7 +737,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BB7A012AAC2; Sun, 24 Mar 2024 23:06: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=1711321586; cv=none; b=m3H4oCQWQUFPpo/+xljx6Pvs2cvGsotiCJFkzhVUp4rGgguNIjm5IdMlhLk1O5aEWPARCJ3VQILLUM4nHmAvOo/oXewm1JEBxst/EUbHc98f6ZbWkH8Gh7kiqlmk7/IsZqsEFVywDFK2D89W4XjhHT0oAesdcoBwtcSpflO4eMU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321586; c=relaxed/simple; bh=1CZXj3ZSEJhTLO9kDaryueK7/Emi8Jki56hPONpCagg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=in5hYDJW+Ilc4/dBhbWAnj1LQ7c3BHsvco81S3xC754RJxVvhJGtBaVG84CFzQ4K4Lz/knyneWDRJQ1broXGozh9rytwHzWY/IczINMPD8IByO2Objmgze4ezHZe5HteXoldB2h9xKnDPlyd6hZwoiz+MM5gtRnOq5cwvARS85c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=nBLdSo3+; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="nBLdSo3+" Received: by smtp.kernel.org (Postfix) with ESMTPSA id C58E4C43390; Sun, 24 Mar 2024 23:06:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321585; bh=1CZXj3ZSEJhTLO9kDaryueK7/Emi8Jki56hPONpCagg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nBLdSo3+JCYli9ujmnamYMMaO9Husap0rW7OWYe/lpkLAbLE69sd6vWaXfkbZGNat UYUGlgr3BuG8wVdmmB/44MuX6rzztUKBKB7q/jyA526MTsSG3qkpneb9Ew0WVkhgiT s+o8XW1DR8R49bPO8QZezFufRJvdhakVdXiWhip5RlX5P/pPKfM9YWvw0wRdJUlUHH ZUiynkubb252wKnx9xIkBWdWiJ7qJZLJWgzlTQkGsKRIvQwPx0B8hDE/ZYheyQp2j7 kNk77SYS13X9HGrlH3XbxHLzMY7KqbT0c7kdEMT7HXN7+IrAGtwsJaUZrL6WPlTdw7 FQffhN2nAVtxA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Heiko Carstens , Sasha Levin Subject: [PATCH 6.6 315/638] s390/cache: prevent rebuild of shared_cpu_list Date: Sun, 24 Mar 2024 18:55:52 -0400 Message-ID: <20240324230116.1348576-316-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Heiko Carstens [ Upstream commit cb0cd4ee11142339f2d47eef6db274290b7a482d ] With commit 36bbc5b4ffab ("cacheinfo: Allow early detection and population of cache attributes") the shared cpu list for each cache level higher than L1 is rebuilt even if the list already has been set up. This is caused by the removal of the cpumask_empty() check within cache_shared_cpu_map_setup(). However architectures can enforce that the shared cpu list is not rebuilt by simply setting cpu_map_populated of the per cpu cache info structure to true, which is also the fix for this problem. Before: $ cat /sys/devices/system/cpu/cpu1/cache/index2/shared_cpu_list 0-7 After: $ cat /sys/devices/system/cpu/cpu1/cache/index2/shared_cpu_list 1 Fixes: 36bbc5b4ffab ("cacheinfo: Allow early detection and population of ca= che attributes") Signed-off-by: Heiko Carstens Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- arch/s390/kernel/cache.c | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/s390/kernel/cache.c b/arch/s390/kernel/cache.c index 56254fa06f990..4f26690302209 100644 --- a/arch/s390/kernel/cache.c +++ b/arch/s390/kernel/cache.c @@ -166,5 +166,6 @@ int populate_cache_leaves(unsigned int cpu) ci_leaf_init(this_leaf++, pvt, ctype, level, cpu); } } + this_cpu_ci->cpu_map_populated =3D true; return 0; } --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6C91B137C52; Sun, 24 Mar 2024 23:06: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=1711321587; cv=none; b=RShA5qID13+yWyOi10KkldqQe5+DfkyFdeLosWuoY0k3O7Ur0VFcCqX66j0w6juKiOXxtwfqKx9myynPpYZ1bT3Mf4SvsJyCi2aXVFGIFPqhlLPmSiIEXn2r8pG2zElBDoty8V7sVhh6XjQbREhmBuwCkYC3DKe4UjSyI9tihT0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321587; c=relaxed/simple; bh=Mc/P9/6Sk5XwLDubGvWl2JOLLtczsB37LimzgM0opGo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=U8cNm1VoAz0Bo2yvcORx7rPxeEyWqlfbl0MKHmgvSfWs9kMpqyHSXNJMMGWNP9kUqk6OTqslyg+f2QOmCt0zgdUlqh387xns7RHOF8HY/VKE25yydSLfRYgothhDr6CwsQCTH4zbeSfdFeRLuIK9O8M22J+8IHDmBtzV283giLo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=KleW3R0z; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="KleW3R0z" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 93408C433B2; Sun, 24 Mar 2024 23:06:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321586; bh=Mc/P9/6Sk5XwLDubGvWl2JOLLtczsB37LimzgM0opGo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=KleW3R0zyh7TZJlhxGfjVSlzoCQ3I5ZLY5qAeElJnsp4jUw4sNAEVzCz7GXWoLIIM 9Wk6W4MjFZMGlyaOEoQyM4QFcoG14VRTTk2HyG+X6zyUstGxXw9rJKjZp4I9YA2zsU Pi76BNQXXk/tHItqXlNh4S4cP/mX9oP9ymqBzvg71pBZKIbuiGj7eLfQ9oj2lwRi2y cYG5OcVY6S+96DQRnFDtcaU8TPQTHglZcPJz/9hRuQTu+5zAO/Om16yK/V6kphTCFf jM2BVPDUGKBisX5epOs+Is3At9bufqm5liBg/MVuEzhxt/Gb01cWbKAJku/goqS3dE s2dKAYulgMMOw== 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 6.6 316/638] bpf: Fix DEVMAP_HASH overflow check on 32-bit arches Date: Sun, 24 Mar 2024 18:55:53 -0400 Message-ID: <20240324230116.1348576-317-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-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 Tested-by: Takeshi Ogasawara --- 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 4d42f6ed6c11a..69e78dc4bb18e 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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4C269138481; Sun, 24 Mar 2024 23:06: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=1711321588; cv=none; b=gzlf89fbCFDrA0Gt8MP8wEPANn1t5wBrGvU+kDlzH6RSyPrJMW8nru4zjXiLVFPzIWLxq0ZsMhbZAJVtnbtJMKHxqJXEU0RwijIwrc1LJzN8R+VgZpVWYzwBBon25Clo1V1Bmx3y3PYTJbgD0gG3ImUvy3eAy3AJi5vZTliam4U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321588; c=relaxed/simple; bh=BSB4jCWJU4ghse22gPst7g6+o8OVQyN+w/jFKOUHFEg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=NYyetcPkcnN4Zfz3H94GW0JnBD5M3MB18871FZF3YIo7fVLS7iRtYdyz13YUTSMXxOS4m4vVPB5OAbWjEyE03ncp/RWlGjrpdANwxiRPF89lROyuqOhgRtXd/CqXFxVca8HQghPBiwxQqXwXWnKrnDhRPp7hck9JHgXuhG1eiEg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Qa42jo1/; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Qa42jo1/" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8EC5EC433C7; Sun, 24 Mar 2024 23:06:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321587; bh=BSB4jCWJU4ghse22gPst7g6+o8OVQyN+w/jFKOUHFEg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Qa42jo1/dEZdNZ0lvWQqgTdoSVUWrmpjn0LPXbuRgcOnKAPNqbfxM7jAMGD/a3EV+ pkHiodm8QPqN0+MMucQsxj7lDsssydj7Gfw7PE2iGpX/7Df9InXkqHl1nTdQ3Xi48x eTTjGZHF2vF+5if2Zn+l1S16Zy79fuY31hpG9IZlvvj3AM2x1Vhm9lGDeKIVQZr1j2 K5aBs+wtS7SHfa3txR71WElQtJQQHLY5tZ2fnFFe1bZVyyr09HRDiQ5CCn6uT4EHft Yxk1kajQha0WXe8ek4XvsEKtOcQZuiKrmU2bS8fJbbsyBnyM7l1L+yXE/7d99H3xEa VgVxReSwdTjMQ== 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 6.6 317/638] bpf: Fix hashtab overflow check on 32-bit arches Date: Sun, 24 Mar 2024 18:55:54 -0400 Message-ID: <20240324230116.1348576-318-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-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 Tested-by: Takeshi Ogasawara --- 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 5b9146fa825fd..85cd17ca38290 100644 --- a/kernel/bpf/hashtab.c +++ b/kernel/bpf/hashtab.c @@ -498,7 +498,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) + @@ -508,10 +514,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 bpf_map_init_elem_count(&htab->map); --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4BA9613848E; Sun, 24 Mar 2024 23:06: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=1711321589; cv=none; b=e9vnNnLbZDgCsTI0X2bI6Uu+XVai3z9P1UQ1E7sYPyqKPU4N30IuEfgysgd+gFymf+Zlz8b9ECipAGpJM5n4eAH8S9imbcrTKO3jZdeQBpQtUZ8JrFuWqEuHCqnDHeQlxW2a5sh0lCZg3fiAcAWxv7QF2CeGM6ubUBVu9n8Ua8s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321589; c=relaxed/simple; bh=cw8A2LG6a4oZo0tYO+defptfQoLZHRPmb0Ms7zyq914=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=ZnZthdzk37WPAJZ4zDQnpnsQnC0audWRHAIImZJw7K5lhGUqEC1+v90957y/7owuNzXrIDxbheNtb/Iz9BUM1wj6JMNgeexepGHBoYAjRFfbLDm88BaEG5dV9KeI/bN6RN7YZ0vaO1HPRr344dbM1GnToVz2klGONxpns/yzUpI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=hMjx0sMH; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="hMjx0sMH" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 71C7AC43399; Sun, 24 Mar 2024 23:06:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321588; bh=cw8A2LG6a4oZo0tYO+defptfQoLZHRPmb0Ms7zyq914=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=hMjx0sMHGfUgVF2hwuMIEvindKN3+ftBzoDpti+9f3nYWnC8GkYMJIl39MmYvho7K 1zjf5A7ykekY1itstk7vuSmBg0ycvNU7D61BfCgHXiWJ1chKOh54ZCoWp3O/ZHnA35 jWHW4qm3e55vAl0KgtKG/3iW1wJl4aqlOSOv/ildHCD0UfQLgmpuXtzYDhz4SDHBbW L/0ps672fFlxEw5dzB76vj+ThYP1O09SLYtH5C10XuHgBATFwyFkzF5b6Uvc5DYdVg pUvG36CVrNyOJNYyCJDOycCcVwXlNCYLX0R3hrJ3fsBXhWabISZ3KI80cqZ/u6G5zT gZhsoxePiGfXw== 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 6.6 318/638] bpf: Fix stackmap overflow check on 32-bit arches Date: Sun, 24 Mar 2024 18:55:55 -0400 Message-ID: <20240324230116.1348576-319-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-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 Tested-by: Takeshi Ogasawara --- 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 36775c4bc33fb..a330f38ae7335 100644 --- a/kernel/bpf/stackmap.c +++ b/kernel/bpf/stackmap.c @@ -91,11 +91,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 47071138494; Sun, 24 Mar 2024 23:06: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=1711321590; cv=none; b=h1RQdpHpQDgnd30yKG4sGg2JTB08eTW6YbQkg/FW4AOwMETfQnEfP1GCYmDl8lYFc8RB59PFVWDBcCV+Mfu0PnIKDC/HtI3YI/P62pfq6ri/i7K3hQkvymJvHdtxxgtao4/gPmNbMgp2HGx6t4NjW9KUAUOTl+mmjwqeL/6YK40= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321590; c=relaxed/simple; bh=5IHzwXFEDLmKBoZe6jt3RYoOyPNjtFhnX/jOGOlGnzo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MnJWAHmt/kjFactpOxFsu6ElGMEaBOhfaT/pe0Ewh0lZ6d5u0nNId3o+TRl028sKDJFFzjpeCcwW/KYbvcphfI9ZLEt4a6tU7E2h2pSAnc6fxMnPwOmtb++P10T/gE5xriRU6wj56ngrtc2cpcjVUeOwkFCULm7Z+pvCXrnKEoY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=GEo92aax; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="GEo92aax" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6EBEDC433C7; Sun, 24 Mar 2024 23:06:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321589; bh=5IHzwXFEDLmKBoZe6jt3RYoOyPNjtFhnX/jOGOlGnzo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=GEo92aaxd0UdlXAV00WMoM8g2lK24nwKFyV5Vi7CJCBavA9vOIinVT96zxDeU9gSH WIawAX/tivb/8TJKdXUafBFrMBa2dwGak/WnqF9UH7At3c6ODMWllvv8cSg8nzm4xj QkpSEHaLt/n+qWkVKQ0GLLVxYN9MdzrttGshmmEP/7Z8zyQnN88UwxI1s/YCtJg+Kr JPw1D7ehfutUp0H13W3TA1nnma0k6M8JnVBfN9Uzf2lPX8bpnuZaYlE1EYfk97UXKb 1kzPUdcPoGQVizX3XO93wFJMWM+ZjPG274GJSXS4POn0cy71FOL/923v8f8dMFnvpd kY6+m8tfdybZA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Bert Karwatzki , Lu Baolu , Joerg Roedel , Sasha Levin Subject: [PATCH 6.6 319/638] iommu: Fix compilation without CONFIG_IOMMU_INTEL Date: Sun, 24 Mar 2024 18:55:56 -0400 Message-ID: <20240324230116.1348576-320-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Bert Karwatzki [ Upstream commit 70bad345e622c23bb530016925c936ab04a646ac ] When the kernel is comiled with CONFIG_IRQ_REMAP=3Dy but without CONFIG_IOMMU_INTEL compilation fails since commit def054b01a8678 with an undefined reference to device_rbtree_find(). This patch makes sure that intel specific code is only compiled with CONFIG_IOMMU_INTEL=3Dy. Signed-off-by: Bert Karwatzki Fixes: 80a9b50c0b9e ("iommu/vt-d: Improve ITE fault handling if target dev= ice isn't present") Reviewed-by: Lu Baolu Link: https://lore.kernel.org/r/20240307194419.15801-1-spasswolf@web.de Signed-off-by: Joerg Roedel Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/iommu/Kconfig | 2 +- drivers/iommu/intel/Makefile | 2 ++ drivers/iommu/irq_remapping.c | 3 ++- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig index 2b12b583ef4b1..d57c5adf932e3 100644 --- a/drivers/iommu/Kconfig +++ b/drivers/iommu/Kconfig @@ -191,7 +191,7 @@ source "drivers/iommu/iommufd/Kconfig" config IRQ_REMAP bool "Support for Interrupt Remapping" depends on X86_64 && X86_IO_APIC && PCI_MSI && ACPI - select DMAR_TABLE + select DMAR_TABLE if INTEL_IOMMU help Supports Interrupt remapping for IO-APIC and MSI devices. To use x2apic mode in the CPU's which support x2APIC enhancements or diff --git a/drivers/iommu/intel/Makefile b/drivers/iommu/intel/Makefile index 7af3b8a4f2a00..29d26a4371327 100644 --- a/drivers/iommu/intel/Makefile +++ b/drivers/iommu/intel/Makefile @@ -5,5 +5,7 @@ obj-$(CONFIG_DMAR_TABLE) +=3D trace.o cap_audit.o obj-$(CONFIG_DMAR_PERF) +=3D perf.o obj-$(CONFIG_INTEL_IOMMU_DEBUGFS) +=3D debugfs.o obj-$(CONFIG_INTEL_IOMMU_SVM) +=3D svm.o +ifdef CONFIG_INTEL_IOMMU obj-$(CONFIG_IRQ_REMAP) +=3D irq_remapping.o +endif obj-$(CONFIG_INTEL_IOMMU_PERF_EVENTS) +=3D perfmon.o diff --git a/drivers/iommu/irq_remapping.c b/drivers/iommu/irq_remapping.c index 83314b9d8f38b..ee59647c20501 100644 --- a/drivers/iommu/irq_remapping.c +++ b/drivers/iommu/irq_remapping.c @@ -99,7 +99,8 @@ int __init irq_remapping_prepare(void) if (disable_irq_remap) return -ENOSYS; =20 - if (intel_irq_remap_ops.prepare() =3D=3D 0) + if (IS_ENABLED(CONFIG_INTEL_IOMMU) && + intel_irq_remap_ops.prepare() =3D=3D 0) remap_ops =3D &intel_irq_remap_ops; else if (IS_ENABLED(CONFIG_AMD_IOMMU) && amd_iommu_irq_ops.prepare() =3D=3D 0) --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 579F91384A4; Sun, 24 Mar 2024 23:06: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=1711321591; cv=none; b=jrWmfn9ZszeSLoZQBkVAlvuG2OxPsx1oGH8+fn9/hKJ4I97u4Z23iLt0iCjyK4OqASG5sdGhJcBadMVeaa0q7aTK8CPdQOZkfPBXghcXrrYAyUQNU0sU66LUZbn1BXDQ7J1L8CPnqQ+cfqpOrgfBbUiOl9f0V7aMODLHwkBWagc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321591; c=relaxed/simple; bh=pNcFH+ooFkIv/Gh6pWZygMrI9+wZ6KT5OyHzXrzdBTc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=bzFBD9qbto6mH6AVyXtaPG+FCNyd3rg2DVatPBWZggN9mrLz9XBalL17KjXJR/IQ1Fjedgw9PvQ0WKwHNr48f92346cEz/mSRZCqYJWvFdpo8HR+VC15w4afDK7tRYIGFhsiuBh6VPyLqUiQd4PD70/Kmk4xsads3LznXYg2UZE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Tnn4/sOL; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Tnn4/sOL" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6AE0DC43394; Sun, 24 Mar 2024 23:06:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321590; bh=pNcFH+ooFkIv/Gh6pWZygMrI9+wZ6KT5OyHzXrzdBTc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Tnn4/sOL7KL4cJd+v3EhqAY8yProSz0cshrbEAbjXF5Ffo+EtVVr1v6u4pPfnacdM mpXccYSSMoTiYVk0hik5HEmBrWtKLfYGD0KQwB70nMPoFAiuNgpRWML9gwTnl03whh j2URncIDoC5Po5aH/076HLdSl4xvMROsmHiWre5a7QB57PLRpGxo16sCfmUNsmwSXN VdE6VtOjZTxvrg2mJmvoY7OoRJOXpNxin9Z1CKYJxHGvs57EPC86aqfLOe2paE4cWd XwlTBi1I/HCePYoOH3x6j02MHGG22W+HFwSelWvZF0FGdU5Du/wrENKbv0Dp60nSkr DHKQIS9aQyQjQ== 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 6.6 320/638] ipv6: fib6_rules: flush route cache when rule is changed Date: Sun, 24 Mar 2024 18:55:57 -0400 Message-ID: <20240324230116.1348576-321-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 7c20038330104..be52b18e08a6b 100644 --- a/net/ipv6/fib6_rules.c +++ b/net/ipv6/fib6_rules.c @@ -449,6 +449,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), @@ -461,6 +466,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, .owner =3D THIS_MODULE, .fro_net =3D &init_net, --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BB790152161; Sun, 24 Mar 2024 23:06: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=1711321592; cv=none; b=i/6AZKJltVIOW2Yc1wFg7kOiIMvE7q9vKzzE9e8s+zWMRnjYftR46/FoxuzcBhCDbsPYIRwsoP+rmWbfwxQTIV97jjcPCNv3fgqiZT4wUKPETyKOBQhtPMS1o0QZMU2wKfzkIRUbZGZ7jg8ICCCXeN0YY//4ibWSiDqYjNjg+iA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321592; c=relaxed/simple; bh=+QkvvFUsfzJGAOfFG7l43e6uK8qVL5kgLn0QxLrcRik=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=kpUBf5pbZos4PvMuBpwjJq3NYri9B41TznEVNwo5GGkZqUPDKGdV9+CuVwCCAn0vcD9rdIFfG8+WLdDvmOpwZYtTGtKbwNk4kxcPxWbWjweYLwOmJjtMHnISkYp02AyCs2thS0dmZW2Xxtszud/JBYjrKhJq0MTCDdPWt75Otrc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=V3U/MlzW; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="V3U/MlzW" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8A4F8C433C7; Sun, 24 Mar 2024 23:06:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321591; bh=+QkvvFUsfzJGAOfFG7l43e6uK8qVL5kgLn0QxLrcRik=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=V3U/MlzW/yJwwoggciE2sgbNLn0l9UnAYAommKCM7UxC/20WamxRs/qqQfPcqlfYG s3+ELeFJDP4SIlOUmKpGPsALavMPK4KtgykmWcNYHzqvO2qgS5zKnummi/IWR/A32h wRAVsqTBIHSiT2aT2ajG5PpygDKFAGMZi7kdvJ+jaEW9egN4q+AZYYYWLRp1hlhmAV HZH7EWZbmR6pC+o9+NCwbuA9xslJvt/edXQbcW6X94p/I3Fx7WDVteRc3efFGdojpm vHyvFu8fEE7Ag3d+dbhLCFTrwpkTEx++GQ/YVe0V2BtETjDwI9SpWOZd90B8IQkZUV bJyscTZjh2xpA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Eric Dumazet , syzbot , "David S . Miller" , Sasha Levin Subject: [PATCH 6.6 321/638] net: ip_tunnel: make sure to pull inner header in ip_tunnel_rcv() Date: Sun, 24 Mar 2024 18:55:58 -0400 Message-ID: <20240324230116.1348576-322-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 2d29fce7c5606..b1b6dcf2161fb 100644 --- a/net/ipv4/ip_tunnel.c +++ b/net/ipv4/ip_tunnel.c @@ -378,7 +378,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)) { @@ -404,8 +404,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D366315216A; Sun, 24 Mar 2024 23:06: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=1711321593; cv=none; b=o8kqd0PyHt1yLE4iA3u1nW6KSzH6BQ0Q7DBI8JIGnVQ0JWPd+B1d12uv5rpORGf8Y6m3QzXpeJhWFyxaiuiIWbGZw30oh5uNiT15Wt7KPh+symHDlQu3LSU4bJ0R2orAl8XsQqUgXzcpHdHgcG6GiT6t8wRrbQ8u40Gx5VSsxPM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321593; c=relaxed/simple; bh=AFtDp0I19989MUL6aaJ2DsxhejQl4XuhXqLEYgx6LVo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=ORvRw0weGkqS+6jJrGj25Abtp9T7dBYZLRwpJxP5+VoZ0hJak70K5aLnmUBwgrCRaL/qqgWL9PVWx6nNjB3A1wurpBdMLOZQLCIE57YBZYBYKN631U7XcfaUO+WTp49FSQT6CrtBDPYJpj+d5sFRnIgrpOlL5nhb3W4BuGG8Bcw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=qnVco60t; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="qnVco60t" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E244EC43390; Sun, 24 Mar 2024 23:06:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321592; bh=AFtDp0I19989MUL6aaJ2DsxhejQl4XuhXqLEYgx6LVo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qnVco60toYoDibtZxwkdJXiY0iA4nk8AhUUxwvS2smH3W4fsUQrsdEoylBKTEnv91 ztGXgK16ugXhUGjIPK6n88B1Do+7lX3cEgTOAlytxhOETUveH9cuiBKDyaHoPr+imh P1M5d558q/Len9ovTS5pkErVZPpjiKf7u6jB6Uj40D5gQ3yUTtKPUwNQUsSO2VvMOg cISst1OaD2vlS/H0T5xiivELEcrbb+qi/mqpzHlTvp+zgW3zD+g9yvlZxUq3GJkuEM yJ+FvLfuy9u9rhYUShBMNCBsV3wjJMPclK7Vzdn4/4My67vXIo58iIAXN65b3rO2mx lACEywmOsPHBw== 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 6.6 322/638] net: phy: fix phy_get_internal_delay accessing an empty array Date: Sun, 24 Mar 2024 18:55:59 -0400 Message-ID: <20240324230116.1348576-323-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-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 Tested-by: Takeshi Ogasawara --- 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 a42df2c1bd043..bbc459f97b7b0 100644 --- a/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c @@ -2954,7 +2954,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BBF74152174; Sun, 24 Mar 2024 23:06: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=1711321594; cv=none; b=EuX9PhdkplbY4LdBiF4xUH5rHBglrc439HpxvtYju3gaQFmFUxJ2pD/Xb0V/nqm9dX9NtIYwWnV0P9ue6i7xrTTzZ67tKaycv/XMTyUnRYVOp5OOPEjuf8mc4oVp90f/y9rGCgyvc6o5bnZQzSAEX1I4cZUeU/de3y+HfEtDWpM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321594; c=relaxed/simple; bh=vP825Ku2Y5fpQtvsySFA7Z6w4KP+omheovnqVtB+F0Y=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Qz8n/ONco6Sjw/nx3Ie3P/YD9Dj95Ozd7bmzecZgNLw7tEzhv5qcQt/u+uiST/RxahsBvA/ZEY81CLaFN3Wu1hIeF7lLbqroBjODc9EJ1kMq1YHpnhQgaYSUxKtkAdwIeU8gvmeBhAjbbfLA5t1U383yITuvuqxIj55zrUyppYE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=FUvdypTT; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="FUvdypTT" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 03FBBC433C7; Sun, 24 Mar 2024 23:06:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321593; bh=vP825Ku2Y5fpQtvsySFA7Z6w4KP+omheovnqVtB+F0Y=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=FUvdypTTnGVuLO8XjDjMoaJpXkeZbxhJYFsHBkW+ndMtwsU+9Lxd6r9kRDUmZHKRe OY0HKfVqowx3xHF8euaNGAMlx5J6j8tUX4YbLlUVJiV/9Yj0DpypFvyNWf28a1ZzXu P83DFAYgqi0NOQJK24+BHHXXxN76qqhgxCPpNwAyv0fr1dRSZrBjGaZkcZJKAhGImA Du/QkQ5cmuZ1d3Vp/aoE7KV3rm320LZ+hNfqhA8bvaCDimoWSYWx7KebzulWGf3Cxy DlZ8RN4E9bRmYmKLMyVUPOxittBgF+6paRCBipai5MTRlpiEeogiG3z7aN5X1Pen+8 qofNgsi73ykxw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jijie Shao , "David S . Miller" , Sasha Levin Subject: [PATCH 6.6 323/638] net: hns3: fix wrong judgment condition issue Date: Sun, 24 Mar 2024 18:56:00 -0400 Message-ID: <20240324230116.1348576-324-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Jijie Shao [ Upstream commit 07a1d6dc90baedcf5d713e2b003b9e387130ee30 ] In hns3_dcbnl_ieee_delapp, should check ieee_delapp not ieee_setapp. This path fix the wrong judgment. Fixes: 0ba22bcb222d ("net: hns3: add support config dscp map to tc") Signed-off-by: Jijie Shao Signed-off-by: David S. Miller Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/net/ethernet/hisilicon/hns3/hns3_dcbnl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3_dcbnl.c b/drivers/net= /ethernet/hisilicon/hns3/hns3_dcbnl.c index 3b6dbf158b98d..f72dc0cee30e5 100644 --- a/drivers/net/ethernet/hisilicon/hns3/hns3_dcbnl.c +++ b/drivers/net/ethernet/hisilicon/hns3/hns3_dcbnl.c @@ -76,7 +76,7 @@ static int hns3_dcbnl_ieee_delapp(struct net_device *ndev= , struct dcb_app *app) if (hns3_nic_resetting(ndev)) return -EBUSY; =20 - if (h->kinfo.dcb_ops->ieee_setapp) + if (h->kinfo.dcb_ops->ieee_delapp) return h->kinfo.dcb_ops->ieee_delapp(h, app); =20 return -EOPNOTSUPP; --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B751E152180; Sun, 24 Mar 2024 23:06: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=1711321595; cv=none; b=A3Trg8xYes2wszdscF+o5b3R+9vcFvGZAe5kyiyKSWiFJvxM+n301nIOS/C4i61hf0JK3MATUDU1vUGfqNTDlbeom7m4IFRRW7xohzTUJDcv5MvUpbcZ2KeQNDkt0HXkco8UmfLgL16zCY4XcQsIHZcM/O9VbG4Cb0DuqiCb2DY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321595; c=relaxed/simple; bh=vqdGYh2qX5PJMHJlK/yEfcvomm37fo5U2NvzLr8m9aU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=g7ErE9MEc5w9L5pabhxn6awFgeCFA7+h9pGDsxo3yuZ9Pve9KSpXhcSFYT6uWcBCxmHaZHsKwktRbMImEVbA1Embx7GF/ZExq2fEBaHVyBAYObrhY4lIU+Z1XT/cHn3WG40YAI2l4bA+Dq7I84ouANp9HZ2AOcM9/8pEQ3WS6nA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=FoGH3MoA; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="FoGH3MoA" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E121DC43394; Sun, 24 Mar 2024 23:06:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321594; bh=vqdGYh2qX5PJMHJlK/yEfcvomm37fo5U2NvzLr8m9aU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=FoGH3MoAu4l0cSeGNeyOl+CF51hz1P28fa8NU0ZJ7Xezr2/J8rO+FTiMLRPaxMSb4 nC5yTN90UD2XjwNRdr5kaYbgAcNMwzmnqpcPrPKtvxCcPgrvxiioNaHGHcwG4yG5Mk NXuqO52lAAx2AKAGXeAbIysTusXBfx/U0sbcWM50+WzETrCZAsBf4wkxNJn9+y8pwc axM3F24/GQ95McBjpqS2/TcOGnmxQsyOlm1kcqh4BPElK0xAw5FtWJY15/Q7Q3sHCz dBI0Y9Sq0DOsWuRc8ihjBqFG6NDLw08W1WVnWiWuLjrOzc2le5m2TjkaG6k9b5avRq uiotzLf9c/xPg== 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 6.6 324/638] net: hns3: fix kernel crash when 1588 is received on HIP08 devices Date: Sun, 24 Mar 2024 18:56:01 -0400 Message-ID: <20240324230116.1348576-325-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 80a2a0073d97a..507d7ce26d831 100644 --- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_ptp.c +++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_ptp.c @@ -108,7 +108,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id ADEB015217C; Sun, 24 Mar 2024 23:06: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=1711321595; cv=none; b=UM/WiVX0TtGh9yRFDgdw6Pj437MV6cs6AD0SdlpTP/Ld4jhYhEbEW+QJo0DS9PGjHz8+rDbMAV6nJOvjMrFMC+dKA8dDXE1qloxdnigaFA+izMZP7RgBJRWlDWd6B4emBmdiyn/JwcRdx9Psi5z/yjlRaJQOc/u7TctECg/9Ytg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321595; c=relaxed/simple; bh=i8GOse0XXSOTUuw/dmIRAVxphC44VuT3GLlF3HCDOdA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=D3gS/evJIfZnASY6TOvugSqNaT15ot5fso7p2nSnc909e/iI9tcW6X9upqvVJTfCyFoJadhBWg54gmGJMpIRz6gCjE/assUAEdIuqbNpoafNRYBt/GBwrEU5FFKNvGjdJZKHXT4yMyvk5ZlTI5m/ojlx6Hug1MH19GoxwbxQtGk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=oqkLk4vg; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="oqkLk4vg" Received: by smtp.kernel.org (Postfix) with ESMTPSA id DAC6BC43399; Sun, 24 Mar 2024 23:06:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321595; bh=i8GOse0XXSOTUuw/dmIRAVxphC44VuT3GLlF3HCDOdA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=oqkLk4vg4QFWPVdT7CK14fM7jQu39Y7b6axFWsC56WhMEgXj/e3vmGgZgr2tukJoQ O/uxtZHcLg4FnwKdDqCEaNOK7F9O8Moo3VkB9sN3QGTMBQ0FM+92HJZNDfBt2BDefN fsztcGAzskMR/y6ytbPqt0wWGHETaCkAungFLXkaUICiKCaS0WpJbg02fLnapoh2M0 fJbUnmykiK0B9IRAtguUbUiAZyPJyo8o1rDwg+MLztTHyyVfDLSTr200memh89MKiI u4a3aPsKKXwsUaIOPRJBobtkt9lSKXs5IwxKusMGwjnqFJRK8ug96KvRubbXTZ42VB no80d69UHyj6w== 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 6.6 325/638] net: hns3: fix port duplex configure error in IMP reset Date: Sun, 24 Mar 2024 18:56:02 -0400 Message-ID: <20240324230116.1348576-326-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 a61d9fd732b96..f1ca2cda2961e 100644 --- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c +++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c @@ -2892,7 +2892,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, hdev->hw.mac.lane_num); if (ret) --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9864215216F; Sun, 24 Mar 2024 23:06: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=1711321596; cv=none; b=OU9c4br3pctcAeBKNBbyf6Iqyf6u9Tw0i/HvK2tWi9P9B7zIKlkQeH0iqRA0AZvefknbMwZ0bbHWKVkv93q9Ekwv2+Pl+jdn4inNsucfOaY6ZdQIzISqv1o38tjqVGMUM+4bz9311zPyckPqa9Xlp3S1IaDAJt1S2NQ4n5a/6cM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321596; c=relaxed/simple; bh=LHMGvFVwf3Qcf/aIqresdD78FYxbY6AGHTVAdf9r6kw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=mkhMFDN0BKZUvhbMZpY6Gm4Lg009LBQnKvpsewOKV/M8c3iqVYK2omjK+i1BWJ/bL9D4lSzYYF3o2WedZ6Cm5POKJGpxrQp3tYx4ItpE5MI2GU0dNUwPNTniEN80GmDhmlFpxlTRSuRhmqsK/HWv1eaBeM1lP3SmSSSIFMjjMRg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=eTxZpxd+; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="eTxZpxd+" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D5D37C433C7; Sun, 24 Mar 2024 23:06:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321596; bh=LHMGvFVwf3Qcf/aIqresdD78FYxbY6AGHTVAdf9r6kw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=eTxZpxd+clatMhrCiEZoA2gTjqL7SnlASEmdFKOTUbsDfJ8r+AXOS4243gHTtEoFd YrqXKk3HwQxfd71yQfkexlDyD87cPXQNsVCyHFCwUYlQj9y7hiSpj1hNVqpgoE6nMz MV/6+jRJDshtkxQmHpxqI8NJ0xhZWjCPOi6uOlDKTkZzuBDO6127mGVOaT5jDYOo15 uBejFRRNiVyLUZ0/krV23xYnnSCSBm8+iRG45VU4TUBLnB3ZSUl8QASyRwoV7ilUrW ZdB4NHN5OdTMb/dWJcvYjIneo3lksWDZrvlJADQGWhWaKjEdQiwzdIopTbAdBlitMd DqeSXMdPFB7KQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Danis?= , Luiz Augusto von Dentz , Sasha Levin Subject: [PATCH 6.6 326/638] Bluetooth: Fix eir name length Date: Sun, 24 Mar 2024 18:56:03 -0400 Message-ID: <20240324230116.1348576-327-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-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: Fr=C3=A9d=C3=A9ric Danis [ Upstream commit 2ab3e8d67fc1d4a7638b769cf83023ec209fc0a9 ] According to Section 1.2 of Core Specification Supplement Part A the complete or short name strings are defined as utf8s, which should not include the trailing NULL for variable length array as defined in Core Specification Vol1 Part E Section 2.9.3. Removing the trailing NULL allows PTS to retrieve the random address based on device name, e.g. for SM/PER/KDU/BV-02-C, SM/PER/KDU/BV-08-C or GAP/BROB/BCST/BV-03-C. Fixes: f61851f64b17 ("Bluetooth: Fix append max 11 bytes of name to scan rs= p data") Signed-off-by: Fr=C3=A9d=C3=A9ric Danis Signed-off-by: Luiz Augusto von Dentz Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- net/bluetooth/eir.c | 29 +++++++---------------------- net/bluetooth/mgmt.c | 2 +- 2 files changed, 8 insertions(+), 23 deletions(-) diff --git a/net/bluetooth/eir.c b/net/bluetooth/eir.c index 9214189279e80..1bc51e2b05a34 100644 --- a/net/bluetooth/eir.c +++ b/net/bluetooth/eir.c @@ -13,48 +13,33 @@ =20 #define PNP_INFO_SVCLASS_ID 0x1200 =20 -static u8 eir_append_name(u8 *eir, u16 eir_len, u8 type, u8 *data, u8 data= _len) -{ - u8 name[HCI_MAX_SHORT_NAME_LENGTH + 1]; - - /* If data is already NULL terminated just pass it directly */ - if (data[data_len - 1] =3D=3D '\0') - return eir_append_data(eir, eir_len, type, data, data_len); - - memcpy(name, data, HCI_MAX_SHORT_NAME_LENGTH); - name[HCI_MAX_SHORT_NAME_LENGTH] =3D '\0'; - - return eir_append_data(eir, eir_len, type, name, sizeof(name)); -} - u8 eir_append_local_name(struct hci_dev *hdev, u8 *ptr, u8 ad_len) { size_t short_len; size_t complete_len; =20 - /* no space left for name (+ NULL + type + len) */ - if ((max_adv_len(hdev) - ad_len) < HCI_MAX_SHORT_NAME_LENGTH + 3) + /* no space left for name (+ type + len) */ + if ((max_adv_len(hdev) - ad_len) < HCI_MAX_SHORT_NAME_LENGTH + 2) return ad_len; =20 /* use complete name if present and fits */ complete_len =3D strnlen(hdev->dev_name, sizeof(hdev->dev_name)); if (complete_len && complete_len <=3D HCI_MAX_SHORT_NAME_LENGTH) - return eir_append_name(ptr, ad_len, EIR_NAME_COMPLETE, - hdev->dev_name, complete_len + 1); + return eir_append_data(ptr, ad_len, EIR_NAME_COMPLETE, + hdev->dev_name, complete_len); =20 /* use short name if present */ short_len =3D strnlen(hdev->short_name, sizeof(hdev->short_name)); if (short_len) - return eir_append_name(ptr, ad_len, EIR_NAME_SHORT, + return eir_append_data(ptr, ad_len, EIR_NAME_SHORT, hdev->short_name, - short_len =3D=3D HCI_MAX_SHORT_NAME_LENGTH ? - short_len : short_len + 1); + short_len); =20 /* use shortened full name if present, we already know that name * is longer then HCI_MAX_SHORT_NAME_LENGTH */ if (complete_len) - return eir_append_name(ptr, ad_len, EIR_NAME_SHORT, + return eir_append_data(ptr, ad_len, EIR_NAME_SHORT, hdev->dev_name, HCI_MAX_SHORT_NAME_LENGTH); =20 diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c index 2ffda2ffdbda8..92fd3786bbdff 100644 --- a/net/bluetooth/mgmt.c +++ b/net/bluetooth/mgmt.c @@ -8400,7 +8400,7 @@ static int read_adv_features(struct sock *sk, struct = hci_dev *hdev, =20 static u8 calculate_name_len(struct hci_dev *hdev) { - u8 buf[HCI_MAX_SHORT_NAME_LENGTH + 3]; + u8 buf[HCI_MAX_SHORT_NAME_LENGTH + 2]; /* len + type + name */ =20 return eir_append_local_name(hdev, buf, 0); } --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7FA88152197; Sun, 24 Mar 2024 23:06: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=1711321598; cv=none; b=kKHKIDj6vGvXWPth0/b0mB4+IINqc9u7vtvHX31WV/cH8CLoNgGwZEaRIdlv08wVufwipwS4GJ20wcKC8zgwfjV/k5Bptew/Ikh9wCnx1qa5WgPcHIF0E8LhoZjVN2JvHAPFPwL4Rbbl964s5JPikS/Ifn0j83lMsZW9lLL/PPk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321598; c=relaxed/simple; bh=eHTqfpRH4w1jwSBCjC/7u/xx40HMa+l75jbyu7n46y0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=t4815LuB52UzOmVtoKPa3taCEiGQwWjX+/W4GsIB4dGeEvhLMAgsNamSWzbH7I9DsGlrl4RTAfXyvSQ2UUTFaAkgehYCuJHmBcmfVxC0ycEahhd/SsquYEobh7f7jY/bXCL+WcUCElo5uDTP9duwoNpc3pc64nKojFSDz5oI0cc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=l6NxvZCl; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="l6NxvZCl" Received: by smtp.kernel.org (Postfix) with ESMTPSA id BBF18C43394; Sun, 24 Mar 2024 23:06:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321597; bh=eHTqfpRH4w1jwSBCjC/7u/xx40HMa+l75jbyu7n46y0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=l6NxvZClaRLACLG82hZLLbvTD5IdjDqCuFT/HSJQDec6M0NgZ/+AhYVht/q83pAI3 T17db60RB+2vmKee/HqbJIpyPIu57CZ3gX31Cr1p82b/35ZeAA1k1/M2hnSQ3br/6H 1UdrZaGXA4wGH31RVZdniT/mT1JkfNdvuXoR9NBcJH+QThk7uNTrzX2MFfro5sJXY/ BHKVBoeEDfnkwbfHM2meP3uNPFR6I94wjnF0isOKYOdiPsuJnEXXKLKxUJiY14Byn/ c4bXd2+Uz3mM5H/gWqRp8lhpqv/0twHr5GutF8DSjRP5+BYiHy+mWj9Q2taFmVxWXq Pq+5SOuqFAqjQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Tim Pambor , Jakub Kicinski , Sasha Levin Subject: [PATCH 6.6 327/638] net: phy: dp83822: Fix RGMII TX delay configuration Date: Sun, 24 Mar 2024 18:56:04 -0400 Message-ID: <20240324230116.1348576-328-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 b7cb71817780c..29e1cbea6dc0c 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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 840E01384B3; Sun, 24 Mar 2024 23:06: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=1711321599; cv=none; b=BsP0TCXnf+rXa4nOr92smFgVyECZ6ktKiKa2CnzIIvL+1wWJ0NCCm3ifQUXtaZWGs3YyrtVBvuq3fAeJIc5Ir0KavZBgmrOtcWBkYYlkiIKPBfdXAeYVImgTkdqV3dk7T5dta2KYl68iqMvUtS7xxYQ50ALslYuSwJuZbyiacB8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321599; c=relaxed/simple; bh=KMdxwmMNod1obbjCFhfxTYuNvd75ARGzr7DHPrUE1dM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=oa4+x3mSfC6HTrmApk+uQn37vRXfX7GGS/PU+VlAn/ldN5RhMNypxuZIpgXzeqLlVV00kwPzctG1fEfVgA5zWqysvmBjNOHUMTGA24yBIHFE1pi2MURUAdrjHoMb9+fXjyAHg6AHDExnI1v32sbnmvlmJVnirThs5d6CYFPeBX4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=gvQbyrrg; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="gvQbyrrg" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A4CB0C433C7; Sun, 24 Mar 2024 23:06:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321598; bh=KMdxwmMNod1obbjCFhfxTYuNvd75ARGzr7DHPrUE1dM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=gvQbyrrgQL3Uq1jkV08tSozwumCG2mP7WaC7WKm8vEjai2nNKQAT+9QNqQv8tzKZG rLYFqPLHMOiCixbJQJwSjpgjea5NMigB9kztMn9tLva7eAqDpoG2DzwombsUJTjJAT +KQhUCDRzXDLmXyX2ui1YPSaGCHK3CNo7ZFEXWLoeVCZ40PMQqNkmMZP/LckM42Yxq MqUqtrYhCHFMLyOLFW7RUxKBoL2GaCjz3JBmrzYrG7pcJvwCTT6SulL/jVRyQACIbf 7uzogGlcIBPFOtaivpZ045hW8PhDsWErpnLr71wZeZuo6uWUDcbou4yWe07+12i6be vcpjkulkyEPLQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jan Kara , Christoph Hellwig , Christian Brauner , Sasha Levin Subject: [PATCH 6.6 328/638] block: Provide bdev_open_* functions Date: Sun, 24 Mar 2024 18:56:05 -0400 Message-ID: <20240324230116.1348576-329-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 e719b4d156749f02eafed31a3c515f2aa9dcc72a ] Create struct bdev_handle that contains all parameters that need to be passed to blkdev_put() and provide bdev_open_* functions that return this structure instead of plain bdev pointer. This will eventually allow us to pass one more argument to blkdev_put() (renamed to bdev_release()) without too much hassle. Acked-by: Christoph Hellwig Reviewed-by: Christian Brauner Signed-off-by: Jan Kara Link: https://lore.kernel.org/r/20230927093442.25915-1-jack@suse.cz Signed-off-by: Christian Brauner Stable-dep-of: 0f28be64d132 ("erofs: fix lockdep false positives on initial= izing erofs_pseudo_mnt") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- block/bdev.c | 48 ++++++++++++++++++++++++++++++++++++++++++ include/linux/blkdev.h | 10 +++++++++ 2 files changed, 58 insertions(+) diff --git a/block/bdev.c b/block/bdev.c index 04dba25b0019e..5a54977518eea 100644 --- a/block/bdev.c +++ b/block/bdev.c @@ -831,6 +831,25 @@ struct block_device *blkdev_get_by_dev(dev_t dev, blk_= mode_t mode, void *holder, } EXPORT_SYMBOL(blkdev_get_by_dev); =20 +struct bdev_handle *bdev_open_by_dev(dev_t dev, blk_mode_t mode, void *hol= der, + const struct blk_holder_ops *hops) +{ + struct bdev_handle *handle =3D kmalloc(sizeof(*handle), GFP_KERNEL); + struct block_device *bdev; + + if (!handle) + return ERR_PTR(-ENOMEM); + bdev =3D blkdev_get_by_dev(dev, mode, holder, hops); + if (IS_ERR(bdev)) { + kfree(handle); + return ERR_CAST(bdev); + } + handle->bdev =3D bdev; + handle->holder =3D holder; + return handle; +} +EXPORT_SYMBOL(bdev_open_by_dev); + /** * blkdev_get_by_path - open a block device by name * @path: path to the block device to open @@ -869,6 +888,28 @@ struct block_device *blkdev_get_by_path(const char *pa= th, blk_mode_t mode, } EXPORT_SYMBOL(blkdev_get_by_path); =20 +struct bdev_handle *bdev_open_by_path(const char *path, blk_mode_t mode, + void *holder, const struct blk_holder_ops *hops) +{ + struct bdev_handle *handle; + dev_t dev; + int error; + + error =3D lookup_bdev(path, &dev); + if (error) + return ERR_PTR(error); + + handle =3D bdev_open_by_dev(dev, mode, holder, hops); + if (!IS_ERR(handle) && (mode & BLK_OPEN_WRITE) && + bdev_read_only(handle->bdev)) { + bdev_release(handle); + return ERR_PTR(-EACCES); + } + + return handle; +} +EXPORT_SYMBOL(bdev_open_by_path); + void blkdev_put(struct block_device *bdev, void *holder) { struct gendisk *disk =3D bdev->bd_disk; @@ -905,6 +946,13 @@ void blkdev_put(struct block_device *bdev, void *holde= r) } EXPORT_SYMBOL(blkdev_put); =20 +void bdev_release(struct bdev_handle *handle) +{ + blkdev_put(handle->bdev, handle->holder); + kfree(handle); +} +EXPORT_SYMBOL(bdev_release); + /** * lookup_bdev() - Look up a struct block_device by name. * @pathname: Name of the block device in the filesystem. diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index f59fcd5b499a5..5b6e86b2c37a5 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h @@ -1479,14 +1479,24 @@ extern const struct blk_holder_ops fs_holder_ops; #define sb_open_mode(flags) \ (BLK_OPEN_READ | (((flags) & SB_RDONLY) ? 0 : BLK_OPEN_WRITE)) =20 +struct bdev_handle { + struct block_device *bdev; + void *holder; +}; + struct block_device *blkdev_get_by_dev(dev_t dev, blk_mode_t mode, void *h= older, const struct blk_holder_ops *hops); struct block_device *blkdev_get_by_path(const char *path, blk_mode_t mode, void *holder, const struct blk_holder_ops *hops); +struct bdev_handle *bdev_open_by_dev(dev_t dev, blk_mode_t mode, void *hol= der, + const struct blk_holder_ops *hops); +struct bdev_handle *bdev_open_by_path(const char *path, blk_mode_t mode, + void *holder, const struct blk_holder_ops *hops); int bd_prepare_to_claim(struct block_device *bdev, void *holder, const struct blk_holder_ops *hops); void bd_abort_claiming(struct block_device *bdev, void *holder); void blkdev_put(struct block_device *bdev, void *holder); +void bdev_release(struct bdev_handle *handle); =20 /* just for blk-cgroup, don't use elsewhere */ struct block_device *blkdev_get_no_open(dev_t dev); --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EB15D1386A5; Sun, 24 Mar 2024 23:06: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=1711321601; cv=none; b=B6VOnEBRP4O0uS1rNTj9OLqrbNyvh6UJjsebkSdxUdnopfbobfAwmlrS29BPUYi9tz02xrMGBfhbIcNNZsuShBjA65gUTVZDx4aT9jWerb8dhRcOS85dLA90RTX/uMFiyKm6hVSRBtmGVlCUMU4b9eTMGtlRYFJ2rtdhEHVoVDE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321601; c=relaxed/simple; bh=IYvzvODyp4KjZ5zUyyxWPZXcnjbFRX/8Pk1R/e7lCCE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=iQYl3JjamAMaPDCYpOSNkdNXCd5yxQqCm/+3jb5EhClYPxZ/aEGkaDS46U7zeVmzp41X7QjRy864crGrWN6tWTRJ/wGqrq5aIDe/S5CWtHpK7PD6LDulprnJ+XUB+EjPG6IxvwlYL0R6w8p6DQGaf/P2rMYVzJM7hlgcDAGwzrI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=rqtqSWR7; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="rqtqSWR7" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A8B44C433F1; Sun, 24 Mar 2024 23:06:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321599; bh=IYvzvODyp4KjZ5zUyyxWPZXcnjbFRX/8Pk1R/e7lCCE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=rqtqSWR7Su66HWL+c27xEVXWvVcToJPacYfZSQHHCJeonvMSw8QZfWIzGnrlYuWyd L+tcvgN0sdLIeb1K0/p5PKX3QHnwT+rYkr1O1OnPmfm8SbgR4hA9+8e5FitsYVvMhZ RZdNc/HA7USe+RDq0U7SxdQ5wowvONG1KLYcCh6PDEdWLl2zzamm3975XEziEf9jbi rvjpyGBXTLGM8s+6DsRg/7H4vmH8yySoX8fOjhye3fCk3/Pmr2WFEEa07JRUtif5Zl RFhRA6vgpDqEb9xIxcrn06pT8zqVaIpmI+2xek+okwC81qrk33gWD3+auGgRN3AIYE K3SS2ow7rsynQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jan Kara , Gao Xiang , Chao Yu , linux-erofs@lists.ozlabs.org, Christoph Hellwig , Gao Xiang , Christian Brauner , Sasha Levin Subject: [PATCH 6.6 329/638] erofs: Convert to use bdev_open_by_path() Date: Sun, 24 Mar 2024 18:56:06 -0400 Message-ID: <20240324230116.1348576-330-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 49845720080dff0afd5813eaebf0758b01b6312c ] Convert erofs to use bdev_open_by_path() and pass the handle around. CC: Gao Xiang CC: Chao Yu CC: linux-erofs@lists.ozlabs.org Acked-by: Christoph Hellwig Acked-by: Gao Xiang Reviewed-by: Christian Brauner Signed-off-by: Jan Kara Link: https://lore.kernel.org/r/20230927093442.25915-21-jack@suse.cz Signed-off-by: Christian Brauner Stable-dep-of: 0f28be64d132 ("erofs: fix lockdep false positives on initial= izing erofs_pseudo_mnt") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- fs/erofs/data.c | 4 ++-- fs/erofs/internal.h | 2 +- fs/erofs/super.c | 20 ++++++++++---------- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/fs/erofs/data.c b/fs/erofs/data.c index 977bc23f96e47..a75c89a9a3d0b 100644 --- a/fs/erofs/data.c +++ b/fs/erofs/data.c @@ -222,7 +222,7 @@ int erofs_map_dev(struct super_block *sb, struct erofs_= map_dev *map) up_read(&devs->rwsem); return 0; } - map->m_bdev =3D dif->bdev; + map->m_bdev =3D dif->bdev_handle->bdev; map->m_daxdev =3D dif->dax_dev; map->m_dax_part_off =3D dif->dax_part_off; map->m_fscache =3D dif->fscache; @@ -240,7 +240,7 @@ int erofs_map_dev(struct super_block *sb, struct erofs_= map_dev *map) if (map->m_pa >=3D startoff && map->m_pa < startoff + length) { map->m_pa -=3D startoff; - map->m_bdev =3D dif->bdev; + map->m_bdev =3D dif->bdev_handle->bdev; map->m_daxdev =3D dif->dax_dev; map->m_dax_part_off =3D dif->dax_part_off; map->m_fscache =3D dif->fscache; diff --git a/fs/erofs/internal.h b/fs/erofs/internal.h index d8de61350dc05..eb062f19b766a 100644 --- a/fs/erofs/internal.h +++ b/fs/erofs/internal.h @@ -47,7 +47,7 @@ typedef u32 erofs_blk_t; struct erofs_device_info { char *path; struct erofs_fscache *fscache; - struct block_device *bdev; + struct bdev_handle *bdev_handle; struct dax_device *dax_dev; u64 dax_part_off; =20 diff --git a/fs/erofs/super.c b/fs/erofs/super.c index cc44fb2e001e6..4e1ca36987685 100644 --- a/fs/erofs/super.c +++ b/fs/erofs/super.c @@ -174,7 +174,7 @@ static int erofs_init_device(struct erofs_buf *buf, str= uct super_block *sb, struct erofs_sb_info *sbi =3D EROFS_SB(sb); struct erofs_fscache *fscache; struct erofs_deviceslot *dis; - struct block_device *bdev; + struct bdev_handle *bdev_handle; void *ptr; =20 ptr =3D erofs_read_metabuf(buf, sb, erofs_blknr(sb, *pos), EROFS_KMAP); @@ -198,13 +198,13 @@ static int erofs_init_device(struct erofs_buf *buf, s= truct super_block *sb, return PTR_ERR(fscache); dif->fscache =3D fscache; } else if (!sbi->devs->flatdev) { - bdev =3D blkdev_get_by_path(dif->path, BLK_OPEN_READ, sb->s_type, - NULL); - if (IS_ERR(bdev)) - return PTR_ERR(bdev); - dif->bdev =3D bdev; - dif->dax_dev =3D fs_dax_get_by_bdev(bdev, &dif->dax_part_off, - NULL, NULL); + bdev_handle =3D bdev_open_by_path(dif->path, BLK_OPEN_READ, + sb->s_type, NULL); + if (IS_ERR(bdev_handle)) + return PTR_ERR(bdev_handle); + dif->bdev_handle =3D bdev_handle; + dif->dax_dev =3D fs_dax_get_by_bdev(bdev_handle->bdev, + &dif->dax_part_off, NULL, NULL); } =20 dif->blocks =3D le32_to_cpu(dis->blocks); @@ -750,8 +750,8 @@ static int erofs_release_device_info(int id, void *ptr,= void *data) struct erofs_device_info *dif =3D ptr; =20 fs_put_dax(dif->dax_dev, NULL); - if (dif->bdev) - blkdev_put(dif->bdev, &erofs_fs_type); + if (dif->bdev_handle) + bdev_release(dif->bdev_handle); erofs_fscache_unregister_cookie(dif->fscache); dif->fscache =3D NULL; kfree(dif->path); --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AFC1020AF62; Sun, 24 Mar 2024 23:06: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=1711321601; cv=none; b=q1gwruAzFCxdEB0xQ7n3nBnPs1Sb7znWlUAE/M91UDfdnGqfkldgOX3huAX9Cytwu8sCUftowJVRsBtbr7espM9clL9eV4lA1bcoBEHNME9jtcFwgk0rTVX6lkxppKMSlXM+joY81IpqvHkjgdxNA3PWiJeaX2hVfzGNJ5tiujI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321601; c=relaxed/simple; bh=bqhQ8CzGWTTriI8TaVQ625rSdktHGajB4fQc3wcp1no=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=rH8BOFO0g8zm1BA/9so12XXS8zFev859qpJn0jZIYQNaf3OO1k21wx9a5PCuWytn0Mh+30SIl0ZrJ9qmpnpLLkRmTKg2ta8WpoOOjTpU6gVjDMN3WPlfzUJo17Zw3zOeZqJNZQJDFDKA/XNW1HX760WC3KBiAaGfUvr+/433FWs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=IVXYxUkc; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="IVXYxUkc" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 129E0C43609; Sun, 24 Mar 2024 23:06:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321600; bh=bqhQ8CzGWTTriI8TaVQ625rSdktHGajB4fQc3wcp1no=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=IVXYxUkcIEsZBESKjz1odEpU1VL07mUtOF4/YF+nRZEy+LEbLuWH9eooOTZfgTV7E y9ilsVtwiTXbL8KFoSWgnLWukmJ//nqR5xnPsodKp0/U9Baq9DnvxTSLg12kfL6znV UOKhmWGpy4rb95ny6uSOn3RQoJrORycK1ocj5AnMuy011TJKAYtZWSxp8xjn8G4W56 lb2Cdgo4xdVSAaA+nydyd5MIzV8XyKTRun1qazmPbEC/Qij5Bu76cTaI6ZjJJQ2Cco /64ukysNC5hHvaVSsaDPBpiQgM5j0foPTTs6QHPTpbVHN+laWjKa1y+/dnnXfTCMQL hSpKKQC6Mj4ew== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Al Viro , Sasha Levin Subject: [PATCH 6.6 330/638] erofs: fix handling kern_mount() failure Date: Sun, 24 Mar 2024 18:56:07 -0400 Message-ID: <20240324230116.1348576-331-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Al Viro [ Upstream commit 2c88c16dc20e88dd54d2f6f4d01ae1dce6cc9654 ] if you have a variable that holds NULL or a pointer to live struct mount, do not shove ERR_PTR() into it - not if you later treat "not NULL" as "holds a pointer to object". Signed-off-by: Al Viro Stable-dep-of: 0f28be64d132 ("erofs: fix lockdep false positives on initial= izing erofs_pseudo_mnt") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- fs/erofs/fscache.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/fs/erofs/fscache.c b/fs/erofs/fscache.c index 87ff35bff8d5b..1052f75d1dfae 100644 --- a/fs/erofs/fscache.c +++ b/fs/erofs/fscache.c @@ -381,11 +381,12 @@ static int erofs_fscache_init_domain(struct super_blo= ck *sb) goto out; =20 if (!erofs_pseudo_mnt) { - erofs_pseudo_mnt =3D kern_mount(&erofs_fs_type); - if (IS_ERR(erofs_pseudo_mnt)) { - err =3D PTR_ERR(erofs_pseudo_mnt); + struct vfsmount *mnt =3D kern_mount(&erofs_fs_type); + if (IS_ERR(mnt)) { + err =3D PTR_ERR(mnt); goto out; } + erofs_pseudo_mnt =3D mnt; } =20 domain->volume =3D sbi->volume; --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F071620AF66; Sun, 24 Mar 2024 23:06: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=1711321602; cv=none; b=aFO+M6Lz89T9TdeI0kcJolWWG16RhJsbho2Nrj0Fu1RCT7KcEKv2HtJ926bwZxEB4+yZYxRy1/ywWy+Q156zR5NOkUwK6h8a6mwLgjId6wupE7dsSsxhDCtioCN2afdd3AfMho24E+FG94ykuYKKDnbTzRnoQzuvi7gR5LsqoMc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321602; c=relaxed/simple; bh=YGssrWwXYtJ8E5wgQ5rGGJrTuLlrDYrXLw+TMJgX/fQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=NzyAL/y0S/ehTt6nBkta4L6vgd55xs3LHEtsNot8Wov4bBwaT2VIYS6/PE9HvKLCGtrtPzloXMo/97sdplbUxDd6TMT8SVrvCFAgZcgfAVFCw1XvtISYPaWaGkq/CHFghawgksrRpluhV4azjfaxedvCT7CqpKYOoy/nBXtTIME= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=mzrLDH2h; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="mzrLDH2h" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D83DEC43394; Sun, 24 Mar 2024 23:06:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321601; bh=YGssrWwXYtJ8E5wgQ5rGGJrTuLlrDYrXLw+TMJgX/fQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=mzrLDH2h2flj8vlNWraLPX8cVdnhvBOPpcdgB/DealUDWrxQ6MsKB0HN0AZDDnONi roVBm6lQKU34aB5YE2f2/Wj9u48LRKCRaWK+0Bkb6cagdEonwbCAJdPCJcka4t7UEB +ifuyoEyPEs1Nv+w5LCNj2s2B3TVkuXPl+JLUu4GnaRvlWEQZMQX7cRSMShDTxt9/L o6XU0Dn+bGImGarANjao+IrgimW3MNYMLwxW5PGm/to9boCRuCfo2ineWHCJ6RMpvK H9HmMW28WWM6895U6xqGDIvHgbxEO0nm99gPhQRKTnvW3LbyUIPu+o1Y4L6Xg5U0V/ dwwlQRlj2rH7w== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Baokun Li , Al Viro , Jingbo Xu , Yang Erkun , Gao Xiang , Sasha Levin Subject: [PATCH 6.6 331/638] erofs: fix lockdep false positives on initializing erofs_pseudo_mnt Date: Sun, 24 Mar 2024 18:56:08 -0400 Message-ID: <20240324230116.1348576-332-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 0f28be64d132aaf95d06375c8002ad9ecea69d71 ] Lockdep reported the following issue when mounting erofs with a domain_id: =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 WARNING: possible recursive locking detected 6.8.0-rc7-xfstests #521 Not tainted Reported-by: Linux Kernel Functional Testing Reviewed-by: Yang Erkun Suggested-by: Al Viro Tested-by: Takeshi Ogasawara -------------------------------------------- mount/396 is trying to acquire lock: ffff907a8aaaa0e0 (&type->s_umount_key#50/1){+.+.}-{3:3}, at: alloc_super+0xe3/0x3d0 but task is already holding lock: ffff907a8aaa90e0 (&type->s_umount_key#50/1){+.+.}-{3:3}, at: alloc_super+0xe3/0x3d0 other info that might help us debug this: Possible unsafe locking scenario: CPU0 ---- lock(&type->s_umount_key#50/1); lock(&type->s_umount_key#50/1); *** DEADLOCK *** May be due to missing lock nesting notation 2 locks held by mount/396: #0: ffff907a8aaa90e0 (&type->s_umount_key#50/1){+.+.}-{3:3}, at: alloc_super+0xe3/0x3d0 #1: ffffffffc00e6f28 (erofs_domain_list_lock){+.+.}-{3:3}, at: erofs_fscache_register_fs+0x3d/0x270 [erofs] stack backtrace: CPU: 1 PID: 396 Comm: mount Not tainted 6.8.0-rc7-xfstests #521 Call Trace: dump_stack_lvl+0x64/0xb0 validate_chain+0x5c4/0xa00 __lock_acquire+0x6a9/0xd50 lock_acquire+0xcd/0x2b0 down_write_nested+0x45/0xd0 alloc_super+0xe3/0x3d0 sget_fc+0x62/0x2f0 vfs_get_super+0x21/0x90 vfs_get_tree+0x2c/0xf0 fc_mount+0x12/0x40 vfs_kern_mount.part.0+0x75/0x90 kern_mount+0x24/0x40 erofs_fscache_register_fs+0x1ef/0x270 [erofs] erofs_fc_fill_super+0x213/0x380 [erofs] This is because the file_system_type of both erofs and the pseudo-mount point of domain_id is erofs_fs_type, so two successive calls to alloc_super() are considered to be using the same lock and trigger the warning above. Therefore add a nodev file_system_type called erofs_anon_fs_type in fscache.c to silence this complaint. Because kern_mount() takes a pointer to struct file_system_type, not its (string) name. So we don't need to call register_filesystem(). In addition, call init_pseudo() in erofs_anon_init_fs_context() as suggested by Al Viro, so that we can remove erofs_fc_fill_pseudo_super(), erofs_fc_anon_get_tree(), and erofs_anon_context_ops. Suggested-by: Al Viro Fixes: a9849560c55e ("erofs: introduce a pseudo mnt to manage shared cookie= s") Signed-off-by: Baokun Li Reviewed-and-tested-by: Jingbo Xu Reviewed-by: Yang Erkun Link: https://lore.kernel.org/r/20240307101018.2021925-1-libaokun1@huawei.c= om Signed-off-by: Gao Xiang Signed-off-by: Sasha Levin --- fs/erofs/fscache.c | 15 ++++++++++++++- fs/erofs/internal.h | 1 - fs/erofs/super.c | 30 +----------------------------- 3 files changed, 15 insertions(+), 31 deletions(-) diff --git a/fs/erofs/fscache.c b/fs/erofs/fscache.c index 1052f75d1dfae..afc37c9029ce7 100644 --- a/fs/erofs/fscache.c +++ b/fs/erofs/fscache.c @@ -3,6 +3,7 @@ * Copyright (C) 2022, Alibaba Cloud * Copyright (C) 2022, Bytedance Inc. All rights reserved. */ +#include #include #include "internal.h" =20 @@ -12,6 +13,18 @@ static LIST_HEAD(erofs_domain_list); static LIST_HEAD(erofs_domain_cookies_list); static struct vfsmount *erofs_pseudo_mnt; =20 +static int erofs_anon_init_fs_context(struct fs_context *fc) +{ + return init_pseudo(fc, EROFS_SUPER_MAGIC) ? 0 : -ENOMEM; +} + +static struct file_system_type erofs_anon_fs_type =3D { + .owner =3D THIS_MODULE, + .name =3D "pseudo_erofs", + .init_fs_context =3D erofs_anon_init_fs_context, + .kill_sb =3D kill_anon_super, +}; + struct erofs_fscache_request { struct erofs_fscache_request *primary; struct netfs_cache_resources cache_resources; @@ -381,7 +394,7 @@ static int erofs_fscache_init_domain(struct super_block= *sb) goto out; =20 if (!erofs_pseudo_mnt) { - struct vfsmount *mnt =3D kern_mount(&erofs_fs_type); + struct vfsmount *mnt =3D kern_mount(&erofs_anon_fs_type); if (IS_ERR(mnt)) { err =3D PTR_ERR(mnt); goto out; diff --git a/fs/erofs/internal.h b/fs/erofs/internal.h index eb062f19b766a..1a4fe9f60295c 100644 --- a/fs/erofs/internal.h +++ b/fs/erofs/internal.h @@ -385,7 +385,6 @@ struct erofs_map_dev { unsigned int m_deviceid; }; =20 -extern struct file_system_type erofs_fs_type; extern const struct super_operations erofs_sops; =20 extern const struct address_space_operations erofs_raw_access_aops; diff --git a/fs/erofs/super.c b/fs/erofs/super.c index 4e1ca36987685..c9f9a43197db6 100644 --- a/fs/erofs/super.c +++ b/fs/erofs/super.c @@ -575,13 +575,6 @@ static const struct export_operations erofs_export_ops= =3D { .get_parent =3D erofs_get_parent, }; =20 -static int erofs_fc_fill_pseudo_super(struct super_block *sb, struct fs_co= ntext *fc) -{ - static const struct tree_descr empty_descr =3D {""}; - - return simple_fill_super(sb, EROFS_SUPER_MAGIC, &empty_descr); -} - static int erofs_fc_fill_super(struct super_block *sb, struct fs_context *= fc) { struct inode *inode; @@ -708,11 +701,6 @@ static int erofs_fc_fill_super(struct super_block *sb,= struct fs_context *fc) return 0; } =20 -static int erofs_fc_anon_get_tree(struct fs_context *fc) -{ - return get_tree_nodev(fc, erofs_fc_fill_pseudo_super); -} - static int erofs_fc_get_tree(struct fs_context *fc) { struct erofs_fs_context *ctx =3D fc->fs_private; @@ -785,20 +773,10 @@ static const struct fs_context_operations erofs_conte= xt_ops =3D { .free =3D erofs_fc_free, }; =20 -static const struct fs_context_operations erofs_anon_context_ops =3D { - .get_tree =3D erofs_fc_anon_get_tree, -}; - static int erofs_init_fs_context(struct fs_context *fc) { struct erofs_fs_context *ctx; =20 - /* pseudo mount for anon inodes */ - if (fc->sb_flags & SB_KERNMOUNT) { - fc->ops =3D &erofs_anon_context_ops; - return 0; - } - ctx =3D kzalloc(sizeof(*ctx), GFP_KERNEL); if (!ctx) return -ENOMEM; @@ -820,12 +798,6 @@ static void erofs_kill_sb(struct super_block *sb) { struct erofs_sb_info *sbi; =20 - /* pseudo mount for anon inodes */ - if (sb->s_flags & SB_KERNMOUNT) { - kill_anon_super(sb); - return; - } - if (erofs_is_fscache_mode(sb)) kill_anon_super(sb); else @@ -864,7 +836,7 @@ static void erofs_put_super(struct super_block *sb) erofs_fscache_unregister_fs(sb); } =20 -struct file_system_type erofs_fs_type =3D { +static struct file_system_type erofs_fs_type =3D { .owner =3D THIS_MODULE, .name =3D "erofs", .init_fs_context =3D erofs_init_fs_context, --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E5F4320AF65; Sun, 24 Mar 2024 23:06: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=1711321604; cv=none; b=qNAKBgcLT9NAPhMt7M7eB+H63G1iqDjV0bDiuxuXnjWlgn5j2A58xxpx8XHHshq1vPjFXjVGOY2rmFSP2Lkj2UYCv8Wq0unYaqhhKIAZbKimOqZWYu+nz2fPJSssL9PUL/udKOINyNAdB4P+1hQH3Ip7ySSzVy8eK4oh3vJzQaU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321604; c=relaxed/simple; bh=Bf9m2+7A8COOO48NlNPXdpwFsMPV5/s8wTbqPVJavGc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=IxuDpt81CcGBa0J8OqRu6qi3m6eskozTwt9lC/EC3ZXSCm0cyH2v21Ud+eBvLTss1zFQMw3jnAPEn74T5oFdIfIyKssbM0PLy4ByKnLRW2VahsiMwNFkZ7vJzz9gK12UY0CgAuNJ6e6RK8xiv//Qgsh7GMPbDNEMAt1izhySQdk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Jk9BT6so; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Jk9BT6so" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1088DC433F1; Sun, 24 Mar 2024 23:06:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321602; bh=Bf9m2+7A8COOO48NlNPXdpwFsMPV5/s8wTbqPVJavGc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Jk9BT6so4JQptHHoQzaX3BmN5zaTfkU3NIh5ySeGwgw9hjQofPHC8JZakATL5O5+r i95IVIs39WPcLUOQjvhzpEBk7crNlN0B5jErG/h59+PfWCNyKaM7TsUR6xeTe2aa+J WjU44MxlGsa25YzyQi00T6/zAt6SI3K4ehhAlc+X8c3QsXhOXs+nP6lsvaYdHhjccA HYidnMgJy73FnMu6gpXEN/9GumN+WK7eT+XX4KoZExbG1lpJNl58fijY/s8RFI6cOI gjpscb0UprRkenzZmCd/aFYr8jM7jR9aWjrkQe3TbyBWZk4TldQFnkmc7Ylz5iG280 KI2BWh0Pu2r7g== 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 6.6 332/638] OPP: debugfs: Fix warning around icc_get_name() Date: Sun, 24 Mar 2024 18:56:09 -0400 Message-ID: <20240324230116.1348576-333-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 17543c0aa5b68..83f591e40cdfc 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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E4BA520AF79; Sun, 24 Mar 2024 23:06: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=1711321605; cv=none; b=FoxujyvOw8O4yva3Og0m4k71A1M0rnroXUiGGUM4emvgGx4pAbSuBWtZjw95X2VDeSEHZKw/v9aLz7R6zERZLOYCh6szVq7CbXGrRxl1Jmsyo5Ho16VgAX4dgcObcd53KKLba4OcZ1KijKnNEVkKrxyMUGH0KyraeplCPyPqjAg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321605; c=relaxed/simple; bh=3vTtX28rucjbfTd5sWuYFGppLriKKnpXEJG32VvP/6Q=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=seFYPVlnbTNIxzL+ZOoOnh8TkSf70gLkTWRwhN7QPKeqhdOGMtojzZGq1cc0wEKIWmyknyzE4V46/vq2mbcMJ9Sfq6DK8e2NxzrihUmAPMy1Shm8nP9Lmvoic3MLMRb9JdoNUPKx8mfQi3QRGeh88G8InQ9pdxoXFwwgRdqAuWE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=bSImc9bu; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="bSImc9bu" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 14410C433C7; Sun, 24 Mar 2024 23:06:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321603; bh=3vTtX28rucjbfTd5sWuYFGppLriKKnpXEJG32VvP/6Q=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=bSImc9buI2NRaYeoislxOE2xy52FNAqh710IW7Y0MM6rFzZoJstjiA44tYLP9EsHv m4GK7qOpJz6NmHr/EkbPhAuyrRAX0hkE7WrwWaA/ODH3PDUNPvt14JsB7X17QaDk/e x0UkDbXueq04eUNuPGFeCzWo1kjBHfsA64HtTn/EEm+/JHNbCzpOKI11Ti9OBCbNN9 BohCYTBPjpTcPI/rN41P2DCtKsRyDdE92xn1VjLjGsbovZmDxk1yeMR3HFkyuYOH14 95uahTnFsyygOSUFndR/ZhltRAcqmM/3RnzQNVl59KjEXijCeE7NlTmJJuhbbzgmKh YosPtXl6NvG/g== 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 6.6 333/638] tcp: fix incorrect parameter validation in the do_tcp_getsockopt() function Date: Sun, 24 Mar 2024 18:56:10 -0400 Message-ID: <20240324230116.1348576-334-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 ab1308affa08a..68bb8d6bcc113 100644 --- a/net/ipv4/tcp.c +++ b/net/ipv4/tcp.c @@ -3967,11 +3967,11 @@ int do_tcp_getsockopt(struct sock *sk, int level, if (copy_from_sockptr(&len, optlen, sizeof(int))) 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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CA9C620AF81; Sun, 24 Mar 2024 23:06: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=1711321605; cv=none; b=qOp3+xqA7jYxN1LbcfQVb6cUPIUT8WNMEyh7NoSnOQ92geW2XGtmf5UVOfAutCUzIyWKhNmQw3mWiky+Oah8qRu75az9Fjij3QEcH6HpETW0haU2Rd1Ibm42Gxa2ujcGSfsZC1awzKvKEojdvfT/wCu01zAIDaQm5lOriEtn+bQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321605; c=relaxed/simple; bh=FkpSNpSlpycCmcF3vPsdKNwVZjnMaXFcSIOgP4WTv0Q=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=b6zCS2w1nnmnXArP3DPlWScbJwvPnAUYtvWOtCGiHVxzuOeXL7nmsqNjxL4PpXX7P/n+3EXslL7XVDF8YfYCODFxdal1QQwer1bXrclVaWOxfO2/kd6N7ycxL6cAo1+xjtyLPsBxIkjlHlU24U4dMmX7KOfclR5vnRI8IxbcX4c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=s6bhHc8N; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="s6bhHc8N" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 14EBEC43390; Sun, 24 Mar 2024 23:06:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321604; bh=FkpSNpSlpycCmcF3vPsdKNwVZjnMaXFcSIOgP4WTv0Q=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=s6bhHc8Nn2SqCdU6xrxsuFam/oEXQcZrPqpIGCGIKOVzjIGs+9Ek02clvp44p8iTS hcGi4oUkPBPPdgAcZuGWdihvsyYjMg3J1E/V9iK3bAb+KpgmrTW9t8guKeBtxaJaJG RmsZNdlsmV1zb5hCC0CydaqpZGZ87NXM5eWvGV3rgtlu4KXSElgGCmB762iG4dlR5n Ak6ZG/f5vcACJy7YYXga2/gNHdst18YDRBsoAcUqkTM6lAAd9cpEaCPQ12a0G8NXsU 3Xvp54KjvycdbFcFnbHfnQfYPWYYJ4RiarWJ1YAZ6Diyq8cf5ayUiD/1YUlctuOEEQ JY7NLKC0sRpMw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Gavrilov Ilia , "David S . Miller" , Sasha Levin Subject: [PATCH 6.6 334/638] ipmr: fix incorrect parameter validation in the ip_mroute_getsockopt() function Date: Sun, 24 Mar 2024 18:56:11 -0400 Message-ID: <20240324230116.1348576-335-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 e49242706b5f5..66eade3fb629f 100644 --- a/net/ipv4/ipmr.c +++ b/net/ipv4/ipmr.c @@ -1603,9 +1603,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C666A20AF80; Sun, 24 Mar 2024 23:06: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=1711321605; cv=none; b=oF6oPCBkPsNDClH41OwL94nQc4jdTzBH0ONeHr/h5Ne4UwrPrqRVh+Prk3IzKX7ZzWxzD6o9zVi+y7Z8nC0SB2Frvc1GM65y9rKyKJMUXJtzQ+VWZGow5bwXvpMvgsengUUzZFFDfYl123IAvm7dLf95c1dslMApyCwLjnALTF4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321605; c=relaxed/simple; bh=OQsM+h49KmJCuY/Vc4xjJEjsD2hIGGvvSko+Q3j56jk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PvIzmTb8CaQG6Fs5+d+IfFnk1IvpIDu/qCm5Wsxe7dNeXMU5dQea3voVJRR/yOy3Qqk3LJOo+Ap6xGVKD45ka9Y2AqCDLr5NRF4usUpjhvVKjeR/bFGtn+FIGtX9sJJu9JBAUt/+duUY09W6WC8BwCD0KWRWuaJz2b1bL9Qdpns= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=IpzwtXUc; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="IpzwtXUc" Received: by smtp.kernel.org (Postfix) with ESMTPSA id EDFC3C43399; Sun, 24 Mar 2024 23:06:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321605; bh=OQsM+h49KmJCuY/Vc4xjJEjsD2hIGGvvSko+Q3j56jk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=IpzwtXUciKLlUeNeKSpZEs7pPH08FsjHB4n6Lha4NTKTsstPntV5G6RWeUm89ZTlf myIEM/8lamIAERO4kCZvfapre6rnZfPUnHWrzAkvcBM1VEzrRC+O17xOU6fokTzUXa IgduMBf2qk5F3K3smDAu3gxk+nCeXOI7dwMtSIJ2PGlXQaUnsiOdaVKqVYrEPb8tI3 MAQ0DW6MsIU35SpxdhjFcAvHNmH3sadotJjW33H68hulAxBYkjXNUUIeuZ2v3KWsm5 8XwB6GmzVxzoD0VBKRxrSLFzfkbllwrtYl2ChYEDvtwpka6QzGYlFUYAM3rNrjyLQk O24PjJ8h6HORw== 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 6.6 335/638] l2tp: fix incorrect parameter validation in the pppol2tp_getsockopt() function Date: Sun, 24 Mar 2024 18:56:12 -0400 Message-ID: <20240324230116.1348576-336-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 f011af6601c9c..6146e4e67bbb5 100644 --- a/net/l2tp/l2tp_ppp.c +++ b/net/l2tp/l2tp_ppp.c @@ -1356,11 +1356,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C8E5920AF7B; Sun, 24 Mar 2024 23:06: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=1711321606; cv=none; b=Yq2NGHz5o+JpD4CO2jlhHCNbGmIuV1srd6bZJuvadzpqksMSmstfWO3QIC1FwZ0TWLyTSywY/JExeOL3rFyc4fTAcDnYg5/BKjykyb2RdF3Hkj6WMfnDtXWAJWNK8k7ivqtOsCvr3f/tfG8VqROG12hAl2DXTFwtAPWeDD2lz54= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321606; c=relaxed/simple; bh=NMB/Dvckd0N0jkQPCy6uceSyX5z8ocUXKOUi3TZ+sNw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=BjIbw2itIJilwHvAVQfC6FJXabd3apOee8d4FrzfzsGKD79a50GP5WRzxoqZRmLDhAibEN1kT0Sor4RTczJzOIxKydy9YFGM/235L/DiQZblBBrR7LBTnAFPFYtz1UXe9d0mOoRxkgAnkGDJ92azu6nLSuidQW3NW8hoPD0iZa4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=io0T2nMt; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="io0T2nMt" Received: by smtp.kernel.org (Postfix) with ESMTPSA id EAEB9C433C7; Sun, 24 Mar 2024 23:06:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321606; bh=NMB/Dvckd0N0jkQPCy6uceSyX5z8ocUXKOUi3TZ+sNw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=io0T2nMt+6gUMDHoOZ3Ol0R7fxEoY9oUp46UgMtqs4x9Qk5OJbanHoxZMz/axGYc3 6wbo7YdslGrU3bMZWDDvX8Dwfl3ceDDXuBn2/FvhWwRIcvo26KBcTP2l4fucak7JM4 4pbmTr1yciTVMNcqOHCaSEqQEVw4Iyowdg+w5VXMdK+Mj2lc7/hOFj7h9SPZpT0wa0 Q1TSdgqoIX3D1Mm9HqX99Edk12l45kIs272aK1qUl/5kDUk8Vjd5La3g67PYVbT8U8 YrIyP+1qRibclrXrzghcYlqcHUByFm1BuSGbGXKwrn+W2zwKa1zMiEkFh57ZXhYcEp 6QrJvqaFTYa6Q== 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 6.6 336/638] udp: fix incorrect parameter validation in the udp_lib_getsockopt() function Date: Sun, 24 Mar 2024 18:56:13 -0400 Message-ID: <20240324230116.1348576-337-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 8e5a8b3b22c63..848072793fa98 100644 --- a/net/ipv4/udp.c +++ b/net/ipv4/udp.c @@ -2779,11 +2779,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 udp_test_bit(CORK, sk); --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B3E7B20AF9D; Sun, 24 Mar 2024 23:06: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=1711321608; cv=none; b=mbl9qEajQZPPV0GzydK7tUGnWnLeogeUJytvlVgfyvG1JGL/iVK12SvyXVgwK9jdAZ6EkAVTR2sHo6MBKBpSJ+HB9RyxWWrpQtya2VgtDGldEMd7ROe4y214C3T8x6IjB9vew1nGUOR3nN3gehyWrkUi4zgkaZ0GfHTECmqjup4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321608; c=relaxed/simple; bh=5LFTDjBBznADyvpRgwfaW9rOgpMVy5gxH2pX37SvfuU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=nJNlMKHZrDHx+sFfdlzi6HJn27bDpEzWh5mGUmgBqPobWvZegBjhjZ+HNuh/8V4Fx+FQhS+kA5wTSTo02nn9meg8c8il+aXThzAuXoMqgMnqIVAV7Ilxn05DbuKCNx9T9Rs6cQWMKZj/s6ME9sHR7Muy7RBM0wIvZXIxdxWLed8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=WTBA77pj; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="WTBA77pj" Received: by smtp.kernel.org (Postfix) with ESMTPSA id EBEEEC43330; Sun, 24 Mar 2024 23:06:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321607; bh=5LFTDjBBznADyvpRgwfaW9rOgpMVy5gxH2pX37SvfuU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=WTBA77pjUxJsbuuWSPsPaqoUWvTRmoOUeJlsnOBSw4wrLnzgNzPV/sp5KmO1zeCAC tcaUphMVcCKdbb2Zw389tGoNCJc+dOgU43/d71yrUzWpIINIyXNa+urzbGiEmcanUa BaAt7C85UfxKFOC8VwZsb6jOJX2TzPgnkmd2RiWzqQlhEgTzIjqFjomilRLHfux7Gb 5ZTYBx0sN04GvdWD5vi6t+Ey5S7w1o5ADW/ZQ8HuI4j2Fy3CeMH+Gvb37ziz9N5GIq 6JZDJPVWqkO9DuCtFwVTCx8cbJBpFiVFPAsUOPZ//gv8D6g4e5HUevR8bzDtMOck7L 5oMWuoih5sGVQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Gavrilov Ilia , "David S . Miller" , Sasha Levin Subject: [PATCH 6.6 337/638] net: kcm: fix incorrect parameter validation in the kcm_getsockopt) function Date: Sun, 24 Mar 2024 18:56:14 -0400 Message-ID: <20240324230116.1348576-338-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 083376ea237e8..41d892bf12cc6 100644 --- a/net/kcm/kcmsock.c +++ b/net/kcm/kcmsock.c @@ -1152,10 +1152,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A15A71386B2; Sun, 24 Mar 2024 23:06: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=1711321609; cv=none; b=aSZRohHzIhOWMqidOMd9pJjIueCgkdwbBACUTb8djrKDg4ugpO3gXJJrfKh4qTN4mxAofcGcKO0V88RC/kabHJd4Jg9AlB0RHfZNpXG5qUjSvQuk3yqRJsdvGuobxuFwnWH19Vt9qvsITSgxrRyITxdGwizFmShk44eERSTWPxU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321609; c=relaxed/simple; bh=xKWY9aIWFlX1S7/Ym5PK8074P1HxyujIzFzS5hsnloo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=F7TfIusDp9c6hoAx44KuaDhVN7yNvB36UxbnBVCgNmLswuGIWJzA0P8o2PmJOinKcmH8Fe1iWV30Admu3QvGTOBAU0Mg1cN2j+t/r14+ZqRl27qjjEUcnOI4Wow8lSngKuO91BjlgFJxTvhWG1V3FzHR5WOiEM6UaAZZrsWm3lc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=q48AV5dV; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="q48AV5dV" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D6A1DC433C7; Sun, 24 Mar 2024 23:06:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321608; bh=xKWY9aIWFlX1S7/Ym5PK8074P1HxyujIzFzS5hsnloo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=q48AV5dVuR3D52hm85Gf5+RtwLuDDV2X+BM+Mmwc1JEAMb8AJ4bbbiqFlCNP2BOre WLnRG6Sx7Dwzgk6FY679Z37LDVDayoO4W+fRnWfl+aCZQRqFwPpYfG2iz0wNkFZX+s Y2AWpyc82TkBfSRXUvOHsYNs6zEyGNuOrwzeW/qqOPVSlnHbjsjVmRNr9GmuRvqzHv +pnXz3qy3t7bRUxp/30Vm3awDCUAZ9rdX+hW5N9u507QOSciTUL731Umr223bzCXQW A2d9tUUYti4MLISgVvw5JeX+6LQTFrQDYte8xw0r7xzyk2SKnMce2FS/rojdsb2THt ij16BDmCxya8A== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Gavrilov Ilia , "David S . Miller" , Sasha Levin Subject: [PATCH 6.6 338/638] net/x25: fix incorrect parameter validation in the x25_getsockopt() function Date: Sun, 24 Mar 2024 18:56:15 -0400 Message-ID: <20240324230116.1348576-339-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 0fb5143bec7ac..f15a4493eb0bf 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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9F2AC14884F; Sun, 24 Mar 2024 23:06: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=1711321610; cv=none; b=esRq6yYMX0HluopLlDhWckRPcYYmLp7ySH7Ff9lqMTfk/y9J0IJLbpog4an7S9xH99mma/ulsOfsWDAq18/rcSvdJOh7JJXIZyTgyVJjAseSUm8IReYwXIqUIwqfWjbE7gYlbhaf/2U9KXfRqCyEyyOyQCzykyB8Hgnm0Q9Jhhk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321610; c=relaxed/simple; bh=W2AvlN3/e6oPQY6FDGVLyCBTM427dEQ9vt1/kJm6QD4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=fUkkrTbCMVbGgDXcO2f0z1xsaLEkeCLctjP8OLvVi9nkFD3nwp2Y751Bv7yNhY+ohsAxBRVNxGt5pQZWMRQTqT6FgmaMA3vjEscnohtVUyDsTzXnupFsHKtZND7cN7van5bwzmb11QVmBRfOfWnppHvN3qRQB5vr5aIQmsFGR58= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=QCRdg7Oy; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="QCRdg7Oy" Received: by smtp.kernel.org (Postfix) with ESMTPSA id C04B9C433F1; Sun, 24 Mar 2024 23:06:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321609; bh=W2AvlN3/e6oPQY6FDGVLyCBTM427dEQ9vt1/kJm6QD4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=QCRdg7OySexwj+BjkwAbDHqy7mDBSvaifvPdyY+N7/Vs3n/4kG4rFpjiXHkHQM4ip of7SrqUoyPFcmmQxFIVqWyTUYIbF7HULTXZruxwwuVRnuOgLh9h7ItQ4bY7KSTFhUS 221BC/Pt/10E1vzeu1pe4fVLEybcEuySUt1NxE14h0VopAnDjV3+iIl0A3Hky+n+VC I62jFT0yMHmiy8k/zh1XyQYqViTD36GG98iHUHRGNjDrgZ92tUjvjaoYA3LJKg8Xsi q8C+BDoFqa/Z9VsSr42s5wUxFRRBkrX41+/SD0Kb2NvDn2ghW89h9GU5NJ268wJtMx j82ymfgLwZJBw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Duoming Zhou , Louis Peens , Jakub Kicinski , Sasha Levin Subject: [PATCH 6.6 339/638] nfp: flower: handle acti_netdevs allocation failure Date: Sun, 24 Mar 2024 18:56:16 -0400 Message-ID: <20240324230116.1348576-340-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 88d6d992e7d07..86db8e8141407 100644 --- a/drivers/net/ethernet/netronome/nfp/flower/lag_conf.c +++ b/drivers/net/ethernet/netronome/nfp/flower/lag_conf.c @@ -338,6 +338,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CC731152502; Sun, 24 Mar 2024 23:06: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=1711321610; cv=none; b=oSnQlHFN2uz4H2sBDyc98o/4YlhrS5753NxzmbUZeb2WW+XYja0LbjGodBr/gG76PTt5pJMY62vqQ2VvuADBU9UzQ8HIUNlIVGl1YX+CSaooWs36gz0GCS4LxCZodEY/aZsnTaAER5lwSup3NyMg2/BzvpPrQNERI2354cKJfrQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321610; c=relaxed/simple; bh=2JQCxS1z38ooUBpwC41Iatakm1a1oaQ5/Tw7+s0wzd0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=RV2tp25/yqU7FbSsvXQgJAoWLVEMnH6y3LB4CBC6lnf1aapjS7atmqXr26OPm7F8Sn8neG1qWVnSZW+dINdzUtj8ehYPPOycrJCdMLAMALvlPJW9Q83tdWzZV2KIsBI3iFow+L5GmNB3s0pQRFLJv5T6HMEeGgEZATdPZKJ6PSc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=O79t4HXg; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="O79t4HXg" Received: by smtp.kernel.org (Postfix) with ESMTPSA id C23BCC43394; Sun, 24 Mar 2024 23:06:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321610; bh=2JQCxS1z38ooUBpwC41Iatakm1a1oaQ5/Tw7+s0wzd0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=O79t4HXggfg8CQiTT60YOuhsaCIGtjvx1V7D/3LWRsHixMgCEyB9Jsrh5ogEGKCk6 naoaJnh/7/xktSwkrYui0H8ecKTo6F9M7DCBsrSjUVT6bGSv8l+/4VvHRxtyLsNs5L vWE8bdSqSC0OqGv8uqcfWZvdaFVbueuYKcfZYVl/SFDVNNqB3EL68cuvIAubKMx8e0 by31e3/Y7m/xfED+0rGmHllH3iw2GyDlhrl0OWuZTAK/ySZEKQubEUqxZa8OYv4j5+ LS+kFDh5771kz+FX816k4FUHlU+POpcbICuND0vABHLB84mCrWOoChLQwoW4fMzUsU YMzbLqvClJx/g== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Puranjay Mohan , "kernelci.org bot" , kernel test robot , Song Liu , Alexei Starovoitov , Sasha Levin Subject: [PATCH 6.6 340/638] bpf: hardcode BPF_PROG_PACK_SIZE to 2MB * num_possible_nodes() Date: Sun, 24 Mar 2024 18:56:17 -0400 Message-ID: <20240324230116.1348576-341-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Puranjay Mohan [ Upstream commit d6170e4aaf86424c24ce06e355b4573daa891b17 ] On some architectures like ARM64, PMD_SIZE can be really large in some configurations. Like with CONFIG_ARM64_64K_PAGES=3Dy the PMD_SIZE is 512MB. Use 2MB * num_possible_nodes() as the size for allocations done through the prog pack allocator. On most architectures, PMD_SIZE will be equal to 2MB in case of 4KB pages and will be greater than 2MB for bigger page sizes. Fixes: ea2babac63d4 ("bpf: Simplify bpf_prog_pack_[size|mask]") Reported-by: "kernelci.org bot" Closes: https://lore.kernel.org/all/7e216c88-77ee-47b8-becc-a0f780868d3c@si= rena.org.uk/ Reported-by: kernel test robot Closes: https://lore.kernel.org/oe-kbuild-all/202403092219.dhgcuz2G-lkp@int= el.com/ Suggested-by: Song Liu Signed-off-by: Puranjay Mohan Message-ID: <20240311122722.86232-1-puranjay12@gmail.com> Signed-off-by: Alexei Starovoitov Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- kernel/bpf/core.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/kernel/bpf/core.c b/kernel/bpf/core.c index 5d1efe5200ba3..1333273a71ded 100644 --- a/kernel/bpf/core.c +++ b/kernel/bpf/core.c @@ -863,7 +863,12 @@ static LIST_HEAD(pack_list); * CONFIG_MMU=3Dn. Use PAGE_SIZE in these cases. */ #ifdef PMD_SIZE -#define BPF_PROG_PACK_SIZE (PMD_SIZE * num_possible_nodes()) +/* PMD_SIZE is really big for some archs. It doesn't make sense to + * reserve too much memory in one allocation. Hardcode BPF_PROG_PACK_SIZE = to + * 2MiB * num_possible_nodes(). On most architectures PMD_SIZE will be + * greater than or equal to 2MB. + */ +#define BPF_PROG_PACK_SIZE (SZ_2M * num_possible_nodes()) #else #define BPF_PROG_PACK_SIZE PAGE_SIZE #endif --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C976315250B; Sun, 24 Mar 2024 23:06: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=1711321611; cv=none; b=s3PMZhz+l/YI/hL4QkZ5qXjMi1u5xqacjR1Fc6bTA218mbZCnrdDUpi41bhOU2YJhYEjVis21ZaXh3iXu2oMBX99WndKpJG8jXBykEogP+Z7yqWlJuMr0RGCEuAwnoWIsh8nZKgbwIBqkqTA2LLtaa5Jrt3+cGL3Uk7ATNFsWF8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321611; c=relaxed/simple; bh=UGaxFGHhiCU1ABKGD20RSDZbKphjf0z3i99sFcOZKJI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=TI/APd8QriOVz5PDrdqihvZueLb4jfju+D0f+YK1/XfD4eqOl0bE2yr4l9GKlp06YTwGCgyxnxAYeaeVX4C2YLKi6AmngA/W1htWODK21c/36zrjfwg2HGEHJi+On8qNMKVvUl3tdW+xiwv9PqZ/gsqprVq4y6l4cOsPPMb46lM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=oGZs9ssf; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="oGZs9ssf" Received: by smtp.kernel.org (Postfix) with ESMTPSA id EF901C433A6; Sun, 24 Mar 2024 23:06:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321611; bh=UGaxFGHhiCU1ABKGD20RSDZbKphjf0z3i99sFcOZKJI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=oGZs9ssfUc/r3dp1d4jhbILpdJh8blJ9kQjuTAF/vQ8Ub1vUzbtE1213WZZrnFCWw Co3rv/HEDNud4/syIdWcKq6JaTAhja9f9GuB6ojzsE+7q9S56BiXWXXfRcdl4E6lxq vBDtd/G8p2rc8lurXnKXZ7inXEF7+mhMvvGlAxmgQ/9JKZJ6yPEXhGFY3CtCEDc25P KPGi9RpJsrd+VTpocmfOPaKx69ShWXm8QaQG559CKfCYTC2U2cJpad43IPmCIuZH8/ qRgfN6Zc3RDiLss04zBlvDAKgiswdXdGghtmNT9g5yEQV1VfkPUu6aFKASeUOMCRoG Va45Q8uZhvuAQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Ming Lei , Patrick Plenefisch , Mike Snitzer , Sasha Levin Subject: [PATCH 6.6 341/638] dm raid: fix false positive for requeue needed during reshape Date: Sun, 24 Mar 2024 18:56:18 -0400 Message-ID: <20240324230116.1348576-342-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 5f9991765f270..3d8ee9eb59ea6 100644 --- a/drivers/md/dm-raid.c +++ b/drivers/md/dm-raid.c @@ -3322,14 +3322,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AA90015251D; Sun, 24 Mar 2024 23:06: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=1711321613; cv=none; b=Kl7qUEOtzmu8Vx0l5wl2VTm91f8CHiAU5GJmYi+b7dtv/Y2tl0kT+6uiTH8dZk4ixskMC5jYUxSbh3LQl9e6ElCpMOWHtK04oo9Rko3Cpy0uhe4z6tNjUNhkccJf2hvLN3vxqIYTIPfBPDLviITbs8pteMuwaFXXPd1t5uJgOig= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321613; c=relaxed/simple; bh=8u2lrOUR/FMLDlaneYHW1ouJaJJx5e8JluC0PlHvuOk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=XBKu8Sz0sKljld2WKUym35Apa0rr7XGGx5VLp6k+4bRnSNqQJseqHB+c493RykNRGPJMgRC17rWmhCHWerF0iCj5ZC6isMpHogCjLbm6PuDCcUy8n70iJXxIXYgg+lLbyVZCOXQAQt32msLD6cWlZYfCTeZllq9GPVvMrNzucHE= 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+pa6MKr; arc=none smtp.client-ip=10.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+pa6MKr" Received: by smtp.kernel.org (Postfix) with ESMTPSA id EB5CEC433C7; Sun, 24 Mar 2024 23:06:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321612; bh=8u2lrOUR/FMLDlaneYHW1ouJaJJx5e8JluC0PlHvuOk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=W+pa6MKrsC6o8wSu/SWm+NAeZW1sV0mVTH0YTeQA4nzGsji77kLfRhwnzwwX6IhH7 A0EQWiHEYU58TL2DjOXKSvdCbFSA6kVSpEaPxdz+jrtOzUghCRqyHDqW1DsnjvS/zE 7GkdIf1NqvTOIurdIRuaEB05FVQEkGVa1iG4aktM13xkSDKaVzH6j7kfw8HB93BZ46 wDV9FjVh4C2/gMaKFNfpQMl0Bl62e5DXWY6ZPv/wGQ5FwdhEoGsGRYKxLPOvTQjWi3 ZoyGm0BaldqZbNq9+9A0qZO+SSJwAXyiOnibugrczhT0ygmeJNn+blrVPj1TmCM41B WIZMBFxoNgTlw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Mikulas Patocka , Mike Snitzer , Sasha Levin Subject: [PATCH 6.6 342/638] dm: call the resume method on internal suspend Date: Sun, 24 Mar 2024 18:56:19 -0400 Message-ID: <20240324230116.1348576-343-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara ------------[ 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 64a1f306c96c1..f945ee453457b 100644 --- a/drivers/md/dm.c +++ b/drivers/md/dm.c @@ -2918,6 +2918,9 @@ static void __dm_internal_suspend(struct mapped_devic= e *md, unsigned int suspend =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) @@ -2926,12 +2929,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9524D152527; Sun, 24 Mar 2024 23:06: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=1711321614; cv=none; b=J7WnsFQaHxpOaXzxptfrqMNJZFOPprMyHf7nFCGFJxl37Q0VOe99p1RMi4uMMpQW3Q51k0B06rHtm9ApriRJPuUnSqlzIJQvUbmS299xs21sHXLurWQbd5GpkHXqCIvxf4eStB6ZXjSKCJLrAEOunY7nn1YMKXF/F/BKcfq8SGQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321614; c=relaxed/simple; bh=RwRlzPzxBsXC/idl0YVK+0djdxlWFSHYU/Oc9ReOMuI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=FaqUwWXb9zvwjGp6/og3lgMx0ft3TeV0HTP5TxxArtOvIWsl8kulMkXeGgg4S5+Ga4R1/rLBFVfXWrr5n0mPvS+mTU1TEG3Y6Jpm2SKzUdB9CclJbMykUQJxAbI0g4wtD+IIbFZD+1gzMnjqcrrXRaP7ri4mx184d1y8G3J3UkQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=jESuOoYc; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="jESuOoYc" Received: by smtp.kernel.org (Postfix) with ESMTPSA id CFB17C43390; Sun, 24 Mar 2024 23:06:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321613; bh=RwRlzPzxBsXC/idl0YVK+0djdxlWFSHYU/Oc9ReOMuI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jESuOoYcwaUj3G/h3aDqKH8viwjIM0VwbuIAx5jjemkp7XcGRtZpnXGXK1MzuP1Tx 7TIOv1pNZ79Cs3zj1mI5fDXKsFjMgdgCfjKZQN+jr9p4tkQxM+JhYizjVFXPokT8+e ioZHFX1HWfsa/DG0QTEMsJ+IHSDRZHEOpzoRFJdmo90zQM6eToLiDaw26qiHoYjnlJ Lmf+TlHLCNdjgL2UGZ74pg3Opow6gHTMPaWkbYQfiQYA9/rJ6BZXYk0qjAcRIYwrnH BhP2sauM4vmji8z1ZM3xzh3sm6/fR8E4SVBMxL0OKt69/fbEdLgCTvmR7pk6BzYQGK ecAic+c1NdBHg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Chen Ni , Thierry Reding , Sasha Levin Subject: [PATCH 6.6 343/638] drm/tegra: dsi: Add missing check for of_find_device_by_node Date: Sun, 24 Mar 2024 18:56:20 -0400 Message-ID: <20240324230116.1348576-344-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 a9870c8283749..4101b2e012118 100644 --- a/drivers/gpu/drm/tegra/dsi.c +++ b/drivers/gpu/drm/tegra/dsi.c @@ -1543,9 +1543,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7FE7B152531; Sun, 24 Mar 2024 23:06: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=1711321615; cv=none; b=utWTWp5rY2n6rXRWiNOVOv+/IjcmH/QCYPOX5qdS7TiNaYLgkYFL2vdvcdmdeceleZU3itPpGUoNhCVR5hnpQ+0eZfMfj+wvA5kdzRa5ukSFJHZRn2eP59vp6R9BmRn/lgZx2twl0qYa5NTcbi0hTKEebJ6ARGzZQPiz0KVFkYg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321615; c=relaxed/simple; bh=6PYzZwYgCOek78YwuwPl9iW6KBnvVCcfXpsYYRC/mW0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=VrxSroojgr5lxkcr9/lPMaiMQAmN6SG/fUgTuvKJ/jYONFDi+bOeh+m+lAkKLbVYjc80lVfWX3tcC8CiHxlweD19NSnSvg8lP6Gj0SwxgjiYbelYmohGurW+voRv5QfPSObERQytBYPALQG8gKCjvDA0ZaUfRhEsEOlh4glIO8o= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=iWXzmNgd; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="iWXzmNgd" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B8EC9C43394; Sun, 24 Mar 2024 23:06:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321614; bh=6PYzZwYgCOek78YwuwPl9iW6KBnvVCcfXpsYYRC/mW0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=iWXzmNgd/LJ68FVUhuQa/KrsY/a3IWRwTO14OBPfTQVtGu/WQyPi1E9tmEZxWXZTa mhQ8oag8gEM8KQshqCqax+UaHWlAIPALTv0wBDJBWPZg+bhSwrGk7ofkbQJ9MOZ4uI b9JQUWONy4UTNQpYChnTo2mdSnAwZIOw1EuOJ0HLJTSntLbcul1D7DG07osReSwTI4 cO7+Rkp5M4NeftNT6QXZrDes275Fxk7Drf4c7/Xa9Sz5zGGn4Syc6Ri10Lpyn1tfMd nSxUuf3QvAish0hnVsvAta2nB56HLDx9yX0q6sBQbpYzYUGosw7CPpoCdKDUJv9lt+ FWpmyJuuLO87A== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Zhang Shurong , Thierry Reding , Sasha Levin Subject: [PATCH 6.6 344/638] drm/tegra: dpaux: Fix PM disable depth imbalance in tegra_dpaux_probe Date: Sun, 24 Mar 2024 18:56:21 -0400 Message-ID: <20240324230116.1348576-345-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 ef02d530f78d7..ae12d001a04bf 100644 --- a/drivers/gpu/drm/tegra/dpaux.c +++ b/drivers/gpu/drm/tegra/dpaux.c @@ -522,7 +522,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); @@ -542,7 +542,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); @@ -555,7 +555,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 */ @@ -571,10 +572,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 void tegra_dpaux_remove(struct platform_device *pdev) --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6299E15253E; Sun, 24 Mar 2024 23:06: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=1711321616; cv=none; b=dADB50xKKPCX8TDXfmMKr7fjKzmTt+yO6Bh2mc5Iay5pYnLnJbjx8rDA0V5abel8KR3fWWeMb2WGuNepZ9Fsk/esVRHB0D2UbOiV9jvGVI/f7UwStOwOII6fs+QLZ21wLjNwfvjjY6nURSceYheVzaDrnWWt3eeOOTghFGnqDi0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321616; c=relaxed/simple; bh=9KoTyKZMdOpJ3nZPvA+0T1wrCcCKP0ECAirf3EuzbG4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=szRMGUYfWHoPwrbFjEak/7RcOXBKnZdJkBQsThFneLxgmwepzM/wdvM2ZceTKx0PuIRpGnfXam5otsxlxenO4lRXjFo21hNpOfoxob9Ee1+U+6+7mYKNNvmdEBRlBI+1sC/tXSKw4MSzDyFTD33kfAxGp9S52Dp3lsPtdhyb33Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=hWjXm+TE; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="hWjXm+TE" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A01B9C433A6; Sun, 24 Mar 2024 23:06:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321615; bh=9KoTyKZMdOpJ3nZPvA+0T1wrCcCKP0ECAirf3EuzbG4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=hWjXm+TEpq1m4xFNrXhF4nNMW1noZYOhJEM2zKhIE5Nlo2kC8iKtWUWOmgcoKfdnh 5BRd3bbrn2vFYN6/MVYmiZ4p0cri327q0HnInuVlwE6txcKM4pG15wahTk9pqC837o R0/nltTX2zuU7sPW0mS36DP0FvnMoOUiPIFccNc6dd1K+RFs5vhvwh2ssB6ZbNSSbB oFnjcMKamPt1R2odu1bwVtY+z2R+tV26DYzhNt5j+BRfYnJ7+0SPYGwuu5QX7yQfpY mf0/unX3XWYB85TPjqI9NEjQJf+01qNb4SeTtZEeh0/ud/vri7lrdAikgG5B/yWwSG RCVfEfIG6BAag== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Christophe JAILLET , Thierry Reding , Sasha Levin Subject: [PATCH 6.6 345/638] drm/tegra: dsi: Fix some error handling paths in tegra_dsi_probe() Date: Sun, 24 Mar 2024 18:56:22 -0400 Message-ID: <20240324230116.1348576-346-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 4101b2e012118..b76b9b0232250 100644 --- a/drivers/gpu/drm/tegra/dsi.c +++ b/drivers/gpu/drm/tegra/dsi.c @@ -1595,44 +1595,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; @@ -1663,6 +1677,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4977C1386CF; Sun, 24 Mar 2024 23:06: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=1711321617; cv=none; b=rmwfUtECQJGpw+77HNNSeTWJIgqufpU/QcPBeI/afakjyMHVVebVhUGDldiZc0p7lYYR+6C+0zZCGHNaCEzsuEVa3VI6XuSv2QcTaTrPt6A5cqmpuWbiqOyOmt1DGGc71HIO9GSBaTrGFnkcl4i7BjkIarpyCkgLHLjjJGFxtnc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321617; c=relaxed/simple; bh=DMNzpI+LwpwXyzzvcvodwe0NA+LM42bdDJQQwwfvX6o=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=pkGd1weKxadmkBDX/M8Hk+UT8HLihtApEufjD/GGNMSumESb4cWdqO2Oya7tF4BeBi9FxMQzx9ibAH2EZ9pnDPLHCy4tDh8FvIDXX8JSUb8e4B+1v8Bj6URUU/BaS1XGJ5EyMaScyLI4KSYgjS1UG7q19solByJyydC5+WJWFo4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=LpjTNrKc; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="LpjTNrKc" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 85B48C433C7; Sun, 24 Mar 2024 23:06:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321616; bh=DMNzpI+LwpwXyzzvcvodwe0NA+LM42bdDJQQwwfvX6o=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=LpjTNrKcaBY0ql6STfTY+uNf5uwZ/+EOUT+4XZ2V8SJvGHf/fbCN7F+tmtw+DBuhC wAkpGMrLZ0tfjg/QCr0OJz19OH6NvHJzeweDQt0WWpfJG3CgrssdG70gYwRci0dIE5 HtYWqL7DyNQEEK5rvEHbsMTBRnkfP+1mSktKedALNmOUWd4V2zvslipocmptBxkJk8 6BE5Gihi6dwfOGt6lnSt7bhiAr1rjZdFjX0bynvj/yzO40n9yxfyoj8zSG5o73mUwx 7DB9IjLvOSI6FA4F2/a5g0zcmgUFyZi1QwjVMDGVy4NR5ISj2vt1xZTF+ahWfSlb9b dFb1ltpMqI1yg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Christophe JAILLET , Thierry Reding , Sasha Levin Subject: [PATCH 6.6 346/638] drm/tegra: dsi: Fix missing pm_runtime_disable() in the error handling path of tegra_dsi_probe() Date: Sun, 24 Mar 2024 18:56:23 -0400 Message-ID: <20240324230116.1348576-347-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 b76b9b0232250..839dbad9bc483 100644 --- a/drivers/gpu/drm/tegra/dsi.c +++ b/drivers/gpu/drm/tegra/dsi.c @@ -1674,6 +1674,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2FD521386D4; Sun, 24 Mar 2024 23:06: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=1711321618; cv=none; b=WxFbO3p7ZxL2fTfBnFkDme22wQyd9fk6AzfWgaSkbBKGFiSUWq9jtzYfxp/r/9l9SvwuKGdlLmbnSLyOBRwoBwtSYy5Hny0nQSu8eHtFULyHs2XSr+KkkfTFvBJm1ear9UjZkgJo6jlzoTgP4sivwwRX06eZpwitDYf2FzUfF90= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321618; c=relaxed/simple; bh=6vNVaI39IZK+aSzy951/QxKLTuPpdBE8AQvbGcKncCM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=vAZKM/bpYGMRj7O6NV/MXebyNNrj4MJlbeF/pXrafNti9TAg6C+QsqlAWUSaFgTDwnncQZaM+4yqNNSA9UgcK89/6ZH1ARD9X1crWdnlFabp7F1eurIejIEwEAvajK2cdOmQNCtrrm4Sbr+vGfJJpaAtsAOaKkb8djyXp4EZO4s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=j6TpWP+r; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="j6TpWP+r" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6EBECC43390; Sun, 24 Mar 2024 23:06:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321617; bh=6vNVaI39IZK+aSzy951/QxKLTuPpdBE8AQvbGcKncCM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=j6TpWP+ros9ylQvzswfldaoynOXZYv7EAtK7LMrGavjzmzWSQnoncRPRfER9NALtJ 33cWGy/6F/QPXU49r1+GR9BLISBJc/rwvTqaizAuX6NeGYD3ycyVNPa+gY40a1wxwQ DvyPv8UvDUHJ/lqSQcgzJQRXmOXzRd4d4HGxL6yO7S2DhdC6UOSkhJFhbitr7T4Brt ZWIo0mAoD10fJjV/y5ENOg6ElAR9Z1Bl/1Y3q04JA9/tRdpwFxwbrM2nulW+pAtx2e HNGaf+ojZ0HckTwpbBbGdw7/t+NYcEXot9stKzPGVQn80rSKrjoeYJnY8Inh5+y6/s XuXJhhRpkNW4g== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Christophe JAILLET , Thierry Reding , Sasha Levin Subject: [PATCH 6.6 347/638] drm/tegra: hdmi: Fix some error handling paths in tegra_hdmi_probe() Date: Sun, 24 Mar 2024 18:56:24 -0400 Message-ID: <20240324230116.1348576-348-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 643ae131b8598fb2940c92c7d23fe62823a119c8 ] 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/9b7c564eb71977678b20abd= 73ee52001a51cf327.1693667005.git.christophe.jaillet@wanadoo.fr Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/gpu/drm/tegra/hdmi.c | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/drivers/gpu/drm/tegra/hdmi.c b/drivers/gpu/drm/tegra/hdmi.c index 80c760986d9e9..58c2ba94e7dd6 100644 --- a/drivers/gpu/drm/tegra/hdmi.c +++ b/drivers/gpu/drm/tegra/hdmi.c @@ -1854,12 +1854,14 @@ static int tegra_hdmi_probe(struct platform_device = *pdev) return err; =20 hdmi->regs =3D devm_platform_ioremap_resource(pdev, 0); - if (IS_ERR(hdmi->regs)) - return PTR_ERR(hdmi->regs); + if (IS_ERR(hdmi->regs)) { + err =3D PTR_ERR(hdmi->regs); + goto remove; + } =20 err =3D platform_get_irq(pdev, 0); if (err < 0) - return err; + goto remove; =20 hdmi->irq =3D err; =20 @@ -1868,18 +1870,18 @@ static int tegra_hdmi_probe(struct platform_device = *pdev) if (err < 0) { dev_err(&pdev->dev, "failed to request IRQ#%u: %d\n", hdmi->irq, err); - return err; + goto remove; } =20 platform_set_drvdata(pdev, hdmi); =20 err =3D devm_pm_runtime_enable(&pdev->dev); if (err) - return err; + goto remove; =20 err =3D devm_tegra_core_dev_init_opp_table_common(&pdev->dev); if (err) - return err; + goto remove; =20 INIT_LIST_HEAD(&hdmi->client.list); hdmi->client.ops =3D &hdmi_client_ops; @@ -1889,10 +1891,14 @@ static int tegra_hdmi_probe(struct platform_device = *pdev) if (err < 0) { dev_err(&pdev->dev, "failed to register host1x client: %d\n", err); - return err; + goto remove; } =20 return 0; + +remove: + tegra_output_remove(&hdmi->output); + return err; } =20 static void tegra_hdmi_remove(struct platform_device *pdev) --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 17E744F1F5; Sun, 24 Mar 2024 23:06: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=1711321619; cv=none; b=JRu6rrxkZn/yixS1ogjsnBTqkNwWSnIkU8c7s8Rj9FflYke3HsiRKc76PFvkqTuOkdm3HvVASvw9qXg8abrMPLImbM13eGZQiT13HA6XqwpvgGwI++CAYN/0hIfBda+jxsXwaTLkCYC52ziyej2mJHS56MNp3CRPuFW+f0kYnhc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321619; c=relaxed/simple; bh=9YW6LdzWNOFesOTNdVc3BEUt3zTKv6VZsEl6iMh03C8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=McE5pacMC+nC2tJ+e0arzzPUvDQCzRUYMHOI3JBZPTnBBYZ7LHaT/gs3g9d4VYOlwsGnQXCtTYfcjiYjNmlle7amybhgti3/An90wzR2eUbPGrlazjJU0RFas5tI1Bc8/1AClA2+wVOBjC1zqE89CpObqYhvBh4kzHW+6La3KsY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=XEdweW3U; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="XEdweW3U" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 57003C43394; Sun, 24 Mar 2024 23:06:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321618; bh=9YW6LdzWNOFesOTNdVc3BEUt3zTKv6VZsEl6iMh03C8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=XEdweW3UpFOoTBx9YqVL1Kzs+88BONlRygs9XedxYkcQHaValvaRvXp7vKLE/dKgl 2/w0DkCo6hxrIAOd540XwRB05BuANGZ+4wanwd0X0L3CXyO1Y80va+goS2thsB61Eo +SoVWEfm+OiqIRyOaOzmXbZAuerqEQm5oBum6T0nIAMoREJ5vSShoRwPo44SMeF7LA Sl3iVIwnKCf9QCRufGrjcsB0Aa3qQF/fEjNcmojbWbhz4ojW7c+AHClh6T/eKO2AAT +WHt70ilQOphlrb9lKQD7mhcZNXRRcIaEgvDvb8iV4ap2a7vJ+DkqTG0bVsp0Hznp/ nU7Uc9trD1W8w== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Christophe JAILLET , Thierry Reding , Sasha Levin Subject: [PATCH 6.6 348/638] drm/tegra: rgb: Fix some error handling paths in tegra_dc_rgb_probe() Date: Sun, 24 Mar 2024 18:56:25 -0400 Message-ID: <20240324230116.1348576-349-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 79566c9ea8ff2..dc138945f3b25 100644 --- a/drivers/gpu/drm/tegra/rgb.c +++ b/drivers/gpu/drm/tegra/rgb.c @@ -215,26 +215,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) { @@ -242,13 +244,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 void tegra_dc_rgb_remove(struct tegra_dc *dc) --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F299115253C; Sun, 24 Mar 2024 23:06: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=1711321619; cv=none; b=ButPRi1YlYlYFvvwLOOf5uU2OO8sIJFVBCq5w3vbIfFy26pSKy5dFQwtoX78HG5+wic5wMUbh3zOq9c0WQnwzCtzVleX/UyxqWv7bMWcdHzqx9Rz/UGKg/yGOo7nrMphzXaAjI+tIeraaIQuBtvpccZxJZ6a2tq0iuVD+Hyz8Xw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321619; c=relaxed/simple; bh=W7L1ScmXSJNPDymey0pC5K6tKjxgdQtHutJObTe7SAY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=HdyK6cAUuvie1WTyYNm4BDFqU6ykSheOUQaRWVhDkysvfeb7ms+W+VyVD8gyi6TDNKgzAMDNgABvtCO/7YOPzlirY1QUPSR623yHdL0HvQwM6KqdnL5jswfOMUAi4l9qW42y/RlhwQQtt1tpl/cQf7aEbzp9VEF+eCAqMx8VCM0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=DJFmDp0a; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="DJFmDp0a" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3C4DAC43399; Sun, 24 Mar 2024 23:06:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321618; bh=W7L1ScmXSJNPDymey0pC5K6tKjxgdQtHutJObTe7SAY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=DJFmDp0a1p9IsarY7Qq9WhE0JhEMLwNr6sL2HaNfrAAXVGVHju2Z3gKlyAbYW/dpZ OXAFw8L73VbiVO/Zq2cdIf07fV/NqXDLHjYorfbxHDrD1HrTPLp37bP9keC9/308bT vEMuBsPBjiaQEONz5Q0uoo1w5iNlJ9suT+qVnVelWbsA+p070YMxeiB29uVIG36AJ9 mKPA7MhGSLYGBtzITWxoxiKq8ei6lp8A/2EoE0g1NA15ESyqFtbioj0G4IQ8D3v87R lZRKXFDz/LYGL0W5KxGdxfkqNCot/sL72n6UpP05pBE/APO9V2Hio6CFMbm8UZS7Ye +CeA0138LDUQQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Christophe JAILLET , Thierry Reding , Sasha Levin Subject: [PATCH 6.6 349/638] drm/tegra: rgb: Fix missing clk_put() in the error handling paths of tegra_dc_rgb_probe() Date: Sun, 24 Mar 2024 18:56:26 -0400 Message-ID: <20240324230116.1348576-350-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 dc138945f3b25..d6424abd3c45d 100644 --- a/drivers/gpu/drm/tegra/rgb.c +++ b/drivers/gpu/drm/tegra/rgb.c @@ -244,7 +244,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 @@ -252,6 +252,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DA9C31386DF; Sun, 24 Mar 2024 23:06: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=1711321619; cv=none; b=lR1z45ZyM3EO3/OcOvO7NDSRKMeMj2Q+8SXW+4VNbmo7zmVGoeifSPMQNTEN0GKVvjAUYDZCxCmdDjU9IcwZ3rccloVeS/P2dePp7pjWgQD+bG9QkAbEt1qbL/iVSqBJH5m5t9xiaShcd6LczqIBq429vHrcHHnbH9Z701GIV+s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321619; c=relaxed/simple; bh=HiFTlZ3SKcc4YSHufcREYcJE8gSsUS12Vn56iUfMUs4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=TkO5wQUHd9K1fXPQIT3r6b2t3Qr9ZKz0GcO964MC9H8kUAGIxTv/PwnGLyH5MDNwkw34yLT21VCAMuVM7KlhfeBSl4xMG73kBxnHUwbbV/FWsyCK/mPbS0uoXj6Gjq9LQLBbV4n3W36F518ANOUAT9KvFqe6wcVp6KVDDxeHSnc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=uUgwaj/r; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="uUgwaj/r" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 246DAC43390; Sun, 24 Mar 2024 23:06:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321619; bh=HiFTlZ3SKcc4YSHufcREYcJE8gSsUS12Vn56iUfMUs4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=uUgwaj/rb3kKg0qSt/nj7FFdljWvZCurCVIh25TnQp9q3CaKHMMQJ4BKeJ6nWGzhn bxSCgf39RgSSsCnWZynyJ2dupwg+Upy8TbyqpWHQ1hYGIQPO7LWK3SOirLFtAP8b0v W4UsUIQRTaI6+c2PqmFhAJY4Psob/HRIhM9Cjbg7sA4thrNEw+8KGTHwAZGD4r2JCM QlmGKnXZMFVixqYdUOdYajOYj+9fVNJiY1HiWL6jWAFvHvfxHuVPiQ+YpYJG6Lf9he VXXbOwyfnafmi0Z93GNwLc94IxFBQ54wl3XjPQQdDok/WyT9qcZqYqUK1uyt0GNMBM 8p1OrLvRB7p2Q== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Christophe JAILLET , Thierry Reding , Sasha Levin Subject: [PATCH 6.6 350/638] drm/tegra: output: Fix missing i2c_put_adapter() in the error handling paths of tegra_output_probe() Date: Sun, 24 Mar 2024 18:56:27 -0400 Message-ID: <20240324230116.1348576-351-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 dc2dcb5ca1c89..d7d2389ac2f5a 100644 --- a/drivers/gpu/drm/tegra/output.c +++ b/drivers/gpu/drm/tegra/output.c @@ -142,8 +142,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; } @@ -152,7 +154,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; @@ -165,7 +167,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; @@ -179,6 +181,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2A26E139562; Sun, 24 Mar 2024 23:07: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=1711321621; cv=none; b=j38r5GboUN8JU0cZaFqWzJ4wFI5k+ClTVwEsTkO7tw3zOKlK70ijUMyNRvsTV5lONjsds3BV8YxoB/UXkXzEh9yF8Fq4Ah5hxBxRYIwXJ40h6huDu01wJFfRfC6NcGIiAe3UBU7Avg6f6Sw6FZ8bM22AQZcVzB9ZamPmPZw6RyQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321621; c=relaxed/simple; bh=OJJPol7J7fIrfaytG9VmHCkxp+IgzNXZBKdiEqSucJQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=tOl3y1DnEk+Hsip6Rga+BdNvFLvHpmVj+5iHJVJ743A/E48Fmcl2kSjNDO1nm8hCJy8KcKxWqL7zs6UuwsIwwwkbG0OPHkCEKWDD9te751uJ4gE9HnGL1cL4FxdjxbCwqpFz4xGmrTP1juCGbg3w2k8r8344OAp0h2dz7TQ9bYA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=dSD4+lcP; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="dSD4+lcP" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0A237C43394; Sun, 24 Mar 2024 23:06:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321620; bh=OJJPol7J7fIrfaytG9VmHCkxp+IgzNXZBKdiEqSucJQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=dSD4+lcPovoVQ4oVmQBXuoICt9ApNLbm3msukLXtcWLgpsGqMT8tiLhfFavNcuYvT QVvXXZPv62Tyr3rxPwgRfD1XGNUAmF9ifl6y1tpVnXxt3RiYLVAsZ03Ugq9giUl+uZ oAMCH+oXQltxDY1brS0w1Mgag0GiYCWSGUHIBjT4sSSbqgJraVeDH6RLNrW7oekgs0 rYKLJn8B5wcZ1ARe50yJu52RncG/1kNXvf5dA2mjGZXRmDUzlF8B8uRnkPqj+5em8e RvIB7966/hozk41zeoUCe9LObn+mavwUWDWc5bgbMe10kEmVQHkb4z2B9bDXB1ZjPA i/j0dOpjNwhTA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Alex Bee , Zheng Yang , Heiko Stuebner , Sasha Levin Subject: [PATCH 6.6 351/638] drm/rockchip: inno_hdmi: Fix video timing Date: Sun, 24 Mar 2024 18:56:28 -0400 Message-ID: <20240324230116.1348576-352-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 6e5b922a121e2..345253e033c53 100644 --- a/drivers/gpu/drm/rockchip/inno_hdmi.c +++ b/drivers/gpu/drm/rockchip/inno_hdmi.c @@ -412,7 +412,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 @@ -427,7 +427,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id ECCAE20C02E; Sun, 24 Mar 2024 23:07: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=1711321623; cv=none; b=K8UjYCSUINhZ1EhtGVrZDR4mTC0kf8iOYKstQdeoKfydIFlLKtsVk++9z1K0huLHCtX7PWntFPfwrmeDWLlngTDSbaM0fHlKQR/H9ezZNW1zNcfqsWWumHdLpYCH0VtA2uCjmaU/1lWuaVxkwdHsBvFDqupKe9x0AcGivSZjpOE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321623; c=relaxed/simple; bh=qgWoNH854Qu3UszLlD0IS5mUljLWw9/aZEUoPzuQfUA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=cKIV+uDwGa0MzNBwX1vGREAIyGEkmrTCJMg3plcnEU8As8VYYY1f22ThgB4IknDaRNosywdGyPhz1R5wkZJRIItLV+SFiX9NzTMAHprJHHSUXhp3eUbHAguTEdVyJKRiD+wGhtYm1gNuxuS20btVKcgykoQgYFWdzTuvKiZ7KtU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=s7jPkEa9; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="s7jPkEa9" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 08F4FC433F1; Sun, 24 Mar 2024 23:07:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321621; bh=qgWoNH854Qu3UszLlD0IS5mUljLWw9/aZEUoPzuQfUA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=s7jPkEa9qwpqtNtAkVgWkiNwT9bupJTwYd6XBWEiN/LxUXAgOPIg2zhqfOV09ysDx V2xDTfMPHlBgtnImyf4Dj6b+r0p0A3iWP/iYBroZPxsR806vSCTJJg9dYNTJ38901Z +KB73lcEzT6RoaZSGMDOnqUBaJ6YY+e3eJ8ICQzpdA6rcVH9djpkq8H1C3W/NirnAS hrA1A9KMCTVTMyal5S+wmoqxpR84AYCuTVSeBWR4mUp7WCYFzdvFeJYFlqroaK/oZD KPRUH7wtWIGczcaZNpcOlSlN7hU+HNpCYJuyP/mI/jmm3n62y6mA3pTbgw7quUGPph 83fj9rGAMUWNA== 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 6.6 352/638] drm: Don't treat 0 as -1 in drm_fixp2int_ceil Date: Sun, 24 Mar 2024 18:56:29 -0400 Message-ID: <20240324230116.1348576-353-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 6ea339d5de088..0c9f917a4d4be 100644 --- a/include/drm/drm_fixed.h +++ b/include/drm/drm_fixed.h @@ -95,7 +95,7 @@ static inline int drm_fixp2int_round(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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 08C6B20C030; Sun, 24 Mar 2024 23:07: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=1711321623; cv=none; b=WMkGVIBAxr3TPQovSF2Bl4IU6v8CJR0nTNOzokfKW25OV4b65z30q7pwTaNEExPu2P2aStxVdF60+JzU28ZyWZxISslJ985qtE495NoUPz08ya9MhWISF8GV/R9mQFUHV8DlBkRw5W6lIbLkqQjn1A/DWRjsdG1h5MuOoTssebs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321623; c=relaxed/simple; bh=r94iDyI3IDylZBFHddqhoES6VAbPF+0tOiw1jowT+zQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qx8bfmD7jjl41cFHYbO6iwcL9K/MlvuYE2FyC68zkZ7+3vSA3D0gT4IffP4poYRHq0e5KkUS7lBMZv4zTYEnO9kPRoB3Kp9uQwE0NCRAoW/XoXgaQXVAHaxK9rhMU8cUYjBkKobYR3k2RRaSDF3ITc9ql5SxS66xgE2GGvmmgcM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=bKvP3VWE; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="bKvP3VWE" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1CAD1C433C7; Sun, 24 Mar 2024 23:07:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321622; bh=r94iDyI3IDylZBFHddqhoES6VAbPF+0tOiw1jowT+zQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=bKvP3VWERO2FjAz5jDkMBCsCJ0mmT3zrtrLkqA7dNZ9Bu4lw/GwJIyF6MyuFyI592 /xSvmrvzFeZnJa6yavh6f9Rc1Ebz78psaKlsxR0kHjVcpLJL9qZL2McRvjy0YiaJ7P KPaeUpWLnf5Ld5J4vPGWOYG2JU451g3L0EZM1uXHzcqzb9lv3lnyekWhyfBrQqDE4b yaBVB3RGtefnh14TygktVdtPOj7p9TJiefhYDvGMrQSP0qon45SFUoEvxRE+lNYWD+ UeAtzXv77zmt3+4j3bjejjbisXQmQcgrgHbIa21SXf5r0OEMSlARMY0dtO6oCsnXtB yU5TTBsbvvl1Q== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Harry Wentland , Arthur Grillo , Melissa Wen , Melissa Wen , Sasha Levin Subject: [PATCH 6.6 353/638] drm/vkms: Avoid reading beyond LUT array Date: Sun, 24 Mar 2024 18:56:30 -0400 Message-ID: <20240324230116.1348576-354-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 2fee84030d12d9fddfa874e4562d71761a129277 ] When the floor LUT index (drm_fixp2int(lut_index) is the last index of the array the ceil LUT index will point to an entry beyond the array. Make sure we guard against it and use the value of the floor LUT index. v3: - Drop bits from commit description that didn't contribute anything of value Fixes: db1f254f2cfa ("drm/vkms: Add support to 1D gamma LUT") Signed-off-by: Harry Wentland Cc: Arthur Grillo Reviewed-by: Arthur Grillo Reviewed-by: Melissa Wen Signed-off-by: Melissa Wen Link: https://patchwork.freedesktop.org/patch/msgid/20231108163647.106853-6= -harry.wentland@amd.com Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/gpu/drm/vkms/vkms_composer.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/vkms/vkms_composer.c b/drivers/gpu/drm/vkms/vk= ms_composer.c index 3c99fb8b54e2d..e7441b227b3ce 100644 --- a/drivers/gpu/drm/vkms/vkms_composer.c +++ b/drivers/gpu/drm/vkms/vkms_composer.c @@ -123,6 +123,8 @@ static u16 apply_lut_to_channel_value(const struct vkms= _color_lut *lut, u16 chan enum lut_channel channel) { s64 lut_index =3D get_lut_index(lut, channel_value); + u16 *floor_lut_value, *ceil_lut_value; + u16 floor_channel_value, ceil_channel_value; =20 /* * This checks if `struct drm_color_lut` has any gap added by the compiler @@ -130,11 +132,15 @@ static u16 apply_lut_to_channel_value(const struct vk= ms_color_lut *lut, u16 chan */ static_assert(sizeof(struct drm_color_lut) =3D=3D sizeof(__u16) * 4); =20 - u16 *floor_lut_value =3D (__u16 *)&lut->base[drm_fixp2int(lut_index)]; - u16 *ceil_lut_value =3D (__u16 *)&lut->base[drm_fixp2int_ceil(lut_index)]; + floor_lut_value =3D (__u16 *)&lut->base[drm_fixp2int(lut_index)]; + if (drm_fixp2int(lut_index) =3D=3D (lut->lut_length - 1)) + /* We're at the end of the LUT array, use same value for ceil and floor = */ + ceil_lut_value =3D floor_lut_value; + else + ceil_lut_value =3D (__u16 *)&lut->base[drm_fixp2int_ceil(lut_index)]; =20 - u16 floor_channel_value =3D floor_lut_value[channel]; - u16 ceil_channel_value =3D ceil_lut_value[channel]; + floor_channel_value =3D floor_lut_value[channel]; + ceil_channel_value =3D ceil_lut_value[channel]; =20 return lerp_u16(floor_channel_value, ceil_channel_value, lut_index & DRM_FIXED_DECIMAL_MASK); --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E960920C03E; Sun, 24 Mar 2024 23:07: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=1711321625; cv=none; b=GVbCH8j2SSzmjb5vM8VR+zeaSUw8jq2soyQIz2Iz13gaI4/YirxMOghCBhe3dKRVIVfvU69QDdweVX5tfb9ArVAe4ujoA2fv8F4C2E9htmDHzn55C/04Eu2zhkb706gMN9bNG3C97fM6rDLBdhs7pg6pSI98lxh2fULOm91If7k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321625; c=relaxed/simple; bh=Ke97hrXldFBxj8KzdI5VmMC+f8kuAT2CHHarl1iwKgY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=EojwjPtl2jtzKyQKi0v6jlskGgvjmv/cEdfhMcbypGrM1/ahpP58BrS1x1iXwMV9tP3xLkNdOE0yV11U/FJWDKw+4y2Nerno/7ElFq8xV12YvJKfFEI71WiqR45gAaw0IeG+WlcfpmnmDnLu0qlOnwOApIT5FwpnR8lN1I1ucz8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=qicy6O2u; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="qicy6O2u" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2CDEDC43399; Sun, 24 Mar 2024 23:07:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321623; bh=Ke97hrXldFBxj8KzdI5VmMC+f8kuAT2CHHarl1iwKgY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qicy6O2udrG9QIL005xRkTkPC0KOyho1v5NXj9Vh5iMagk25H/ChxZERdhLC2QoPr ce2259LCiDMzTPsY+MLSkPlPCp1i9Yp1olZMRBEe8sOwsZ+WvhRs3COFlXcqQ2SLVd eTO9axbLu70JZbn3ZPAjVLuu+Uxx2JuPKsQIrS1zsS6sy5OhEA2Rg9JW0qPmTU2iP7 LrvkFyEV7u2yqbMuKLXeF0/1bZiBM85oMl80AGTG3oN/7UzzMtUGOla7yCLTwyMF8g gtRIBMVOQd6rMrXLIpg4kQQmnQqoHIG+Rw6GlLuF9fhF/4nnLlpcTvQoL8FOByG6/H ndjvdAbtTBzJg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Zhipeng Lu , Zack Rusin , Sasha Levin Subject: [PATCH 6.6 354/638] drm/vmwgfx: fix a memleak in vmw_gmrid_man_get_node Date: Sun, 24 Mar 2024 18:56:31 -0400 Message-ID: <20240324230116.1348576-355-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 ceb4d3d3b965a..a0b47c9b33f55 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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E4BE020C03A; Sun, 24 Mar 2024 23:07: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=1711321625; cv=none; b=mf53+aJj+ESm7qQuVws+BL6K3qDVa6RtnVgljeV3mCo1LeVmC+BD6bI34cFo9j7OfhOXf4n8cO9Yg/8kUu5cNUUbKNCH5HfctooLcsn7iYcTlCqfG+sEA/bnGtyejOoRNDc9eIRKViXswvS/hvOohYQ/Peu+hU2C1S54KumocM4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321625; c=relaxed/simple; bh=N321SsALO94SeiSHRq0mWFeBWWQddhzmHDlaHmCj6kc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Yorpm+DPxEUZxibhIJllSQc0EJ9MqKi4E6hum5oqYRmCft16QohiBFgy+byKGplJwI5WoB4hoL9Y/+7/Dekqw3qlSbf2tX1T98VneGBIXMg2mJE1uXunX9XK+UZwtjyOegqVPBssdhah0gbt5PE0KlVPmc3nvqu0R17mdOFmDEw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=hI64oaEr; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="hI64oaEr" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 18F43C433F1; Sun, 24 Mar 2024 23:07:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321624; bh=N321SsALO94SeiSHRq0mWFeBWWQddhzmHDlaHmCj6kc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=hI64oaErC0N5oGNGujE9Cg/X+29Mm3kmGK669zhsXhgWJJ18i4diO2wFIKNHnIhUJ Qr+G8b+q51KHJ2mfXKP68ICo5KnizniPtTWrWu9jWIKogDOm2up4PJtkLH77ZnHpvU Lnb2Vc/BQ+6jhfeOn5SbwnLdR092N+QEp5xGVwzQdQaI+B+UuxASllDkCsFcL9uI15 Um67VvBZ0BryD7OzBLPYxerK8EGNUVh+Crx+kBSkLs4fSMl3qW+aIYREOaCd5D7Ehq 1VgvVtP5m/poPnK5h7BdSVZj/a0MrxhxSSiHSYVOxxUP+Mc1Ek0HxYG5FPhutyo0Oz YGRJJSiUmNY8w== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Quentin Schulz , Quentin Schulz , Heiko Stuebner , Sasha Levin Subject: [PATCH 6.6 355/638] drm/rockchip: lvds: do not overwrite error code Date: Sun, 24 Mar 2024 18:56:32 -0400 Message-ID: <20240324230116.1348576-356-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 5828593877923..27ef812ebc600 100644 --- a/drivers/gpu/drm/rockchip/rockchip_lvds.c +++ b/drivers/gpu/drm/rockchip/rockchip_lvds.c @@ -578,7 +578,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E20F320C033; Sun, 24 Mar 2024 23:07: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=1711321626; cv=none; b=E0xOHUebXroP3MIBujjsHXiFj6LvYMas+pU/T7Tec/ji28NYdYsrE1LoMpxiWq+h2N3fwVW25fB6FenKUCrHjnb5Er++3RMtk1hY4yvYUzDD/8/hB2qcIAbW5tV/c3X2kaoh7w5srH37zclfo8n6Gi2aznkrzCfI2QeZ11VehEY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321626; c=relaxed/simple; bh=phtozzL6Xq1os3vEllHWK/G7UWJMmmpflz3kUIYTM2w=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=aGwXLG3t23WipDWteuspG6ekCTPyUUCN6NUubWZfcW/IqfALtztHQuKzLwbue+S9Ag+rIE5GmdyYVILxLlLLBHZg/bdR0qXSs2O4xtSmIIpId8pzsZDRuDyAUdg4T2PGJfFFTdzvKqU8pmC8mcmfbZNu4Z+NmHNuBfxSxEW4oEg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=KHGVo9XC; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="KHGVo9XC" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 145E0C43390; Sun, 24 Mar 2024 23:07:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321625; bh=phtozzL6Xq1os3vEllHWK/G7UWJMmmpflz3kUIYTM2w=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=KHGVo9XCdTvK0ITDHPrIYFXYF3BW8gNl1nI6MzuyznUPX1lCybrX6mCJJIUVmX8Qp 5EVF1d8QaQCbAGk9xjoxh6L6VNEmDXTCze6fRO0tTvqjU5T+LKH8MQo9LkQzUv4g9f Ds0vxaEY8mi5c6pgsSOLQOHLn3v14pgWnHisjqptbVCWL4/MfJUrSGFqQjyQxC1mv4 O2g8y9o9VFRryaLtMsBwrF+SpWOJnqAS/FxPBMj25mB1/3aYsVJyW5mshDoWXCX/RG 9m1SveAxPzBUmkWTbv93iKFXQK5N5XSVZGxXfndUr555ZcMt0DXADtwh1/YS7NyRJ5 7DNLlH3Iff3Zw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Quentin Schulz , Quentin Schulz , Heiko Stuebner , Sasha Levin Subject: [PATCH 6.6 356/638] drm/rockchip: lvds: do not print scary message when probing defer Date: Sun, 24 Mar 2024 18:56:33 -0400 Message-ID: <20240324230116.1348576-357-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 27ef812ebc600..1b6e0b210aa53 100644 --- a/drivers/gpu/drm/rockchip/rockchip_lvds.c +++ b/drivers/gpu/drm/rockchip/rockchip_lvds.c @@ -577,7 +577,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C405C20C031; Sun, 24 Mar 2024 23:07: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=1711321627; cv=none; b=qV0QGHD7YWVAjdKnFjlwx3prCz1nbpXJsxmpkts6lUv9JqWugb2y7DlWelGcoYUUuspWpUXujOsQ3m8LuOPezB4VIiaJ9W1o4SvcosriGPaC5y3Eca5xlGnxw7c7oG6eCjEEdMxlKVdOW7xMOk7dA54qB6vy/y1yRxLCLvsgZK0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321627; c=relaxed/simple; bh=O945Y65RtR8IS6CkelHaCAjziwhmZ9c1i9x5V/q+Yf4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=uDUx73LjB2wLmElmjfzn2YoMxePkLxrya4XhpwKxzFj8n4uPY3E7GxkfAGdoSLYNGyKFlNzNXFsokSCOTDtIVm7XKKRtxEfcE9AuXKD0JF/aiC4t+8KmSioiLoW8ZGHus8Y0vSCIe9oVaY9HoP6xVV8FnvCv2z6BMt/GnpYyfLg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=gaZIOW0F; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="gaZIOW0F" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1111CC433F1; Sun, 24 Mar 2024 23:07:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321626; bh=O945Y65RtR8IS6CkelHaCAjziwhmZ9c1i9x5V/q+Yf4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=gaZIOW0FJc/oNrfCqK0ldN3RiJGXmvNCMYimad5ltKqKbYoYrbAepg7L+wJGVNEkQ y5pUZ80DTtIkmzz52RX28PbiA0dSWjN/nEPf5T2wcQnYmNb0GTKTsjN8nKJUrHtfON AtKumhYGD0VAB802qGp8nvsiEcL4UmggfX78cp0JIIvL4u7zqF+hozE3SKLSWbt/z2 OpuDsgwoNe1wiaawDeWDnH6txOG5Jj9+dXSrG6ktWxkokmutcwO3QUD4SFZXabAC8i ZfStxXVjGHSDs5dHRbV3QKywJDW510YXb00TL+Kn5Ji4Gt5iC7VpN1gqmWgLvNUH9E qSQYDY2befhkw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Hsin-Yi Wang , Douglas Anderson , Sasha Levin Subject: [PATCH 6.6 357/638] drm/panel-edp: use put_sync in unprepare Date: Sun, 24 Mar 2024 18:56:34 -0400 Message-ID: <20240324230116.1348576-358-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 49ddab089611ae5ddd0201ddbbf633da75bfcc25 ] Some edp panel requires T10 (Delay from end of valid video data transmitted by the Source device to power-off) less than 500ms. Using autosuspend with delay set as 1000 violates this requirement. Use put_sync_suspend in unprepare to meet the spec. For other cases (such as getting EDID), it still uses autosuspend. Suggested-by: Douglas Anderson Fixes: 3235b0f20a0a ("drm/panel: panel-simple: Use runtime pm to avoid exce= ssive unprepare / prepare") Signed-off-by: Hsin-Yi Wang Reviewed-by: Douglas Anderson Signed-off-by: Douglas Anderson Link: https://patchwork.freedesktop.org/patch/msgid/20231220221418.2610185-= 1-hsinyi@chromium.org Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/gpu/drm/panel/panel-edp.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/gpu/drm/panel/panel-edp.c b/drivers/gpu/drm/panel/pane= l-edp.c index cba5a93e60822..70feee7876114 100644 --- a/drivers/gpu/drm/panel/panel-edp.c +++ b/drivers/gpu/drm/panel/panel-edp.c @@ -413,8 +413,7 @@ static int panel_edp_unprepare(struct drm_panel *panel) if (!p->prepared) return 0; =20 - pm_runtime_mark_last_busy(panel->dev); - ret =3D pm_runtime_put_autosuspend(panel->dev); + ret =3D pm_runtime_put_sync_suspend(panel->dev); if (ret < 0) return ret; p->prepared =3D false; --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 06B9120C046; Sun, 24 Mar 2024 23:07: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=1711321628; cv=none; b=XL4fNLRnZlObMzaKmrFE2lF2IgmxPw9FrB5ikcHoalMvHYTe9zALEGmf9Z/Nu0zmZ4pYVYbOKg5e3Y5OExiFZaiWK2T6R6120o7ssBSiHf2rfnwae35Lv3Mp9Y+8L0NRhuslPreBxCuhKKyeYSMPdHLhfOegP7B8mdxbcLo0Kv8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321628; c=relaxed/simple; bh=0nT6+dnLat5eW46YYuat1egqogoXhgAReEx7/an+0Fs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=eZQXb3Y49C9RV9TG11tMYIWmlV1Dg/lsGyB2Ecsq2ZkHF+ueyOEjz6jm/OvkHbNAs3wnUfCmtR3t4yB0fAPj1FI2DcrrfB3biYqzZ3Zp05efAeRgl8EIUNe6m0KFIXOhpU4UdTS9BNVphIVaZCmAHWIQ8lbrjAwrFK9FqWcRH1g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=AFHipJpf; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="AFHipJpf" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E9126C43390; Sun, 24 Mar 2024 23:07:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321627; bh=0nT6+dnLat5eW46YYuat1egqogoXhgAReEx7/an+0Fs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=AFHipJpfBEKne+auhGqA8qS3kFTrUHaiI/kcRlRdbZW849lh8vMwgN29Yg1Evf9nA L0aGrVru/F9e4Kysw5xCAFyUeGECymlXRUEGxbwbeqv1R1kmN0uekayn7yiPCkfdyB S6J67E+WgY/XExqnFLQ5oMsYJjI+S3/jhSWeSuDjYJXbVgctIKtHweXtOCwS27uKhy VwaQwBYFM1xyq1pDSXyUNFotVwEA7VZlze+K1P8vJEbPxsruLTNqttVXALw2fzO41/ ptj2SNfVye6RnboZ35ytWIx05yKQrluBW69Cco0PCGKdt3tDkzXwvmbpFY0V/gAdD3 Ff895bZRnSagQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Zhipeng Lu , Qiang Yu , Sasha Levin Subject: [PATCH 6.6 358/638] drm/lima: fix a memleak in lima_heap_alloc Date: Sun, 24 Mar 2024 18:56:35 -0400 Message-ID: <20240324230116.1348576-359-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 4f9736e5f929b..7ea244d876ca6 100644 --- a/drivers/gpu/drm/lima/lima_gem.c +++ b/drivers/gpu/drm/lima/lima_gem.c @@ -75,29 +75,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AC0BA20C043; Sun, 24 Mar 2024 23:07: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=1711321628; cv=none; b=Dwp+zEDIp7khPML8IvG5WGSeitURLBf+Pyw1ULJ1FKyzgWr7nZqozK8S8PoNhcl/QwH+tdzPS6FRuWfxWN0i0G5LZskSIw8WuBCsTpwgAVWQ0LjesZAs8ucPqtI5kEL56n6L/DehfAqRdxoIZOILDLR91bXXQYwlk32wMBpXM+w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321628; c=relaxed/simple; bh=IQMlcf/x3JYpjgH2EoHDafE++YM8FkcTZYcWbvKrJG0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qdYk4E8vM7u8/kdDJwr2HFyIv/B1PQ2sK/BcFQmwtqppnd6+CACd3GTCcEopZ8qfQUmNLGrMQdoFZPNfpvfTv143P4JHBvxhl9dLQBOhaVp1JZHFYhUZvLWk7fYTvR1zSsJ0+UH/04PzoY9jYYJ0WqYOOQTmx++QDoBAOt2fuR0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=MI2DWFqU; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="MI2DWFqU" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D0A0DC433A6; Sun, 24 Mar 2024 23:07:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321628; bh=IQMlcf/x3JYpjgH2EoHDafE++YM8FkcTZYcWbvKrJG0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=MI2DWFqUAI6oB2W61axsTUSlpxKsFHp7unh0YfwVHjtgcWCvzTgyS6hPknhLqOaQL Yw4LuWKqmGuKjz6C4msnFmGi30K0edyTRfuljricHiYdr/fnx0iKA8jlyWgvBRCCFG GoUZUmFyv6nLmjOgyO28IR57z121qg+p2aJDHPOzEbvNy2QCEUmcZZY7SRV+l2UD6P XOD8CBKcg9yKQGM7Yqp7XFTDCHf4aFih908y+6xZ8NGfPcmYvSPaUF1oOsI/HzIZqY tExcUVBphDjuoseDvc6Pj7e/fgKvFYwSzPJkRnv1+BuSFw6/LngGV13T8JaJKUod8S RBxBGj7puObHA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Cristian Ciocaltea , Emil Velikov , Mark Brown , Sasha Levin Subject: [PATCH 6.6 359/638] ASoC: amd: acp: Add missing error handling in sof-mach Date: Sun, 24 Mar 2024 18:56:36 -0400 Message-ID: <20240324230116.1348576-360-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Cristian Ciocaltea [ Upstream commit d0ada20279db2649a7549a2b8a4a3379c59f238d ] Handle potential acp_sofdsp_dai_links_create() errors in ACP SOF machine driver's probe function. Note there is no need for an undo. While at it, switch to dev_err_probe(). Fixes: 9f84940f5004 ("ASoC: amd: acp: Add SOF audio support on Chrome board= ") Signed-off-by: Cristian Ciocaltea Reviewed-by: Emil Velikov Link: https://msgid.link/r/20231219030728.2431640-4-cristian.ciocaltea@coll= abora.com Signed-off-by: Mark Brown Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- sound/soc/amd/acp/acp-sof-mach.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/sound/soc/amd/acp/acp-sof-mach.c b/sound/soc/amd/acp/acp-sof-m= ach.c index 5223033a122f8..354d0fc55299b 100644 --- a/sound/soc/amd/acp/acp-sof-mach.c +++ b/sound/soc/amd/acp/acp-sof-mach.c @@ -120,16 +120,14 @@ static int acp_sof_probe(struct platform_device *pdev) if (dmi_id && dmi_id->driver_data) acp_card_drvdata->tdm_mode =3D dmi_id->driver_data; =20 - acp_sofdsp_dai_links_create(card); + ret =3D acp_sofdsp_dai_links_create(card); + if (ret) + return dev_err_probe(&pdev->dev, ret, "Failed to create DAI links\n"); =20 ret =3D devm_snd_soc_register_card(&pdev->dev, card); - if (ret) { - dev_err(&pdev->dev, - "devm_snd_soc_register_card(%s) failed: %d\n", - card->name, ret); - return ret; - } - + if (ret) + return dev_err_probe(&pdev->dev, ret, + "Failed to register card(%s)\n", card->name); return 0; } =20 --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A6024139569; Sun, 24 Mar 2024 23:07: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=1711321630; cv=none; b=cnYGBTK+YxoYDOHFOXXWQLldUYkFeMeV8OWxV5IR0mBoLLeIZYsTawyKkwLoEG3oAZZfR7JEP4C8WyBJZt4jsrdCBRIjtrSH5MffUp0Unw+RCiz76Bz3WPZmQK5DBiXw9aEV39oL5UbVZ7OF1jD0KvV7zIl52oG4J+bWQazrtAQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321630; c=relaxed/simple; bh=iKyn4MWRRbH3n3TzPpKz0zXDvdScToqrDIXfhIunSDk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=oo41WIEUg1ROIwScQ53wyeA71woTQJYNBZ7g7s1aNVbCdyOhXeQVr/Zuj30L6Lm6U7y4apfHEjfHsjRXPwM47/T+3j0QRBlTDezBXVjvNUKOOyqf/Oan2UDtt9kv7o6b5mEVBjl9X5NBTT6AH9S421xJCDbyQFlQWW4uwzr9wuA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=TMQGdQ9b; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="TMQGdQ9b" Received: by smtp.kernel.org (Postfix) with ESMTPSA id CDD8DC43394; Sun, 24 Mar 2024 23:07:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321629; bh=iKyn4MWRRbH3n3TzPpKz0zXDvdScToqrDIXfhIunSDk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=TMQGdQ9bViDNfSapgFokAdSMmwtUKzCdTCWXxJfnDaOOsYEZSXZBvg4FZrPJc83C6 8+DkwHAOB03JiazP/qpnweCfJX1VBx47cH1gCVytXtFif3OROAnQJ/QUwXQggeYN/W wmfglhrGXh/cU4nCn8yeCB4aexmlg7ENUwOBJNN95GoAWqd3LHjcX1EgWDuv4RiLc4 PvrE38IS+QNMB3pSm0UdaLvxtdXwDHyFWW+rgT17i6+fcyG3P4CUHSCcRVsyaT+BQt 3kJKIUeg7rveCO/f1zEWxdgM/PDS/851pPrfrU62OOBsXHyELbU18D+xs7SLTZlCq2 A+EiayKkeqX9w== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Cristian Ciocaltea , Emil Velikov , Mark Brown , Sasha Levin Subject: [PATCH 6.6 360/638] ASoC: SOF: amd: Fix memory leak in amd_sof_acp_probe() Date: Sun, 24 Mar 2024 18:56:37 -0400 Message-ID: <20240324230116.1348576-361-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Cristian Ciocaltea [ Upstream commit 222be59e5eed1554119294edc743ee548c2371d0 ] Driver uses kasprintf() to initialize fw_{code,data}_bin members of struct acp_dev_data, but kfree() is never called to deallocate the memory, which results in a memory leak. Fix the issue by switching to devm_kasprintf(). Additionally, ensure the allocation was successful by checking the pointer validity. Fixes: f7da88003c53 ("ASoC: SOF: amd: Enable signed firmware image loading = for Vangogh platform") Signed-off-by: Cristian Ciocaltea Reviewed-by: Emil Velikov Link: https://msgid.link/r/20231219030728.2431640-6-cristian.ciocaltea@coll= abora.com Signed-off-by: Mark Brown Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- sound/soc/sof/amd/acp.c | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/sound/soc/sof/amd/acp.c b/sound/soc/sof/amd/acp.c index 19a801908b56d..4c54ce212de6a 100644 --- a/sound/soc/sof/amd/acp.c +++ b/sound/soc/sof/amd/acp.c @@ -547,17 +547,27 @@ int amd_sof_acp_probe(struct snd_sof_dev *sdev) adata->signed_fw_image =3D false; dmi_id =3D dmi_first_match(acp_sof_quirk_table); if (dmi_id && dmi_id->driver_data) { - adata->fw_code_bin =3D kasprintf(GFP_KERNEL, "%s/sof-%s-code.bin", - plat_data->fw_filename_prefix, - chip->name); - adata->fw_data_bin =3D kasprintf(GFP_KERNEL, "%s/sof-%s-data.bin", - plat_data->fw_filename_prefix, - chip->name); - adata->signed_fw_image =3D dmi_id->driver_data; + adata->fw_code_bin =3D devm_kasprintf(sdev->dev, GFP_KERNEL, + "%s/sof-%s-code.bin", + plat_data->fw_filename_prefix, + chip->name); + if (!adata->fw_code_bin) { + ret =3D -ENOMEM; + goto free_ipc_irq; + } + + adata->fw_data_bin =3D devm_kasprintf(sdev->dev, GFP_KERNEL, + "%s/sof-%s-data.bin", + plat_data->fw_filename_prefix, + chip->name); + if (!adata->fw_data_bin) { + ret =3D -ENOMEM; + goto free_ipc_irq; + } =20 - dev_dbg(sdev->dev, "fw_code_bin:%s, fw_data_bin:%s\n", adata->fw_code_bi= n, - adata->fw_data_bin); + adata->signed_fw_image =3D dmi_id->driver_data; } + adata->enable_fw_debug =3D enable_fw_debug; acp_memory_init(sdev); =20 --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E5A4313956A; Sun, 24 Mar 2024 23:07: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=1711321631; cv=none; b=VwNSp/N5yMqUUnfLJ2quyOcYIitf4vUuTDDjDWigZesuc4Vgwg/Vh60Yaec5xR1glyVC5YZQWo0xKHd9Jdfn81mjWCXgsZD7tHtdjE+BM1fUZ+XSB2Pvng4mQJCtz4X71NjGQQrYll6duRfWj1JvvrkaYLfqoRBPGrsa/AE7kLA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321631; c=relaxed/simple; bh=zA183T/NI69Ed3N9bERvo3SNsHkRFYPtO58XzpCbzjU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ueZLiDiqwJyfBi5QQ0G9hWJpdNaSZQiuFwzvcDNo+R1u+szYvaBNAjsNQ1RWLJz4FXgnUpoKQ5YxFGeeXykc4pTrcyB97z4U3u9WqOaD0tEmVRAbVrSoE3QA1EGdkaeb5JK6Dc54s4pdbqXkkumjt4OuYNf3hEACMZNcvjkO7Q0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=UpKyHKgn; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="UpKyHKgn" Received: by smtp.kernel.org (Postfix) with ESMTPSA id CB251C433C7; Sun, 24 Mar 2024 23:07:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321630; bh=zA183T/NI69Ed3N9bERvo3SNsHkRFYPtO58XzpCbzjU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=UpKyHKgn58OHio/Rrp/y2gCdN7zw6mC/Ma99rT4xXhFcUdHS7oeQdpIkytk4oQM4O MCwFUwEJN/kwvlPdF0RqpgcIvkyuZoD3c/9BVlAgjuKzmNb+fgzgTBD9vcBPMV/L7P CqCCVztf2g3k5X58KWQ0yxo++SnA9Emoyr5hHs7yy/PP1EKKS3q8PZ76PRJRw6nuVc 3Tz0KDgP8zACC5VWCO5YVX8aU9cRlaFOXhE3Yr+L0qUlU+BEyYMfslPxwIgWwZVmgr Ocoo8YaNG5vP6sMDXF2kUjR9UWkv+f91R4SSxshkAU6op8l6Qyh92bzqCmLirREf6M YzzWecm92y4mA== 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 6.6 361/638] dmaengine: tegra210-adma: Update dependency to ARCH_TEGRA Date: Sun, 24 Mar 2024 18:56:38 -0400 Message-ID: <20240324230116.1348576-362-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- drivers/dma/Kconfig | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/dma/Kconfig b/drivers/dma/Kconfig index 4ccae1a3b8842..7a618f629e86b 100644 --- a/drivers/dma/Kconfig +++ b/drivers/dma/Kconfig @@ -629,16 +629,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DE63113957A; Sun, 24 Mar 2024 23:07: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=1711321633; cv=none; b=U4M6OaI+DRLNCo9iIrv8a5z/ATAgZtjxt9g7CRVE2Av28VrdoYo5YEw8Jn67eE3zuWjHars5CXRMlz7Rfdt7uT/8jLrvH0WOc3nJbjhNpHxbXXDkYE+k9zkUqtRc95Yi2a3o7/u0GugU6xNL+dPUy0MWiKR+7acuCzqFHhW8OaQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321633; c=relaxed/simple; bh=vwK9mT2SDzhQT/VK/uvqjMKc6ljiGp44qtXkgvlh3Js=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Hv4WvgC3bjKhGpxBu8fvBYaheEKFqNd+/eMpHwlRox5f1d3mG/gkFYtcRbXAvrOeCplZ0VKY1QCZTSh0LijNVbXQo0H+9aTWBY9+5ZYSWHQ5U/snnvSauab9F0L4V96NImrkB0LPxGIvI47TqjahoItcIrfvA9RbwEn+w3SYMQE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=g0GEc2+j; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="g0GEc2+j" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 18B96C43390; Sun, 24 Mar 2024 23:07:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321631; bh=vwK9mT2SDzhQT/VK/uvqjMKc6ljiGp44qtXkgvlh3Js=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=g0GEc2+jsQvt2+8cKFddXuqOPXWuNh02mNhQyqScxj6KEIiVT1yDwumqhjhGGtXAx UWX8NbaqKTSwiab9EcWc3uRVOpMHU5dO8heqKP+BCe7L2jilrKkf5u8wUwys4sXAdN cfFDtpKIZTO+Hg7A4uEQR7jbRNcoxNG3/XHNAp/iQLTBwpun4Fiv1H6fMtTncBkVK8 mYrX4Ct6I1L1cjr0FV1YFl9qNrcUfqD4BwEPgJPO/oGWcoDkECruHSMnDAC82W63Sf Enbr8sUSFoYOqIQuMbfm0qiGcjju4iU/OyA0Ygzo0Oo2KYSPBKVaUPTlu0aFYzkE2s NoTKXwgVP1rAA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Alexander Stein , Robert Foss , Sasha Levin Subject: [PATCH 6.6 362/638] media: tc358743: register v4l2 async device only after successful setup Date: Sun, 24 Mar 2024 18:56:39 -0400 Message-ID: <20240324230116.1348576-363-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 2785935da497b..558152575d102 100644 --- a/drivers/media/i2c/tc358743.c +++ b/drivers/media/i2c/tc358743.c @@ -2091,9 +2091,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 @@ -2151,6 +2148,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 45CE31EC4A2; Sun, 24 Mar 2024 23:07: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=1711321634; cv=none; b=fH00R9Tx5uSfvT2z8e5GF6BtsCIrFevUqgrvI9K2i3h3zZcg8IivkUWfdP46fNFR/O5XPHDEh8kujwQQV43Io8Z1O2tOSm0LLM5NjL4wcESogqQsqhGMT6I6RDILmn+va1GWVD2Q90k1CK3I7d2mKGLfUj9CkO3pe97eyKRl9Ek= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321634; c=relaxed/simple; bh=YIjU+mzoWrV05oGV4xJxF2HQ8qDptrNj6HzENP7dNOo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=BPdl9WAprvKfwOi4BQJTIwSzXdTlfaZnRUkArNoPmqak5zkR6sc3tBOshD/p3PCKD6WJ1b6Ym4XuF1xIJzdtrlV/1dxAJamjfEjqVS2jS7CDNZqF06HTDv8Q+vVXHfX/ddwkdLFNHQkAXp59SkTwdJ0I6pXp78voKaOu5uPdEr8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=t1vTajtR; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="t1vTajtR" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0741AC433C7; Sun, 24 Mar 2024 23:07:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321632; bh=YIjU+mzoWrV05oGV4xJxF2HQ8qDptrNj6HzENP7dNOo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=t1vTajtRe0txE1Uv/lrxMHJ4Dz/axJuDDYbe8LhRxJE4OCX/OjhLRxNvpb8LVg4Le 3X3XCWLtXLG0H+EjKi2rOM2df9qlHtjZLFKIgGT6igPLab6Lo5yquUjmdl+RbAU10i lJehaGiMoVC20G85cFeBYhrrX9y8W693vjUUpJuGzwG/fZWgPW0EcPWdqMglDqz9d/ XbHsPDM5Uogwu9q3g2mROnn0be79APrNBUZ4VtVIFEQZu6jNHcFJRm8FFKteDjwix5 x0TOmKj20IgBG32hZ/GGukMosH9uvA3itB4L2Tq/E8OAe/rko1ICMH+8vfvzE7FDZq wmyKbPc8GQ3wA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Julien Massot , Jai Luthra , Sakari Ailus , Hans Verkuil , Sasha Levin Subject: [PATCH 6.6 363/638] media: cadence: csi2rx: use match fwnode for media link Date: Sun, 24 Mar 2024 18:56:40 -0400 Message-ID: <20240324230116.1348576-364-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Julien Massot [ Upstream commit 448699c522af9e3266f168c3f51f4c3713c7bee1 ] Since commit 1029939b3782 ("media: v4l: async: Simplify async sub-device fw= node matching"), async connections are matched using the async sub-device fwnode, not that of the endpoint. Fix this by using the fwnode of the connection match to find the pad. Fixes: 1029939b3782 ("media: v4l: async: Simplify async sub-device fwnode m= atching") Signed-off-by: Julien Massot Reviewed-by: Jai Luthra Signed-off-by: Sakari Ailus Signed-off-by: Hans Verkuil Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/media/platform/cadence/cdns-csi2rx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/media/platform/cadence/cdns-csi2rx.c b/drivers/media/p= latform/cadence/cdns-csi2rx.c index 9231ee7e9b3a9..f2ce458ebb1df 100644 --- a/drivers/media/platform/cadence/cdns-csi2rx.c +++ b/drivers/media/platform/cadence/cdns-csi2rx.c @@ -319,7 +319,7 @@ static int csi2rx_async_bound(struct v4l2_async_notifie= r *notifier, struct csi2rx_priv *csi2rx =3D v4l2_subdev_to_csi2rx(subdev); =20 csi2rx->source_pad =3D media_entity_get_fwnode_pad(&s_subdev->entity, - s_subdev->fwnode, + asd->match.fwnode, MEDIA_PAD_FL_SOURCE); if (csi2rx->source_pad < 0) { dev_err(csi2rx->dev, "Couldn't find output pad for subdev %s\n", --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D4526139581; Sun, 24 Mar 2024 23:07: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=1711321633; cv=none; b=ur3po0aYY/G1wUhWyhDmvbrtig4/2F0xu8WiQ1UvF8g3WoXKOT4zDmSlvzHpBJLbLS26hIlHT32uh23oj8p7VLiSUZ2kCrAir43ZxSXA/KYLS92DQHFcYOys3EX+IfRDOvcxvr/eSJPY0WpJd9P68zIVfm0hCVl9AY9lIYU9qjQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321633; c=relaxed/simple; bh=YAyf/zcJ3EcipuXFZPJaTEX6O9w5ToHm7vdXp2Vnz7o=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=NchSo6p+RnPnRK31x7ym/87VT8poUdfEnX5gMEBbG3qiYNUuuUkI3pXki/+hn6z9OCXofExKjMswgo12ZSV9aVRkQtVDpSxuTg7IHrEoQhKFttmuNfPRrt3m00K2nGjoQs5tUYuyCrbbPBKatvFPTnUTrodoCsmceVEjgv+F2PQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=e9eIqu3S; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="e9eIqu3S" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1DBD8C43390; Sun, 24 Mar 2024 23:07:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321633; bh=YAyf/zcJ3EcipuXFZPJaTEX6O9w5ToHm7vdXp2Vnz7o=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=e9eIqu3Sri09N8wl3Lm4mcBYEtvSJDlUR6CGLWzTLHGIUR4pz/u/NimMR7DXcI54w muK9bnHlob3wPtt+ivw0ObEEzwoMFS6WmTFT2oh0JQAMJqDXuL5RBqdLQfhwsRvXBa 1OKt0LuMKJusbYccPPbh+L6V+rQ1XF2eiShtemwegw7PdJ7BeSNO7jWvBm4cGZRFQe CcT0Nbu1GrL7L2gt3apExUcSoe9gOzZrgmTo1hflpJh5+1sKIhfcbAmhmfOESowLpE GA50QWeaJ4KwSostJeoFAw6o1odL4uV4YihLry9N0RmB9eSOvbc6x2eoMG/rthOGAx ru9OHEy0zwNog== 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 6.6 364/638] PCI/DPC: Print all TLP Prefixes, not just the first Date: Sun, 24 Mar 2024 18:56:41 -0400 Message-ID: <20240324230116.1348576-365-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-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 Tested-by: Takeshi Ogasawara --- 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 3ceed8e3de416..b4818007788f9 100644 --- a/drivers/pci/pcie/dpc.c +++ b/drivers/pci/pcie/dpc.c @@ -230,7 +230,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BA4251EC4B1; Sun, 24 Mar 2024 23:07: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=1711321635; cv=none; b=CCFGIBjGNDcfH5XDoNcn/0O1v90XuU79owbw3pue12Jqy93YTc5nDXsOvRvgYiYClg5osMhoEACh1clbiknjKKQGnGDYausRGEz8QblTE/TmFVVYk61h0/yTOpMrpb6nINeRqAyG3YeDUDRwwyU+DBAxOmGKbS29QTqG0xXRbbU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321635; c=relaxed/simple; bh=5hAiO/oE23Dfr/v/1rIlZy338PxP8Tq6DlQNvV4pUs8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=D2TA+SKF/lX6R56DcvpQwkLBVamRq7In3/LNrLbCR8//X8LowYZG+t4217scdgNgUmiTgbAoMRybjpXaIaSoQ7fuwnLF9MeTErnUMU498QkRKIUvrINylP1EkZAUXAaLaZFvM1rRIp6sjxFckxD+3pIP/vWLq+kC4+vnTG6wrb0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=JqgbUfly; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="JqgbUfly" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 061A8C43399; Sun, 24 Mar 2024 23:07:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321634; bh=5hAiO/oE23Dfr/v/1rIlZy338PxP8Tq6DlQNvV4pUs8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=JqgbUflyE7e55moqs7N23qXDb+3LDeDVJHiFq6W9VeaHc47BBepqnB5z+cJMfWei3 EeOgsO1ZjcwTcd7DudRi67BEJmaSv32R+N+MAjdcU/pbY5LJnVf9/kaaGkUGALpsf8 mOg6h2Cc19+NYynFtBmHG+0n67552jZ/P49ItTcy7AEuPaItCUUOZ2ZIEuMttVxz2S CHSkqtPJuoDymo/neNQph4dTKEtVMhnHtnKYyAv6r8gt4/Yhk87tR9PTUuYiyAeF+N sE9yLlYx+pqFyqab9tytW0JpY5DhPkJRM7ZCMIX52MeO2zsTTCN/WHTjV3eVCV5J6N dEaPFi7SOXpuw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Yang Jihong , Namhyung Kim , Sasha Levin Subject: [PATCH 6.6 365/638] perf record: Fix possible incorrect free in record__switch_output() Date: Sun, 24 Mar 2024 18:56:42 -0400 Message-ID: <20240324230116.1348576-366-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 34bb31f08bb52..cd1725643ef77 100644 --- a/tools/perf/builtin-record.c +++ b/tools/perf/builtin-record.c @@ -1786,8 +1786,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 271541EC4B3; Sun, 24 Mar 2024 23:07: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=1711321636; cv=none; b=oY1f8LiGbC/zBs7hDtK6ndwSCE78WMgYoT6gS32lG5ycLgJK/aMvLU6QqJEBVC2kq/PrECt8Nr6me/0Pla+s3tW78PTomTk0f6cfrUgSLfdmD6xIXHwRvLQ7cayI7oCzBIXL5WaxotgB4tmg+Lp0bcacGt6mqr40EGORmSaslag= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321636; c=relaxed/simple; bh=YtBH+DlNyD7EJn8cEPVS9I1Mui7oGxjJ9+34VWcK/D4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PzAvomMURvqQ4E0dSGVqaCWrxUELOrzLEggZy7v05ts1wKLmzG1UqidttB0lLp/q01uasukRtu+UH7cRXF56pZilb0QGWviXJzAE6tlbkvolu6cOXc4zLmDx1eTznUUUKqyHuzhUDmXRxhBzt+OJgNu2kK2FWM6m9ZDYZiy0UA4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=OzxhjE8k; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="OzxhjE8k" Received: by smtp.kernel.org (Postfix) with ESMTPSA id DF4C2C433F1; Sun, 24 Mar 2024 23:07:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321636; bh=YtBH+DlNyD7EJn8cEPVS9I1Mui7oGxjJ9+34VWcK/D4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=OzxhjE8ku275SA5PneFLVN7EcO3Hfan8ETtrUnhnjeWAASfjmK4NZTeuhGVZT+/wE 83LFpskeTIReqiMGJe92l2IDku1RH1dWPmklCuPfd5VnfQYhV/Zk8PO+mQTaS7Cjp1 fMios4Z/uKPtS0mvTHdID9reOUVYx+o82Ou02CgaOX+jXxwcutnYM70q8oTLtxk0Lx 5w1ialhOT/TH1cZ8CLfn0rIVUfaTqCs4+dw7stjEITx3sN5xm2m5yJsGjwN3uFOip/ 8ZnWwrEMIBUkgiOwgMx+67N8BvpkW8fcu8O8MUHfkOFAG0rCmguhYd0EaOUA8Qf98W tgiPI7FHAKa8w== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Kan Liang , Ian Rogers , Arnaldo Carvalho de Melo , Hector Martin , Marc Zyngier , Mark Rutland , Namhyung Kim , Sasha Levin Subject: [PATCH 6.6 366/638] perf top: Uniform the event name for the hybrid machine Date: Sun, 24 Mar 2024 18:56:43 -0400 Message-ID: <20240324230116.1348576-367-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Kan Liang [ Upstream commit a61f89bf76ef6f87ec48dd90dbc73a6cf9952edc ] It's hard to distinguish the default cycles events among hybrid PMUs. For example, $ perf top Available samples 385 cycles:P 903 cycles:P The other tool, e.g., perf record, uniforms the event name and adds the hybrid PMU name before opening the event. So the events can be easily distinguished. Apply the same methodology for the perf top as well. The evlist__uniquify_name() will be invoked by both record and top. Move it to util/evlist.c With the patch: $ perf top Available samples 148 cpu_atom/cycles:P/ 1K cpu_core/cycles:P/ Reviewed-by: Ian Rogers Signed-off-by: Kan Liang Tested-by: Arnaldo Carvalho de Melo Cc: Hector Martin Cc: Marc Zyngier Cc: Mark Rutland Cc: Namhyung Kim Link: https://lore.kernel.org/r/20231214144612.1092028-2-kan.liang@linux.in= tel.com Signed-off-by: Arnaldo Carvalho de Melo Stable-dep-of: 02f9b50e0481 ("perf record: Check conflict between '--timest= amp-filename' option and pipe mode before recording") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- tools/perf/builtin-record.c | 28 +--------------------------- tools/perf/builtin-top.c | 1 + tools/perf/util/evlist.c | 25 +++++++++++++++++++++++++ tools/perf/util/evlist.h | 1 + 4 files changed, 28 insertions(+), 27 deletions(-) diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c index cd1725643ef77..69d2d71e16ee8 100644 --- a/tools/perf/builtin-record.c +++ b/tools/perf/builtin-record.c @@ -2184,32 +2184,6 @@ static void hit_auxtrace_snapshot_trigger(struct rec= ord *rec) } } =20 -static void record__uniquify_name(struct record *rec) -{ - struct evsel *pos; - struct evlist *evlist =3D rec->evlist; - char *new_name; - int ret; - - if (perf_pmus__num_core_pmus() =3D=3D 1) - return; - - evlist__for_each_entry(evlist, pos) { - if (!evsel__is_hybrid(pos)) - continue; - - if (strchr(pos->name, '/')) - continue; - - ret =3D asprintf(&new_name, "%s/%s/", - pos->pmu_name, pos->name); - if (ret) { - free(pos->name); - pos->name =3D new_name; - } - } -} - static int record__terminate_thread(struct record_thread *thread_data) { int err; @@ -2443,7 +2417,7 @@ static int __cmd_record(struct record *rec, int argc,= const char **argv) if (data->is_pipe && rec->evlist->core.nr_entries =3D=3D 1) rec->opts.sample_id =3D true; =20 - record__uniquify_name(rec); + evlist__uniquify_name(rec->evlist); =20 /* Debug message used by test scripts */ pr_debug3("perf record opening and mmapping events\n"); diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c index ea8c7eca5eeed..8d7c31bd2ebfc 100644 --- a/tools/perf/builtin-top.c +++ b/tools/perf/builtin-top.c @@ -1299,6 +1299,7 @@ static int __cmd_top(struct perf_top *top) } } =20 + evlist__uniquify_name(top->evlist); ret =3D perf_top__start_counters(top); if (ret) return ret; diff --git a/tools/perf/util/evlist.c b/tools/perf/util/evlist.c index 8a8fe1fa0d386..8bf537a29809a 100644 --- a/tools/perf/util/evlist.c +++ b/tools/perf/util/evlist.c @@ -2507,3 +2507,28 @@ void evlist__warn_user_requested_cpus(struct evlist = *evlist, const char *cpu_lis } perf_cpu_map__put(user_requested_cpus); } + +void evlist__uniquify_name(struct evlist *evlist) +{ + struct evsel *pos; + char *new_name; + int ret; + + if (perf_pmus__num_core_pmus() =3D=3D 1) + return; + + evlist__for_each_entry(evlist, pos) { + if (!evsel__is_hybrid(pos)) + continue; + + if (strchr(pos->name, '/')) + continue; + + ret =3D asprintf(&new_name, "%s/%s/", + pos->pmu_name, pos->name); + if (ret) { + free(pos->name); + pos->name =3D new_name; + } + } +} diff --git a/tools/perf/util/evlist.h b/tools/perf/util/evlist.h index 664c6bf7b3e02..d63486261fd2a 100644 --- a/tools/perf/util/evlist.h +++ b/tools/perf/util/evlist.h @@ -441,5 +441,6 @@ struct evsel *evlist__find_evsel(struct evlist *evlist,= int idx); int evlist__scnprintf_evsels(struct evlist *evlist, size_t size, char *bf); void evlist__check_mem_load_aux(struct evlist *evlist); void evlist__warn_user_requested_cpus(struct evlist *evlist, const char *c= pu_list); +void evlist__uniquify_name(struct evlist *evlist); =20 #endif /* __PERF_EVLIST_H */ --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 031341EC4A5; Sun, 24 Mar 2024 23:07: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=1711321637; cv=none; b=jqlpHjGMzaLFSoeHZAhNUrgJU9nDbOhyvhh0oQX3Dbvydh7Pwkqb4S3DFhmiyZC7YOR7vCX21bhlfWUNp4THTgpXLs4U/xctdriDp+wvYPxGkm/jLN8ax/4Uy1F6r6NKNbZgV4BJ5wjczrOJ5KuR0Zq9z5GL/OEi9sz/7z3Tjqc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321637; c=relaxed/simple; bh=on5rA5lUDHzMSR8tAIoz2HkHMwVZeJD5y2m+BoZ5Ieo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=GkqXyTwujJZXq6nYioxp9F0MdsGu2oGBRXvTwCU3A/cIUpwJRrHrxvjKc2KZBV/5wF+9PNtYSz9+aBTbJgsLggSraJE87xhQJy8uhuIH57mJN0qpRP6lahnFvsXTgxR87IiALJ/DhpL0GbfZtDVwoljQFiUY4MKpDoD3x7Z/I24= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=t4Ea0iFu; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="t4Ea0iFu" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4256EC433A6; Sun, 24 Mar 2024 23:07:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321636; bh=on5rA5lUDHzMSR8tAIoz2HkHMwVZeJD5y2m+BoZ5Ieo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=t4Ea0iFu1DcnSvHW3QWLYk49VqZ10bWwhIFgxIyfIi2G0oxHXYG9PYrWm4/IJvRpC 00U6NaQGEh8Sni9b95XUjiaIliaLZinEyUCBhV0Co7GU/5C/EsJajc6nWdtn7c8fYc 0JmRrnyVivGdBcI5aF+BLbtMzyEfywSCF3RBRwk0znELtkdUMzeVNXbvuYqjiZF/q1 Vw2fV7OZQMa4nPZ27KXkr1xjmm93iVoGyYlbmcH2sYthgIKbWoE4B525y5ix4gRK97 1xp2ljbJhk6uVuQ2yuhchm8s4ccz9LE65ivqQnfIg+aTl2lncWgSNrA91LSLPL2txR DZaO5Ejsf6hYg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Yang Jihong , Namhyung Kim , Sasha Levin Subject: [PATCH 6.6 367/638] perf record: Check conflict between '--timestamp-filename' option and pipe mode before recording Date: Sun, 24 Mar 2024 18:56:44 -0400 Message-ID: <20240324230116.1348576-368-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 02f9b50e04812782fd006ed21c6da1c5e3e373da ] In pipe mode, no need to switch perf data output, therefore, '--timestamp-filename' option should not take effect. Check the conflict before recording and output WARNING. In this case, the check pipe mode in perf_data__switch() can be removed. Before: # perf record --timestamp-filename -o- perf test -w noploop | perf report= -i- --percent-limit=3D1 # To display the perf.data header info, please use --header/--header-only= options. # [ perf record: Woken up 1 times to write data ] [ perf record: Dump -.2024011812110182 ] # # Total Lost Samples: 0 # # Samples: 4K of event 'cycles:P' # Event count (approx.): 2176784359 # # Overhead Command Shared Object Symbol # ........ ....... .................... ..............................= ........ # 97.83% perf perf [.] noploop # # (Tip: Print event counts in CSV format with: perf stat -x,) # After: # perf record --timestamp-filename -o- perf test -w noploop | perf report= -i- --percent-limit=3D1 WARNING: --timestamp-filename option is not available in pipe mode. # To display the perf.data header info, please use --header/--header-only= options. # [ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 0.000 MB - ] # # Total Lost Samples: 0 # # Samples: 4K of event 'cycles:P' # Event count (approx.): 2185575421 # # Overhead Command Shared Object Symbol # ........ ....... ..................... .............................= ................ # 97.75% perf perf [.] noploop # # (Tip: Profiling branch (mis)predictions with: perf record -b / perf rep= ort) # Fixes: ecfd7a9c044e ("perf record: Add '--timestamp-filename' option to app= end timestamp to output file name") Signed-off-by: Yang Jihong Acked-by: Namhyung Kim Link: https://lore.kernel.org/r/20240119040304.3708522-3-yangjihong1@huawei= .com Signed-off-by: Namhyung Kim Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- tools/perf/builtin-record.c | 5 +++++ tools/perf/util/data.c | 2 -- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c index 69d2d71e16ee8..c40460e936ccd 100644 --- a/tools/perf/builtin-record.c +++ b/tools/perf/builtin-record.c @@ -2417,6 +2417,11 @@ static int __cmd_record(struct record *rec, int argc= , const char **argv) if (data->is_pipe && rec->evlist->core.nr_entries =3D=3D 1) rec->opts.sample_id =3D true; =20 + if (rec->timestamp_filename && perf_data__is_pipe(data)) { + rec->timestamp_filename =3D false; + pr_warning("WARNING: --timestamp-filename option is not available in pip= e mode.\n"); + } + evlist__uniquify_name(rec->evlist); =20 /* Debug message used by test scripts */ diff --git a/tools/perf/util/data.c b/tools/perf/util/data.c index fc16299c915f9..851a9cd32c4a2 100644 --- a/tools/perf/util/data.c +++ b/tools/perf/util/data.c @@ -418,8 +418,6 @@ int perf_data__switch(struct perf_data *data, { int ret; =20 - if (check_pipe(data)) - return -EINVAL; if (perf_data__is_read(data)) return -EINVAL; =20 --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DFBC61EC4C6; Sun, 24 Mar 2024 23:07: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=1711321638; cv=none; b=r2oHDUyjFtdfuOJHj7vxCrftgvkWrzOwSj+fz5d1HO1b8ThMeHxnoRwATDjXcQDSZGLMjBxSZv6AjJraJ7pjiSQSjKDMmbBPszoOHnuvMkuyE4WrMzlnCG69OQBrGvmCAgh3eUOghj6agfi4K5Fo+9ZLFqwFxWJGiQt0n3ABzZ4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321638; c=relaxed/simple; bh=k0CHCQeQYAxizY/a36oGNxW78++AXdIg+U+sNWUr7Wc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qb/aYgo9iHJv4anQPc6PbTXL5t1QrGzekCxsF6+qAcdECBvm1BFtVkoZxx8Ux4yDrMIqK7CTEuv7VrhvEoDkm5s3XcyBeuPuESlVRTklDwpO4+Nov6qt7jcqAz4jClqlr5K5q6UpYWmmdfU0YksJbxQEsdZj5Xj9xVw3t68mvqQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=J56pYPZu; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="J56pYPZu" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 289FAC433F1; Sun, 24 Mar 2024 23:07:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321637; bh=k0CHCQeQYAxizY/a36oGNxW78++AXdIg+U+sNWUr7Wc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=J56pYPZuSNGx389dSwIBAdTwkrBfcC9dAquOCKZ4PsVoWXepuIfVQ9oKyLN7c66ZD R4FSlHJvQAW+Pj+0Do8wsyWmpOUJITzEOogI/+ql9BaOOlHxOYhNeS69Vxs24UlvEV O9alZJ/f84JiojPguuLmQkV2bDJX6Q+EEGOoiiT6DIaV1MWn1W9BnCJsr8QQxucnZq tPCuCdLxSWW4GOHjmYLrK1BrVqBh9UOhrt1DoCG0BH6tBy7ujL6KrBCZYLLkzq7EF9 aWq5KxG0EJzAyGy1kGSkOO52ez1rL9oU0LYT916iWzAozP2fSzpLyFn1GH0e2N/Lea +Y67TExneq5ZA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Mikhail Khvainitski , Jiri Kosina , Sasha Levin Subject: [PATCH 6.6 368/638] HID: lenovo: Add middleclick_workaround sysfs knob for cptkbd Date: Sun, 24 Mar 2024 18:56:45 -0400 Message-ID: <20240324230116.1348576-369-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 149a3c74346b4..f86c1ea83a037 100644 --- a/drivers/hid/hid-lenovo.c +++ b/drivers/hid/hid-lenovo.c @@ -54,10 +54,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)) @@ -621,6 +621,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, @@ -632,10 +662,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 @@ -686,23 +722,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)) { @@ -1166,6 +1186,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 441191EC4D4; Sun, 24 Mar 2024 23:07: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=1711321639; cv=none; b=q27+AC32kB7cB6NCdSTiAfjpKNaDOrgFVO53Pusl/olw/CMwiSDQjFQgR0T2VkualzsrshFsovxw2hZV2pZAyDuipBtgZ6bTWrR57pZSinHwwvYBHOTmmrDqatW/L7h4Q5im4nUWhZQW0IFd5TuT99UoGqtzL9FOSbtZ1h/upSc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321639; c=relaxed/simple; bh=smIg7cRutQ0mZZiJ6ct3Gj4qAu74BxVNBqt3oeOmSX4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=pqD5E/iPCDvmya6tcMVITbdZhD8sLo4wo1yVB8coDh8G0UHxEl+TJpUzW0lolX9vvROlXfc/vA6n7UND5oJ+ND8LU7WMRsTtu6nVDjYjduYrM/GT9k2kcXKLaGU5LtwcE/H+S6Xxxem2ZAKWiKvFBLhyRlzgUZAwP69yprAoYrU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=X6xwOY5/; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="X6xwOY5/" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0E328C43399; Sun, 24 Mar 2024 23:07:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321639; bh=smIg7cRutQ0mZZiJ6ct3Gj4qAu74BxVNBqt3oeOmSX4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=X6xwOY5/OHM9CUAVH+4ccSJNH0TCxcWPhKmY9I1jnujRdhKzlay/pcRR5cvubzK86 q1T58USjDabHTyOjX2bHfAX013GEXu26QHKIGdPBPL0BFU3/9y2y61DMQR4Y4YRxwy TY6JAB7v2Jvq+kS4DuDwhaez77898EmdH7oYykUjo/E4MxhMEjZL9vTujHz5O+UvmJ etrTzKITLK3nX2X58yKiU+GF9bD/x0EiFKVmdEJ8NoCv5dw5sooTbtgLm4WNz7xSR6 9AfWaZbex605rfOabQ8mSCo6vsUyClNntoSUMRBTQ1PZLZSbvI/2fxOeJRvDXv7fsQ O6iitno5CU3qw== 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 6.6 369/638] drm/amd/display: Fix a potential buffer overflow in 'dp_dsc_clock_en_read()' Date: Sun, 24 Mar 2024 18:56:46 -0400 Message-ID: <20240324230116.1348576-370-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 7c21e21bcc51a..f4b9d43c5d979 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 @@ -1453,7 +1453,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 21642139596; Sun, 24 Mar 2024 23:07: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=1711321641; cv=none; b=MhmLVs9TKYtje3sUN6Mi++4JojJvFzPP1mGjEpv4eTgv01aKNK7Tm2sJ6jc0vwIooi9ohQwEENPFMQHrvRQcqHpAyFf1opB3eiDWDGnVnNdvmq7xv9h0FAv5DRjb/ja80jplnjqiFjjTzrjTKXJRLw6cBa8PHENMVMovSs/J6XY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321641; c=relaxed/simple; bh=TAPok/GZ8CPs3caYyO3HjWxXbNJrfJ4WKJUr7fIIVrg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=G0pdEvTnEYae8FmMaR8v/xRyNCS+jmBhHnmSrG/mWv1dwoy6hj299K0S9rHpxXciy6PYblcPhuvP+y5Tptnf1/Gv5z9B2kZaKk6IimeVlFP95Yg7T6R3oHsqArNGKzGLrd3mIOtyt+3MRjU2JfH5sRATWZQlMIniAVm9FPCNydE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=eWUr7bFY; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="eWUr7bFY" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 68B61C433C7; Sun, 24 Mar 2024 23:07:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321640; bh=TAPok/GZ8CPs3caYyO3HjWxXbNJrfJ4WKJUr7fIIVrg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=eWUr7bFYGMIy5trNO3PxBPhDMMlB63LMCUR5lTKX3XV/ATqKiGhXdGtC/u85dPauD 4OQtSItjMNVDNId1ySIJmGd42eaC+cS145BFrus482jvcqhcmoEAVjUTgsMuidEa+b ke3aQuXq7nCBYXEE0U08vB9PWnNHv6Q/cCTyVjYmN9PA82T0jtpkyQb6gpTXRzPpDS kkZlIpN+BaZKpX/opPysCS5F/9T7pFHeDo4JKec6Ngdw0B8a6TAS4UL95rMrWkfxaR zgJLGP1xI50G9EadyC67CNt9UqvkqsBDOPQxQgBXSy9JssHW/fg15joSGQPwhaear0 lMVv3Z2cKJDVQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Ian Rogers , Kan Liang , James Clark , Caleb Biggers , Edward Baker , Perry Taylor , Samantha Alt , Weilin Wang , Namhyung Kim , Sasha Levin Subject: [PATCH 6.6 370/638] perf pmu: Treat the msr pmu as software Date: Sun, 24 Mar 2024 18:56:47 -0400 Message-ID: <20240324230116.1348576-371-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 24852ef2e2d5c555c2da05baff112ea414b6e0f5 ] The msr PMU is a software one, meaning msr events may be grouped with events in a hardware context. As the msr PMU isn't marked as a software PMU by perf_pmu__is_software, groups with the msr PMU in are broken and the msr events placed in a different group. This may lead to multiplexing errors where a hardware event isn't counted while the msr event, such as tsc, is. Fix all of this by marking the msr PMU as software, which agrees with the driver. Before: ``` $ perf stat -e '{slots,tsc}' -a true WARNING: events were regrouped to match PMUs Performance counter stats for 'system wide': 1,750,335 slots 4,243,557 tsc 0.001456717 seconds time elapsed ``` After: ``` $ perf stat -e '{slots,tsc}' -a true Performance counter stats for 'system wide': 12,526,380 slots 3,415,163 tsc 0.001488360 seconds time elapsed ``` Fixes: 251aa040244a ("perf parse-events: Wildcard most "numeric" events") Signed-off-by: Ian Rogers Reviewed-by: Kan Liang Cc: James Clark Cc: Caleb Biggers Cc: Edward Baker Cc: Perry Taylor Cc: Samantha Alt Cc: Weilin Wang Link: https://lore.kernel.org/r/20240124234200.1510417-1-irogers@google.com Signed-off-by: Namhyung Kim Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- tools/perf/util/pmu.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/tools/perf/util/pmu.c b/tools/perf/util/pmu.c index d515ba8a0e160..a3c7814116c7c 100644 --- a/tools/perf/util/pmu.c +++ b/tools/perf/util/pmu.c @@ -1735,6 +1735,12 @@ bool pmu__name_match(const struct perf_pmu *pmu, con= st char *pmu_name) =20 bool perf_pmu__is_software(const struct perf_pmu *pmu) { + const char *known_sw_pmus[] =3D { + "kprobe", + "msr", + "uprobe", + }; + if (pmu->is_core || pmu->is_uncore || pmu->auxtrace) return false; switch (pmu->type) { @@ -1746,7 +1752,11 @@ bool perf_pmu__is_software(const struct perf_pmu *pm= u) case PERF_TYPE_BREAKPOINT: return true; default: break; } - return !strcmp(pmu->name, "kprobe") || !strcmp(pmu->name, "uprobe"); + for (size_t i =3D 0; i < ARRAY_SIZE(known_sw_pmus); i++) { + if (!strcmp(pmu->name, known_sw_pmus[i])) + return true; + } + return false; } =20 FILE *perf_pmu__open_file(struct perf_pmu *pmu, const char *name) --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1B8F920CDF4; Sun, 24 Mar 2024 23:07: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=1711321643; cv=none; b=NJ+YPTjRCqbv7UWe9dn1OYNmlin4A3hpJG+GdqXPN7MRdKsgBminwnGtCsmUmmksntGuMEJ83PGDfqL9JUNCn/j7uDhmODCY2bccPWJnZ5QFCi2+bWOP67nXA1xXOhVqrHKyAB4R7B9pNdxlk4zKa6RgJEvlWFso3GGAzeoeGbw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321643; c=relaxed/simple; bh=wUIaf37jsc83rrxxeJBxZppS9V3AFNl4MTW2tB/QxbQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=stpsJeNo+nNSVs/Q8xCCKZVhdsY4sK4WsptizCnIDhK6tSh2nTrSP9+w+ZCTi3+U6IhtUu/gd9jU6brlu7N0raGEPtKvvyAdO25EFDwTQwQ/g/12JVvT/t0tCYzu9CAV3s6Xcn4VIAoXqx72DDj2O+fwUmEsKt2o2Tcg51BmFTc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=VxVylRBE; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="VxVylRBE" Received: by smtp.kernel.org (Postfix) with ESMTPSA id F27BCC43399; Sun, 24 Mar 2024 23:07:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321642; bh=wUIaf37jsc83rrxxeJBxZppS9V3AFNl4MTW2tB/QxbQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=VxVylRBECrpnpbpu0oTpVeNoLnralaZrPDXJQ+wpATEUfP2rVKsWvndX1b8Csduku QYnoUOs0w66W2hqQPd8BFRcMcmNZrAeZKrFvz5leegmHSGQCJRsUYSJPV228YcroKS YFmHDIM95Xa4qGS76MvdU5xcuNndOsbiUUqBc4MohHDPA83vu1aS5pv8nLBLGvNEGb B7LSsaYeHVOvpeL0n0rdxo8R4gAyzC/Eoy12asgBq3R7oQNv8e8mkiXdhRA5W3G1Bk sn0zdBOYZ6H/aQH1E6IiK5qwwgX8uYq+FFzn2fzSpDN6AR8tQxkotjUXosUJ1DLs6c N3+nQsW5uvRug== 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 6.6 371/638] drm/amd/display: Fix potential NULL pointer dereferences in 'dcn10_set_output_transfer_func()' Date: Sun, 24 Mar 2024 18:56:48 -0400 Message-ID: <20240324230116.1348576-372-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 db1d7be7fda38..e3f4d497d32d5 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 @@ -1832,6 +1832,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 @@ -1854,8 +1857,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1C4B020CDFC; Sun, 24 Mar 2024 23:07: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=1711321644; cv=none; b=TnA4uVTygHGIWa0uIZ7Fa1F9RC2tHNoZqARjMM02FmGwfV9cLB7ogWPA2j+1vQGn6EZdknPfsCCVFajUM2yn60LvIoMZ6vZll8D/A2IUjIz6aAIhYWiUGlEuc00fy8ZqZRtoh9VNEDD5uM16xE9Ohc/7myA1cdhSzi4qD7iGPFE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321644; c=relaxed/simple; bh=VWoRI8HI5jc97HNcSrQ3QN+FQJpLPEqAeA5mAa2NeLM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=IAnEpH/jppS/77C4wUxfx1ZVlrTlPyXe+H0ItoizZNWnUux6VUhod+7jHC3/BmgD3qilKjFqutFCCS/ppdzzQX45oPBoUUUyA9yhkAVCW0RHTJS1FB3O5ToRj5luC1CnPIl0WI+GlNQ0zPrtyB6aa+Gh68A7y5hfxCksQ3u5q+g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=PyJYNvzc; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="PyJYNvzc" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 41DCEC433F1; Sun, 24 Mar 2024 23:07:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321643; bh=VWoRI8HI5jc97HNcSrQ3QN+FQJpLPEqAeA5mAa2NeLM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=PyJYNvzcEySImswkFaPtR40C0FTTBMp2bR/1r35odWLCZz+kWNF0gmnC1Ejqh26A4 0f8LnKA1UFYId82jeIxjyifFWUWESEdXw0Lmn/IjyM10UmRaWQ76rgs2FKpdce3ZhY rHSqb9rglZqFTslqc5aN5UgA9KyfxjeiH4Nr2HtCwHpL8jGrqVSANpkwJWZ0OFOD7X kV7JLPv8gr2DqaiDoLut5e+jy1KEgvEJCx2/E8EreB37dlWTv6OhkTp3iifmyYIQv4 6n/QJdAJMYpklu+Sb4ZUoBVq8atttn2c5DTLh8iw0XQaCD+r1uZMy03ZBPN6v21kIV h2yzykNNvGD8g== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Lad Prabhakar , Geert Uytterhoeven , Mark Brown , Sasha Levin Subject: [PATCH 6.6 372/638] ASoC: sh: rz-ssi: Fix error message print Date: Sun, 24 Mar 2024 18:56:49 -0400 Message-ID: <20240324230116.1348576-373-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Lad Prabhakar [ Upstream commit 9a6d7c4fb2801b675a9c31a7ceb78c84b8c439bc ] The devm_request_irq() call is done for "dma_rt" interrupt but the error message printed "dma_tx" interrupt on failure, fix this by updating dma_tx -> dma_rt in dev_err_probe() message. While at it aligned the code. Signed-off-by: Lad Prabhakar Fixes: 38c042b59af0248a ("ASoC: sh: rz-ssi: Update interrupt handling for h= alf duplex channels") Reviewed-by: Geert Uytterhoeven Link: https://msgid.link/r/20240130150822.327434-1-prabhakar.mahadev-lad.rj= @bp.renesas.com Signed-off-by: Mark Brown Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- sound/soc/sh/rz-ssi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sound/soc/sh/rz-ssi.c b/sound/soc/sh/rz-ssi.c index fe79eb90e1e5c..1588b93cc35d0 100644 --- a/sound/soc/sh/rz-ssi.c +++ b/sound/soc/sh/rz-ssi.c @@ -1016,7 +1016,7 @@ static int rz_ssi_probe(struct platform_device *pdev) dev_name(&pdev->dev), ssi); if (ret < 0) return dev_err_probe(&pdev->dev, ret, - "irq request error (dma_tx)\n"); + "irq request error (dma_rt)\n"); } else { if (ssi->irq_tx < 0) return ssi->irq_tx; --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 195D320CE07; Sun, 24 Mar 2024 23:07: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=1711321645; cv=none; b=exs1Nyc6qHopaz0csjrIFdbIvLBo/V0VHLTChXPhmQfJVj+ZaipcptQjWrZzg2BfGUHJKI+43meFGp8XkGor4K1CZnQac9yUT0qaNFdReVWT8xczBwzXMq3nW47LD256tDQZnO6hZ9a4D8jJz6ecGToJ6+0ydpFCsGOcuN0F38o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321645; c=relaxed/simple; bh=NxVz+WguTMB6Coo2YUZwzcntSivhyOF+Rdca8TF9s9s=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=rI9NOWf45On/+tu0SsAv/eStO2EGLZsvE3mgWe2OJpwrEU6/40/Fxk1n/YUbtyM1HMdL8egZxCBslui2fdRznVEKoo+CLp5rMAB80GDq4gI6a6VMv+jNez+oh4RAgtA99b9gtzaD8NwJzRJ9Ny9ID/oWRMakT0Mz6+VawuvPZvE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=brxnKIKn; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="brxnKIKn" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 40ED4C433C7; Sun, 24 Mar 2024 23:07:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321644; bh=NxVz+WguTMB6Coo2YUZwzcntSivhyOF+Rdca8TF9s9s=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=brxnKIKnJPnbvcBpAQea+FyMh3phdY+4cmR7gIfU4yks7+7HjOz1OlkvWFy2AdDka Zai/cxWF4VrXVG1VS8Ni05WgOJFpKLLnCz5+oLkwbCNeEECaAyBLRSSbO6shxXm6l3 pLfhPY6yqfKYjbbIiY3LmXg/SORMsUvybQ/HeZx32c1/TFm2T60aYnbgzxa1HT5PQJ SzHMaBm/LbGNCOTJC4lyuXJEVLj5ek0bqEhnZHTmRXoTO0zXEuYlgMUJyqb90NVYdl BkFovA6b3Zhhra3DqHt5aKw49qHKGuPcukV/HIwmNcoQ6PSMBBAAifLlgp418kc/4R s6QbpDUPgmCQg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Martin Krastev , Maaz Mombasawala , Zack Rusin , Sasha Levin Subject: [PATCH 6.6 373/638] drm/vmwgfx: Fix vmw_du_get_cursor_mob fencing of newly-created MOBs Date: Sun, 24 Mar 2024 18:56:50 -0400 Message-ID: <20240324230116.1348576-374-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Krastev [ Upstream commit ed96cf7ad590989b009d6da5cd26387d995dac13 ] The fencing of MOB creation used in vmw_du_get_cursor_mob was incompatible with register-based device communication employed by this routine. As a result cursor MOB creation was racy, leading to potentially broken/missing mouse cursor on desktops using CursorMob device feature. Fixes: 53bc3f6fb6b3 ("drm/vmwgfx: Clean up cursor mobs") Signed-off-by: Martin Krastev Reviewed-by: Maaz Mombasawala Reviewed-by: Zack Rusin Signed-off-by: Zack Rusin Link: https://patchwork.freedesktop.org/patch/msgid/20240126200804.732454-5= -zack.rusin@broadcom.com Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c b/drivers/gpu/drm/vmwgfx/v= mwgfx_kms.c index 818b7f109f538..b51578918cf8d 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c @@ -272,6 +272,7 @@ static int vmw_du_get_cursor_mob(struct vmw_cursor_plan= e *vcp, u32 size =3D vmw_du_cursor_mob_size(vps->base.crtc_w, vps->base.crtc_h); u32 i; u32 cursor_max_dim, mob_max_size; + struct vmw_fence_obj *fence =3D NULL; int ret; =20 if (!dev_priv->has_mob || @@ -313,7 +314,15 @@ static int vmw_du_get_cursor_mob(struct vmw_cursor_pla= ne *vcp, if (ret !=3D 0) goto teardown; =20 - vmw_bo_fence_single(&vps->cursor.bo->tbo, NULL); + ret =3D vmw_execbuf_fence_commands(NULL, dev_priv, &fence, NULL); + if (ret !=3D 0) { + ttm_bo_unreserve(&vps->cursor.bo->tbo); + goto teardown; + } + + dma_fence_wait(&fence->base, false); + dma_fence_put(&fence->base); + ttm_bo_unreserve(&vps->cursor.bo->tbo); return 0; =20 --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2AF0F20CE13; Sun, 24 Mar 2024 23:07: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=1711321646; cv=none; b=Bin3mxzmTtQkhPl8WTAcFvv+B8AKd72RHGuOPuJUDj8LaMxZZcQK+B1UwnrmC4ptMUNqpcYht8AVb5kFhvAhjEXMgPDuDCpSxRkW8LmVGAWUGKHAqZBG9zcsDqQzPNTFaFcT6OQ2r04oobjFBe+7w87L7lCHMvDoqx5LvuQj334= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321646; c=relaxed/simple; bh=C2Ua5kReEzwTd2V431PjK4bLeRHqCCInHnmeMP3BwsE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=vA5Zz8CiiZgCwLhwPutJHs2i4FVZq+TWEorXhnhx89tcqy9RGKyZxN1oAZ141zDcm/zkASt7uVc6LOyiGbOWsdN+LzMY1cBQ+/2B/1OeR3BAPe8JPFvG+4f0PuizTUAXhULvl7ezwLUzzAlXqhpfHHR6bl75+FH1w3clHhMPVNI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=uqwqMukQ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="uqwqMukQ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3F70CC43390; Sun, 24 Mar 2024 23:07:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321644; bh=C2Ua5kReEzwTd2V431PjK4bLeRHqCCInHnmeMP3BwsE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=uqwqMukQs0FYLa2H4C0BC8Q9m5Y62c/ppNEApdR2U6tS30SF34we1NrL6cZHoBHGD BNl4NX4wxDKJcxQAp1LDKY2akVXMPEyDVsJCQjqbAOAYMgXgfL63AO5rrhH7fq4qTZ QvJVrsj7pn6x4QdwZnXL+wg0eVowy9tXw1yEMh/AwHG7PDgmCXqP2jxQtGmE4Ic8Fz JqswRBXqmIsJ7uve2lBhJ7q5syxdI0Z/x6FTqtCwsG36747njiFdbaczypEemFtuZJ l/2UQ0i7niaVuWaskS+nO+BcAIcne3PYUebV+bUOFrIdu/H+M50uNlrP1v/rlN7Lr9 dOYYY4oo86p2A== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Geert Uytterhoeven , Sasha Levin Subject: [PATCH 6.6 374/638] pinctrl: renesas: r8a779g0: Add missing SCIF_CLK2 pin group/function Date: Sun, 24 Mar 2024 18:56:51 -0400 Message-ID: <20240324230116.1348576-375-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 68540257cdf1d07ff8a649aa94c21c5804bbb9b0 ] R-Car V4H actually has two SCIF_CLK pins. The second pin provides the SCIF_CLK signal for HSCIF2 and SCIF4. Fixes: 050442ae4c74f830 ("pinctrl: renesas: r8a779g0: Add pins, groups and = functions") Signed-off-by: Geert Uytterhoeven Link: https://lore.kernel.org/r/6352ec9b63fdd38c2c70d8d203e46f21fbfeccdc.17= 05589612.git.geert+renesas@glider.be Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/pinctrl/renesas/pfc-r8a779g0.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/drivers/pinctrl/renesas/pfc-r8a779g0.c b/drivers/pinctrl/renes= as/pfc-r8a779g0.c index acdea6ac15253..d2de526a3b588 100644 --- a/drivers/pinctrl/renesas/pfc-r8a779g0.c +++ b/drivers/pinctrl/renesas/pfc-r8a779g0.c @@ -2384,6 +2384,14 @@ static const unsigned int scif_clk_mux[] =3D { SCIF_CLK_MARK, }; =20 +static const unsigned int scif_clk2_pins[] =3D { + /* SCIF_CLK2 */ + RCAR_GP_PIN(8, 11), +}; +static const unsigned int scif_clk2_mux[] =3D { + SCIF_CLK2_MARK, +}; + /* - SSI ------------------------------------------------- */ static const unsigned int ssi_data_pins[] =3D { /* SSI_SD */ @@ -2694,6 +2702,7 @@ static const struct sh_pfc_pin_group pinmux_groups[] = =3D { SH_PFC_PIN_GROUP(scif4_clk), SH_PFC_PIN_GROUP(scif4_ctrl), SH_PFC_PIN_GROUP(scif_clk), + SH_PFC_PIN_GROUP(scif_clk2), =20 SH_PFC_PIN_GROUP(ssi_data), SH_PFC_PIN_GROUP(ssi_ctrl), @@ -3015,6 +3024,10 @@ static const char * const scif_clk_groups[] =3D { "scif_clk", }; =20 +static const char * const scif_clk2_groups[] =3D { + "scif_clk2", +}; + static const char * const ssi_groups[] =3D { "ssi_data", "ssi_ctrl", @@ -3102,6 +3115,7 @@ static const struct sh_pfc_function pinmux_functions[= ] =3D { SH_PFC_FUNCTION(scif3), SH_PFC_FUNCTION(scif4), SH_PFC_FUNCTION(scif_clk), + SH_PFC_FUNCTION(scif_clk2), =20 SH_PFC_FUNCTION(ssi), =20 --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DA00F13959B; Sun, 24 Mar 2024 23:07: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=1711321646; cv=none; b=JoeJNnT/faRMlj0dMEVh/qa2B6K2BUMpLqvgh8gnj5QxljBuK8BWXF0QcXuVmD2wcB9BquwiiZqg7dbWfeUOzyoKTcbSqSGcyJFKTsj1iux8ViyeiSdhwZdM1mjLxYIvE8uTg1sUvq3Vsgzo0QvGx9KE/HTerGsKu0E2PACU9Aw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321646; c=relaxed/simple; bh=k1718tIRVtyBuPuPME4HoGIOwyBFb8V0fUYLmvZcUbM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Ksz9uYhmaUtshlxG+rSrgkFR8+5IIT4zC9e/qb0Yq+WZz5Ko4zynNPkUv2KpAfvg0sgfm/wJ9Px3ZUB1/xFj8EussMD1m+228rb08jNqnny4F4Spn1ydOVDLVlFBWdTk0GYawZYGMbMn1wmOJu3DKptjegSmbE30MbtFmyFyPXk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Yrah0G7v; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Yrah0G7v" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0D498C43394; Sun, 24 Mar 2024 23:07:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321645; bh=k1718tIRVtyBuPuPME4HoGIOwyBFb8V0fUYLmvZcUbM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Yrah0G7vekACaALfeW/LhpNDMOQhaBLNbcgmbLW4g4sIv+bM7FURUvV1ra8zdiqKN iXp2V37Jge2sC9J4j6sJ4XIBFGs36v93092YFwgAeEHnTKpgsWDuGqAg0L/IDcKC7c A+TMkBkdYOgc/eWzjdWSrRSPnAnERclWRVFqeJfedmuPo746QSFp/IXjkWf6SWiNLD VM4cqNedcePSmt4/IvddjPD5Jh/LqgCT9Pe3Y7bS141pIC0G7cVTm0rZwy+Xe+9IUb 9oDHrpq2uopngkfwfOz3gJKFRm0i47otqUbQamtq90BPWQDuUbzX6AOl9qq7Vu+uBn /xrmXIQvpsyeQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Sam Protsenko , Tudor Ambarus , Krzysztof Kozlowski , Sasha Levin Subject: [PATCH 6.6 375/638] clk: samsung: exynos850: Propagate SPI IPCLK rate change Date: Sun, 24 Mar 2024 18:56:52 -0400 Message-ID: <20240324230116.1348576-376-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Protsenko [ Upstream commit 67c15187d4910ee353374676d4dddf09d8cb227e ] When SPI transfer is being prepared, the spi-s3c64xx driver will call clk_set_rate() to change the rate of SPI source clock (IPCLK). But IPCLK is a gate (leaf) clock, so it must propagate the rate change up the clock tree, so that corresponding DIV clocks can actually change their divider values. Add CLK_SET_RATE_PARENT flag to corresponding clocks for all SPI instances in Exynos850 (spi_0, spi_1 and spi_2) to make it possible. This change involves next clocks: usi_spi_0: Clock Block Div range -------------------------------------------- gout_spi0_ipclk CMU_PERI - dout_peri_spi0 CMU_PERI /1..32 mout_peri_spi_user CMU_PERI - dout_peri_ip CMU_TOP /1..16 usi_cmgp0: Clock Block Div range -------------------------------------------- gout_cmgp_usi0_ipclk CMU_CMGP - dout_cmgp_usi0 CMU_CMGP /1..32 mout_cmgp_usi0 CMU_CMGP - gout_clkcmu_cmgp_bus CMU_APM - dout_apm_bus CMU_APM /1..8 usi_cmgp1: Clock Block Div range -------------------------------------------- gout_cmgp_usi1_ipclk CMU_CMGP - dout_cmgp_usi1 CMU_CMGP /1..32 mout_cmgp_usi1 CMU_CMGP - gout_clkcmu_cmgp_bus CMU_APM - dout_apm_bus CMU_APM /1..8 With input clock of 400 MHz, this scheme provides next IPCLK rate range, for each SPI block: SPI0: 781 kHz ... 400 MHz SPI1/2: 1.6 MHz ... 400 MHz Accounting for internal /4 divider in SPI blocks, and because the max SPI frequency is limited at 50 MHz, it gives us next SPI SCK rates: SPI0: 200 kHz ... 49.9 MHz SPI1/2: 400 kHz ... 49.9 MHz Which should cover all possible applications of SPI bus. Of course, setting SPI frequency to values as low as 500 kHz will also affect the common bus dividers (dout_apm_bus or dout_peri_ip), which in turn effectively lowers the rates for all leaf bus clocks derived from those dividers, like HSI2C and I3C clocks. But at least it gives the board designer a choice, whether to keep all clocks (SPI/HSI2C/I3C) at high frequencies, or make all those clocks have lower frequencies. Not propagating the rate change to those common dividers would limit this choice to "only high frequencies are allowed for SPI/HSI2C/I3C" option, making the common dividers useless. This decision follows the "Worse is better" approach, relying on the users/engineers to know the system internals when working with such low-level features, instead of trying to account for all possible use-cases. Fixes: 7dd05578198b ("clk: samsung: Introduce Exynos850 clock driver") Signed-off-by: Sam Protsenko Reviewed-by: Tudor Ambarus Link: https://lore.kernel.org/r/20240125013858.3986-2-semen.protsenko@linar= o.org Signed-off-by: Krzysztof Kozlowski Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/clk/samsung/clk-exynos850.c | 33 +++++++++++++++-------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/drivers/clk/samsung/clk-exynos850.c b/drivers/clk/samsung/clk-= exynos850.c index bdc1eef7d6e54..c7b0b9751307b 100644 --- a/drivers/clk/samsung/clk-exynos850.c +++ b/drivers/clk/samsung/clk-exynos850.c @@ -605,7 +605,7 @@ static const struct samsung_div_clock apm_div_clks[] __= initconst =3D { =20 static const struct samsung_gate_clock apm_gate_clks[] __initconst =3D { GATE(CLK_GOUT_CLKCMU_CMGP_BUS, "gout_clkcmu_cmgp_bus", "dout_apm_bus", - CLK_CON_GAT_CLKCMU_CMGP_BUS, 21, 0, 0), + CLK_CON_GAT_CLKCMU_CMGP_BUS, 21, CLK_SET_RATE_PARENT, 0), GATE(CLK_GOUT_CLKCMU_CHUB_BUS, "gout_clkcmu_chub_bus", "mout_clkcmu_chub_bus", CLK_CON_GAT_GATE_CLKCMU_CHUB_BUS, 21, 0, 0), @@ -974,19 +974,19 @@ static const struct samsung_fixed_rate_clock cmgp_fix= ed_clks[] __initconst =3D { static const struct samsung_mux_clock cmgp_mux_clks[] __initconst =3D { MUX(CLK_MOUT_CMGP_ADC, "mout_cmgp_adc", mout_cmgp_adc_p, CLK_CON_MUX_CLK_CMGP_ADC, 0, 1), - MUX(CLK_MOUT_CMGP_USI0, "mout_cmgp_usi0", mout_cmgp_usi0_p, - CLK_CON_MUX_MUX_CLK_CMGP_USI_CMGP0, 0, 1), - MUX(CLK_MOUT_CMGP_USI1, "mout_cmgp_usi1", mout_cmgp_usi1_p, - CLK_CON_MUX_MUX_CLK_CMGP_USI_CMGP1, 0, 1), + MUX_F(CLK_MOUT_CMGP_USI0, "mout_cmgp_usi0", mout_cmgp_usi0_p, + CLK_CON_MUX_MUX_CLK_CMGP_USI_CMGP0, 0, 1, CLK_SET_RATE_PARENT, 0), + MUX_F(CLK_MOUT_CMGP_USI1, "mout_cmgp_usi1", mout_cmgp_usi1_p, + CLK_CON_MUX_MUX_CLK_CMGP_USI_CMGP1, 0, 1, CLK_SET_RATE_PARENT, 0), }; =20 static const struct samsung_div_clock cmgp_div_clks[] __initconst =3D { DIV(CLK_DOUT_CMGP_ADC, "dout_cmgp_adc", "gout_clkcmu_cmgp_bus", CLK_CON_DIV_DIV_CLK_CMGP_ADC, 0, 4), - DIV(CLK_DOUT_CMGP_USI0, "dout_cmgp_usi0", "mout_cmgp_usi0", - CLK_CON_DIV_DIV_CLK_CMGP_USI_CMGP0, 0, 5), - DIV(CLK_DOUT_CMGP_USI1, "dout_cmgp_usi1", "mout_cmgp_usi1", - CLK_CON_DIV_DIV_CLK_CMGP_USI_CMGP1, 0, 5), + DIV_F(CLK_DOUT_CMGP_USI0, "dout_cmgp_usi0", "mout_cmgp_usi0", + CLK_CON_DIV_DIV_CLK_CMGP_USI_CMGP0, 0, 5, CLK_SET_RATE_PARENT, 0), + DIV_F(CLK_DOUT_CMGP_USI1, "dout_cmgp_usi1", "mout_cmgp_usi1", + CLK_CON_DIV_DIV_CLK_CMGP_USI_CMGP1, 0, 5, CLK_SET_RATE_PARENT, 0), }; =20 static const struct samsung_gate_clock cmgp_gate_clks[] __initconst =3D { @@ -1001,12 +1001,12 @@ static const struct samsung_gate_clock cmgp_gate_cl= ks[] __initconst =3D { "gout_clkcmu_cmgp_bus", CLK_CON_GAT_GOUT_CMGP_GPIO_PCLK, 21, CLK_IGNORE_UNUSED, 0), GATE(CLK_GOUT_CMGP_USI0_IPCLK, "gout_cmgp_usi0_ipclk", "dout_cmgp_usi0", - CLK_CON_GAT_GOUT_CMGP_USI_CMGP0_IPCLK, 21, 0, 0), + CLK_CON_GAT_GOUT_CMGP_USI_CMGP0_IPCLK, 21, CLK_SET_RATE_PARENT, 0), GATE(CLK_GOUT_CMGP_USI0_PCLK, "gout_cmgp_usi0_pclk", "gout_clkcmu_cmgp_bus", CLK_CON_GAT_GOUT_CMGP_USI_CMGP0_PCLK, 21, 0, 0), GATE(CLK_GOUT_CMGP_USI1_IPCLK, "gout_cmgp_usi1_ipclk", "dout_cmgp_usi1", - CLK_CON_GAT_GOUT_CMGP_USI_CMGP1_IPCLK, 21, 0, 0), + CLK_CON_GAT_GOUT_CMGP_USI_CMGP1_IPCLK, 21, CLK_SET_RATE_PARENT, 0), GATE(CLK_GOUT_CMGP_USI1_PCLK, "gout_cmgp_usi1_pclk", "gout_clkcmu_cmgp_bus", CLK_CON_GAT_GOUT_CMGP_USI_CMGP1_PCLK, 21, 0, 0), @@ -1557,8 +1557,9 @@ static const struct samsung_mux_clock peri_mux_clks[]= __initconst =3D { mout_peri_uart_user_p, PLL_CON0_MUX_CLKCMU_PERI_UART_USER, 4, 1), MUX(CLK_MOUT_PERI_HSI2C_USER, "mout_peri_hsi2c_user", mout_peri_hsi2c_user_p, PLL_CON0_MUX_CLKCMU_PERI_HSI2C_USER, 4, 1), - MUX(CLK_MOUT_PERI_SPI_USER, "mout_peri_spi_user", mout_peri_spi_user_p, - PLL_CON0_MUX_CLKCMU_PERI_SPI_USER, 4, 1), + MUX_F(CLK_MOUT_PERI_SPI_USER, "mout_peri_spi_user", + mout_peri_spi_user_p, PLL_CON0_MUX_CLKCMU_PERI_SPI_USER, 4, 1, + CLK_SET_RATE_PARENT, 0), }; =20 static const struct samsung_div_clock peri_div_clks[] __initconst =3D { @@ -1568,8 +1569,8 @@ static const struct samsung_div_clock peri_div_clks[]= __initconst =3D { CLK_CON_DIV_DIV_CLK_PERI_HSI2C_1, 0, 5), DIV(CLK_DOUT_PERI_HSI2C2, "dout_peri_hsi2c2", "gout_peri_hsi2c2", CLK_CON_DIV_DIV_CLK_PERI_HSI2C_2, 0, 5), - DIV(CLK_DOUT_PERI_SPI0, "dout_peri_spi0", "mout_peri_spi_user", - CLK_CON_DIV_DIV_CLK_PERI_SPI_0, 0, 5), + DIV_F(CLK_DOUT_PERI_SPI0, "dout_peri_spi0", "mout_peri_spi_user", + CLK_CON_DIV_DIV_CLK_PERI_SPI_0, 0, 5, CLK_SET_RATE_PARENT, 0), }; =20 static const struct samsung_gate_clock peri_gate_clks[] __initconst =3D { @@ -1611,7 +1612,7 @@ static const struct samsung_gate_clock peri_gate_clks= [] __initconst =3D { "mout_peri_bus_user", CLK_CON_GAT_GOUT_PERI_PWM_MOTOR_PCLK, 21, 0, 0), GATE(CLK_GOUT_SPI0_IPCLK, "gout_spi0_ipclk", "dout_peri_spi0", - CLK_CON_GAT_GOUT_PERI_SPI_0_IPCLK, 21, 0, 0), + CLK_CON_GAT_GOUT_PERI_SPI_0_IPCLK, 21, CLK_SET_RATE_PARENT, 0), GATE(CLK_GOUT_SPI0_PCLK, "gout_spi0_pclk", "mout_peri_bus_user", CLK_CON_GAT_GOUT_PERI_SPI_0_PCLK, 21, 0, 0), GATE(CLK_GOUT_SYSREG_PERI_PCLK, "gout_sysreg_peri_pclk", --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F13561EBD24; Sun, 24 Mar 2024 23:07: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=1711321648; cv=none; b=qkyju48pSb9c6i0sXthRAme36wNVQXm6m91jtN6AzXBqBCLX9DAA3F+6voFjyZScT00CKrxA59xDWMOHHfo//0DNUCVmUy8ZwiOlYZKFu9ije6hj0vWauKs2hwx4CVYDlMCgNxQqqxV1rUp+ZvxyBy5UdUYXOC5p3QB7exIs6Yw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321648; c=relaxed/simple; bh=i6qbJ0YigLE3yuZNNmqK6Rf7CvUlWxagcLz5SoaV904=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=AXUEQeQ1CrUSwmA70EPGESIK//gM2u6CQwhTUObCWWS/NU227Tm72JNp7lX03kiksG8qqT3bmI1PKLTvOtTPz7r+H0ONK9wMTs+mLqhKK0YeH4UcGs1bGsMW4qTpV078qqfpMWtSY9SVOe3TdtRM2ewDTbfTmw8+Bz5sPi1mplA= 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/DgLJio; arc=none smtp.client-ip=10.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/DgLJio" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0C270C433C7; Sun, 24 Mar 2024 23:07:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321646; bh=i6qbJ0YigLE3yuZNNmqK6Rf7CvUlWxagcLz5SoaV904=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=W/DgLJiooIa9qG0qSUzXfIyYeOBLiAfMTSU8P+Ex/mRpGHcXiD+2aMsGySNmZB7B3 gRK6iS1iOPQDIo+/2gdIwJahv6cSiYXt/gJbTsfvtU8tYfS2fdwNFGm2XEco0rJwEx MGzLUiVqsbf6uH2kfqJEWpCi9gkJGktwBueU/jP2cxf5jsDYqmK83HMtXYTBDA75YL lI+cHsiCVeR2KLgf3zR0VWUBQ0bZXi00PDuIE4vnA574KZQDwK588qEad8m3lThcH+ IIDP2xi9Gq3ifa9oIkvHlyxuHAyC8/BaoYFLVkDrTdY9OcZfsEnWHzT1LEidpsLBv5 OOmyWyV4d5hwg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Julien Massot , Hans de Goede , Sakari Ailus , Mauro Carvalho Chehab , Sasha Levin Subject: [PATCH 6.6 376/638] media: v4l2: cci: print leading 0 on error Date: Sun, 24 Mar 2024 18:56:53 -0400 Message-ID: <20240324230116.1348576-377-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Julien Massot [ Upstream commit 58ab1f9e140006e9e5686640f1773260038fe889 ] In some error cases leading '0' for register address were missing. Fixes: 613cbb91e9ce ("media: Add MIPI CCI register access helper functions") Signed-off-by: Julien Massot Reviewed-by: Hans de Goede Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/media/v4l2-core/v4l2-cci.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/media/v4l2-core/v4l2-cci.c b/drivers/media/v4l2-core/v= 4l2-cci.c index 10005c80f43b5..ee3475bed37fa 100644 --- a/drivers/media/v4l2-core/v4l2-cci.c +++ b/drivers/media/v4l2-core/v4l2-cci.c @@ -32,7 +32,7 @@ int cci_read(struct regmap *map, u32 reg, u64 *val, int *= err) =20 ret =3D regmap_bulk_read(map, reg, buf, len); if (ret) { - dev_err(regmap_get_device(map), "Error reading reg 0x%4x: %d\n", + dev_err(regmap_get_device(map), "Error reading reg 0x%04x: %d\n", reg, ret); goto out; } @@ -131,7 +131,7 @@ int cci_write(struct regmap *map, u32 reg, u64 val, int= *err) =20 ret =3D regmap_bulk_write(map, reg, buf, len); if (ret) - dev_err(regmap_get_device(map), "Error writing reg 0x%4x: %d\n", + dev_err(regmap_get_device(map), "Error writing reg 0x%04x: %d\n", reg, ret); =20 out: --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1249120D5D2; Sun, 24 Mar 2024 23:07: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=1711321649; cv=none; b=kgDQ0bYAKoefGaj5lJGLZds+WIWwiB+8d02F65PZASqPlpCGoRm7BznllfK1RPIfiuModSc0HVo1j2k7NCH9Tj6NRdKYAKEYcYwFVPVI3BYiXxSroHFAlfo23qv7lLeED8T6P1POpsnt8mukl56dmxwvrct2CYIUuBJfEYgsuW4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321649; c=relaxed/simple; bh=exBUztv4jQiK9QCdarVk8mleKrG+kqbYAMlkM+o7oTg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=OUcqTdmml+jJrPJfHzqxYX/L6z2zU9khyxDMOeVh7+6Pg3NbxHYRWAMkA8PVtXdQJTProXsfLCEGTXcNAV1KO2t3hZzYYvx1K3lwfJb9IerstfRZoxjE+K7RlyMsj6mINCgGo6ODp55hNhO9WF9xO8mopOm4vUg0LEuHli1p5yQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=NB2EJCvz; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="NB2EJCvz" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 23056C433F1; Sun, 24 Mar 2024 23:07:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321647; bh=exBUztv4jQiK9QCdarVk8mleKrG+kqbYAMlkM+o7oTg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=NB2EJCvzy9jkcPt6MjBOrPoH8RRocFQjFgDsfoCB6LgiUgKlOhUFYOSqKiGtDHjYl ZrvUbt2Dnqi9POW+V4vmbBZCQlY55oLujI8HX+29EhfF0/ngEE5EtKMkBLYUn7goKa z79jP5Ylm0kmX4imcR91KhYav+euZDnhjy410+tvs96VtNy4vdUjZ0Y9OwyrfKuG/x QoYjLe8jQXDx8BcUgTePfqzRrMxX4LEN8B9ozebzpnW/CLgDl5MvhQTtJyiQs52V2o u+eYU9iZOpRAbQlotJemjBfO/BI2Ia4aCJo+tQiP+ZWs57i1tTe7z2Zh3VI2cxxftx e5qyzV62eM5rg== 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 6.6 377/638] perf evsel: Fix duplicate initialization of data->id in evsel__parse_sample() Date: Sun, 24 Mar 2024 18:56:54 -0400 Message-ID: <20240324230116.1348576-378-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 a8a5ff87cc1f7..6d2b056232f6e 100644 --- a/tools/perf/util/evsel.c +++ b/tools/perf/util/evsel.c @@ -2366,7 +2366,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; data->vcpu =3D -1; =20 --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EF7DA20D5E0; Sun, 24 Mar 2024 23:07: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=1711321650; cv=none; b=e6he+oWCf/SbwmDt3GVJvGej0wWXL+rBBhP2X0VMCFV8udT5MCHnCRe3pfUZHdVnem4oKFXq9q6d4qbfOVliq5ui5Y+dAshstDFMD79n9X19gVGHcxp73NoejjyQdUKyJaggn+KZ/zkjrtQDEcUigiOqqwslpe5hy7soHaaQ9MI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321650; c=relaxed/simple; bh=AblLMCLKhGeVcNTlP4GxhDoq/j9RcxhSil5RYWBtqm4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=EKlJxDrGGrvQjye7oBNeKhZBQTayiVStFJUeLdETBemVu1RmWtyQQQB63ZjWUokuL4XuKdLzHVu8xoA9CumCICTJSzcdrE3rvTzErDSdO4UxoZuEJE3I/QJmi3vZQo2gxJmkDwLCiGm26sggMebPc20cRi68QvQhOfcWgzj3J4o= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=bvDnIR5Z; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="bvDnIR5Z" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 37E6AC433C7; Sun, 24 Mar 2024 23:07:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321648; bh=AblLMCLKhGeVcNTlP4GxhDoq/j9RcxhSil5RYWBtqm4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=bvDnIR5ZLoiyow2VjZJBKDdcHxdmlvX8TO0aBetKFeoi4pogOtDX08Zhqxl78d8ww q7XamJJiqrSt0ANPW8izGdZaHY6uoHiCsqqQSjbAvGgQtZTqbngATnMkV3B3oqpBBQ Zq5inUVs34+eLn59Tfz3mEJZu+o9N5zwOmzEfOl5iXHVNeNM3FwPbp4uPXBWN4J8p+ Fm/hZp8CDsy83xcKUWY1XDlquhs9F+wOvvEB2lSnjXoPGnMkajhdbyZNmX6g3pC48/ NLzJoD+k9zDc6iSpGr1fNyMiGljA6Ez7jF2slKPWllKj2FuTRgmfxCckWAIhWar8Fl hbejo/hNyEVlw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Johan Hovold , Bjorn Helgaas , Sasha Levin Subject: [PATCH 6.6 378/638] PCI/AER: Fix rootport attribute paths in ABI docs Date: Sun, 24 Mar 2024 18:56:55 -0400 Message-ID: <20240324230116.1348576-379-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8297820D5EA; Sun, 24 Mar 2024 23:07: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=1711321651; cv=none; b=RwUAk3XFKsLFMHL8/EZ/se04+T0tX0qPAIal84hKFN4OzSzlBAN/7/VhLaHLZugZ1pfF9jfdIR/8b5a+YqoJ2R5KXT6XYMeyKPBqLEoAsQh2bIBSFOOZNCLJtZ1id70Xed3nkYDY05nHOpPPU3BaUTQJW7Q+tRzdj7DlumeO2rY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321651; c=relaxed/simple; bh=zAJBru5Y6lcMbpsk5V/l75jABud2pBNnY08/Lc4M4HA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZlQP89U+ClzEuWGzfTKG5EOuD2OdF87bf8P7i41X0Ije6DpUNOAZoacPnmHjCJUAWHGJ6TzhH09Zs0xUCX3lCSL3Y922ktAFP+gTPeJ7Sv3oEhfM+PlkqzFtx6lcd1zzDjY3lElFppCxD2tX3wHMh/SXeZF13KiBpfLs3nXEkUI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=UHP6LDqb; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="UHP6LDqb" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2024EC43394; Sun, 24 Mar 2024 23:07:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321650; bh=zAJBru5Y6lcMbpsk5V/l75jABud2pBNnY08/Lc4M4HA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=UHP6LDqbWO/UtACAC5GJ9oidG6OEV5pJF8us+3Eu8Yk75aWRereIwJ+rm7H6a9zGa 5J+PcqJu9C69efzJbrFPKDMxqVTIzKGdOHHXq3+fZiRaNSXDZNCkoGnWsMs7lpJQXl IpokgXg9ovFoUUreloiUptKPbgZImzjMrcqV7VqaeUZaytTCHaaABlUTqnb64dsZuP dznUI8WUHuxlMMiYwEgvfEmncNf7xHtTjLrsMl9+cZS7Qp3Vb3NWZNAi2H6xU/WX6q NFoRtJPOi0dNZpf4yOrHJdZ3NpuQ5TggvTTdb+skosDZR3K1xxtrqUfVFDuP09IRME ePqkrzQ7p9ivw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Arnaldo Carvalho de Melo , Ian Rogers , Andrii Nakryiko , James Clark , Tiezhu Yang , Yang Jihong , bpf@vger.kernel.org, Arnaldo Carvalho de Melo , Namhyung Kim , Sasha Levin Subject: [PATCH 6.6 379/638] perf bpf: Clean up the generated/copied vmlinux.h Date: Sun, 24 Mar 2024 18:56:56 -0400 Message-ID: <20240324230116.1348576-380-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Arnaldo Carvalho de Melo [ Upstream commit ffd856537b95dd65facb4e0c78ca1cb92c2048ff ] When building perf with BPF skels we either copy the minimalistic tools/perf/util/bpf_skel/vmlinux/vmlinux.h or use bpftool to generate a vmlinux from BTF, storing the result in $(SKEL_OUT)/vmlinux.h. We need to remove that when doing a 'make -C tools/perf clean', fix it. Fixes: b7a2d774c9c5a9a3 ("perf build: Add ability to build with a generated= vmlinux.h") Reviewed-by: Ian Rogers Cc: Andrii Nakryiko Cc: James Clark Cc: Tiezhu Yang Cc: Yang Jihong Cc: bpf@vger.kernel.org Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Namhyung Kim Link: https://lore.kernel.org/r/Zbz89KK5wHfZ82jv@x1 Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- tools/perf/Makefile.perf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf index 86569f230e60d..b97224a8a65b9 100644 --- a/tools/perf/Makefile.perf +++ b/tools/perf/Makefile.perf @@ -1127,7 +1127,7 @@ bpf-skel: endif # BUILD_BPF_SKEL =20 bpf-skel-clean: - $(call QUIET_CLEAN, bpf-skel) $(RM) -r $(SKEL_TMP_OUT) $(SKELETONS) + $(call QUIET_CLEAN, bpf-skel) $(RM) -r $(SKEL_TMP_OUT) $(SKELETONS) $(SKE= L_OUT)/vmlinux.h =20 clean:: $(LIBAPI)-clean $(LIBBPF)-clean $(LIBSUBCMD)-clean $(LIBSYMBOL)-cl= ean $(LIBPERF)-clean fixdep-clean python-clean bpf-skel-clean tests-coresig= ht-targets-clean $(call QUIET_CLEAN, core-objs) $(RM) $(LIBPERF_A) $(OUTPUT)perf-archive = $(OUTPUT)perf-iostat $(LANG_BINDINGS) --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CC05C20D5EB; Sun, 24 Mar 2024 23:07: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=1711321651; cv=none; b=uRq44QgwLnGvvWeBzRiT3zWTuAYChdx5VYF+dX3hrFPdP+2xMSbIcnkwqBuSXAhHQSXpdKJinfljl1J3LHV3V3y/Q4Sav6iIWbk5uAL1T5QPW9Vrun4ruEae/j6cNrM/EAadJV3x9x+kzkbMO8F4CZDAuFWmggGj4CqPVGg1cp8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321651; c=relaxed/simple; bh=8aj/goXBmUnz9yrgHDqGWbx3hqheBb4xsQdBsUfe4oM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=dpftb7iWvElszJDViatvGKmb5w8WW4NdfIt79Z9a6KrghFVzLy7zOWKA+w9LySl6mFZPxtexWuJHGkln6jGxDieCkywd7fujT1VjACgOFVkN9GJHSpP+TXpsqC62E+LncdJnSmbKLvXtZIlLOSsEnOzVVREPRGc3e8PZF1XvSbg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=lK8XgeKT; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="lK8XgeKT" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A97CDC433C7; Sun, 24 Mar 2024 23:07:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321651; bh=8aj/goXBmUnz9yrgHDqGWbx3hqheBb4xsQdBsUfe4oM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=lK8XgeKTNYKN2HZQ/XFkoYi2LmsZaLKiAOMnPm69Ao6d8QsQVzH2GSIb1ufNiMB6I I1y5Fx/jVMYjyz1m17w0zBFFszyH6NlifyphJ3yEFULzt/Ef7g0yuMUiMNIlkqektK CHxTEPdpkpXp/QNf60VTiWVPsaTTOn7LcSeGJ9KRLDODr7py0EgAjyS6bGvy0J69kq JiV75Kzyt+LZBagdDSECYkZDOTQKYK5ZorTRyfHPAyuVfJXPXlwPURDfXAulo216OC prGpZMNi1RxpD2pzIez+8c6zK4J/gQ0tLAU1y/o0HWb4VMt1YvK4luOvRxm/Tw6ERc GWhFjoMb87vOA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Igor Prusov , Jerome Brunet , Sasha Levin Subject: [PATCH 6.6 380/638] clk: meson: Add missing clocks to axg_clk_regmaps Date: Sun, 24 Mar 2024 18:56:57 -0400 Message-ID: <20240324230116.1348576-381-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 c12f81dfa6745..5f60f2bcca592 100644 --- a/drivers/clk/meson/axg.c +++ b/drivers/clk/meson/axg.c @@ -2142,7 +2142,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B56A420D5C3; Sun, 24 Mar 2024 23:07: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=1711321652; cv=none; b=b+BDujXSFTmRqX46RKglVPiFQcB/HC6c+EDN7bmPPzQ1G5CvNcnarlSwrEBK8AplbMqlva7ivqQE2KoqZMLLAro/+r4w0UDHFaOXGeBOY82yDiYLVMewJIZGSwQWfuZ+/sFS3b1c+n1TIKSSt8LKqKM2ObCPWuRB6cIq6N1PZa4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321652; c=relaxed/simple; bh=CwWwXVhHyKnLQ10moKJIyAHUeLsBYRK/aKO6LwRtc0U=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=RDV31UD6EqbTRxS9H708yXL81L5OGlF/0M4fLTuQGDZKFTKDMbUfvLb3jo6pIwvLbGR0qomqnGvWjVSHU7I9zi9V6GE32z6ZjxOxqVrOFj//I82OQxyr2ZUjY8FeUWfxXoU4TNcI4WuJzTqeYFnyNgP816Gwau1fTrEBR5cJRQs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=G036siF0; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="G036siF0" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 905C7C43390; Sun, 24 Mar 2024 23:07:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321652; bh=CwWwXVhHyKnLQ10moKJIyAHUeLsBYRK/aKO6LwRtc0U=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=G036siF0eK+ypPBE4oQHsPE147nY1Nk5rfdiwIRC/TECZzEB+rKGwDL5yGtBY+PM6 62pk+Ibz4VN7BJQHPThtXBj32QLw7b3aJUmuFl7sqX7HMTBEP/fuTPtJp+334pkCCP xXy7eKp9syuYN6W00oUxrgE0D99G2yGJu6T/PygtNfdJAQJQ1waFj3nn3Ev2RUB3D9 RBpDgokvCR+bJdgRrIT89uZNkHfJ5+AqCpwPar+pQHSEA4HfMdRB9GqkDtKd+4Z6Q5 CzNPlTYfQYEAYkxYZP3rAAdPOm7Mud8q3bDnNwINFcmvLwiUVAL54/C/V7d8/0qZGt nwAAdf9RvUUOw== 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 6.6 381/638] media: em28xx: annotate unchecked call to media_device_register() Date: Sun, 24 Mar 2024 18:56:58 -0400 Message-ID: <20240324230116.1348576-382-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 4d037c92af7c5..bae76023cf71d 100644 --- a/drivers/media/usb/em28xx/em28xx-cards.c +++ b/drivers/media/usb/em28xx/em28xx-cards.c @@ -4094,6 +4094,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5666120DD27; Sun, 24 Mar 2024 23:07: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=1711321654; cv=none; b=P06yXpK0DR5YFfl2a1DQGG49quREtPfdR7V+MOX45CLfAowaIKODrv4NESqdY38LQrUm3mReGntRaI2FPfWx3jzzW7i5+ycGWDtBSKMtCFhdSEu0f28yPx0I4yYY+wJLZ//1N4+72cmXFoMt0LwkQuxYOLkBKG0JghkUUDliyDw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321654; c=relaxed/simple; bh=EWgKnN4Jo0bf+oXAc5grq6JHSvSF9OfBeXnKDb9HOws=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=aDRq00T/khd603CBBRuCJlEMlFAqUrzovTP5oJlT/9JR1Dkefz+3Hldu2QNeoaWDXBI3A+fSnPW4wpQeBHavgXpQHDOJKdwU+vAfFZE1Y982C369iP6kLNFHRLnLGgw+xiLZD77VdAYVeSSLytaR99t+kC1SaDrx89pGPTkTNnA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=NUEAgWu8; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="NUEAgWu8" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8FC84C433F1; Sun, 24 Mar 2024 23:07:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321653; bh=EWgKnN4Jo0bf+oXAc5grq6JHSvSF9OfBeXnKDb9HOws=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=NUEAgWu80Hc/4ecaF4V6/phqF1zge7MTKGmy0HfHlhn8b7QvgEmLrDplL68QXGWPC ODNClq8tbS2Z6TaC7DxhyW8Kg0yBteIzpM0YBi/almL5p/2zKVtCnwSRGp7hAQcsoq k2dENMqC/MvQhvG9+77dRWWxHsbD4kiegwB2OmNv8gCRYP0cvTkLA031bLfHRFi6bn AvCc7SUZn35bekaOjYIHqniFGWazAI81M+xi4SuTslMKsxNrW9JmBeN4hX1EjI/J4x ughdpFuaGPOW9bqilLs5A7ydtaMrz8c3ooHJpcEFwYR4SfBvoSLs4Btoix2BgoXegG oYpx6lmYa/AXA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Zhipeng Lu , Hans Verkuil , Sasha Levin Subject: [PATCH 6.6 382/638] media: v4l2-tpg: fix some memleaks in tpg_alloc Date: Sun, 24 Mar 2024 18:56:59 -0400 Message-ID: <20240324230116.1348576-383-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 a366566f22c3b..642c48e8c1f58 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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 45D0920DD3A; Sun, 24 Mar 2024 23:07: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=1711321655; cv=none; b=BkeenQw/XDxon5/dDxdTjwJ0Gj0Wyc5im0WVL9UAeJs7v7HqAKN8otGHtNuJZ/FkQ1X7dga5yY3UCGMhTXezqKdmk5qL8jeIasOhlgT8rfqKshVoOKy9AZWb0MhPpp4BUrXIL+YEfAjEtI7m/lc+INVIdYIlNDve4Hm2TzkPLyo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321655; c=relaxed/simple; bh=8POOEHMBodqPxKTRL+FZX71hTSWmfb8XiVKdy1zhITA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZFcR/qtt7F83wA57pLqGk3GgT5lpVnBJOfVO6IctEJhmx9SVV/TslpWBMjz2fr7A2qXd3omOx8CFlZs+SoZoy8va+w9cANxeqVuYrGRqgYLDyUBZSO06BLQnKMDt5pvYtCzIMaYM1f8EPqyO57mLZVYZJcp8lU9a2H+4pfEfYHs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=JeGBBgpv; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="JeGBBgpv" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 764BEC433C7; Sun, 24 Mar 2024 23:07:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321654; bh=8POOEHMBodqPxKTRL+FZX71hTSWmfb8XiVKdy1zhITA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=JeGBBgpv6LveagcIp3eC0HbX3AaBh4Pnx+EYh32jl56F9BCudOgtpvy08CYZqZ5GK Db7mhWR53EbUeIHhCohnW5zqag8Ka/2eOjG0mQ3zZq9R0Z82ZimVcg4OhhgR3DitT+ w56Al5+f1neFRiwzpwCrudcgv3GIG3nvrMtcGeDUo5XRNqsUjpW2gkSOvF6Eiqu3q/ sfGftGmUKggsypOMuitKIxKW+En7lfZbeEPjYtFC2wYfHDg11XIAKsxCAhPgDuU/Xz DXjAyrVETy2u0et2PdPOGXXVvw8lEk0MIlimMhRqbK9kmxdZyRo9uUmVD6RWoEPuNd EubvVC64JJM2Q== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Zhipeng Lu , Hans Verkuil , Sasha Levin Subject: [PATCH 6.6 383/638] media: v4l2-mem2mem: fix a memleak in v4l2_m2m_register_entity Date: Sun, 24 Mar 2024 18:57:00 -0400 Message-ID: <20240324230116.1348576-384-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 0cc30397fbad5..8db9ac9c1433f 100644 --- a/drivers/media/v4l2-core/v4l2-mem2mem.c +++ b/drivers/media/v4l2-core/v4l2-mem2mem.c @@ -1084,11 +1084,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9812820DD4B; Sun, 24 Mar 2024 23:07: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=1711321656; cv=none; b=X0WSO5UzoMu3IYoKr486G+rYE9oP4bo6qwhqMEV5ACOKBkPT25HI+RzckcFgYZ439o2GSOLrC/oiLjCxTSdmTKrGkEcdQIXuxZHVjNEa3ghZLnUzIC4Ofl2aqyXJ2mYMXyHMrWEiHaBBCDZXDmZBvQlI6lK9c2GC6Uo+SxOS5JQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321656; c=relaxed/simple; bh=YZPj3TCyeuHzFbALh1S/QKMJWCXWAsaZ839msyp0NqU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZTHWGhYjcSpjoyhqgEOWn6NHFV3qnJ/VjNBA3Zu9sWCgc4Ee7dJadanQ1NHIS6U78LRmAQ/0dBAC6GE7i1d7xEd19Bk0bb1AeHEnFww/0EFUjs5jlq1PvzPo9ZNKRVPLu+kaSVfXR8/jQSPj/qg1ArU/jQdDvBt4pr9bibywtQg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=XRvMl9PK; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="XRvMl9PK" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5D121C43399; Sun, 24 Mar 2024 23:07:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321655; bh=YZPj3TCyeuHzFbALh1S/QKMJWCXWAsaZ839msyp0NqU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=XRvMl9PKgal/1AVMR5RAm8azdWf8O4LAl2ciwmlCtoCXDGYZ8zwo9fs/neFrD4Dk7 rNp5bVCxMAMt6vQcLewpj7fEDKYLPOH2adoi2FZjQVdFN0wzPwO6NMgrAuOB3rt9nv YrIzTndzk7pWj7LdqrOSKuNqbWKjxGawSTUJEDQUuAPHk8QOUvgR1qIaJsdql7viJN dQtXJg+fONK8F+3JcysB+U6Wv+HfsmcpasIpOcGZlWviYBmDm3bjoXNCU/z9XRUaK4 67gWYD2eGyEucelT2saD1pWLNPRU3jpVgvZJtZbh107DLJ9hzWiax65SoGvKE2W2FV eK7+0v0nxJ1lQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Ezra Buehler , Martin Kurbanov , Miquel Raynal , Sasha Levin Subject: [PATCH 6.6 384/638] mtd: spinand: esmt: Extend IDs to 5 bytes Date: Sun, 24 Mar 2024 18:57:01 -0400 Message-ID: <20240324230116.1348576-385-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Ezra Buehler [ Upstream commit 4bd14b2fd8a83a2f5220ba4ef323f741e11bfdfd ] According to the datasheets, the ESMT chips in question will return a 5 byte long identification code where the last 3 bytes are the JEDEC continuation codes (7Fh). Although, I would have expected 4 continuation codes as Powerchip Semiconductor (C8h, corresponding to the parameter page data) is located in bank 5 of the JEDEC database. By matching the full 5 bytes we can avoid clashes with GigaDevice NAND flashes. This fix allows the MT7688-based GARDENA smart Gateway to boot again. Fixes: aa08bf187f32 ("mtd: spinand: esmt: add support for F50D2G41KA") Signed-off-by: Ezra Buehler Reviewed-by: Martin Kurbanov Tested-by: Martin Kurbanov Signed-off-by: Miquel Raynal Link: https://lore.kernel.org/linux-mtd/20240125200108.24374-3-ezra@easyb.ch Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/mtd/nand/spi/esmt.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/drivers/mtd/nand/spi/esmt.c b/drivers/mtd/nand/spi/esmt.c index 31c439a557b18..4597a82de23a4 100644 --- a/drivers/mtd/nand/spi/esmt.c +++ b/drivers/mtd/nand/spi/esmt.c @@ -104,7 +104,8 @@ static const struct mtd_ooblayout_ops f50l1g41lb_ooblay= out =3D { =20 static const struct spinand_info esmt_c8_spinand_table[] =3D { SPINAND_INFO("F50L1G41LB", - SPINAND_ID(SPINAND_READID_METHOD_OPCODE_ADDR, 0x01), + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_ADDR, 0x01, 0x7f, + 0x7f, 0x7f), NAND_MEMORG(1, 2048, 64, 64, 1024, 20, 1, 1, 1), NAND_ECCREQ(1, 512), SPINAND_INFO_OP_VARIANTS(&read_cache_variants, @@ -113,7 +114,8 @@ static const struct spinand_info esmt_c8_spinand_table[= ] =3D { 0, SPINAND_ECCINFO(&f50l1g41lb_ooblayout, NULL)), SPINAND_INFO("F50D1G41LB", - SPINAND_ID(SPINAND_READID_METHOD_OPCODE_ADDR, 0x11), + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_ADDR, 0x11, 0x7f, + 0x7f, 0x7f), NAND_MEMORG(1, 2048, 64, 64, 1024, 20, 1, 1, 1), NAND_ECCREQ(1, 512), SPINAND_INFO_OP_VARIANTS(&read_cache_variants, @@ -122,7 +124,8 @@ static const struct spinand_info esmt_c8_spinand_table[= ] =3D { 0, SPINAND_ECCINFO(&f50l1g41lb_ooblayout, NULL)), SPINAND_INFO("F50D2G41KA", - SPINAND_ID(SPINAND_READID_METHOD_OPCODE_ADDR, 0x51), + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_ADDR, 0x51, 0x7f, + 0x7f, 0x7f), NAND_MEMORG(1, 2048, 128, 64, 2048, 40, 1, 1, 1), NAND_ECCREQ(8, 512), SPINAND_INFO_OP_VARIANTS(&read_cache_variants, --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1B50420DD56; Sun, 24 Mar 2024 23:07: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=1711321657; cv=none; b=DBuHHcblmmxfs6wy8Cr1Fymkzx90+cKTRCSDU/cWaK9NZUMwtan1t5Dhxgr1f8nHn5Vnsxd7JdRGqQ452SD6TSiIR3JEI4e4tzsQ32FMExqdIt4PtKHAzTjImdSVC+Eqpf5o/SfR6zW0gRfkyNpYJSSUfICioKpkmw4KLZbv8HY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321657; c=relaxed/simple; bh=ScxSW6UgPUsVoztvMsj+KZEAdBvd7VPwubsif2s549w=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=XR/03zSpXM3bo5XmzNoXZpjBM5MNAw4HorrlkyVqde7AqRFfzFmx34QSHC1PrGzc6izewjYwKu0gqZK+Ne+Ir8S4CY2up+AHNzihk97x2OQdibaHpWDMDnPoeqyUM8coW18ZVayA74wRrjy5TZmjsqfyg6Hzpttu5uZuwQjJvfs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=IbZxKwRy; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="IbZxKwRy" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5AF91C43394; Sun, 24 Mar 2024 23:07:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321656; bh=ScxSW6UgPUsVoztvMsj+KZEAdBvd7VPwubsif2s549w=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=IbZxKwRyCBTrQqQYHxNDHJfmqjqI4+6vyZrdkV2HxhciMVGOhO6us9rXp32JSWPP8 dCaNvjz37L74qlCf4o+VWA3t+oFCa2LahM45lyq7EsamWEmKTjxepXFgTBgfUBRLFd 75cPujZY9B6OT1uZzQy8d7ssiag5CL8ZkoCxS0hfwVsty94XDcwII0Hthrluuf7zIH OMzhv2P8j/BeiuoTBy16uoyQrC73y776QK9153xoA/vrp6gDjqSlhV0Hn6Zi/Z9vkK eCSsymiM+B1dNy3eRdNJogRVZF5+aX7SNSjpxld4MAKgnyhuzCDkRA2Eg0WT8R6ZT9 WExR1peD+HlMw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Zhipeng Lu , Mauro Carvalho Chehab , Sasha Levin Subject: [PATCH 6.6 385/638] media: edia: dvbdev: fix a use-after-free Date: Sun, 24 Mar 2024 18:57:02 -0400 Message-ID: <20240324230116.1348576-386-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 49f0eb7d0b9d3..733d0bc4b4cc3 100644 --- a/drivers/media/dvb-core/dvbdev.c +++ b/drivers/media/dvb-core/dvbdev.c @@ -490,6 +490,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; } @@ -498,6 +499,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; } @@ -531,6 +533,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; @@ -553,6 +556,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; } @@ -571,6 +575,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1A57F13A25A; Sun, 24 Mar 2024 23:07: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=1711321658; cv=none; b=C92EiHK2Howe0pmUh6/xbbdO7LNL6PMRPla0Em40cFwGJa5ZLAWPLFqqG5lXa6Q4Lq8nUD81rPR8X2cJZyo0LC9bmm1Dkjn7ighIghdxX0rFEI60S1iI+S+lN3wNr7lR4bb/vKzYri9yoP39UAdeItLIp3xgLjtpz0+6C19tDXI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321658; c=relaxed/simple; bh=RjDm9ULGYGXR/Ui5vm0FWksgcl8NMVnW5oGvvsNB4/4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Us3e8DUJlAeLAQ6O9hh05j3ovvd4FIjLdr4fsrMd5SOYsgwGIDkJihd6UEwRGSGqSx/fEYPWHbpczub394fZj4+KwLJ1YQgAZkvP2d4OGwwaoqJT0p1lX01mPERqIi5RD1Xn7MP03M+R9+/4VRUrp3P1HYoofQkMjUnJ+yRG4YE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=GPdRPHxK; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="GPdRPHxK" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3FC00C433F1; Sun, 24 Mar 2024 23:07:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321657; bh=RjDm9ULGYGXR/Ui5vm0FWksgcl8NMVnW5oGvvsNB4/4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=GPdRPHxKZQeK96TkTWQvgnomqAzUkmbl/k2jd6mvd3WS7hXSkQq1wjJGpg+Dl8MDs Hkb79brS/chELukfZfi0EaylKmYzFNLLoxHPDT/DBiM1gvU4r1glFHJG7lmdID7Zfa nZwIQk1QAdjoooM/sV+OlgGOrk5dcpevIOy5a6XVpWsd66GUpC/BR1ZkMH5vlmxdIo 0J9bp8KN29f/qFclD04dK2+bFSCEnVSvwUTPoERinTesFQSicg5BVPFy7XI6MzeJ1L fmtbRAa3WFNpdrz5bAEbw9jsh7RpZlzpuHBD22N39nt276uFGpGJabF/ddZMMEBvu/ obczjEfR4vjJg== 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 6.6 386/638] pinctrl: mediatek: Drop bogus slew rate register range for MT8186 Date: Sun, 24 Mar 2024 18:57:03 -0400 Message-ID: <20240324230116.1348576-387-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 3a29c87548809405bcbc66acc69cbe6f15184d94 ] The MT8186 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: 8b483bda1e46 ("pinctrl: add pinctrl driver on mt8186") Signed-off-by: Chen-Yu Tsai Reviewed-by: AngeloGioacchino Del Regno Link: https://lore.kernel.org/r/20240131071910.3950450-1-wenst@chromium.org Signed-off-by: Linus Walleij Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- drivers/pinctrl/mediatek/pinctrl-mt8186.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/pinctrl/mediatek/pinctrl-mt8186.c b/drivers/pinctrl/me= diatek/pinctrl-mt8186.c index a02f7c3269707..09edcf47effec 100644 --- a/drivers/pinctrl/mediatek/pinctrl-mt8186.c +++ b/drivers/pinctrl/mediatek/pinctrl-mt8186.c @@ -1198,7 +1198,6 @@ static const struct mtk_pin_reg_calc mt8186_reg_cals[= PINCTRL_PIN_REG_MAX] =3D { [PINCTRL_PIN_REG_DIR] =3D MTK_RANGE(mt8186_pin_dir_range), [PINCTRL_PIN_REG_DI] =3D MTK_RANGE(mt8186_pin_di_range), [PINCTRL_PIN_REG_DO] =3D MTK_RANGE(mt8186_pin_do_range), - [PINCTRL_PIN_REG_SR] =3D MTK_RANGE(mt8186_pin_dir_range), [PINCTRL_PIN_REG_SMT] =3D MTK_RANGE(mt8186_pin_smt_range), [PINCTRL_PIN_REG_IES] =3D MTK_RANGE(mt8186_pin_ies_range), [PINCTRL_PIN_REG_PU] =3D MTK_RANGE(mt8186_pin_pu_range), --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1247B20DD5C; Sun, 24 Mar 2024 23:07: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=1711321658; cv=none; b=LaH523h/aGA5mvYraW+HxTRvZZn4gDy4HWhvcdb7bkPFUd4HV/62Xo5WnSXWEdW4LNrEF5ow2MGK3tgjK1qWOoLUmhhHJsEEyCpFGDON+ngwxw79Cyo252l3Yxr2CNDAjdThxDtUvRKdSmxFGAzBm4b+fn2To4dV1L56UIQpPKY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321658; c=relaxed/simple; bh=CppLPCfjU49vHu7bNWvje6/foOrxod7vVRZITwIj2fk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=LuVzQvil0oGmIYI9f8TaCGqonzId/BABlaapLn0MZY1KNiWLzkv7J+egrDuH9dgvPGlUhnvmmZWWlpvSrFXbzFp86fi9DV5OcJO5PyYJMNmsvXJ4IvDy605Jlno9oTOYzN3/SoEe1D/QFPD5QNgwAD2+IAzDLYYwPMjeyhwf/C0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=UALkSHqq; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="UALkSHqq" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3BA77C433C7; Sun, 24 Mar 2024 23:07:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321658; bh=CppLPCfjU49vHu7bNWvje6/foOrxod7vVRZITwIj2fk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=UALkSHqqozHTR93Db/25SJKrx+yhSFgJ34Wd1HqSIBMxK8nFFkqEh4JzB40ueRU25 iv7xRJ9nxnqYcKVFDy0tMmF5QG+LflzNvX1WznKIm1ZwVjQ7rDNxPdjGbIIQetnE+m WGdmbXSxY4PxDwteMVHGK0VJpb8v+HGe9YonLbTWcFCz403blWhUo50WkDqzhKgzdx 8aP7jU8UnXB3hSWgZTbHhuq9CT+Tuzzcveru5seshqCKiLjqRwSV5jM77FcT46QfhB 0y6Pl7YPTfSYGrYXR1xKLUorFanMU8Sc+1++zIV9Tez6dyKvF6n0ekNU+YJG0B3rxt HUNmt+yKdfWkg== 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 6.6 387/638] pinctrl: mediatek: Drop bogus slew rate register range for MT8192 Date: Sun, 24 Mar 2024 18:57:04 -0400 Message-ID: <20240324230116.1348576-388-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 dee1b3aefd36e..bf5788d6810ff 100644 --- a/drivers/pinctrl/mediatek/pinctrl-mt8192.c +++ b/drivers/pinctrl/mediatek/pinctrl-mt8192.c @@ -1379,7 +1379,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 15F22139583; Sun, 24 Mar 2024 23:07: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=1711321660; cv=none; b=m1PLdSAT5TYqZLJ3T5+UIgX4byjU8RWOuW9M/fGRGGnnQjhpfTx1Rz6qVOlHJxZnw0A7n7VTmj7uEj5E70D7ytPCZNXkoITllm5axTu064zFlh3vXc+1mbYZvGkyQV8qwG4qvrtuN3hATZRDx1wDrT0o1PQgVlQEkwBjMmqPx2Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321660; c=relaxed/simple; bh=Im9MdAn3zB5baA9s6UZLRIj7YY+4qsbhCeNDLOZHoFI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=kqeSU5PDfvgKNC8dT7CtiLjBGUqUAzJbngikIkR5HO9iI/qEYCAsEY++h2mGTv2RlJJDNkRw0C6gFaWst0yy+eAJxJc9ZMLDGwjtsB0Zfjly3q9+IkvKQEgxuWA/ZQpvgiqYzMowa3/6XFXk3EM2OxWXCUUDbHlyevw0caHHS28= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=aWhS1YSF; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="aWhS1YSF" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3AFECC433F1; Sun, 24 Mar 2024 23:07:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321659; bh=Im9MdAn3zB5baA9s6UZLRIj7YY+4qsbhCeNDLOZHoFI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=aWhS1YSF6YxzPnmPJ6o3+A/w1im9rlL6qlzqNKnGwTD/11JFDAqUk8c9XOghvfBS+ y79JWDRnoA9c6JoDDa9vpUUpSfAYjc++KXpgiYtOoywy/QmhRbO9E2Oe93SLC1/gI2 QwbH312joaQvUmafd5F7wn2lmxaLtciPoTb6/9z8uGBVSA/TCA44T8ecKEbHn1Ti5r kvVHY1XK9O+gTn30yEIpbjw+lEbadXGQaZkrBexRuss69lGRoWCnV0TDidA5IKcPt8 bLGBboMAZTwAP2uSu19vcMIUBHD/AXG4ND3Nbs8Z3/8CnOhT4JjQolCR0+Kaa4zdeb l04MsG4FbJedQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Srinivasan Shanmugam , =?UTF-8?q?Christian=20K=C3=B6nig?= , Alex Deucher , Sasha Levin Subject: [PATCH 6.6 388/638] drm/amdgpu: Fix potential out-of-bounds access in 'amdgpu_discovery_reg_base_init()' Date: Sun, 24 Mar 2024 18:57:05 -0400 Message-ID: <20240324230116.1348576-389-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-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 cdb637d339572398821204a1142d8d615668f1e9 ] The issue arises when the array 'adev->vcn.vcn_config' is accessed before checking if the index 'adev->vcn.num_vcn_inst' is within the bounds of the array. The fix involves moving the bounds check before the array access. This ensures that 'adev->vcn.num_vcn_inst' is within the bounds of the array before it is used as an index. Fixes the below: drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c:1289 amdgpu_discovery_reg_bas= e_init() error: testing array offset 'adev->vcn.num_vcn_inst' after use. Fixes: a0ccc717c4ab ("drm/amdgpu/discovery: validate VCN and SDMA instances= ") 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 Tested-by: Takeshi Ogasawara --- drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c b/drivers/gpu/dr= m/amd/amdgpu/amdgpu_discovery.c index 68a901287264f..cf2faeae1d0db 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c @@ -1270,11 +1270,10 @@ static int amdgpu_discovery_reg_base_init(struct am= dgpu_device *adev) * 0b10 : encode is disabled * 0b01 : decode is disabled */ - adev->vcn.vcn_config[adev->vcn.num_vcn_inst] =3D - ip->revision & 0xc0; - ip->revision &=3D ~0xc0; if (adev->vcn.num_vcn_inst < AMDGPU_MAX_VCN_INSTANCES) { + adev->vcn.vcn_config[adev->vcn.num_vcn_inst] =3D + ip->revision & 0xc0; adev->vcn.num_vcn_inst++; adev->vcn.inst_mask |=3D (1U << ip->instance_number); @@ -1285,6 +1284,7 @@ static int amdgpu_discovery_reg_base_init(struct amdg= pu_device *adev) adev->vcn.num_vcn_inst + 1, AMDGPU_MAX_VCN_INSTANCES); } + ip->revision &=3D ~0xc0; } if (le16_to_cpu(ip->hw_id) =3D=3D SDMA0_HWID || le16_to_cpu(ip->hw_id) =3D=3D SDMA1_HWID || --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 18A2320E63C; Sun, 24 Mar 2024 23:07: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=1711321661; cv=none; b=X6hFWU3jcgmErbZjHSNEYS1J7jcHrlY5SwOcRoW3ojAp4kOQ8g7Tgf85ZmnFXMt9kbDegFVBJKSiRmMaRIG/uybHHZLMZmvfWwz8bMFxr8wFkuglLl+QJ2+xxHrYxA2ViDI5gxXxIyMZTfpJkKFQ7RIK41AISU0mcTEMgOF6GWs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321661; c=relaxed/simple; bh=uIDSKaGEKevri4m+701P4fwqcj5BZkuhrTLKSp6QbB8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=WNlWS/0OIyDYnzCLl9q86T+bIYZ+vqcjdwZHL1C+70aNvFWvtpOkzOb8u2W1iNEZiy+uveD2nkAoekPjQV7hZzNgaUTatdNDXDx7KoTdYzx2y8TjC5wLhVZ2VCY/q72blwRx94IxhcPkdyxvdtXeAI2Ma17LXcgJlRTEzUHNpL0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Mp62DTuF; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Mp62DTuF" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 39E49C43390; Sun, 24 Mar 2024 23:07:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321659; bh=uIDSKaGEKevri4m+701P4fwqcj5BZkuhrTLKSp6QbB8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Mp62DTuFEBY0Y92XLm629R+YqqdgDHxTF1dLYvEZiWqz+FL7cQ4HkRqzNFFIUXymM /9xT60KvGWBg9bkRb2FUcVbbqQU4Ntj48Ppes2sP0ZkZ++UJ5LHcxdeEcaqJNFr9KN qNXTYTuksazP/N5fWKk8mn+pS89XeFh6jWlXN1DMqRowcSSxZOK6zks/FSPhV47tNV zAwgqe7KDj3te1ximmbhTIsx4ag9T1mLwuRUFJ3gSRPQot4WsEnNsC3fZQ0p8T/tZK AKqGqrYQyZWvhXrpz2+1DK1ZKPVoPTY0B5jIznhmsTE+zpnKbyvwoKm3CYYZEvdb1E mTGZdlQqG2ZAw== 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 6.6 389/638] clk: qcom: reset: Commonize the de/assert functions Date: Sun, 24 Mar 2024 18:57:06 -0400 Message-ID: <20240324230116.1348576-390-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1120420E64E; Sun, 24 Mar 2024 23:07: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=1711321662; cv=none; b=JeWoyRCZGNRNwcOszRiASkf/oNvQuD4soNo+g97vEd4nJY6AxuSdQNx53TWwrp2OYefmreugHpO8LqwG9gzoitHuwS0AEMJB4DwcH/yIFalncmiyUOHu3SWdyqGhexsDUUB3NdJGRRQ27OVT2QlfMM4Jp2aHc2omMNNZbwBlqAw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321662; c=relaxed/simple; bh=pCc5yRqiW7zrM8WJbTTAP0OTtZg+beqdp63g2hcZTaQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=QA0QkUpY42nZxdaTNvNBJZxhkJP89gg/oQjbvHBCCiij0LCZrLa8UsJOWUt2P0M5Y7X3rGF9Ehd/ewOlCP9w2Qy6dUyGkjXA15H0gJRhIyZVkwe/SosRl8CxrYnqsxmv+DXNOTr/E9Pd9zA0Equbvv7ErC5ua0rDgbszdX0txxk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=QtJo5jy+; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="QtJo5jy+" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3C9A2C433C7; Sun, 24 Mar 2024 23:07:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321660; bh=pCc5yRqiW7zrM8WJbTTAP0OTtZg+beqdp63g2hcZTaQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=QtJo5jy+fpsOkDMrS70Ky2SnY89HtbzRPJ7EgTjO8twTt7KHfkvXP14klnpgs/Xgv 45+AYm0sNYQ9xMQ63LCJmxN6szpj3sGeuMbe7fUTxK6HFmO6cpreTccUkCp7JvMZIq dpDgNueaTMvnS1O1vnvCASUQRnlCbBECTW/5JopnJli27dZunK+83tZ4V1TO+w7w/a Z3kkPjtOlG3WUFAsmCx2BhOmhal7KSjj89pr2FRk26Sgf2BBny2CoJuV3L5vLpXUTo c7XLNJouW6LMzUBqvj3nR63SA+qfjdTO3Csujm71mR6JiHnE70NC9XLOWdEfmDfcvM 0blUroa/CWAfA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Konrad Dybcio , Bjorn Andersson , Sasha Levin Subject: [PATCH 6.6 390/638] clk: qcom: reset: Ensure write completion on reset de/assertion Date: Sun, 24 Mar 2024 18:57:07 -0400 Message-ID: <20240324230116.1348576-391-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D848820E659; Sun, 24 Mar 2024 23:07: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=1711321662; cv=none; b=PaG6AmWnCIvAZSuNj+43rvSnFEmr8fIwpimnjVhrkFYCiGbfH83hNjjE3QdBryVQxCohcmh4WLxrMp7j6eefEQQ7wNSrHXMzRpPvF0F6CLr9XM6ironXdT5qvBaWgb7zTei5S/4LTCabMZT27nk0HyKn6Kh0BQxfvMylq2ipX6E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321662; c=relaxed/simple; bh=H2M/wpuNDLUvy8V6kRPEYCjhLhSHgrKpoGZR4u9CBZM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=e8hzlBhikR29hazmt/0LD0PXsrqk9yIVxlNRVvHmGuqy3DNyLXXNDauvJ8xDPI7N64dVl5m2b5THbOerRZw2Yh8Ha3QgWI2Ly+GNMPiGGDGKfR+FqGWKZ2JKTT/UvG9EgrVTMOJ23qwWaQsPgVco+OXalOsqWWwYhlYZoFi1brA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=sjFL+PyV; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="sjFL+PyV" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 24170C43601; Sun, 24 Mar 2024 23:07:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321661; bh=H2M/wpuNDLUvy8V6kRPEYCjhLhSHgrKpoGZR4u9CBZM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=sjFL+PyVtBV8lI2kNU3IVly8QbsPRGC+YIlFuHtSzf19yK5LS88f1gIMLXePjgrcV Cx1V+tJFzbnADN56MSFE6exvo488yBsExxwo7A1vX6oWR6G9nbpeuNhD/4yRyZOFJJ 4hIVm+cGOGUQEZV8CUZANCBrBWPnpqThkFuhAcqi1BUVWtKwm2KG3ykhqhTolFHl9+ TRhcHtFiijibdMOBldazIUqUTUw5EX7Dx9mG0K0y2zzDoV25qiuy6+5KiZovF4fPoW mwpsxOSXApH4sL/C66lqj+vzyFt0MaLJR8gMuAiO904811BiByCQIGcXSs0ffKNM9n 9OTZpbcs90Ygw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Wang Jianjian , Jan Kara , Sasha Levin Subject: [PATCH 6.6 391/638] quota: Fix potential NULL pointer dereference Date: Sun, 24 Mar 2024 18:57:08 -0400 Message-ID: <20240324230116.1348576-392-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 023b91b4e1f0a..9707aa34f52e7 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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BFA5213A26F; Sun, 24 Mar 2024 23:07: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=1711321663; cv=none; b=jWCku1D1SM8aNNzVGN6+BGzg12kVHBh87CVfDub0X/qJ/73cCLoYKMPXz6P+xa/3wy73adN4VY5MkixZCwI5d0JhkT5YnC9h+JhM6tJKFUtiZV6VOeL7wfBegFl2V9PuMDoEG+bioGI4i8zkr2qoTPsjoyVGLZfm30VknENzCbU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321663; c=relaxed/simple; bh=lqYknsUlS2J6j5SygowOATBYTrNeAudoDRTktg5Ue2M=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=GZhxlf4rWYIqPe1dOUtwdqlZ4hR4s9BNeSuz9FhaR3NbGEWhjoJ13KG2+bkg5NTASWUmTg7gQlY2s3mepf/nyXVVy2krGMzPrRmh1IFYuN+jgKmF67m1ZwXC4gAs/TZOoMfw5fo8tQfpaziyFcEpqjj40PpnGf9eK6cuWAVKWG0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=qSDwHP5v; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="qSDwHP5v" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 08BB6C43390; Sun, 24 Mar 2024 23:07:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321662; bh=lqYknsUlS2J6j5SygowOATBYTrNeAudoDRTktg5Ue2M=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qSDwHP5vL2higsAHzRUpG+DfSStiszQqXmHlxo+2cWbY5USGJDvuFGARFPvvGQnL1 wFoWNuxqjdw6VpWp7dVF8dsTVAXD1IeR0WcrWA0X4JWh7AIEurwTODuKf3shyc1RGF TLRNxwmFSX+Sk4ooJsuVXtErwhLUX93Ryz46dOLuMY4swXXOJP4gEtR891xCg9roR8 f8lhe2dl/UTAL3u2f+AZ6l0ThXZ/k44Qca6SZh5PUYMji2X3kt6/mwLhXY1p6vFdc/ 0nlfKKbVYhdrreftTwu11USyo9//DXr0dazrDtIENihuqB8f9uHghoWTRoD0U1yK3O JV9zMxpAjwwDg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jan Kara , kernel test robot , Sasha Levin Subject: [PATCH 6.6 392/638] quota: Fix rcu annotations of inode dquot pointers Date: Sun, 24 Mar 2024 18:57:09 -0400 Message-ID: <20240324230116.1348576-393-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 9707aa34f52e7..c6bd7ee20f009 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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 90C2C1ED0C0; Sun, 24 Mar 2024 23:07: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=1711321664; cv=none; b=ZGNhooW4KtZiih5Acw+kGlLis2QEKgg3LADbjoQJw8JTRQgPvoEzj0ahkqmxtfFr2x+4ciiKV28tzvZXW9PB73UoFl42yMOvKTZy36zwi333z6n4VjrjvvUO+mmC8cM5bS6IJB2BMh3VOoiCqhsL03pzSvpClFfxn5lvfd3zq6w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321664; c=relaxed/simple; bh=g+W1QxAEdQ3yhQmlzC2/Q0tViIFJ0cxxiIpwni2UyaM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=nbjSm5sDeE2TiHfnGBSJP5SsK9NgfSbX8LLv55pxYzWq1HKxjhCHa+OCd9YYEpIEfZXNdPqQBLDrChqXZzrGm2yP34iUiLk2Ff+3/r3OeAyFmQg+r9wt3ZF8HzPNJ2eC69eqwNiNJCd1MhXedpXrcdvUx/avekYX79YgOXtIGfE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=iNMF+VPa; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="iNMF+VPa" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E4BA0C43394; Sun, 24 Mar 2024 23:07:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321663; bh=g+W1QxAEdQ3yhQmlzC2/Q0tViIFJ0cxxiIpwni2UyaM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=iNMF+VPab1uAz1J+qQEExcHypcj/upi94L/LGgWPCRcQN6IWx4e2LEUzoUq4VHP4v 2K7ebZF8sjUGqxtP8DXkIDwe5gx3BOGDPgJB5jjRIeE6xUGVDy5f0MV9wfQyUthHaP o3BZKerAuLpkTNKyYDsMDw/AS2v9INaC6S3Sp8o+xMTimXLf2o8ynXroKp1gx+/Wvr NVHI1E2EIicNsnIILAOnZ58E39vrh6+mEGtczndS4JqfhiXuxfJAz52AfGb4EIPPSE XRo4wnf2U/+dUaRt0pNfjG/og+Q7bQSVf145FUYE2HyiAHpBn0Opf9bddmJsrBAtSH HLp8nn5+bKc5A== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jan Kara , Sasha Levin Subject: [PATCH 6.6 393/638] quota: Properly annotate i_dquot arrays with __rcu Date: Sun, 24 Mar 2024 18:57:10 -0400 Message-ID: <20240324230116.1348576-394-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 ccb49011bb2ebfd66164dbf68c5bff48917bb5ef ] Dquots pointed to from i_dquot arrays in inodes are protected by dquot_srcu. Annotate them as such and change .get_dquots callback to return properly annotated pointer to make sparse happy. Fixes: b9ba6f94b238 ("quota: remove dqptr_sem") Signed-off-by: Jan Kara Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Takeshi Ogasawara --- fs/ext2/ext2.h | 2 +- fs/ext2/super.c | 2 +- fs/ext4/ext4.h | 2 +- fs/ext4/super.c | 2 +- fs/f2fs/f2fs.h | 2 +- fs/f2fs/super.c | 2 +- fs/jfs/jfs_incore.h | 2 +- fs/jfs/super.c | 2 +- fs/ocfs2/inode.h | 2 +- fs/ocfs2/super.c | 2 +- fs/quota/dquot.c | 3 +-- fs/reiserfs/reiserfs.h | 2 +- fs/reiserfs/super.c | 2 +- include/linux/fs.h | 2 +- include/linux/shmem_fs.h | 2 +- mm/shmem.c | 2 +- 16 files changed, 16 insertions(+), 17 deletions(-) diff --git a/fs/ext2/ext2.h b/fs/ext2/ext2.h index 7fdd685c384d6..02255185d68ef 100644 --- a/fs/ext2/ext2.h +++ b/fs/ext2/ext2.h @@ -674,7 +674,7 @@ struct ext2_inode_info { struct inode vfs_inode; struct list_head i_orphan; /* unlinked but open inodes */ #ifdef CONFIG_QUOTA - struct dquot *i_dquot[MAXQUOTAS]; + struct dquot __rcu *i_dquot[MAXQUOTAS]; #endif }; =20 diff --git a/fs/ext2/super.c b/fs/ext2/super.c index aaf3e3e88cb21..5bcf5623b46cc 100644 --- a/fs/ext2/super.c +++ b/fs/ext2/super.c @@ -320,7 +320,7 @@ static ssize_t ext2_quota_read(struct super_block *sb, = int type, char *data, siz static ssize_t ext2_quota_write(struct super_block *sb, int type, const ch= ar *data, size_t len, loff_t off); static int ext2_quota_on(struct super_block *sb, int type, int format_id, const struct path *path); -static struct dquot **ext2_get_dquots(struct inode *inode) +static struct dquot __rcu **ext2_get_dquots(struct inode *inode) { return EXT2_I(inode)->i_dquot; } diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h index cd4ccae1e28a1..7bbf0b9bdff23 100644 --- a/fs/ext4/ext4.h +++ b/fs/ext4/ext4.h @@ -1146,7 +1146,7 @@ struct ext4_inode_info { tid_t i_datasync_tid; =20 #ifdef CONFIG_QUOTA - struct dquot *i_dquot[MAXQUOTAS]; + struct dquot __rcu *i_dquot[MAXQUOTAS]; #endif =20 /* Precomputed uuid+inum+igen checksum for seeding inode checksums */ diff --git a/fs/ext4/super.c b/fs/ext4/super.c index d062383ea50ef..3ea4d8f11e7bb 100644 --- a/fs/ext4/super.c +++ b/fs/ext4/super.c @@ -1593,7 +1593,7 @@ static ssize_t ext4_quota_write(struct super_block *s= b, int type, static int ext4_quota_enable(struct super_block *sb, int type, int format_= id, unsigned int flags); =20 -static struct dquot **ext4_get_dquots(struct inode *inode) +static struct dquot __rcu **ext4_get_dquots(struct inode *inode) { return EXT4_I(inode)->i_dquot; } diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h index 6d688e42d89c5..ac924c8226e3c 100644 --- a/fs/f2fs/f2fs.h +++ b/fs/f2fs/f2fs.h @@ -824,7 +824,7 @@ struct f2fs_inode_info { spinlock_t i_size_lock; /* protect last_disk_size */ =20 #ifdef CONFIG_QUOTA - struct dquot *i_dquot[MAXQUOTAS]; + struct dquot __rcu *i_dquot[MAXQUOTAS]; =20 /* quota space reservation, managed internally by quota code */ qsize_t i_reserved_quota; diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c index bc303a0522155..d0a659b906656 100644 --- a/fs/f2fs/super.c +++ b/fs/f2fs/super.c @@ -2756,7 +2756,7 @@ int f2fs_dquot_initialize(struct inode *inode) return dquot_initialize(inode); } =20 -static struct dquot **f2fs_get_dquots(struct inode *inode) +static struct dquot __rcu **f2fs_get_dquots(struct inode *inode) { return F2FS_I(inode)->i_dquot; } diff --git a/fs/jfs/jfs_incore.h b/fs/jfs/jfs_incore.h index 721def69e732e..d3c35068cb761 100644 --- a/fs/jfs/jfs_incore.h +++ b/fs/jfs/jfs_incore.h @@ -92,7 +92,7 @@ struct jfs_inode_info { } link; } u; #ifdef CONFIG_QUOTA - struct dquot *i_dquot[MAXQUOTAS]; + struct dquot __rcu *i_dquot[MAXQUOTAS]; #endif u32 dev; /* will die when we get wide dev_t */ struct inode vfs_inode; diff --git a/fs/jfs/super.c b/fs/jfs/super.c index 2e2f7f6d36a09..c4f565770d316 100644 --- a/fs/jfs/super.c +++ b/fs/jfs/super.c @@ -824,7 +824,7 @@ static ssize_t jfs_quota_write(struct super_block *sb, = int type, return len - towrite; } =20 -static struct dquot **jfs_get_dquots(struct inode *inode) +static struct dquot __rcu **jfs_get_dquots(struct inode *inode) { return JFS_IP(inode)->i_dquot; } diff --git a/fs/ocfs2/inode.h b/fs/ocfs2/inode.h index 82b28fdacc7e9..accf03d4765ed 100644 --- a/fs/ocfs2/inode.h +++ b/fs/ocfs2/inode.h @@ -65,7 +65,7 @@ struct ocfs2_inode_info tid_t i_sync_tid; tid_t i_datasync_tid; =20 - struct dquot *i_dquot[MAXQUOTAS]; + struct dquot __rcu *i_dquot[MAXQUOTAS]; }; =20 /* diff --git a/fs/ocfs2/super.c b/fs/ocfs2/super.c index 6b906424902b4..1259fe02cd53b 100644 --- a/fs/ocfs2/super.c +++ b/fs/ocfs2/super.c @@ -122,7 +122,7 @@ static int ocfs2_susp_quotas(struct ocfs2_super *osb, i= nt unsuspend); static int ocfs2_enable_quotas(struct ocfs2_super *osb); static void ocfs2_disable_quotas(struct ocfs2_super *osb); =20 -static struct dquot **ocfs2_get_dquots(struct inode *inode) +static struct dquot __rcu **ocfs2_get_dquots(struct inode *inode) { return OCFS2_I(inode)->i_dquot; } diff --git a/fs/quota/dquot.c b/fs/quota/dquot.c index c6bd7ee20f009..7a2c9b153be6e 100644 --- a/fs/quota/dquot.c +++ b/fs/quota/dquot.c @@ -1008,8 +1008,7 @@ EXPORT_SYMBOL(dqget); =20 static inline struct dquot __rcu **i_dquot(struct inode *inode) { - /* Force __rcu for now until filesystems are fixed */ - return (struct dquot __rcu **)inode->i_sb->s_op->get_dquots(inode); + return inode->i_sb->s_op->get_dquots(inode); } =20 static int dqinit_needed(struct inode *inode, int type) diff --git a/fs/reiserfs/reiserfs.h b/fs/reiserfs/reiserfs.h index 7d12b8c5b2fa8..e594ad8d759e2 100644 --- a/fs/reiserfs/reiserfs.h +++ b/fs/reiserfs/reiserfs.h @@ -97,7 +97,7 @@ struct reiserfs_inode_info { struct rw_semaphore i_xattr_sem; #endif #ifdef CONFIG_QUOTA - struct dquot *i_dquot[MAXQUOTAS]; + struct dquot __rcu *i_dquot[MAXQUOTAS]; #endif =20 struct inode vfs_inode; diff --git a/fs/reiserfs/super.c b/fs/reiserfs/super.c index 7eaf36b3de12b..309f9d39ba724 100644 --- a/fs/reiserfs/super.c +++ b/fs/reiserfs/super.c @@ -802,7 +802,7 @@ static ssize_t reiserfs_quota_write(struct super_block = *, int, const char *, static ssize_t reiserfs_quota_read(struct super_block *, int, char *, size= _t, loff_t); =20 -static struct dquot **reiserfs_get_dquots(struct inode *inode) +static struct dquot __rcu **reiserfs_get_dquots(struct inode *inode) { return REISERFS_I(inode)->i_dquot; } diff --git a/include/linux/fs.h b/include/linux/fs.h index 62102f8697946..ee5efad0d7801 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -2079,7 +2079,7 @@ struct super_operations { #ifdef CONFIG_QUOTA ssize_t (*quota_read)(struct super_block *, int, char *, size_t, loff_t); ssize_t (*quota_write)(struct super_block *, int, const char *, size_t, l= off_t); - struct dquot **(*get_dquots)(struct inode *); + struct dquot __rcu **(*get_dquots)(struct inode *); #endif long (*nr_cached_objects)(struct super_block *, struct shrink_control *); diff --git a/include/linux/shmem_fs.h b/include/linux/shmem_fs.h index 6b0c626620f5c..fa99e68e5e776 100644 --- a/include/linux/shmem_fs.h +++ b/include/linux/shmem_fs.h @@ -32,7 +32,7 @@ struct shmem_inode_info { struct timespec64 i_crtime; /* file creation time */ unsigned int fsflags; /* flags for FS_IOC_[SG]ETFLAGS */ #ifdef CONFIG_TMPFS_QUOTA - struct dquot *i_dquot[MAXQUOTAS]; + struct dquot __rcu *i_dquot[MAXQUOTAS]; #endif struct offset_ctx dir_offsets; /* stable entry offsets */ struct inode vfs_inode; diff --git a/mm/shmem.c b/mm/shmem.c index e826be732b9bb..80c2666114b3e 100644 --- a/mm/shmem.c +++ b/mm/shmem.c @@ -311,7 +311,7 @@ static void shmem_disable_quotas(struct super_block *sb) dquot_quota_off(sb, type); } =20 -static struct dquot **shmem_get_dquots(struct inode *inode) +static struct dquot __rcu **shmem_get_dquots(struct inode *inode) { return SHMEM_I(inode)->i_dquot; } --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 93AE11ED0CC; Sun, 24 Mar 2024 23:07: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=1711321665; cv=none; b=tlN0QtqSd8/KkmeqyHNUYLeCcnkk1eEEK/GjFQpa1u1v18kTg8jMZe12f/GbitIrepxatowwK+aNTIXhQ0L7BnbSVqiklH1JEIbatTHiI8va9ghtwAmkyiU4J+SoKzxOgmkYibfIkI8a+V6gozpdJXxtqBd6DSPvAl+bsG4BphY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321665; c=relaxed/simple; bh=ppeDvN+dAlDV8DFEvXcl8obmqcthApyH6YVITn8wH9o=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=pbsJmHrOtltOzEBNgBGod9KNQ9+pjGC41YKRpciqdEdU02saqGTZGvKxxk6B1aH638XXWJlXKFVz1iy4c7PINSd//x4bR3d0OiRYFcDd9wZIIBswDzfVAfkPUFWXrGR5tjyFTXTO5FOLQZL8zj8t0auSpNF14/mbb7x0Kr5b1+c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=dOuPZQVQ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="dOuPZQVQ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B709CC433B1; Sun, 24 Mar 2024 23:07:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321664; bh=ppeDvN+dAlDV8DFEvXcl8obmqcthApyH6YVITn8wH9o=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=dOuPZQVQ32S8aYiA2zb78E2YQm+qwQarIS8RI2tDROvddTcwaWsEu1L5V+aIEbtik 8UNuXz9Cg6s7uF9qbSZ/mHaDCfz+niDB7LturbZ1NZZqrl3yM7Scm7rpKHHYUgNLNu /jKY391IMZuFpROo9Y9C4v1sbch2ndK9qAoFMu10UFMbkUNfW97kXfvzkHCFAaojlh x6c9rBWVd11E31WBoerkv4kDuyAFOo7/WxvYYrVoxSOp/jemwTKc9KLk2Vg8NznQVj wpwzCs5YmvCAanHIr7RcG1na1CQJ/ZlTiOnN44jF/GangTtXMDh6T8D29e0FmdPbt2 e1wZ6/oJ4ByyQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Christophe JAILLET , Bjorn Helgaas , Logan Gunthorpe , Sasha Levin Subject: [PATCH 6.6 394/638] PCI/P2PDMA: Fix a sleeping issue in a RCU read section Date: Sun, 24 Mar 2024 18:57:11 -0400 Message-ID: <20240324230116.1348576-395-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 fa7370f9561ac..b8becc7257cda 100644 --- a/drivers/pci/p2pdma.c +++ b/drivers/pci/p2pdma.c @@ -661,7 +661,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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7BFF21ED0DC; Sun, 24 Mar 2024 23:07: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=1711321666; cv=none; b=HkIxobVbO0kQFv6NfCWEETQEKMpWeiP8da99ghKpMlYowej9MGj87CD+gpkTeOQShPHP1cjvtLRcIxj+7pAN4B//oeEuk1Cf8MdGvoCuJTSlCvbeDLAeR6g94od9EOgaqjMmTBXf0IAMTDxpC+YOhH0rFukWWqIcJ2+r3aS8uqM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321666; c=relaxed/simple; bh=+9L2sOYcn70slea3K+0x6ySDW9NT356ZLSJHuWQ40e4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=NPhlhHCjtIyzlZbS6NsJMVs3KcHFYakg2FJvUEwt7tHwecEjmGM9GNRpaTorHsZC+gG/O1i4Hm7EkW3dc3Tw6sItEl4f5mZSr+l79ItAZuzNZu4if5N3AagTUmTjvfLbIVpFup9jnC/f9Sl2NOWgRs8wR+OdwT+apxAOWDNDAD4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=oa3r22Ff; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="oa3r22Ff" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B9BBBC433F1; Sun, 24 Mar 2024 23:07:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321665; bh=+9L2sOYcn70slea3K+0x6ySDW9NT356ZLSJHuWQ40e4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=oa3r22FfKiaVFBd7hzDb880k3zcQlVMWbhdnEPpjbVnRHzjaB84EZIJ+sc/TT7spt JfEeH54ik8v5y/ohXpxPqcyGe10F2D0jn07ai0agIfFhhD9UZZsAcpQ3JA97PdFM9H o4MkwhPMtbspFb/R5/lMy6XmwyB06vHYEFVbLAsF09mg2b9cf/uErYrh/TEe1+M/8i KN3UcQtapYIAT2SRqv46AkSOOknCO5ncaMo0GcdbQsSKUTcpovYGnPMeDNVyySm6mW BDLj6j4q9moG+ulX1fOuQtddHrKK4r7QM2bVSCmWz7sUkvAOvon7KmCXLgHDirsDwe EQrUHE+GGT3xw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Christophe JAILLET , Bjorn Helgaas , Sasha Levin Subject: [PATCH 6.6 395/638] PCI: switchtec: Fix an error handling path in switchtec_pci_probe() Date: Sun, 24 Mar 2024 18:57:12 -0400 Message-ID: <20240324230116.1348576-396-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 1804794d0e686..5a4adf6c04cf8 100644 --- a/drivers/pci/switch/switchtec.c +++ b/drivers/pci/switch/switchtec.c @@ -1672,7 +1672,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 | @@ -1693,6 +1693,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_free(&switchtec_minor_ida, MINOR(stdev->dev.devt)); put_device(&stdev->dev); --=20 2.43.0 From nobody Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 668291ED0E4; Sun, 24 Mar 2024 23:07: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=1711321667; cv=none; b=u3Z6S8UzgCqfF9ILbbpGh1Y9x9jfknajsH6s8JQyGLcajcRc9l4iPVkyaR7Qdy9DJWRGD7TkSnkBkKtGhjBvkKiEu2rn90i1PupoZ0qpQ3UJXmVw+ImyYQD1duz9/alzEadnhqQEFXNxNoyQ0+zg+CbZNuAYNWwecqGbkT0yOs4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321667; c=relaxed/simple; bh=bE58CPqWKVMlo22h4BjWFw0u9QDkVA9ajYmRqVtYaCI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=f5l6qpL1D/EVWF+ZiCx54iPNZHPptBb0iF1ZHO7NLDNjmLuyrobtqM1gkWO93hWgJg6kxaKFHPLED4XPOhyJbvRsbE4j1h1IwPZAcwG/EAFoZY9AY5l51ip57ZiA9eaeq3B+4F+Dzjtq0+xseR+ezoQipC3bXppndTtXfbrmywA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=vR5GHHTD; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="vR5GHHTD" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A2C44C433C7; Sun, 24 Mar 2024 23:07:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321666; bh=bE58CPqWKVMlo22h4BjWFw0u9QDkVA9ajYmRqVtYaCI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=vR5GHHTDzOVh889FHEIeeXVBkUYj/0kL3PBd3Qx0K/+CXiRwZLQmkxKso16qzHhDj TK7m4DLiZYyHUeWMvxX5MXHWmQrDBjAzSuGkuwMDU9hdOiHdiiXA9eZ285tY9FBflV MBwEm6V7w6tAkYf/Hjblypd3lQvtZ9KNq0bzONIOicfF62q+h0e1ByO9OHZqdrrsfj iNw8mOzC+1GtyXRL+L98RR2v0pXR5bpzoclBlM4GYub9j4/v0Kh31m+SuxCDZ9fC6z +R5j+0JjPffyUM8cT8pQ91iWVKuADbjRwLAPCbLK8+oyPmPwjRVfOJoMJ2O1pXlkIu 0DRgvgKTMkmWA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Quanyang Wang , Herbert Xu , Sasha Levin Subject: [PATCH 6.6 396/638] crypto: xilinx - call finalize with bh disabled Date: Sun, 24 Mar 2024 18:57:13 -0400 Message-ID: <20240324230116.1348576-397-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Tested-by: Takeshi Ogasawara --- 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 ce335578b759e..84103fc3f66f1 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 Thu Dec 18 23:00:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 301161ED0F8; Sun, 24 Mar 2024 23:07: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=1711321669; cv=none; b=AeIroUw2ID6OzRR9/U5SsvlOgMTMdqywrLk/fUngL0BY0QXlwPKmJScjdPw0euhZCadYkD/mQ6BsCmmb9I7HBIrvsqHkehrnjXjHDI1KTmc0LkMsquLmhwwZmnPYpL5pEbZ+fHLzl5IXi6Av1x6VXGjHNhRxfU+InR87dwJjAvs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321669; c=relaxed/simple; bh=Vql+8js91BRX0rn5qU3meYIvkq3/iZebYzGwS509XTc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=NT7DdeZhSYDZ9yKRBv0Q95ib6gzd92p2kKPe9JJbvEnpSxqfCmc0uMJTB6KRbL4FSGmNdPjRUrN/w+OelqXrKWR0aj3ZQ7NR22tq2MvJzUZaczqScwHju5/o9e2ts4UVF9RssRcC9MYCha5PDB5nLT8HCgSuFxb4TRwo2a/evnA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Y1kFLPyn; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Y1kFLPyn" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8BE43C43399; Sun, 24 Mar 2024 23:07:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321668; bh=Vql+8js91BRX0rn5qU3meYIvkq3/iZebYzGwS509XTc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Y1kFLPynROeXaia/neLYNhDoRiejoV8FwURaGegVxq+CWtddmSrfg8rZvGajA0DHb mb0B1wycTdOSGLAFUXKnrVyEsugGi/Eyalcrd4UlUSXcVKtDGi7RtJoWDepbCFD3KJ hKXsAzOW36fM7e+V7p7Bt1lJ3VHWG/pFAbNFdo8q9BuKLjrkE+TK4s6//uoPNyzZus sjGTlZdZ35/9XidkW1JZhiNM4Oon8O3ICEDGTMAqEBub1LXdqFjIicE21tZwb6P117 Gncq2cOJzNKAxOMoyGcRiFj1b5dfb6y1j0xbkKj00E+Qk02GV8vYpq16xUp6nS86RE EDUc5uu8ovFlQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Randy Dunlap , Michael Ellerman , Nicholas Piggin , Christophe Leroy , "Aneesh Kumar K . V" , "Naveen N . Rao" , linuxppc-dev@lists.ozlabs.org, Thomas Zimmermann , Geoff Levand , linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, Sasha Levin Subject: [PATCH 6.6 397/638] drivers/ps3: select VIDEO to provide cmdline functions Date: Sun, 24 Mar 2024 18:57:14 -0400 Message-ID: <20240324230116.1348576-398-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 7edd06233958d9086a9e3eb723a8768d3c5a9ce1 ] When VIDEO is not set, there is a build error. Fix that by selecting VIDEO for PS3_PS3AV. ERROR: modpost: ".video_get_options" [drivers/ps3/ps3av_mod.ko] undefined! Fixes: dae7fbf43fd0 ("driver/ps3: Include