From nobody Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C13231CF8BD; Sun, 24 Mar 2024 22:47: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=1711320443; cv=none; b=TQpftWnv+tQtpwMPKArA1lpWgBKfh8fTOJ4ML3jlRSOhesYckSakjhcdR42fBKVgYQibCJizIrJEvE7jcqj7uxx/mXxBQb8MS7xbdQSjRVVfKPs7M+lQxTziXtUB9N9WErgfhUKznayIoNvsv8vzewsLcNUYuGAAljyClpr/EWk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320443; c=relaxed/simple; bh=69h97DXk3sezN9njqO4oxBgBj5oS7i0ELO2Bz6h1VXk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=sDXLT6iWExHbIyskGUG6sEdQU4T6iuNRhIrfQ4hGCRH/UI/J/2FpDecyuRpz9O483qUzRbNia4f0t6qc890jEYuWt3XFoQbKV5FZXadkJT2sW7D75iCr9PyyAzULBfQYBCTKngpkC4B5gjcLLLI32/u/55Ra5Aea4STBUVLKGg8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=SbAxdgMX; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="SbAxdgMX" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 05EB3C43399; Sun, 24 Mar 2024 22:47:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320443; bh=69h97DXk3sezN9njqO4oxBgBj5oS7i0ELO2Bz6h1VXk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=SbAxdgMXPcpWqWPwfmc2tYY/3G0Qn6iiyLi/tU43tjx/1p00RSOyHdqX0CuyzwCED nTpsWtkW33rV3NeiyffmWZIWCqgXxYlOqunR7Ccf42LXIjQjzhrBGL0IiNdPSq9Th4 lwfRx+NMOeSQVVJLWsO2GdA1C2C8CNyv0p3C2qkS2PUPMnAvmj/i+vXvXyH7eKc+7h fBF9trOXnaQXgdlCzunVP4mfeiNZe1NSGf8t+zj2w5F08tOHttNc41NvuFGKXAzeQD xWuLm2mSOl5/Au3p8RNBBfWh0B+WLZz8SU0yb7Xm3QqZ7Rbxaeq57lbFb32cDkwtor TBfRTY0Y2HO4Q== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Hans de Goede , Danil Rybakov , Sasha Levin Subject: [PATCH 6.7 001/713] platform/x86: p2sb: On Goldmont only cache P2SB and SPI devfn BAR Date: Sun, 24 Mar 2024 18:35:27 -0400 Message-ID: <20240324224720.1345309-2-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E09DA1CF8B6; Sun, 24 Mar 2024 22:47: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=1711320445; cv=none; b=Ywq9/7Gxvc3f+yheNnTQow4flk/LyB2o4M1owhnH1PovgavuidIm9Ovi8/BWBsdPsVXH9ybw0j505AjJFk1JNlZQVgu6jadhe5+iCN4HTnaL0CtcMf10LxyfPJ0nRXlcMAiqAKs6WPXpwuvqlipykxGKKMiw254OikYUS+zIrVg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320445; c=relaxed/simple; bh=FbFa6wgDSvlU/O36o9QDzhEzhmNt5K9ijb5JDOBPrFo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=oryhAt9IbzVvkySQ42YvbGnEMT6KePKJFCr2+zPO+WsCsJtmGyDq+A/JkLsS6C4fxxs9PgfOEgD703aLdkdbNknf4iG8+gHoQw5hWcq0ERK5aJ3W0ZKpYGOMt4xkde8jyES33bMXurJnvHjOK0DIPLHAHg/arfiIGUJzlL7oyFs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ZNfuUV+y; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ZNfuUV+y" Received: by smtp.kernel.org (Postfix) with ESMTPSA id DE880C433A6; Sun, 24 Mar 2024 22:47:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320444; bh=FbFa6wgDSvlU/O36o9QDzhEzhmNt5K9ijb5JDOBPrFo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ZNfuUV+y04PlMQn+uVh9My6mNzGL501GwkernuELK0LwdMzoiwc8MoDMTGO9vOiO0 8ConQUzVJmhfxLzVkACibTEfD5ytALHBn4KOgXoTmXmmj9g1jVTCZdEkFYmta9jnNK ZzsjOQ6yYV4UbDVsxPY782E5dfH6qtMz+lcR+vlvw/wI1ZSptDZsZSbnvixVS1PbDD BfO+UKW1TU/8SCVZEc58iZRhNl6QcCjTAY7PlDZvKYrWSR3Qtx0NNBa8EwmM9P7xlx X0F6RcLA+/enfZJupXKuDJpZa9a8HedMOWMnu7Er86+jnpR1wvUxfERJQV7KOCsEXQ iHwzdlxYW4Gnw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jens Axboe , Sasha Levin Subject: [PATCH 6.7 002/713] io_uring/unix: drop usage of io_uring socket Date: Sun, 24 Mar 2024 18:35:28 -0400 Message-ID: <20240324224720.1345309-3-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- include/linux/io_uring.h | 9 +++++---- 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(+), 22 deletions(-) diff --git a/include/linux/io_uring.h b/include/linux/io_uring.h index aefb73eeeebff..b3a32687f5143 100644 --- a/include/linux/io_uring.h +++ b/include/linux/io_uring.h @@ -93,6 +93,7 @@ int io_uring_cmd_sock(struct io_uring_cmd *cmd, unsigned = int issue_flags); void io_uring_cmd_mark_cancelable(struct io_uring_cmd *cmd, unsigned int issue_flags); struct task_struct *io_uring_cmd_get_task(struct io_uring_cmd *cmd); +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) @@ -111,10 +112,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) { } @@ -141,6 +138,10 @@ static inline struct task_struct *io_uring_cmd_get_tas= k(struct io_uring_cmd *cmd { return NULL; } +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 59f5791c90c31..06bd8795a87d1 100644 --- a/io_uring/io_uring.c +++ b/io_uring/io_uring.c @@ -177,19 +177,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 c9992cd7f1385..0d66a7058dbe1 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6BEBC1CF8C7; Sun, 24 Mar 2024 22:47: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=1711320445; cv=none; b=CfvtBe7+Tcf572/3o3zm/FDBRWH7qOO+El/iiSccL2Nt07LRI6LJak+dVPUaUrxArcAI5+PRXb/NWgA/tVq8VjNz7LHABTz1myfbrKZd/jc09cF9YvnI/GtNXUTXoVgFmRrIsEVLUYi1PHDYuXTbVduQ7yaKyA//Q6jxPwPbS8g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320445; c=relaxed/simple; bh=IZbq5HUkhxH3MQ9aM84C+3nzr/4tIiw7CaHmyfCCK0g=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Veq/UEbmpDgMubjpNb8CKP56y1A0H2iFsS6/qns2xcoW2G/7qAasLURHb6eqOAYJpROGUIXYbuQUTmegR+n7QV5W5XEDBoRo7VgUMJwHf7U0wD87bubOJF7WVuKva5O+9FnMgkJdJqe+X9laNP83fxqJhRXTuB4tpp6GN2HQhR4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=TSWYL22O; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="TSWYL22O" Received: by smtp.kernel.org (Postfix) with ESMTPSA id AA512C433F1; Sun, 24 Mar 2024 22:47:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320445; bh=IZbq5HUkhxH3MQ9aM84C+3nzr/4tIiw7CaHmyfCCK0g=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=TSWYL22O/0dmZlrrO4ZBhsoZTiiNoHVFTdq6L6hVPP5+NBDYEvsf1UP5ShIEXan5Q EqprM80LB8YR8QlsR17OO5RKCS2Yfd5+Rz1wyBUVtoxQ5ZlKmp12avLg2ciodvDPY+ pmPSd0Xv8vi4RtqaPx66jlBxWcAgZUqUqGR2sFo3CKEMky60yGbeoG0Gf8BNORzX7U ehVyrA4Z4+/xKwgMMZYCVEhhIjbyMpSMn1fAMbPSpkz+YO8jMacqGLXQTarrvZAZW9 vScddHeS2WOrvFw+GAv3O4A+PbnyccnUdvCNd928Pf3NgUwiaqhmcUCl8gQrMxZsDx USdEdDLhLp+7A== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jens Axboe , Sasha Levin Subject: [PATCH 6.7 003/713] io_uring: drop any code related to SCM_RIGHTS Date: Sun, 24 Mar 2024 18:35:29 -0400 Message-ID: <20240324224720.1345309-4-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Jens Axboe Commit 6e5e6d274956305f1fc0340522b38f5f5be74bdb upstream. This is dead code after we dropped support for passing io_uring fds over SCM_RIGHTS, get rid of it. Signed-off-by: Jens Axboe Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- 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 239a4f68801bb..335eca49dc8b0 100644 --- a/include/linux/io_uring_types.h +++ b/include/linux/io_uring_types.h @@ -358,9 +358,6 @@ struct io_ring_ctx { struct wait_queue_head rsrc_quiesce_wq; unsigned rsrc_quiesce; =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 06bd8795a87d1..f8d145fb40bbc 100644 --- a/io_uring/io_uring.c +++ b/io_uring/io_uring.c @@ -60,7 +60,6 @@ #include #include #include -#include #include #include #include @@ -2939,13 +2938,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); @@ -3867,32 +3859,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 f521c5965a933..4818b79231ddb 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5B40C1CF8CE; Sun, 24 Mar 2024 22:47: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=1711320446; cv=none; b=jYx1vBHiKNVcY4xDkrJVRsb5iIy2c5rpghys4DE4ILbAGo7WAN9k+zhgzQSvKyTzYv/wUazPlWqRIdTW3Wk7hc+8TjhyJgFhgg2mmg+0VRSdo96weZhbur28VLbpHhzYrMd8pgk7YWeGdXMA84B3WaV/4cva05GKV6tRzlPu+6Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320446; c=relaxed/simple; bh=7s3O442lwN7lnTlv6pQRkhF/q7B5OZA+IrXKh4D9bj0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=KaKzd7SJ7jd11vJcKGfVB015JdJVeMyBl2VCCnuoMtQcfshoCUz6GL0BUFprQkMWSXeR/aRjibVnls+JBJwLE2z8CQpe6oVO3ek08h/B7A1iFbspLwmCRRzPBp2OfYLmlN4cQ0dZksud8qnJD2MTZS37E3qNHqff3sb+xAoDXvU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=IiWF1uoX; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="IiWF1uoX" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7953FC433C7; Sun, 24 Mar 2024 22:47:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320446; bh=7s3O442lwN7lnTlv6pQRkhF/q7B5OZA+IrXKh4D9bj0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=IiWF1uoX2jpml3cI9Pb1xVp/qAUhZ8AuTMa9tKw8BYUAX6lobbvCoaBPAzVstOyFW ykZZ4XGvmSJwUzWaG7NhHE1eJbZRKeU8w/1/Txk/TAgFPQ5T/14vxidCmTEIZbDJha RtcUyaBlQcJ+CCNDGyvYBc+LWSkCPl9BkVEWcjqK1X5uvErvhHE3kIpeEgNAGFipPA GuS7EU+qryxuQzp73bEtnDy0P7YRn2GmY93nHvLc1vQ1pIUxVQ7AkKfkjr3OVT3NTW R+Y/Oew6w3ZY5QaxTA/CnJLzw/kZtp5aEMi1KzwJvb9+sEiFQw1id031zAKh4QQ2RB akiGMghJMdl/A== 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.7 004/713] soc: qcom: pmic_glink_altmode: fix drm bridge use-after-free Date: Sun, 24 Mar 2024 18:35:30 -0400 Message-ID: <20240324224720.1345309-5-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 7ee52cf2570fa..ca58bfa41846c 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5C39E1CF8D2; Sun, 24 Mar 2024 22:47: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=1711320447; cv=none; b=cctvv7exLPIHe/zLQt57gcUi80Y7+H2/jNwbOzjx0MRtt+EPbIVgTr4e6TRjOQv6NnYDIolqqDayS2rT2wQeJONu8ikjZGKrr4d9AilKskZ4UjqG+PMQk5YL7Qhab8EdgPKbbncyq74/9i1Q9Xz0Wns4e0QZ8B1SThRpX4+Fziw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320447; c=relaxed/simple; bh=G78L1tou1cSU+q6VxHI+foG7pc7rJWJylN4hyYR0c6U=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=irNnfjBbjoyo8PtPSeekLDyOkpYMy2mFuXMeLcK7DzA75w3RnnbpWPNWHTH/WA35pLovgA4Medw81qBlPXgRu5EMvhvys0W+txA/sFFcOEhWvDpfqPnRPVEkKCCQLyzvCSjBPKcl1B8/3NlOhAUpZUVSjsJjDFGS4HVFS7j3eFQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=BJm7lTqb; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="BJm7lTqb" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 763B2C433F1; Sun, 24 Mar 2024 22:47:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320447; bh=G78L1tou1cSU+q6VxHI+foG7pc7rJWJylN4hyYR0c6U=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=BJm7lTqbaR/nOhvQLQlh1349nxqQQIxBa2YC4XwCaQrW54Ht0JRpVwv4d3PO1uBmk +QMDVRD942U/UzXXdDlqRSOmuxV02Lc/oRUOB/XuuninOr+NokQPnHJbkpPTNe/bC8 SoyiVTKZuQEc8awXQo2FfuEQNOpdZA+yiaOzma+2zvaOGka0dI3mMaC3snuvT8qciW cCptMnYBjUE980QKaONqqY70x1Il6jCteBOukKK9aseZSeAayeH8/gCw/CAlNIoNeM Rpgvvb7rT2Ju8wQRtvalqsuZmLmphqFH5JwErMUGQiqdRGuwkAeP174ixSJGS2iV+K TU8IQbQOeR3Pw== 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.7 005/713] media: rkisp1: Fix IRQ handling due to shared interrupts Date: Sun, 24 Mar 2024 18:35:31 -0400 Message-ID: <20240324224720.1345309-6-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- .../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 c6d7e01c89494..3752b702e270b 100644 --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c @@ -725,6 +725,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 2d7f06281c390..a4e272adc1ad0 100644 --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-common.h +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-common.h @@ -449,6 +449,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; @@ -470,6 +471,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 702adee83322b..7320c1c72e688 100644 --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-csi.c +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-csi.c @@ -196,6 +196,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 5fbc47bda6831..caffea6a46186 100644 --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-isp.c +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-isp.c @@ -971,6 +971,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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4DE801CF8D7; Sun, 24 Mar 2024 22:47: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=1711320448; cv=none; b=C/EUobPwynWpnnouJGCC7BDkf+FifvPLmQ6agbaZDAKe8MvJtOQezM96JQEhSwuFdKRZeta1Cx0U8dPNSXAhLNQmv4js7JB4LTJCxs9uUgc+ZUup/C+Hilea0iIUeLIMIf8dcg4yZcvNOHyZs1qQTmF0fr5l2vNbQ/INFNLsCPA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320448; c=relaxed/simple; bh=bnbHqN1p6Pi+S070hSgaMpfnK259Dy/ZeqRsKyuue0E=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=tND9qmg+so64FpH2RdmlDib2m1iT+Fc9BaV2yDBo9cdglgmVV7VMN+Yri2q6QUQAhH8QDowz2A11kR2lE1b8erTC9DfKerwVEpVvEXwAM6BmzhyjtyOR4ctDOKhgxqb+li2mEjlxTfO3uJMSfBQZHeAG7aoVe6bvmzsMbDSEahw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=td5JIwy/; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="td5JIwy/" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 776D8C433C7; Sun, 24 Mar 2024 22:47:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320448; bh=bnbHqN1p6Pi+S070hSgaMpfnK259Dy/ZeqRsKyuue0E=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=td5JIwy/U19v7VqG4INC0PoSKWXZuB7VtSwXwYzWDsiGlEU+VbWb0P/to5kmbAS2L v4tvTjodoig34CvbTzaTA+w1Wsf9VA9isRjc55N9zFeCS4/Z5PEf9RdzFMeCGX35/9 MNJxKVXpgH7PY7RAgsO9UJ6x+HoWTDTBOaqJTM/IpCmLpUKKRn6jbirT6j/uF021qt z2lwtKWj+9tN6k3bZbJnFUuHukJCcVqlI77dMXv+zpVp8dAC0oVLzMkd9nAxFeAuWH Eq7n3ensbL4+ti3Cg8tt91HJTXymR/w2M8wo5Q8xGFLdpZ8Yxqb9HQefgb/CuHx79w PiMJgHcZyApLA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Oleksandr Natalenko , Hans de Goede , Jiri Kosina , Sasha Levin Subject: [PATCH 6.7 006/713] HID: logitech-hidpp: Do not flood kernel log Date: Sun, 24 Mar 2024 18:35:32 -0400 Message-ID: <20240324224720.1345309-7-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Oleksandr Natalenko [ Upstream commit 411a20db905b44e18cc9129b745f1d5deba4eae5 ] Since commit 680ee411a98e ("HID: logitech-hidpp: Fix connect event race") the following messages appear in the kernel log from time to time: logitech-hidpp-device 0003:046D:408A.0005: HID++ 4.5 device connected. logitech-hidpp-device 0003:046D:408A.0005: HID++ 4.5 device connected. logitech-hidpp-device 0003:046D:4051.0006: Disconnected logitech-hidpp-device 0003:046D:408A.0005: Disconnected As discussed, print the first per-device "device connected" message at info level, demoting subsequent messages to debug level. Also, demote the "Disconnected message" to debug level unconditionally. Link: https://lore.kernel.org/lkml/3277085.44csPzL39Z@natalenko.name/ Signed-off-by: Oleksandr Natalenko Reviewed-by: Hans de Goede Signed-off-by: Jiri Kosina Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- drivers/hid/hid-logitech-hidpp.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/drivers/hid/hid-logitech-hidpp.c b/drivers/hid/hid-logitech-hi= dpp.c index 6ef0c88e3e60a..d2f3f234f29de 100644 --- a/drivers/hid/hid-logitech-hidpp.c +++ b/drivers/hid/hid-logitech-hidpp.c @@ -203,6 +203,8 @@ struct hidpp_device { struct hidpp_scroll_counter vertical_wheel_counter; =20 u8 wireless_feature_index; + + bool connected_once; }; =20 /* HID++ 1.0 error codes */ @@ -988,8 +990,13 @@ static int hidpp_root_get_protocol_version(struct hidp= p_device *hidpp) hidpp->protocol_minor =3D response.rap.params[1]; =20 print_version: - hid_info(hidpp->hid_dev, "HID++ %u.%u device connected.\n", - hidpp->protocol_major, hidpp->protocol_minor); + if (!hidpp->connected_once) { + hid_info(hidpp->hid_dev, "HID++ %u.%u device connected.\n", + hidpp->protocol_major, hidpp->protocol_minor); + hidpp->connected_once =3D true; + } else + hid_dbg(hidpp->hid_dev, "HID++ %u.%u device connected.\n", + hidpp->protocol_major, hidpp->protocol_minor); return 0; } =20 @@ -4184,7 +4191,7 @@ static void hidpp_connect_event(struct work_struct *w= ork) /* Get device version to check if it is connected */ ret =3D hidpp_root_get_protocol_version(hidpp); if (ret) { - hid_info(hidpp->hid_dev, "Disconnected\n"); + hid_dbg(hidpp->hid_dev, "Disconnected\n"); if (hidpp->battery.ps) { hidpp->battery.online =3D false; hidpp->battery.status =3D POWER_SUPPLY_STATUS_UNKNOWN; --=20 2.43.0 From nobody Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 34F021CF8DB; Sun, 24 Mar 2024 22:47: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=1711320449; cv=none; b=rPJk/QPh1qaiUMuKEWKzR2NoF1mAznue7KN3HOx2E8R8fjU2Tv9PZAwSRzbUsDIwyQq7cWMKrt47w7dhwtPAtBQhGzm0Ib4CF4mMtKn/5Xy8lWox2Zx0xqugBRUZwULESw3zSewx9RAlNb+/DcgCEp6FtVn6ADXQWMad7xKFtmU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320449; c=relaxed/simple; bh=KMdpPcg5w+z+tVeN+JvRVV4A2DEvvetANQO9444T5ko=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=q0Hyz9cQwwLAoVOlG/eOIyAiBHA20PphDh3TlTVtrTjPe3YsQ8zi9mbKttUpI3bRdZWcQk/jR6+sPlsvPDOEGmkHb9tjKW2zUr7XiNOMJVNG2/dsv1oyjNnu59h6dX+NbnkZTyr7D2mccG3TWqD8r1KgTYp2ExzLj60/38vy5C0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=bC7ael0n; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="bC7ael0n" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 73664C433F1; Sun, 24 Mar 2024 22:47:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320449; bh=KMdpPcg5w+z+tVeN+JvRVV4A2DEvvetANQO9444T5ko=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=bC7ael0nhGLx9Po7pczKETrkTDMUo5Fdnvy8/YSSo9lt5J0AS97xnopvJwfII/yC2 vUiKNgMUdnK8zrs/W6VsjHltnAKf1RYZmP2ydslloW+kKeVVNsCN/aeMrfsUBlIuqe xF15F13t0JgPhSkm3lkErgBBn566L9Hn6xwNDBweTSnlq1TTZCuZSmCNISsxScyLob mcgJYpQcY9zNHSF/AtkxkFwnaFFmFFTa+UhZd8h/5/tTDsTqusCta6Fx5tuAWZNHvE /kVTT+6SW7rAq+JptX1Vm9FknPmaqNpFXRHl4V9sGkYZFWL1rM6HMsQjO0FR26TK92 HKnKXnvsUuUVw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Charles Keepax , Mark Brown , Sasha Levin Subject: [PATCH 6.7 007/713] ASoC: cs42l43: Handle error from devm_pm_runtime_enable Date: Sun, 24 Mar 2024 18:35:33 -0400 Message-ID: <20240324224720.1345309-8-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 d62c9f26c6325..5009cf64124ed 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 76F8874BE1; Sun, 24 Mar 2024 22:47: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=1711320450; cv=none; b=AQgrW0XYxvnF19iSPs8SmFmG7FxnuipLoeabCReYBbDRLN+vXI7YAkPC1OsQssdWBx7TRJ9srmviUsMizPd2+i4bomWhPGCnBySTYiBdo/uw9+OP61KyIwai445hD3Dh3bzYXrF4N28KOlBU3BeG+5Qhg/iEmEYEEOv6FDjBurc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320450; c=relaxed/simple; bh=j550hXwWP/YTOVIMT0h+JvfnFMdMqNbR4wV75CUjEiU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Fyygtc+SwGVgEPEm6q3uY25/4ptRCW0XdWk9STtEl0hQ0uULRaFm/PqTyEiVf0QIyZoqnoufBNMgtBSea/WcoN6WgC998YnfbwHkblUAAwcmRa6MLTYI+Nx/HOKmGIcEMGKLV2MdYYxM1xl676HftpgAiSKujv4/RNu5pBOvftg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=rPsmutYm; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="rPsmutYm" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 58AF2C433C7; Sun, 24 Mar 2024 22:47:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320450; bh=j550hXwWP/YTOVIMT0h+JvfnFMdMqNbR4wV75CUjEiU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=rPsmutYmaEPtB3IgYaO+flwYfUYfyjCxWMuxIjQ8BwCm/D1rA/NbalxJkZk0ObK+5 GXiazOl2HNzMmUys5PWwtJ9wBZJEmBW2iQZxOqnMwm4tsBcA7+D4lO7WuRqlDSOm/I 1vneKObhQErQNTzPKxDOo6XMLWGe8aEXIEJ5gqTXJj2iSY2NRUA7+NHE75uekRKGQJ 9ldgZvKYoQmxZuFEc8tZ7D2heXzhAvqmOIDBUUF+8VpzDvvB99A4SWyIvRK7R1ljYa D1j4hgtSWY2TCsqNkzkQbAz3Djx6ZeOm+YP5LKKhz+D4R7WPgWX/dd6pO0ph+viBOB rDRl0pSzTC0DQ== 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.7 008/713] wifi: iwlwifi: mvm: use correct address 3 in A-MSDU Date: Sun, 24 Mar 2024 18:35:34 -0400 Message-ID: <20240324224720.1345309-9-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 db986bfc4dc3f..461f26d9214e4 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/tx.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/tx.c @@ -520,13 +520,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; @@ -584,7 +595,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); @@ -599,7 +610,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); @@ -617,7 +628,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; @@ -820,7 +831,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 @@ -1140,7 +1152,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; @@ -1172,7 +1185,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 @@ -1294,9 +1308,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; @@ -1307,26 +1323,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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7814A763FD; Sun, 24 Mar 2024 22:47: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=1711320451; cv=none; b=gdgDNEjQq3HNRAm8Q5lXCMFs+NeXoftRa818Q0ly7rLCBAQCTegu28RaNetJWSsSjb3jb3V1rMTgNQWZqLKplo0U80hQi8iS/aHvm78TJOWHK/v6NZm6o+WZpmgFFBUrGlgYvMyQbC/vuu92sVKr2+whTyy7rLzcATdx9ZiIpzY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320451; c=relaxed/simple; bh=5F7XSSCngd7SJiSXtRGZSco15qRwSXu6/QNItN9LrzE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=tpmUyGLCt2fWu7oa0FtAEw+svn02jj2SXRLYQK2ygH5VRE/bgAmifZjXUtT310i0fQZWjplHfsvTKlPaDIePySPGqZ9nSd0HryVnqxKseX/xlOG3XQQV2KxSAceI4aS4XU7Y/th2AHkZw1LFdnZtSXpQyxenx7iKvH8SJcCIjAo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=pF8umtIt; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="pF8umtIt" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5393EC43394; Sun, 24 Mar 2024 22:47:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320451; bh=5F7XSSCngd7SJiSXtRGZSco15qRwSXu6/QNItN9LrzE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=pF8umtItCrqEpHtsmJOL4IwiZZ+XEheSECokCt8nPvWD3ur1fs++twbvex+Mlf7D0 T7lPEpO/iDpvDmVb2GcOa0KSGEKKCLYk3VHxTXMEDizissrCbjZvpwpddG7WTz2TCj RFy/5+/MTQw+84xQKAiEtkrpB4/hKiYIT7sKtyBqtmj1K1nYo5LIoMnaGFoH7widhu nvCNDQ9soXH/TOjIJyiV6i7HxEe4PesKeMvVx8tA2qK/rH51QU7MOmCiZsV2+77fY9 RdZrmWl2gzDLhd3LJ9yd/38vvfk3/hReF5tKqXEPf5Hx1hkGl/AILfZyxVCp8GH35m MCWg7DHdfM2AA== 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.7 009/713] perf/arm-cmn: Workaround AmpereOneX errata AC04_MESH_1 (incorrect child count) Date: Sun, 24 Mar 2024 18:35:35 -0400 Message-ID: <20240324224720.1345309-10-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 c584165b13bab..7e3aa7e2345fa 100644 --- a/drivers/perf/arm-cmn.c +++ b/drivers/perf/arm-cmn.c @@ -2305,6 +2305,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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 31813763FE; Sun, 24 Mar 2024 22:47: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=1711320452; cv=none; b=AeMQXWK0q1ZM/zhZ2n9ZURMGVPrgMC/2rCgYiALQ/VaxdXlq/akOpXsK59HTlTxp5tNpf6KBWYafB+MtreqeJNT9qdzknttQ/5fCqAFHEHXEf53Jwo6Q2/h37KaP2OXdEZKhl9Bq0h1iZ8njkII4/QW15TPqjy/1Ls31SOmbGh0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320452; c=relaxed/simple; bh=fAometgkYT+8afRTn5I8qtc/WQf0RndWwBfG1rn1ejA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=TgXRUT7hfcCsnbtefU2N0TNHGCrsx5QniS5n4YtpSZRCXwh9G9OvUaVwTZmTc/RRg9Gio3K0O+sPxo9Ls/yilXKtcjAr8H1AWEF+Bs2A+9frliJsK5nCgKWT0MCQb6NhZn0P55soPJxIHQcSX10Sw0eAzP7ol7Y0jJTrDTuIuaw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=r4Tq0mDV; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="r4Tq0mDV" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4E07CC43390; Sun, 24 Mar 2024 22:47:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320452; bh=fAometgkYT+8afRTn5I8qtc/WQf0RndWwBfG1rn1ejA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=r4Tq0mDVX/zRiC4qigd7YnjjTjOlMcS9yOgVyhwaLjpEFFlIvtRo3Y/woIxsJ5N3S SiRBdFzEs3/8o7EHmVYT4obYxQ6vMuynqNxua0shtml/8WZHydokKAsEzj8MTy2uwW L7gl8NmfOiW+clZgzmaS/Pi4VTFdrda76YBT3f+nut8DhjykAiHCkwrs5Saxmouzal qCYd4a8suZ+xxrrTNpPUUL3qNkfyWzzrc2xdnXuoyymKaQfXlGyfuMdkfNl0bb+7p5 phpNi+oa3jk51McERZ8T7zYyLdE0Cltc/0qzpD08eAVmn5mI62rZLMN6HhN1RgNc3C VtlS3+fu7dIpg== 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.7 010/713] selftests: openvswitch: Add validation for the recursion test Date: Sun, 24 Mar 2024 18:35:36 -0400 Message-ID: <20240324224720.1345309-11-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- .../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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 635CA76402; Sun, 24 Mar 2024 22:47: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=1711320453; cv=none; b=XJGqGOAJWQZnJae3EhEJPrlDjKAhxdBXkPuPMxnIeKai7wYuEoQdpd73Ved4NTa1pm9w7L57In9on6NEwfYq7ZtdfDXKwUHJBwXRgyC1+0u1wqR32moDpEXZmkH0gV/DFOTfwgJSE8k647YYG/ZniEAMCwBPl7sPykOBO7vSyu4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320453; c=relaxed/simple; bh=8dD5To5M8RyoSt5fx2k/nign80MLUb757pypdZrbxBU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=OBFjPWB5pX2exCN1wK/f5gt2CL0t5cl2WYSSk9axuDhFpJtAnJZeYB5cdLsFePrFLrf4a5E3u4LBzgX+2y8Cqr0/FOMZvK2jVBLBZAmhk3KXTg55Yjz/LJ6GJ9vLPDja2itGLZzHAqIaq7pp9eGdLtHBHXFOGEjorMxcVDRPYMc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Pm2KUXB7; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Pm2KUXB7" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 49339C433C7; Sun, 24 Mar 2024 22:47:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320453; bh=8dD5To5M8RyoSt5fx2k/nign80MLUb757pypdZrbxBU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Pm2KUXB7K1eLCm/01mmNbTfPiyVxRUCMfO/NZp73d5v73Jb1Gy3ZiO9RiYGKGBuJp yp7VULQ/Iwk3jkqS3mc/oAFk4jjx/P1G8b4eM4uDYYV0Lytinli4Bu94dKyoA0DHM3 mnVof42lco0Kwgxu2ulMeWFce49d3rsRd6pAqzSDY+93Ypceu2KBKAfVvEK3gFHe3t RkIEEnq/9bmFOZc0Qm9ixG8bnS1evzihta7u2drH80Is5GMZkeECngn1k6K63CI2WD lO2D+nhjHjoKUJSMjhOQI7XTOternuJuf9D3ZujKqqkXRp3CkXhwcAWYFFmvI3tPvn T4S1LpQlSosuw== 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.7 011/713] selftests: tls: use exact comparison in recv_partial Date: Sun, 24 Mar 2024 18:35:37 -0400 Message-ID: <20240324224720.1345309-12-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5F32B763FF; Sun, 24 Mar 2024 22:47: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=1711320454; cv=none; b=lqZPHbVikXxFhFjyjrU+xujCpj/ql2Q7ngCKruBrHjmo1j934SzilBvry8RumS0y8GDAHiTwIAykFoQ1dClrh3M2O2ejQPK421hCOSPnzOdcl1Vm12trV76xS6YA4SgPRfulEl3Tngf6IwBCS2aioz6ac8hJkrNKaBtauAIMYxk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320454; c=relaxed/simple; bh=3W6dR8PdnATH3wLhgXePo6qAuvBQwrdOzzSzsfx9tTs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Haal0qxDFl+svp9TlRuYZiSnq0P03knyTbHMEK066hLTKGmGAkfsxHO3xX7stv6N20hHlyvkbFE+RfbPUVIOAbqRfJGuJMBaMkemwDYgZakemp6ZRL12QFPZ3hvSfp7NY/WJwKETAFJQPtZbJDHwthxwdLoqJPzSn9PIfqlZyv0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ruebdpPE; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ruebdpPE" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 41D4CC433F1; Sun, 24 Mar 2024 22:47:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320453; bh=3W6dR8PdnATH3wLhgXePo6qAuvBQwrdOzzSzsfx9tTs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ruebdpPEXLyp17TN5P0ohiKq3+LgvMN5VJZR0bpcyzZBO9sJt/c0QHpkjVLbvIsof K4rYiEwqXr2p0A3sqrK7flgqP1es2gpeWb5vUndaUFeR/fx3OOBdYRO00NNWoFt5t6 FrrHH3h4VVDTPL2SmM5O+O9ihXvbnBqzX4Gk+eMNSOtJKL0JpwUGaeMMQBCadNBFpc gENRDwgis+8pL10bKoqCD7Lv+IHLohbyVYawAFXLqH+fdiWDPZ75L9GOgXs3HQyY1u JyRKG9CWYAg1Lk9Ab9GYp/l2n+ewT/5wlJR5wXQ7bRz8UfFUGY90XTJJLaAu23LBqN cetA1/Od82Lzw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Hans de Goede , Mark Brown , Sasha Levin Subject: [PATCH 6.7 012/713] ASoC: rt5645: Make LattePanda board DMI match more precise Date: Sun, 24 Mar 2024 18:35:38 -0400 Message-ID: <20240324224720.1345309-13-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DC0FC763FA; Sun, 24 Mar 2024 22:47: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=1711320454; cv=none; b=ZfvUFTOW2fv4+gX1ojtoEgTqxC4QUMdoNB8s4YX1zRrFQrOCYEQqERMmz2GCreArMsh7U2jRM9+aEqz34kELQ9sdGvHB4huzeMDwDJN1+qgJXA9YuB+cEkYte9jFJqBxDmyffA4ZKUrQAkFGpMmRgEW6sFUVptiFNy+/OsVTtEM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320454; c=relaxed/simple; bh=W4RwcyHV3K6Low51NVIhVtApOG+DXghL1IwfkGZklV4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=lJpLIkwlcQL8GRmHENigMjVpLs/+UUzmPX+LhmASzDwbpQ6//VNtODkLgujsQV/ynTKM87UCb2EoeJXr+BVoPccxPThK3kzQG5R3cCCrdl4M0RFPT6wbj0IxyBPcNNFmzwLr6H83JaEt6V0wkXLEvcz6jNlnRhUS8cjdrCAf818= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ilHCmdxH; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ilHCmdxH" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2600FC43390; Sun, 24 Mar 2024 22:47:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320454; bh=W4RwcyHV3K6Low51NVIhVtApOG+DXghL1IwfkGZklV4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ilHCmdxHzgpz1zNcJ0enSHS7iPYk7cDhi+E2IrQ/MtHCEgQY8RDgWU9hAvOuXtWZV TFwzdBfYQapbGn71pNi84r2ukzs4NT7nod5zr2ciFEv411UT9xLnPmaXYYCXQdWdFi Hc1G2PZEqmRy4rJGkZ2NEdwwKm9EiYhHVGYFI6ESN+V39/spaYIeThCfaGwYQBxbNu KoXb43hoRGNPl8Ck6V8W2yToGPR45W5axQ1v9KpuVPwnIY/fqQ66C9DSxYA+Iwct7R Q1DNglAbGUOaJUgSQBnaT3B5jVoD006JF44V1q99uI8aa3/rxQEPThJiUWNU8B9+Vf 9Uvs8D5j+6K7w== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Mika Westerberg , Mark Brown , Sasha Levin Subject: [PATCH 6.7 013/713] spi: intel-pci: Add support for Lunar Lake-M SPI serial flash Date: Sun, 24 Mar 2024 18:35:39 -0400 Message-ID: <20240324224720.1345309-14-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C5ABD76405; Sun, 24 Mar 2024 22:47: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=1711320455; cv=none; b=gTUuXvp6FDgQXOTh/XxELnNP88Ce1oHTKfSNGXTsD/egpGyxmjRbBTwWDwpkqy7Y340wQ6V1LPqzDSPCZMCSJH7mEM45i420gTW6Ze7X8oHgF+APSt+F4K2dghoeQzhIMDIkctIF5lkc+EtBnhBTo0EEQz4ih2TmsbEMt+9SXPg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320455; c=relaxed/simple; bh=NWmTVAKYq8v6gN3EBr0vzjfVCXygas9fWX9Hme0A/jU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Os4OHmIAMOs+5tCUwzRBw5y6kNR7xu6e1TajX9KZxFNXkToSZf+476WF6zgwq0Srs110d3dZYRSP0MIWhY6KTUeev9g2UPQQQtNbOkV5qbkYgwZHMTD5sQYOtHu1fcwvcDmJdj/CBUy0e9wYlyPHLoCirXgvoHjwFaJbc2KtQEA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=H3llHeKA; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="H3llHeKA" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0A332C433C7; Sun, 24 Mar 2024 22:47:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320455; bh=NWmTVAKYq8v6gN3EBr0vzjfVCXygas9fWX9Hme0A/jU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=H3llHeKAIQgk3pJ/hrngQYbbl2qJ5Wap//3TRQG05bN0v5Y80mDoLDHfPz1xOBIyd nR3lYburjD2nYOtt/a8zVzfzOrtM4sqDfQhuMVvr0baMZ4BJq/aHQVw2IWhuX4j2Oi /qKMh2fwOTKxn0OmbgeZVUh6jaJnzHcWCHNINvbeDJQHGU+GA9ou4mqHIjQdaufdU4 kz6UJ0dijB2fof61Gmz0kLyguDu0P429TrYq+JqwyJ1FacEsbYnOTsdoLxMudxBtlU HDp5O+pdfU21h5gEjf9ISg7NwUyW0hXXwtFB5Nr+fryFKkR6PH+gxvJlt7krgKDApq xBvx0myb0gxXg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Mark Brown , Guenter Roeck , Sasha Levin Subject: [PATCH 6.7 014/713] regmap: kunit: Ensure that changed bytes are actually different Date: Sun, 24 Mar 2024 18:35:40 -0400 Message-ID: <20240324224720.1345309-15-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 e14cc03a17f6c..4c9e38ead5c56 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, @@ -1192,7 +1209,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; @@ -1206,17 +1223,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++) { @@ -1225,24 +1238,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; @@ -1253,8 +1276,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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AA0CC7640D; Sun, 24 Mar 2024 22:47: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=1711320456; cv=none; b=WRCyeYa0hIzYlOs9Axwk+ZEZP/MZXdaiuUYXJYnlTi4WCMCWg41fFijonPe354ZYYemQPt5dd71+ZsUQyZWT1n0p6R/hBGSAGVj9NDKmU2xUGZRUgSnu7WTtbAqP/+glRHorRhkqpI+CQvBPNwxjNH62dJEB+21cvOMPm93LdyA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320456; c=relaxed/simple; bh=TVn0K55l25BpswqOak4H/Qan8tlImkF4R9suQP0gmms=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=X0IYZkohR3ksNQk5icWp7baBk0ytPvvgUcS+r77m0ubVKQdgtD4V0DYugCe+wLQ67wm59MzygBbsBgvECXT8X2PRrdxU+QIGssH3RJ3r7ZeuyYBsACEQQ5IJSHhLXBvp6amvOgbG1lzFKqO5RjiZpSKJFiE0Geh5eiDgUC9lGA0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=NycIqt/c; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="NycIqt/c" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E0FFAC43394; Sun, 24 Mar 2024 22:47:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320456; bh=TVn0K55l25BpswqOak4H/Qan8tlImkF4R9suQP0gmms=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=NycIqt/cGZemNRAziuN6p/hgCx0QY8Y3vXYHULG2xx9X5GROrc0wur14TMVZJxzub Kx9nh+tLudMwufbpA7VPybklCoB61/bzhPJhjDhzQMfSExtWFZdPbQDwgtAwYH+EXW fxObNCMLt54SeD9DH8uwyZHS8Trk1YOjM0sw6kVkpq9ibXnMoSj7MgREfN474tGX60 5faZRDU2+wFTfvwIEWbt2HCY+WcbXlbq6Pty5JLJFi0eExFjB4oAOSjJwqKze02O7F kAhL+vigr9PTUFr8UbQkfNzJNQZIWOX8qAYl8hawtz6DO+ZH9BAU8DgRbyDV0ScNyy KwAQbrnd6FZMA== 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.7 015/713] ASoC: amd: yc: Fix non-functional mic on Lenovo 82UU Date: Sun, 24 Mar 2024 18:35:41 -0400 Message-ID: <20240324224720.1345309-16-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B5F2F76401; Sun, 24 Mar 2024 22:47: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=1711320457; cv=none; b=DGEB5mkuShfWvbpqE/rXjwAgwKqvWmFNMd+qcu/1GWSy1J3quhwRFPmc1Qm+qy3U9yEnd7ipxb7bmXwmEFict1WOcnCzu9ctb5jSWlO0TxwPx+sV4/WRmNnXIrtlfMzXZrW3wzwila6KZQR58Jnhl3Lcj3E8F5vVZPLMoQUQjjQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320457; c=relaxed/simple; bh=8b7DfpvkFhJ07ZMBds5WMnK3M2mYX6QhEVWSf43j/K4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=iS29rSo2G2Cl2OyZiwXEYTmxJJPfphv4ph8AXFoXC1qvigNAHh2OLWtYM8DldJsMO+rc4LibTgOC+Ka/M+MJC2Z/45w4Vp9WPjOWigBP2/5tiAtsVoQkATq+3Wo2nuDjzI6GN4jHWR+05ZiuEkh0r8MnT8iL8VhTSzajdPFGlhQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ZoaDe4N5; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ZoaDe4N5" Received: by smtp.kernel.org (Postfix) with ESMTPSA id C5AB9C433B1; Sun, 24 Mar 2024 22:47:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320457; bh=8b7DfpvkFhJ07ZMBds5WMnK3M2mYX6QhEVWSf43j/K4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ZoaDe4N5N+IT7xEze9sB180IMd0a7MjwDAEitIzSBIsvIdwRczv3l5o6tHzEw8M8n 1aD8LQ629g2V3NKAr3sQWi82Wl14pQq+3paciihZzzqO+btNUa+ePZHvNl17hgI9uI 1FWWdu0QZz6L0/74pp1irUAqikFgO+LLxDyKSEFHKEY0N0F149fEyfYwjTTaTy5Qs4 cHJyLqFknnBx/cvRipJzKIBauKC5CAR4HKDrXlum2yZn4H7sUNW4hERHeHUCW6GnwY XseNt5qcl8VsuM7eWsWtFaEe6xzfo7e45kO1KYN45sxfikFDzgPMIijqFE8CTmd8gE FaoLQ+jyN9osQ== 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.7 016/713] x86/xen: Add some null pointer checking to smp.c Date: Sun, 24 Mar 2024 18:35:42 -0400 Message-ID: <20240324224720.1345309-17-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 96F3F7640B; Sun, 24 Mar 2024 22:47: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=1711320458; cv=none; b=SlbzG0gtLOSevvGKU3QSz26Cdy2k2s+Bi+aNlMP/a+ASqxNitOtKQIdXJp5u4G3O65BEQ/09ON73YBGxrgqlOBryphWqFtAzl/RXWLcdtYEV3gopGdc2BeG0po3IC7F7sHaQ905YmEMGPxBGUB+hqt7n0pXMUr8INIawhjY46r0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320458; c=relaxed/simple; bh=XGGSvzBJNfmfnhL9G/6nyYMIHVzLF9YEZMutrFl1KtE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=c8KIgtRe86Ksm0aMUxYmX8xu5WWM9I/CB0CSGHLyE4Gm85QaRwq40wKnGVOLS8DLYezktgbA+2ednqtzuJIQFFq/n8zjICFoLFT+pW4OLPDYibClAfK1Koj6bHIxbwNkXhFFDKRt+F4/iQMjOyEbmmzvs2jjrvZXVX8AAnjM/ZQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=k3zgeMBX; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="k3zgeMBX" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D5A19C433F1; Sun, 24 Mar 2024 22:47:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320458; bh=XGGSvzBJNfmfnhL9G/6nyYMIHVzLF9YEZMutrFl1KtE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=k3zgeMBX1mlwl1fRE/NTMpvMapgYu7TCJ5/mh/8ZuA05/i1DoSSnglvbI8U4TZW5S MXqV7iEFTYGAlMZvJN9B6w/c4bdKsApKqWd1Raiu4hjmy75dhfE7qKQS2zNQI0Xw8H aydLc9Q+gVGi5DMtvl0CLVLd9q+GGOO2NI6ZyqbLU/hbMwJdgVrCzPgCPenn1RLAoV EzN+f4WP4mmjl2ZdlZdSUtiuavkx6RyYmTqPQkDuMOjDZIxx5Kgq2+/WrQyVeS1NzQ F4Ko+CBnhrLnIU51TQd9NCkR3njuY8EsC9UHfCv8D3zUS78sc3Wd4EIJpRZfeoD775 C8ooRDIlXNzNQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jiaxun Yang , Thomas Bogendoerfer , Sasha Levin Subject: [PATCH 6.7 017/713] MIPS: Clear Cause.BD in instruction_pointer_set Date: Sun, 24 Mar 2024 18:35:43 -0400 Message-ID: <20240324224720.1345309-18-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8DAA41CF8DE; Sun, 24 Mar 2024 22:47: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=1711320459; cv=none; b=MFKFOIxO/2hAkFBNpZMxuoi4fQuk+YFR1ABRZUWojXefFCN0VyfdOHcvOuPP/NxFb/CYZL1jIGG3eJ1jAVt/oPfLuFTfpqzElZFwlheay8Rl3wZ9DSFNUpLRfoFWvPYtsMgjUtZU3Zt2rAhnGQDPMJTPab+2zcGDKlSIoOZZ1W4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320459; c=relaxed/simple; bh=qE+vEiN0vFqYCbenxmXpv9h1SM4UJIhPix7Hu85NBsQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=q03AucZbbZWuYxl+2p6uzN9x8y8e2sKYHW+0vLXIG+L2Xii7m3D44RwAhgMEg8fiNaqxCK/FMQ5TFKWlE9NoGkux3XrmVTGSjXXmTrN2ZHOag5q/VozgFg4yVe1bs8SFLPEsd4VfeMgkeZ+lGy57ffMre2wYe9I9Qnyt5pBA9Ug= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=jenbOAuy; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="jenbOAuy" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B6FDFC433C7; Sun, 24 Mar 2024 22:47:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320459; bh=qE+vEiN0vFqYCbenxmXpv9h1SM4UJIhPix7Hu85NBsQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jenbOAuyf6cUjlmTdyF+UDvjMW63f2hJcLSol+ol8Fm8dg/PDkFXmsPNFjcZXZJmv QfN7Nkspx9YVuCLDyUmO8MX39UQP0iaOKT9SB2unF5M6aqXGA7jGzpFMA1q5kBku3Q HcQmwb/yS5/P/16D3GycwA2o20MSX/rDzV8GKabCNtl2rVMy38PK4ONZKDzKSMCDuB osKiN1t6PBq8LFt9NofrJF3JUs1csiE8I8F8zhRbNgWW1y9GcMo00mIpnzqpo3K6Th wUwt4Gz1mFl3+sxGd0VvevChLnHOkqkr48quqDrw/hCiaqPqj/br57LT5KkHUSvRWo vjJmqqMekMMLg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Xiubo Li , Milind Changire , Ilya Dryomov , Sasha Levin Subject: [PATCH 6.7 018/713] ceph: always queue a writeback when revoking the Fb caps Date: Sun, 24 Mar 2024 18:35:44 -0400 Message-ID: <20240324224720.1345309-19-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Xiubo Li [ Upstream commit 902d6d013f75b68f31d208c6f3ff9cdca82648a7 ] In case there is 'Fw' dirty caps and 'CHECK_CAPS_FLUSH' is set we will always ignore queue a writeback. Queue a writeback is very important because it will block kclient flushing the snapcaps to MDS and which will block MDS waiting for revoking the 'Fb' caps. Link: https://tracker.ceph.com/issues/50223 Signed-off-by: Xiubo Li Reviewed-by: Milind Changire Signed-off-by: Ilya Dryomov Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- fs/ceph/caps.c | 48 ++++++++++++++++++++++++------------------------ 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/fs/ceph/caps.c b/fs/ceph/caps.c index ad1f46c66fbff..bce3a840f15c2 100644 --- a/fs/ceph/caps.c +++ b/fs/ceph/caps.c @@ -2156,6 +2156,30 @@ void ceph_check_caps(struct ceph_inode_info *ci, int= flags) ceph_cap_string(cap->implemented), ceph_cap_string(revoking)); =20 + /* completed revocation? going down and there are no caps? */ + if (revoking) { + if ((revoking & cap_used) =3D=3D 0) { + doutc(cl, "completed revocation of %s\n", + ceph_cap_string(cap->implemented & ~cap->issued)); + goto ack; + } + + /* + * If the "i_wrbuffer_ref" was increased by mmap or generic + * cache write just before the ceph_check_caps() is called, + * the Fb capability revoking will fail this time. Then we + * must wait for the BDI's delayed work to flush the dirty + * pages and to release the "i_wrbuffer_ref", which will cost + * at most 5 seconds. That means the MDS needs to wait at + * most 5 seconds to finished the Fb capability's revocation. + * + * Let's queue a writeback for it. + */ + if (S_ISREG(inode->i_mode) && ci->i_wrbuffer_ref && + (revoking & CEPH_CAP_FILE_BUFFER)) + queue_writeback =3D true; + } + if (cap =3D=3D ci->i_auth_cap && (cap->issued & CEPH_CAP_FILE_WR)) { /* request larger max_size from MDS? */ @@ -2183,30 +2207,6 @@ void ceph_check_caps(struct ceph_inode_info *ci, int= flags) } } =20 - /* completed revocation? going down and there are no caps? */ - if (revoking) { - if ((revoking & cap_used) =3D=3D 0) { - doutc(cl, "completed revocation of %s\n", - ceph_cap_string(cap->implemented & ~cap->issued)); - goto ack; - } - - /* - * If the "i_wrbuffer_ref" was increased by mmap or generic - * cache write just before the ceph_check_caps() is called, - * the Fb capability revoking will fail this time. Then we - * must wait for the BDI's delayed work to flush the dirty - * pages and to release the "i_wrbuffer_ref", which will cost - * at most 5 seconds. That means the MDS needs to wait at - * most 5 seconds to finished the Fb capability's revocation. - * - * Let's queue a writeback for it. - */ - if (S_ISREG(inode->i_mode) && ci->i_wrbuffer_ref && - (revoking & CEPH_CAP_FILE_BUFFER)) - queue_writeback =3D true; - } - /* want more caps from mds? */ if (want & ~cap->mds_wanted) { if (want & ~(cap->mds_wanted | cap->issued)) --=20 2.43.0 From nobody Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 898AD76413; Sun, 24 Mar 2024 22:47: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=1711320460; cv=none; b=W/rl3mTzlKT7iDstc91rwlqd+8U+ZC6FjDvXTofBekCVmr3BNPrRcjsRk5ZvZGGnXSjkZllAdUFXUMXBC/zQ8eQmptZIQUhlwWa9+DaZ5yKQXusFvVCLsWHncbVnBLLW0/UQzgYeWILbkRYbRU8D7UDS5DszQ3Gk10qlbagMR5U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320460; c=relaxed/simple; bh=VyzNqOFQS62GncXZLcr0NESX0J1naNhNSZOilaqAki8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=d3zPJN9/S8ac35rRp2Am5Bt0V8M2SretlUYo8k/tWoo1I0tdk5bXj/nvktqh+KC/795248Vn2AqeCdkBSVZ68Me+NqzGFQrDoC3xeP8+xPPwv51CqNQ82T8n/fn+j7UVZp64NEU8GAetJWRUyCIe7944TtvCfpww9ynV1TEpTUo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=BBg2N3Dr; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="BBg2N3Dr" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B0AD1C433F1; Sun, 24 Mar 2024 22:47:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320460; bh=VyzNqOFQS62GncXZLcr0NESX0J1naNhNSZOilaqAki8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=BBg2N3DrfODrjTdZRQo3YutF4uBw5X0+kL2EoE9fjKU9sZa/tRAE6tlygsIhzwtDo wOQp4Hq6BVnAbqzNvfpFwY84Oz6TZDctzSScRgIvhez7p4KJd2hwxT2TGJBe8nx39A bF54l02MWNBv2WcXgbFVshrAt96qSxAwo1k1qa4OvaLQdeUJ3UFaaWCthJtBHSoli9 kV00Rmb9wWQ6INUxy3P3exBsNs873tk0Wm0w3jJbrRbfI+DmKii6SzmSkwepIG5KPY mKIUKx/MNqlzqVQTFxKJnVvMzdyan+MzXKtrSQtDH9XALcwXHrVuJapoO9peSjJVNa G4a9nOAh2xdSQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Xiubo Li , Milind Changire , Ilya Dryomov , Sasha Levin Subject: [PATCH 6.7 019/713] ceph: add ceph_cap_unlink_work to fire check_caps() immediately Date: Sun, 24 Mar 2024 18:35:45 -0400 Message-ID: <20240324224720.1345309-20-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Xiubo Li [ Upstream commit dbc347ef7f0c53aa4a5383238a804d7ebbb0b5ca ] When unlinking a file the check caps could be delayed for more than 5 seconds, but in MDS side it maybe waiting for the clients to release caps. This will use the cap_wq work queue and a dedicated list to help fire the check_caps() and dirty buffer flushing immediately. Link: https://tracker.ceph.com/issues/50223 Signed-off-by: Xiubo Li Reviewed-by: Milind Changire Signed-off-by: Ilya Dryomov Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- fs/ceph/caps.c | 17 +++++++++++++++- fs/ceph/mds_client.c | 48 ++++++++++++++++++++++++++++++++++++++++++++ fs/ceph/mds_client.h | 5 +++++ 3 files changed, 69 insertions(+), 1 deletion(-) diff --git a/fs/ceph/caps.c b/fs/ceph/caps.c index bce3a840f15c2..7fb4aae974124 100644 --- a/fs/ceph/caps.c +++ b/fs/ceph/caps.c @@ -4772,7 +4772,22 @@ int ceph_drop_caps_for_unlink(struct inode *inode) if (__ceph_caps_dirty(ci)) { struct ceph_mds_client *mdsc =3D ceph_inode_to_fs_client(inode)->mdsc; - __cap_delay_requeue_front(mdsc, ci); + + doutc(mdsc->fsc->client, "%p %llx.%llx\n", inode, + ceph_vinop(inode)); + spin_lock(&mdsc->cap_unlink_delay_lock); + ci->i_ceph_flags |=3D CEPH_I_FLUSH; + if (!list_empty(&ci->i_cap_delay_list)) + list_del_init(&ci->i_cap_delay_list); + list_add_tail(&ci->i_cap_delay_list, + &mdsc->cap_unlink_delay_list); + spin_unlock(&mdsc->cap_unlink_delay_lock); + + /* + * Fire the work immediately, because the MDS maybe + * waiting for caps release. + */ + ceph_queue_cap_unlink_work(mdsc); } } spin_unlock(&ci->i_ceph_lock); diff --git a/fs/ceph/mds_client.c b/fs/ceph/mds_client.c index 2eb66dd7d01b2..950360b07536b 100644 --- a/fs/ceph/mds_client.c +++ b/fs/ceph/mds_client.c @@ -2470,6 +2470,50 @@ void ceph_reclaim_caps_nr(struct ceph_mds_client *md= sc, int nr) } } =20 +void ceph_queue_cap_unlink_work(struct ceph_mds_client *mdsc) +{ + struct ceph_client *cl =3D mdsc->fsc->client; + if (mdsc->stopping) + return; + + if (queue_work(mdsc->fsc->cap_wq, &mdsc->cap_unlink_work)) { + doutc(cl, "caps unlink work queued\n"); + } else { + doutc(cl, "failed to queue caps unlink work\n"); + } +} + +static void ceph_cap_unlink_work(struct work_struct *work) +{ + struct ceph_mds_client *mdsc =3D + container_of(work, struct ceph_mds_client, cap_unlink_work); + struct ceph_client *cl =3D mdsc->fsc->client; + + doutc(cl, "begin\n"); + spin_lock(&mdsc->cap_unlink_delay_lock); + while (!list_empty(&mdsc->cap_unlink_delay_list)) { + struct ceph_inode_info *ci; + struct inode *inode; + + ci =3D list_first_entry(&mdsc->cap_unlink_delay_list, + struct ceph_inode_info, + i_cap_delay_list); + list_del_init(&ci->i_cap_delay_list); + + inode =3D igrab(&ci->netfs.inode); + if (inode) { + spin_unlock(&mdsc->cap_unlink_delay_lock); + doutc(cl, "on %p %llx.%llx\n", inode, + ceph_vinop(inode)); + ceph_check_caps(ci, CHECK_CAPS_FLUSH); + iput(inode); + spin_lock(&mdsc->cap_unlink_delay_lock); + } + } + spin_unlock(&mdsc->cap_unlink_delay_lock); + doutc(cl, "done\n"); +} + /* * requests */ @@ -5345,6 +5389,8 @@ int ceph_mdsc_init(struct ceph_fs_client *fsc) INIT_LIST_HEAD(&mdsc->cap_delay_list); INIT_LIST_HEAD(&mdsc->cap_wait_list); spin_lock_init(&mdsc->cap_delay_lock); + INIT_LIST_HEAD(&mdsc->cap_unlink_delay_list); + spin_lock_init(&mdsc->cap_unlink_delay_lock); INIT_LIST_HEAD(&mdsc->snap_flush_list); spin_lock_init(&mdsc->snap_flush_lock); mdsc->last_cap_flush_tid =3D 1; @@ -5353,6 +5399,7 @@ int ceph_mdsc_init(struct ceph_fs_client *fsc) spin_lock_init(&mdsc->cap_dirty_lock); init_waitqueue_head(&mdsc->cap_flushing_wq); INIT_WORK(&mdsc->cap_reclaim_work, ceph_cap_reclaim_work); + INIT_WORK(&mdsc->cap_unlink_work, ceph_cap_unlink_work); err =3D ceph_metric_init(&mdsc->metric); if (err) goto err_mdsmap; @@ -5626,6 +5673,7 @@ void ceph_mdsc_close_sessions(struct ceph_mds_client = *mdsc) ceph_cleanup_global_and_empty_realms(mdsc); =20 cancel_work_sync(&mdsc->cap_reclaim_work); + cancel_work_sync(&mdsc->cap_unlink_work); cancel_delayed_work_sync(&mdsc->delayed_work); /* cancel timer */ =20 doutc(cl, "done\n"); diff --git a/fs/ceph/mds_client.h b/fs/ceph/mds_client.h index 40560af388272..03f8ff00874f7 100644 --- a/fs/ceph/mds_client.h +++ b/fs/ceph/mds_client.h @@ -462,6 +462,8 @@ struct ceph_mds_client { unsigned long last_renew_caps; /* last time we renewed our caps */ struct list_head cap_delay_list; /* caps with delayed release */ spinlock_t cap_delay_lock; /* protects cap_delay_list */ + struct list_head cap_unlink_delay_list; /* caps with delayed release for= unlink */ + spinlock_t cap_unlink_delay_lock; /* protects cap_unlink_delay_lis= t */ struct list_head snap_flush_list; /* cap_snaps ready to flush */ spinlock_t snap_flush_lock; =20 @@ -475,6 +477,8 @@ struct ceph_mds_client { struct work_struct cap_reclaim_work; atomic_t cap_reclaim_pending; =20 + struct work_struct cap_unlink_work; + /* * Cap reservations * @@ -574,6 +578,7 @@ extern void ceph_flush_cap_releases(struct ceph_mds_cli= ent *mdsc, struct ceph_mds_session *session); extern void ceph_queue_cap_reclaim_work(struct ceph_mds_client *mdsc); extern void ceph_reclaim_caps_nr(struct ceph_mds_client *mdsc, int nr); +extern void ceph_queue_cap_unlink_work(struct ceph_mds_client *mdsc); extern int ceph_iterate_session_caps(struct ceph_mds_session *session, int (*cb)(struct inode *, int mds, void *), void *arg); --=20 2.43.0 From nobody Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7025C768E1; Sun, 24 Mar 2024 22:47: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=1711320461; cv=none; b=lHdsgU8YIazJmh0jjDmXyVc8cj6mELlMkbbXpJNOCxWgLvRpKIMpDBLswSZ1YcvCXJLx60f+PWD9Ca7ZQKE/CNEZqXfSx3bTIkKqdhqX4DDwKtXFhz9kPHpDDhTfrSav0wbFqVCS0b0/thPKuiozI3R0HBIw3Vm3DMOfAFUsHeM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320461; c=relaxed/simple; bh=cR0HqTUaknLkPLTFIwauFtbbMFpsVGfj/+7sGvCDCjw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ppJhQZQxN8Lmk4tdaHIPg5+knEXyDQcKX6MiI1xiG+hAuZT3waLqZ0hvKB4VbOZCD+PRyaCAFsaDP58EXSyql3kRhRwAjCof/UemK4H6YKJppj3ktqNoL2Wv+AKDVEvIjy9nXggPLn02MNlnVP++w8TAEF6YQz2qalpUOwy2Tfs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Nz4/UpRH; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Nz4/UpRH" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B11B1C433B1; Sun, 24 Mar 2024 22:47:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320461; bh=cR0HqTUaknLkPLTFIwauFtbbMFpsVGfj/+7sGvCDCjw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Nz4/UpRHpvalfwieQJBzu9reZseqWzeSIKCGnJVVniGT5CKAuKAMwcyD6hnjlKMpk LETJ5sLLMEcYYihQts6zt0ADOpE1/0/idgnV5L65v+s4SETXamesT6ODKVSlb2gmPU FbdkS9deF3H2h/sEuOoqVoaiCotGR8AHYCTB1c4EEYY9NpeplTXAzQxao6WiGxrlBR q6kpZIg6TqVXSxeUk9Aj0mNv4ez2zzrDSdThMlOAp3ewoBus2J5WvAmFNlSIBBSy/F Q3d/OwnrxeE9bWxCc6tvlDqENB+8x3cO00NsKZGOsowtHMPKTHDx84Cpn3Uc5hbhey 61C/4YBCdJlIw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Manuel Fombuena , Jiri Kosina , Sasha Levin Subject: [PATCH 6.7 020/713] HID: multitouch: Add required quirk for Synaptics 0xcddc device Date: Sun, 24 Mar 2024 18:35:46 -0400 Message-ID: <20240324224720.1345309-21-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 fd5b0637dad68..3e91e4d6ba6fa 100644 --- a/drivers/hid/hid-multitouch.c +++ b/drivers/hid/hid-multitouch.c @@ -2151,6 +2151,10 @@ static const struct hid_device_id mt_devices[] =3D { HID_DEVICE(BUS_I2C, HID_GROUP_MULTITOUCH_WIN_8, USB_VENDOR_ID_SYNAPTICS, 0xcd7e) }, =20 + { .driver_data =3D MT_CLS_WIN_8_FORCE_MULTI_INPUT, + HID_DEVICE(BUS_I2C, HID_GROUP_MULTITOUCH_WIN_8, + USB_VENDOR_ID_SYNAPTICS, 0xcddc) }, + { .driver_data =3D MT_CLS_WIN_8_FORCE_MULTI_INPUT, HID_DEVICE(BUS_I2C, HID_GROUP_MULTITOUCH_WIN_8, USB_VENDOR_ID_SYNAPTICS, 0xce08) }, --=20 2.43.0 From nobody Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B54CD77F1E; Sun, 24 Mar 2024 22:47: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=1711320462; cv=none; b=TlXOh0hyUJEVIRyBKuuoCuHl5Xlf71FRs8xKc3hW85vQkFEBC32POmumDe8KjRX7zYek+AEoBlzU7K7nCbbJCslk0kc0cn598gamY7uy4Z+V0EHgvpgRZjEDm8EtX7k8gYCbdNh0nl4XfgWfPCU03dCk+OObRFxzZQwczitmbNM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320462; c=relaxed/simple; bh=I+vVsVM23mkEKCiSNKy8dYWHbX1Qn5lawkbweNDKI1w=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Szmhh5fLrz+tW0MhvQaaLzevue+JFaAWsBQyLUSuRK6KuMUatflaahU75i3xg9Cynl2ACn4RdBSEbSmc381qCsX2qsDE4W7jMqB89cUiWRbbPzGmnqsewAVjdTyIq3CllqQvkmCvUgUT5EJVJ/4vyzBdpgAh630RZo8a4QP8IQM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Zj/cxrP/; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Zj/cxrP/" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 97433C43390; Sun, 24 Mar 2024 22:47:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320462; bh=I+vVsVM23mkEKCiSNKy8dYWHbX1Qn5lawkbweNDKI1w=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Zj/cxrP/gEvNpE+Ibx6wtU8YB4FOU5x87M/pThTAVP425XrZljFBgweMSwjZUpTB8 56vtES4+vdGOIpmjPm1ZwrbgszRpxuZyPW0riIKc4M2RPptARUJj2eZvtmBPhUnVAp cpoKZfnFV9gnS7N6xOfDDSGiofnOa2K6SXgjA8oMcekY5hxrdnHuefbLQ5U3tCd5vo CbsqZTd96zoqyobkd7fi3Ic/d38O5A2mTwQB85+I8tPOtc4vUnly83fPXMBq6SKdVJ L4lv74juFiQeAp2mw28E5xcZ3oa6IGgsvVS/aVnmNCgIM1ruSZDac3QUjoO7vWTFfy j9e+n0iu40k6g== 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.7 021/713] ASoC: SOF: ipc4-pcm: Workaround for crashed firmware on system suspend Date: Sun, 24 Mar 2024 18:35:47 -0400 Message-ID: <20240324224720.1345309-22-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 39039a647cca3..ea70c0d7cf75a 100644 --- a/sound/soc/sof/ipc4-pcm.c +++ b/sound/soc/sof/ipc4-pcm.c @@ -413,7 +413,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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 922491CF8D2; Sun, 24 Mar 2024 22:47: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=1711320463; cv=none; b=sarqNQkw7g/ckEUCa7x15gVdviRxWjPCXqW7sYQW5RcYeswsp1dG8b7mxEkilvTtq3nWoFHJMOpeKPdTg6H540YLtM9cAJPRLTgFhrOWaNEqcrPKzzUPu+YPki8q9dORpsbfDd1pTdCTZjcoDcK8dWB1zgiyP9gXjnq9blIpoZE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320463; c=relaxed/simple; bh=bIVtbSMKxcSFFD/wdw1wvG/4arj3wpTutJa23UtENBU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=ZSyeHbEirW3rwmSFqBnZ4AbNclIUwbWUH6nn0d0NS4XVE8+6TRUoGvz2fmR3aBvpI/hga+tCEVNAQZCxZn8MZXdZZbEqWNcN7mh5Geg0A0MaLUq4bMucOfk7ef0QzFHs3d8SYDnSe0NOO/fSIeN0ffwkwbM9s1EvP1OuEJObAZ4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=LeczNmOJ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="LeczNmOJ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id C6B8CC433C7; Sun, 24 Mar 2024 22:47:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320463; bh=bIVtbSMKxcSFFD/wdw1wvG/4arj3wpTutJa23UtENBU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=LeczNmOJFHDBgqd25HBDBmrP+YA+yKmdIeCsxcsIJYaXSf7ByVD0CFSganxiUKzTa Orb42AmzbfoCGuPCnjCEt8h4s/OjVkTOPeGXSwuQwPZNZojTi97EnnJjs61LCmc0EE jehm2oSbifDFUsP/UYiKMm0m/Z9csdcjZkqtwk7nbhqkR4WbJ2Ad7QK1yRkhmx7j9c B0mJ39tC+BPaOHEmdbsxdNw+DGcKll2iwxFB/NmqwW7yFhsxRdXdnvlVjgIpN/fg5G fpd+QJzSTQ7qvrTuB1JsTR56a3HQ3Hwd32R5gZPNzi6X11BvzBOVhlVmZAQpyCjP/d ZcSRJNaJVcVqA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?Jean-Lo=C3=AFc=20Charroud?= , Takashi Iwai , Sasha Levin Subject: [PATCH 6.7 022/713] ALSA: hda/realtek: cs35l41: Add internal speaker support for ASUS UM3402 with missing DSD Date: Sun, 24 Mar 2024 18:35:48 -0400 Message-ID: <20240324224720.1345309-23-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-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: Jean-Lo=C3=AFc Charroud [ Upstream commit 706c1fa1ab09f11a131fc4d699ce4c0224b1cb2d ] Add the values for the missing DSD properties to the cs35l41 config table. Signed-off-by: Jean-Lo=C3=AFc Charroud Link: https://lore.kernel.org/r/1435594585.650325975.1707867511062.JavaMail= .zimbra@free.fr Signed-off-by: Takashi Iwai Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- sound/pci/hda/cs35l41_hda_property.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sound/pci/hda/cs35l41_hda_property.c b/sound/pci/hda/cs35l41_h= da_property.c index d74cf11eef1ea..6cf4c02f9effd 100644 --- a/sound/pci/hda/cs35l41_hda_property.c +++ b/sound/pci/hda/cs35l41_hda_property.c @@ -91,6 +91,7 @@ static const struct cs35l41_config cs35l41_config_table[]= =3D { { "10431D1F", 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 0, 1, -= 1, 1000, 4500, 24 }, { "10431DA2", 2, EXTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 1, 2, 0= , 0, 0, 0 }, { "10431E02", 2, EXTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 1, 2, 0= , 0, 0, 0 }, + { "10431E12", 2, EXTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 0, 1, -= 1, 0, 0, 0 }, { "10431EE2", 2, EXTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 0, -1, = -1, 0, 0, 0 }, { "10431F12", 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 0, 1, -= 1, 1000, 4500, 24 }, { "10431F1F", 2, EXTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 1, -1, = 0, 0, 0, 0 }, @@ -427,6 +428,7 @@ static const struct cs35l41_prop_model cs35l41_prop_mod= el_table[] =3D { { "CSC3551", "10431D1F", generic_dsd_config }, { "CSC3551", "10431DA2", generic_dsd_config }, { "CSC3551", "10431E02", generic_dsd_config }, + { "CSC3551", "10431E12", generic_dsd_config }, { "CSC3551", "10431EE2", generic_dsd_config }, { "CSC3551", "10431F12", generic_dsd_config }, { "CSC3551", "10431F1F", generic_dsd_config }, --=20 2.43.0 From nobody Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8385079DB9; Sun, 24 Mar 2024 22:47: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=1711320464; cv=none; b=tg2fx0JjdUWcTbsNzKRT/IaFQ4U5/XBQAPe4CoRo700P3ZnihDeJIIPt1Z3v/PvCK4QHENrLJmyBfW6TTjLikI5GVORu62yzGyh+ludvvyq1YbOBQTAehTCFswsXzg1S81yZ7t0FsZymKdTf3gliPypmdrLhRRoi3E70kWqpXXs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320464; c=relaxed/simple; bh=3wlScet/gGLXlUYxf1X1RksuP6JQN/1vtVXO9KjdtqM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Mpqwht+wOhrIFDRKVMiS1ayVikmBC12dNG3JDCQvMkTPYkA4cQjC/I4yKrgo3eg+KmB+7NPoSTMVV+HG8tWXLbj/G/vSVldGK6hbIlSzoHkLbqzQXjMEWWTAxCLYocJoXn9Wxge6uxF0bS3+ic7WnNPwOGNncLtlWaaOkMNAGlg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=f0K3gwX9; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="f0K3gwX9" Received: by smtp.kernel.org (Postfix) with ESMTPSA id AD3F5C43390; Sun, 24 Mar 2024 22:47:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320464; bh=3wlScet/gGLXlUYxf1X1RksuP6JQN/1vtVXO9KjdtqM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=f0K3gwX9Gc+CVYZgdPMWXV7nRonHFm00YElGH/2CzRLXIEKylihy95vOQDEh8FXor 9mdqzr76wp5BCJpvWkbfbb2GcivuEppRZ7Yr4PF5YBhUnwN/6LyZUEY+gp99tRPqiC HpJdcIoCD0VeT5Fly50erw1TOonDxgMcncjhPcXyxvVVgxJjmVh8KdcKob2NAlyelZ ZZ0Fcut4ZStOTlcQNBF27sWHKMCoTg6q9YaUZkPD78gLL5jYcs5PKvqezeIGp3PZXn EOud5CKnJ1eRAAVFYZuOhCN3C8yAxIG+c3mYRzHPK649cpSL4jjkqgjr7AefknXiw+ wfPZnP7giha+A== 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.7 023/713] gen_compile_commands: fix invalid escape sequence warning Date: Sun, 24 Mar 2024 18:35:49 -0400 Message-ID: <20240324224720.1345309-24-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 5dea4479240bc..e4fb686dfaa9f 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 # Return the canonical path, eliminating any symbolic links encountere= d in the path. abs_path =3D os.path.realpath(os.path.join(root_directory, file_path)) --=20 2.43.0 From nobody Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D000579955; Sun, 24 Mar 2024 22:47: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=1711320465; cv=none; b=Th4Sdv18w44EX5XAsiN+WTyQWANk4j+3vWPwFjJ8QlJQygfL8eTPbvZpBHeqKqpHuDRfGr/urP9psyG7KOc1OdE3RRfgkHlpFbDWPlkae4GpBDhzFxeM37RYOtpMaDystbba8xisgEyNV1iuVf0zm9/oePWSgk/A77zQkM6UcCs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320465; c=relaxed/simple; bh=zL734AcNKdHLnb0g9HvGqJNJE/3x5Nz2G5npj9OKw+U=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mOPYLqSK32JSSwvFTGjKZfT/G2hGK0UuGMbWyZaobkYEHBflh3pA9z6TCLdcwuff6obRZ/PvPqpwmMGoXeG6mXZRIN1BDsl2kpe3IFUuzqIzE9e/Ce/tAuCfPV3LQwmvmqkN4BqnlH/QUvuokiF8iGYAabdEko8wJP39dCYJAPA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=nANlMskj; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="nANlMskj" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A6903C43399; Sun, 24 Mar 2024 22:47:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320465; bh=zL734AcNKdHLnb0g9HvGqJNJE/3x5Nz2G5npj9OKw+U=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nANlMskjFE7pXG6RKASd2BIfepmn8ny15cnY5PGh7SQ86g6zvfU0rEjzgZ/thTY0q sXDzuG5a1GlPeliUl9M4QDMjqoQ27srXoWOGJL5tJvdqjKhNH6txbsqoY/pGd+1o3D 1FklRvuhPeEjcAdN9s+nsz4NqhMjnIPMynbhlEgt8Ok62mZgx/OAzuCs8FQv4zbIzz 0dDt+gAzv3VGhYHaVICW3X6A0LaLA04Qncr05hiMNUqa3M5M6jy3iHBUtSRAn4AMf5 CmupRjw9hK6FkxQZNHUPGOCig4XTnpWqAdTF+e3mKRSfE+xIimn0grY8sP51y96YBG puQMscbGeBhiw== 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.7 024/713] arm64/sve: Lower the maximum allocation for the SVE ptrace regset Date: Sun, 24 Mar 2024 18:35:50 -0400 Message-ID: <20240324224720.1345309-25-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 7780d343ef080..b67b89c54e1c8 100644 --- a/arch/arm64/include/asm/fpsimd.h +++ b/arch/arm64/include/asm/fpsimd.h @@ -62,13 +62,13 @@ static inline void cpacr_restore(unsigned long cpacr) * 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6EC18482D7; Sun, 24 Mar 2024 22:47: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=1711320466; cv=none; b=dDSqZWivbMYESPHFxLM6CVJ35b7VUfE5YDBgH7eObi15uZfH9JUqEmL26DIEVxR/3wLDToZy3ueSjw5+8p8yaYnxuIMruXR9thgy/s+frFxSsSNDQeRaJbfK4GzY4F4U/gWUtUlsWwb/b6STnCY+RTIXur9y5qkJojuovVOWNIQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320466; c=relaxed/simple; bh=FkzDlT8ctDyCauDA5oCuwo7gENN9bz4/MUbxBdnuFjM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=tTDpPQ9gc4Pt9YUuVav1H68vthpWB8ljdzamO/rALqHmYoP50cFVaxkWDr/UpT6UbeirEL0CpvToDoaLjp8p4qrapfA+tqYgA+7vsjGgoFtXBar3qf9t/r6C4aFVYupBaVtLwLdxnvnANUMyQanhZLSJvrLdOTRrSulxbEhHeRI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=P0yrrrJG; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="P0yrrrJG" Received: by smtp.kernel.org (Postfix) with ESMTPSA id AAB82C433F1; Sun, 24 Mar 2024 22:47:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320466; bh=FkzDlT8ctDyCauDA5oCuwo7gENN9bz4/MUbxBdnuFjM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=P0yrrrJGYU2qLMFBN5sJXU8CEvqHyhHhxugt5px4E2htdfueVD0pnm6uuTaBXK5gI N78Q/3YCBDipUrFXbkmJKEgCJ4ps4I7PohJPmsbGxPXfTu7xvTZz/rXRRMT0TyC4KC 0vZTBOq+Mt4AKNRzTzqKxOY0/US1edkHayAkSbrxOJ6iBNwF7dc8XY1ZyU+xEIPMPn zyzstlb6IzyveaaKlhL2I8ynkMGkjCSmEL7ciH/Pmmq9N5KfUZC6Yaj6UEJ9/od+JL 5MHOzdz+PLi72G/XaGkjAWKaC9Br723uKqBCOvQyJC6C2U22P/P8MZqsM7T+/ReUDi w0cDXVCrhwcWw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Geert Uytterhoeven , Conor Dooley , Sasha Levin Subject: [PATCH 6.7 025/713] soc: microchip: Fix POLARFIRE_SOC_SYS_CTRL input prompt Date: Sun, 24 Mar 2024 18:35:51 -0400 Message-ID: <20240324224720.1345309-26-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 555B57EF11; Sun, 24 Mar 2024 22:47: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=1711320467; cv=none; b=soasyB5IXagdBwpZ6tB5Ugl1iR/faUmXuuHYusrD8U7aV1szIstMsMh5SCBMRsnr5UgTOn1MHm1FaJe/H0LZxCXM0bPSxEnrjQedM6ULeY89pdMDqeXjEX37i9wPqJXOB8VOP4mKryGl6lLghs55rjanUCmLtHzVr3LDNT9Sy+8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320467; c=relaxed/simple; bh=IsMtaPO2nRbjGtVcG7DjgE1BW1fqCgoEtlxwZS2MSXI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=IQlQ1+lyS6/ll9oyJ78/NY+0D2aMUOD9dcqJKfm6wUCwD6gyV4Msum4h2Rcv4VXXw4iQXgHJPyQOsdDe+AyHmWTc2nFGSmA22YjwR8ppalXxWLb0tIq4p+EQ1O+G9QbHkvhcYQ9w22aZfpbqPS0U0eCd56kC9Jt3tmQDly6C3/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=vPd3SxM7; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="vPd3SxM7" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 94F72C43390; Sun, 24 Mar 2024 22:47:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320467; bh=IsMtaPO2nRbjGtVcG7DjgE1BW1fqCgoEtlxwZS2MSXI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=vPd3SxM7n0EM1HgOOfiV0bDNUggiECI2lR1KtyM5NyRYCEnVFr425I8/nfFxoq0Xt z8eMXS52EMwr/UXOvBK1+t4vpNeT66mMezyqc66mJx+xMuXXFXdwO6LYUr5qcqkNA0 jQQ+Bl3OoUrjzrjZ2F6h13lBVcIfifZ0qMZ1ZwrnlCijYpPcUOdhLeOQv4MxSnmv8P 0ifiClJgL4+LkA702/0cRNFFUslBeMHk4tVfOJJg0qXPE/s09f5/VgO70jKZyOfZFD +nRRv3BfFe/bsXuEnVakpQpmaRS966Z0hPSwdITTS0XHiL+qS7f/0OQBwx2+kNrX12 OmuPX1e7NAN9Q== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Sebastian Reichel , Heiko Stuebner , Sasha Levin Subject: [PATCH 6.7 026/713] arm64: dts: rockchip: mark system power controller on rk3588-evb1 Date: Sun, 24 Mar 2024 18:35:52 -0400 Message-ID: <20240324224720.1345309-27-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 b9d789d57862c..bbbe00bcd14e7 100644 --- a/arch/arm64/boot/dts/rockchip/rk3588-evb1-v10.dts +++ b/arch/arm64/boot/dts/rockchip/rk3588-evb1-v10.dts @@ -351,6 +351,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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3142B7F460; Sun, 24 Mar 2024 22:47: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=1711320468; cv=none; b=AQmXuunH5yd4tgZCowfih4Yco0HAElDESjD24YET7YPhLqrN1JLZauTY2NO5m8qjirNyP9ux/W6GAzAfGUrLoNBwukIntjupapQfWQd9Xf3s9QncZ4hdWwQ8O5Np+uQHmm/ZweFk9ijGyjM0vUzxc698449FvWiclHtET4/n6XY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320468; c=relaxed/simple; bh=9ho8EJ2VFT3bEroonlc5dWDoUEEhnUjuMR9yIwHc+Gs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=SP3dXbjNuCLy8crt0q5R9VWeskrz1UBY0jEsMAlehZz6GTkcz2i7WLRLrKQmxrbPUJpDe5fgK4JdBogfAaQBYGbrrNMru1cUeHR4+Mj+oiVdPGEI6+zF3ip3C2ELD2zn+K4RhdkYQgY9XY1LgogsUywM0WzYBCndxdYg7Y26Zg0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=n3+TDJND; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="n3+TDJND" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7B42CC433F1; Sun, 24 Mar 2024 22:47:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320468; bh=9ho8EJ2VFT3bEroonlc5dWDoUEEhnUjuMR9yIwHc+Gs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=n3+TDJNDJETM7sJNrxM8eh7ntwT+RWLEQxsikP7yt9QPI7XyoPHuKBDbT7emOAXkR yInnzGJUTQf7C7U61/9sc91Vm4oViklDPq+J0PBUDn33gFZBrEBa+xMBYt2odhh3L7 81eWIFYeC/TguwYMM24enP2LisOsFSJC5xPKgzWnTphhpeMKNAJDPm9R9OW9WH7sij 174WiHud5ecB4IcbY4n3wB/G+uFVXo2N220wuQYwPGrpHcKiGKC2FyoeIGG/yo9A5J 13aisbDJkI5JXg0CDzVGp9khyaHJZQyITP64u9RQER2ODPhuQLeh40Aw8hmg6ggWM4 N6HptUZpLjZIQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Leon Romanovsky , Sasha Levin Subject: [PATCH 6.7 027/713] RDMA/mlx5: Fix fortify source warning while accessing Eth segment Date: Sun, 24 Mar 2024 18:35:53 -0400 Message-ID: <20240324224720.1345309-28-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3BAD77640E; Sun, 24 Mar 2024 22:47: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=1711320469; cv=none; b=jdOgcIPxvk7ws3+zU3hFZWp9WtNNDIQI/QrfxsVhekpBkN3+tsCHfMufZYV3JiadA+jlb51ZTBRKPpAoh6WoAsk9dP4W/nprMYFkm4ZMXegquxzH3p16XQBVafdMEZ6TwX57OIdTvwzN65nl9nuN3aiA/PX9VUdQU/wRIIo5mJQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320469; c=relaxed/simple; bh=KSF7boKFkFUKI5Y7wTzgbmgkVIR1+Hf5SXgY2kEF1mA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=FS7AJmhuJnkp1cT141gjTB+o4Eg7sgkxZVM8ccGDSiQZU8oJ3ep6jsTMW/fMQ3llHHXmFma1ZMLRVB2JTYIePxBnm4Y4Yyhb1nZih8eyqO899r/RsJ5SqNWkA5I5Cp7VwKiZ8lNIOHm6lBAvLUAPCROjIH8E/fVLHB6M0blSMt8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=GY3G22KK; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="GY3G22KK" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4D2CFC43390; Sun, 24 Mar 2024 22:47:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320469; bh=KSF7boKFkFUKI5Y7wTzgbmgkVIR1+Hf5SXgY2kEF1mA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=GY3G22KKEVEaUjJmT/WpSgpoW10OsQ/muKK+H18AjOXLaYiyeEUJx1oNjW20j5x5U n2gpDeiiOf8OfBHEUn334Zkg+ZuXCSV61zioGxizzrYcM2FRU1vde3Nazi7lFLs7NG 0t4WFbDJr1PmSEhIHVX33hf4rbWZhxnIkAyDdoTPC78skFNTg2VxgVO2OY77/wjjk0 5w/ecF0+KysDmm9WyQhfWflrTSsQuS06rBhefsjcyt0zx8GWn5IvxoU7bgdA4UtDRk k/vwAmiU4C+olc+7wO7HYjkv7wUfA1nffZaEUCI6eNQi3+2h7xhGh5hsk1yfNg+5xC cAeuCAHTurEMw== 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.7 028/713] RDMA/mlx5: Relax DEVX access upon modify commands Date: Sun, 24 Mar 2024 18:35:54 -0400 Message-ID: <20240324224720.1345309-29-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 270E27EEF8; Sun, 24 Mar 2024 22:47: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=1711320470; cv=none; b=pn1j1W8nHVaQ7ghVixb98vVcBvyGzS18/VRlQLrzXkDpUydmU33Jq8D1ClKxwsudLZqJnTKTCJHcCC5y3cpHXh4wLhjvVHzTu3Qiu66Fqfp+lwIMt338rkpLVt1gsan2VcsI78YUySHNyZq3EMlUOm3hqFndOZu2BNB+RPEs+wg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320470; c=relaxed/simple; bh=ayO7XyN49cXFaYIdOLLp2HPoo0b7cB0hWQMIZqiT/UM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=fzLzkidBuNodC6QPI6tDu0qAV4z1nDGoLsTny8X9wldkAmQ7Qfa85v9O6EIlKzq2qc7CDlQlygn57Ob9GEhR/3ROUli4y0b+yxpCqKPRRvQglOnTzMngXjxnp+uW4ZRmHWUA8GaZ6Ek185l4LzWzbdXaRMUoyvsW1jWHSxEyVs0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=WLgzI4GC; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="WLgzI4GC" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 60C90C43399; Sun, 24 Mar 2024 22:47:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320470; bh=ayO7XyN49cXFaYIdOLLp2HPoo0b7cB0hWQMIZqiT/UM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=WLgzI4GCDBp0tcH34qTlVVattCWG/OgKN4C3fO5BjaQxnkt90DUV3afm2lqUsu+XS u1LuBKF35bM1g3RoVfdiWIwFQ0g3b5MMuAahIVURNv6v/GNDifx86a/LxVKvHhiy2k 39zkJo2v7YZKPbXaR+LztpqVZydk8zLtq4FHP8ASjmjFCUxCU3a+2H6Kc3WsG7ytt1 rTGaDiZIsLx2VQ7lYx2urtTv9GXHVOA2r2sKXK9ReROURRgGfH3hcS1MIW+wE93JE9 +iBvs4w35p0DHYlUEvuRpnzMrQeSbvsKxVXpRSbUqeVuBsrwnsTFFUV9paD6OGp3YG Xq81A3oOapCtg== 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.7 029/713] ARM: dts: rockchip: Drop interrupts property from pwm-rockchip nodes Date: Sun, 24 Mar 2024 18:35:55 -0400 Message-ID: <20240324224720.1345309-30-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4FC127EF0F; Sun, 24 Mar 2024 22:47: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=1711320471; cv=none; b=VFRG/V5RZP0q7M05+0yGdaxBI8/4pN4t9eYautJR9eI7tk2pTsYcCm3j6ry+RQVeJcJZmFx0uozdD7Wf1wF1LvKr2D9SveYd+ytj5kXaKvoOez+R0gxUFfAPKHUmrrkE5zieou1atsIYL5WvN6XrviotVURxPSkOGOLGk3eDGLM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320471; c=relaxed/simple; bh=H02y0RGDOkwRPBjwHsYqNibSOi4L7LTOH0o83ixsYvo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=D/WIH8bmwkKhd/yDF1pphkb/xTS7ea6ecIgHbRSGbQ9sBjMhnBqKV2s9qwj56fyzvqdFHHgbMQkcoqm9V//spxjtfiuaVjb9E0jeJ9JkoCgPzUFE55pm84FmPQ1mMdiyjjaNDctmkRWyYEaue9ynk1IJZr2sJ/RlqZQoTJD/Q9o= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=YzXw+NfY; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="YzXw+NfY" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 48F98C433F1; Sun, 24 Mar 2024 22:47:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320471; bh=H02y0RGDOkwRPBjwHsYqNibSOi4L7LTOH0o83ixsYvo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=YzXw+NfYXtEAMTtVt+zD+5bJmC41KC3IbV2R7xdY3xOof0IXuqrXmJWHNNuy7VMYT KsieYObx8s1cWTXFq4+5MXWOEmF5wbuGOqdCh7fHk44iZDTQlCRN+Zuy1fuhFpNTfH 0f04VDSdU5Yq8IKTlKjvJ0OW7AbacANkidS4lQ2blzebnMcszBUNxRX0mUbZ98Mj3t DrThSXY467M+NDK1QD8dGO5/olHTUBKNBOJlE8fzqAE17hyqmf1l7NGWONm1/Ux7RC B05gEl37wVZMRj/9zQ2JTly7DnKrWNQQAMZciQiULKAt+risgJiXSf27XBMHPTPRbK lsqIKKtVqdbRQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Hari Bathini , Andrii Nakryiko , Jiri Olsa , Stanislav Fomichev , David Vernet , Sasha Levin Subject: [PATCH 6.7 030/713] bpf: Fix warning for bpf_cpumask in verifier Date: Sun, 24 Mar 2024 18:35:56 -0400 Message-ID: <20240324224720.1345309-31-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Hari Bathini [ Upstream commit 11f522256e9043b0fcd2f994278645d3e201d20c ] Compiling with CONFIG_BPF_SYSCALL & !CONFIG_BPF_JIT throws the below warning: "WARN: resolve_btfids: unresolved symbol bpf_cpumask" Fix it by adding the appropriate #ifdef. Signed-off-by: Hari Bathini Signed-off-by: Andrii Nakryiko Acked-by: Jiri Olsa Acked-by: Stanislav Fomichev Acked-by: David Vernet Link: https://lore.kernel.org/bpf/20240208100115.602172-1-hbathini@linux.ib= m.com Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- kernel/bpf/verifier.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c index 9698e93d48c6e..890d4c4bf9972 100644 --- a/kernel/bpf/verifier.c +++ b/kernel/bpf/verifier.c @@ -5445,7 +5445,9 @@ BTF_ID(struct, prog_test_ref_kfunc) #ifdef CONFIG_CGROUPS BTF_ID(struct, cgroup) #endif +#ifdef CONFIG_BPF_JIT BTF_ID(struct, bpf_cpumask) +#endif BTF_ID(struct, task_struct) BTF_SET_END(rcu_protected_types) =20 --=20 2.43.0 From nobody Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 393697580A; Sun, 24 Mar 2024 22:47: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=1711320472; cv=none; b=eqvifkWG0TgR38/lx9VHEcuJJduGWuJUe17RbgbLm6q8N0gCOrI88szonLAUxVeZlUvsy6Co0f69ca4v9cQmQFVC6xijyAHnbHEpcvRIfOw+uRrBgushgfBTuwwmNUc/CS0RKCZM4YNh38qesvM56AOmAYil0ADHNYsNgr8KRbY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320472; c=relaxed/simple; bh=T/akRPi5ao0d12BmCz3WEgH+FPHY9KHNebOOEFBHkBM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=bcop4bOaQpjkP/KUWDwC86PT63BzeV8rnLYm8jnJisx+ZV8N1r3HvFozb/xHKyrngDaHbhzd3sXfAPpV0Ks6yk2wlYeFxS46OHZUm4rPOyJDlTDDzCCZPArtS3HGVnzbbZ1G9ywjZ7P/KEEx1l5L2W7tTCNJViWPjnmt5p/4hQE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=PM6AhYnN; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="PM6AhYnN" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 740B4C43390; Sun, 24 Mar 2024 22:47:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320472; bh=T/akRPi5ao0d12BmCz3WEgH+FPHY9KHNebOOEFBHkBM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=PM6AhYnN8f8aoIUet0YZ6Mr5sKiBRkR7CRrRfLga4ALGAZvshaAiebNszXDolRwQb dQ5ji3UlqmqbyGQTAwuo9Y46IE6OwmU6gi5HWRjOWud/2ZBR1lJjdTvZcgFDq42eRS elj1WDwur2hY6gS8DSxIdWB4Ge9iJKq5vWdEdjymQHlV1LocrNLBXjCqGDu/yB6+9i 9W8nbE8nuGWCnOfYACxz/4i7hcM3zoqoWqm5xOR54D3pNP+O5HcXaym9YNpaPDA+WM zoQtbrsW797Danx6Q1dVls729Xh9Ia3PYyDDcfvN5coLb/FgTLYowbzekEgxtnUqpO 48xmiOFMMdc1g== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Conor Dooley , Samuel Holland , Sasha Levin Subject: [PATCH 6.7 031/713] riscv: dts: sifive: add missing #interrupt-cells to pmic Date: Sun, 24 Mar 2024 18:35:57 -0400 Message-ID: <20240324224720.1345309-32-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 345A97F498; Sun, 24 Mar 2024 22:47: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=1711320473; cv=none; b=lwW2QVVsz/p7vJ3kS3yD4uN+FgMfQjnFpJFRUO3oNMxSspJSXl9cd5WHxLGBlHqqnJp4WY1hOHQLMHvfVk7lrElnaLil/VcUPss+hasOaYrylMKLkOoPswMUDXsIxzfCxhzYnzVrMQE07x/KBcA31NJNAURerpxOvSaLSY3jDj8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320473; c=relaxed/simple; bh=w5BdxNjIE7bfEOwDCFFB2lHGJCSTEMlYfCM9CWgPQaA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=QW2UL45a0gLb/TgoaV4fMi7TZAqZDbc649uYDcQm//PHhEWs8T2JVQ2D+grxu5JpbyoYHh9bUY+Qr0cUBHTATyCf6fctWWejwsh2NzmWG45goerapGWt2f4zefHN5foT4GoTChQVz82EhgkHiPozMyviy+iCaWTkAQ4tfdQgoxo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=FpVtOU+g; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="FpVtOU+g" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5B3F8C433F1; Sun, 24 Mar 2024 22:47:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320473; bh=w5BdxNjIE7bfEOwDCFFB2lHGJCSTEMlYfCM9CWgPQaA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=FpVtOU+g4mLtAPayMG2qyFLvsM6Bk2VtvjrjrblAWTvuI0BcfcY8CVc3AhUDsZbPb PEi+9Q3HwdFj25ssH5xFHuoh+W7P2gBAZA34MIgOOmVXhSgLnp9pj5pe/vQnNjEATf 78nXTMsgdjkoIpIHkDgiU1Achmj3jX55TJSsXA17ls1bLT4CC0ntBgJsYZaRDm0pbh dxLC6TnEHpx4oU7tWvpcD/uavC1d/xXWqngNIlv44dQybT/4lkrrP57p1QsEUQJ01A ajVYdCTn1Vcf57vyywXrAFdLi9OvnHvcXz/0sAFJQnMLW1XU0LZ0fZ3njFamCYKdh1 zWhqsYDkYZL2A== 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.7 032/713] x86/mm: Move is_vsyscall_vaddr() into asm/vsyscall.h Date: Sun, 24 Mar 2024 18:35:58 -0400 Message-ID: <20240324224720.1345309-33-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 679b09cfe241c..d6375b3c633bc 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B78797EEFE; Sun, 24 Mar 2024 22:47: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=1711320474; cv=none; b=JcMsoq4Hn/bUulLbUTc6LRTBMK101e+F1KozR7ipGgPFw9J1k840iQL/lH/3EwNk6Naqq23sRtcRZzfRHGQSI8jnbvregsvUfiMfeTDk5xnJUSA5lL7ouHLztnG/UhsPivnLD3QplZrTFaNuLgBa85VrO61MuR0E7ssu4mxPHCA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320474; c=relaxed/simple; bh=Vo3k/UgoRrmyUGzlldwCCqinbenvGMIr4yM+BJI4MQQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=pZvIQ1X7iOL3MP3E4tXIbeAvaXHjXnbF/NfR/dpmTZLO/jNTUMLn/of2fnwhEwMZ7nwWvnZnh6aQrVJRxaDdvmSpdjDn5B9Cu3njDVRymvYNSkjhob1Jxr9N7xrUcsALGQG2AlA30GvxGfpIkU06BnA/0AXXWtKnsj7Hn9eLdks= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=qazjXgRv; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="qazjXgRv" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5744CC433C7; Sun, 24 Mar 2024 22:47:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320474; bh=Vo3k/UgoRrmyUGzlldwCCqinbenvGMIr4yM+BJI4MQQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qazjXgRv7oAG4OxmXfUTnI8s1S43mScRJT/onwIQ38L2d6qW/QcrH+2njcLXrRTn4 PUyaPMNuU1OihDiRe+am/fwZAyB8i0t5+YAAutABc7BFuy+ADT8XEBdA505t/emb/2 wGqZqzlx9mlcKy/EGetX7jZwjCipow6nuEYLq/Y4+TMZ+E9Hv3zKLTAAn7sWwgav9P PNmXKdd4UFVfI5uHMmnzqwLWNIyLlHUcrKrO2IytiwSGS9xslk2HFdQmhnE6U+eh2y ix7BM30EamoDkg/gUQQyxEcEE0atn98JSF0NnL0Uo/CN9TIqzznz4/cKDV9gdr2jA/ eyFceN4QxQ8fg== 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.7 033/713] x86/mm: Disallow vsyscall page read for copy_from_kernel_nofault() Date: Sun, 24 Mar 2024 18:35:59 -0400 Message-ID: <20240324224720.1345309-34-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 689CD7F7C1; Sun, 24 Mar 2024 22:47: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=1711320475; cv=none; b=EUpTh+JUT86OlN6vYhW7BX5XG/9zJbJ+Xux3LcxeGf2S2ptd3eYQU9zy2j1mWeZ4trTOf5cNva+4ZVNCdR7R0EQKDYxKClxEhjYyitfkBXomuR6uc/1HXoB6U/0MFvzRJ1fOnbYtyZiOi1FHFbVBCssynTAb3MdopyV8QJrmiO4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320475; c=relaxed/simple; bh=I+EymkwU1C2leoNdI8aU2Kcpdiz2ujgLAG0SkJyGVXU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PQDEhhV6kFA5gCO7nQzJi8LooqzIWW0xLJuBTzzQ1k/dY6EzFvyQaFceUnuAJEGJPJ2/9LksGHWpnDVmdIVb5kAuZo9JiE2SFJt6fVr5/ZcndLF6scVFK89o8pIK0lehAvGRgjXrITOwqm6dpmHJOou+yPIRcVGpdieOpZH1J2c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=HUhC2F1h; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="HUhC2F1h" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 93487C43390; Sun, 24 Mar 2024 22:47:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320475; bh=I+EymkwU1C2leoNdI8aU2Kcpdiz2ujgLAG0SkJyGVXU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=HUhC2F1hSNXsNyDCjrTeM/aFogIzRir8MyknXzrFSBh2uvIy0BvphDdRaHNKDOiXf b/PVIy93N6rs+U2fU27NCl5FM/Aoe0ZJLdrrDYTL2LNDSYXwBceqErMEja9Gv8tDGv HGK/vQon6t+bnNr+YJrK6wsPPtncd9Wqlym+oDEAJKZfxlFhNh8d1Qc35gXIbYRiPZ Uk9qGWUoObV3u1omJrsm1fYE4tNuw292Q2SIsDVzWFlKeb1kFHISoHW/gqQER+yOA9 3xkzFB/NXu3EN4C/HlQVxL1BCeXKeRCy8Fhg07PWVnl6OgSH55kX6t/64+af6VwKLJ XVpdGMHy3Lvmg== 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.7 034/713] net/iucv: fix the allocation size of iucv_path_table array Date: Sun, 24 Mar 2024 18:36:00 -0400 Message-ID: <20240324224720.1345309-35-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 0ed6e34d6edd1..ce33adb65afb0 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4D4537F7CD; Sun, 24 Mar 2024 22:47: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=1711320476; cv=none; b=P1MmbcjIwaLG23BMHwBg+eR1FnGmuDHvhn1qYqCO29Ec1wQEXs2k2kFi3Il56cgaltYqGxKvE3WhCV4foT1Eqmt6lLBkfbYxrf7ITDXiImaCGqOsrf2GATT5+UmSLQ92ASWsJ7dY362G+H2qxZ12qa0S1rEteGwokt4A9cI+qs8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320476; c=relaxed/simple; bh=DM56fWUpnYs8NKGcPFxbzDsx0rC5E5rIw5nd28XokT8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qmf+goJqLyCqLW4jKhGnLaDS4N8wruAM6rczLXxRNvDCYRATjkLzZv6rwXS41X6UXwa+vS5dDtlRgGFyl5cx/Bdyui7KeZiqFlZ5Lm5N9SpAYoCQD7g+QIs+0KDE5Xv1p0ryjIm9tUN2Li0U/LfI6Wt1UFZF12FbpRsmfC729ao= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=HL1rhFvl; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="HL1rhFvl" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8C263C433C7; Sun, 24 Mar 2024 22:47:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320476; bh=DM56fWUpnYs8NKGcPFxbzDsx0rC5E5rIw5nd28XokT8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=HL1rhFvlgCfPfrBvKifhzOHGaHbz98UqA1Kt6/B0UfIwgjUovv5iJvslQqt+5mX89 1WhmYo2P6f06tJVbZI3O+PuRT9UGjVYkF6NYZGDkIeFERry0WoT9aPGB0UQokNrNOt L+Txco/ftazKy7NARwdY8c+o2Ho8ydu60lh1GuyTjnobGgk+WG59T0WaYSXeZERE9p 6GtBwv+YNV7BDZ+DofrosKBvOSYKRF2LTVE7yMWU/Gag9a9iGRcnKrqAenOfhgB4gJ s2wTMEKMlQSESk49EtBaCiA9XBr+Gf31ayEqr9I+huE/KGB7lBTPN3NLRXQt3pLRLW SRGyrepIwT4Uw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Max Kellermann , Helge Deller , Sasha Levin Subject: [PATCH 6.7 035/713] parisc/ftrace: add missing CONFIG_DYNAMIC_FTRACE check Date: Sun, 24 Mar 2024 18:36:01 -0400 Message-ID: <20240324224720.1345309-36-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3AB887F7D7; Sun, 24 Mar 2024 22:47: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=1711320477; cv=none; b=Z1lqH8AVdSMxBZXfoaTidhgL62W440wDapuykWlEPNMOTHmOCRKj+NX/vRESE2lwEWH79RsSeQbBW30N4uBDnbVepzCFTCdwScdmEx1olSyVlSKVMfl7dMoggo/TzBnA4RXQqNxn0A5PqLqrKtWxNTadJtzhiNji4xFoyi7ZyV4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320477; c=relaxed/simple; bh=q0QfNTy7LCZMzM+Y77fnUYNSiw0FW0Vlv85XEPhFh5M=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=p/N6xAImgdfObju5fC5rl7kPBt8FOKk7bjzy3EtqKzl8mh1xJHsbv1Knkhlsw0eDpouw2/SgqyqXMEE/1JuIQFGlysnC0eVZDXf7xJKUXWsDb1c40bBSMsAmWPj58h4uALUrvQdoihUHnHplalW+50r+RZhpwynCnjL8Cd2OAlM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=oAyiLUVd; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="oAyiLUVd" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 721CFC43390; Sun, 24 Mar 2024 22:47:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320477; bh=q0QfNTy7LCZMzM+Y77fnUYNSiw0FW0Vlv85XEPhFh5M=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=oAyiLUVdcBfxlokGd+GOaiqqO/3yiZKNjNQIXJwWLzsJqAfJZiBnOGUHRrKeIIBoY wiYvlYai/kVUz9akaf4RJT7Y+rSWKBUdJpuG1ywh1iuNErJc3S+R1maqCQr7/yZG0N fHEFjpqf5s3AmQR+bjylqL0k6SnH24CGt9aJlV9z7WOo24nzKN6howNwGwhslzzT+C vM8WBSzs4P/85BxLDVUkfv45IrZHoebbPH9KJNSubGLJ0DUbjpUawhPp4Bthup7kUt xMSV4/U5OOFCdLYK9CoUGhVVGdQR54jiQDAZ5GyhAgHoWofRenT2urT5xS6nFldXxv w9nm20dU6p4ZQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Greg Joyce , Jens Axboe , Sasha Levin Subject: [PATCH 6.7 036/713] block: sed-opal: handle empty atoms when parsing response Date: Sun, 24 Mar 2024 18:36:02 -0400 Message-ID: <20240324224720.1345309-37-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 3d9e9cd250bd5..fa4dba5d85319 100644 --- a/block/sed-opal.c +++ b/block/sed-opal.c @@ -1056,16 +1056,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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 31D0B482D0; Sun, 24 Mar 2024 22:47: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=1711320478; cv=none; b=trNdzeUL195I7i0mKIUA9csAlzLuijAlaPD7PP9F6Fs3/rmXY2CZHUOaYuO2IipOMKBlc8BLDfDTQ/oFwp3PSj8gdp/DNvXRoUaMPGmzQgn8+HR2NSXc4RGza6INIzepsF3LiP8h/ERTscqcLX9HdIqs18mNChEISOJqp9uH6L4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320478; c=relaxed/simple; bh=PkKaGziWURDv/ulaxnHD5Dgsz+znc2l24h5KSkIa8qs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=BmsHbmhSC8hD30Ywj9g1ZcSE99RLbLREpLy9szfNomE+AgOOYO5bTnbw0ivXffCVbKV0n5cUiPApqWe4oImeC6QwZFl82B2fLYKajifqYT9iJx+BWIOixUh5OXgNRUXljXMeqv+Z9sDPp+5WVoLPGRtXF4Ec9xw90AfWvay9ft0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=gj9q6CX5; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="gj9q6CX5" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 57FF5C43394; Sun, 24 Mar 2024 22:47:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320478; bh=PkKaGziWURDv/ulaxnHD5Dgsz+znc2l24h5KSkIa8qs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=gj9q6CX5e4hS0zw2+Iz8Vha903eraQ21UrFLM4t3P0iQTYycZnq2wAAacDmDXNKlB seaZca4SQvikY1MwmxNfPmHM1j7PeTTJt/xap0FZ7bNAxNNDy2DfB6xjM30d9x8Cuk HczitB7OW1XkeKrSz6VIFHuKC+ALYo7CHg7Tjd39qy7H4PRzb9xGTwiUQPBTcq/gJO dRkBBvnTGH/MJYAT9GMgyXKPPyhZCiJGHgEqslyhcuEhabqXtBsLbNw8R7UQ/j1tUD LE5T8fnbT9I6HlLBdXZW7MjcnxtlR9cL+zRpDewqIEsXU3Kvz1fs3e+/YjiP5ZNKjl hpRSndH7shDFg== 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.7 037/713] cxl/region: Handle endpoint decoders in cxl_region_find_decoder() Date: Sun, 24 Mar 2024 18:36:03 -0400 Message-ID: <20240324224720.1345309-38-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 7bb656237fa0c..764998fe03edc 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2BC19768EC; Sun, 24 Mar 2024 22:47: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=1711320479; cv=none; b=imTlHoMx4NkGACXZ9wNwIfIW31MvTzFFoe6RI696WP0pnbb9pN/ELABYH5w6b3M8KkufZCUu+woWYHJq1Xi3cj1oaHGnwziUF/gCwouhRq+vJeIkeHgVaXgQxjOuCkap9GP4XnYpBgY5IlZiipQGedvuWEVpJLEIh5LvAZQ1+N4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320479; c=relaxed/simple; bh=231kPemi6KhrEE+kXp4dfXwlWja7tvS8rmabG6VryFY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=cZIVdqhY0BNg45XxzhaiBUHaFR9+Kjy9dNSA4tGHn0XwIwXkc+q70ydm8MtwcRBObvoik0yBeVnTePin2ZWAzr3TOlqnoGdQ0+CLhDwiZbxPptx57q95PkJb8GV8AbBEcUDZiRvta/2z4tcyplu8UoUz6VWrEFoBNdUpHIpqAn0= 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/Dzm68N; arc=none smtp.client-ip=10.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/Dzm68N" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 55E02C433C7; Sun, 24 Mar 2024 22:47:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320479; bh=231kPemi6KhrEE+kXp4dfXwlWja7tvS8rmabG6VryFY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Y/Dzm68N1uwFDyacQ1ikH/Kz4omlX+3rX0iSqEJVfRhn6RltSVb+fD2Yj1mHgrgsO FUdRjmwg2ciFD+rT3T/1v49fJhCOFf6RmGEVlCmQ1Od3+sMYLayGx6BENU0eY8qTiG 0BHZWgekNjTGlDoHiWeW7cjdjMMJpaJ3fA5AqaxV4KlOfHyzDCpYX5KPjPQdNYqWPJ gwabcaJrUXftbcoDhhOniorB4mjPsLiJxofsH+NSgVaPtQPY+3irGu6AeCFxCLJ4aM 7RhPKhyKlyXmWeJSs8qmUDankBaS7kvi+hvDCw1WxzXJzWOz3wf81/DkJDliH1Zse5 jHhDgiJiL6iow== 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.7 038/713] cxl/region: Allow out of order assembly of autodiscovered regions Date: Sun, 24 Mar 2024 18:36:04 -0400 Message-ID: <20240324224720.1345309-39-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 764998fe03edc..8f0a2507ddecf 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2798575815; Sun, 24 Mar 2024 22:48: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=1711320480; cv=none; b=HJ0LeHvHxNwf2C/4d8lq7hQsCnJvCMtAeEsopk9IdLYapG2BcKoN4AEZ3hptMTW+B3PXLn4O4Jwn8NldpunWiPOhcMfkZ2CnUXqfa6KHvjwnCZ9IWalElNgTCjiT0eRdCIZBSV+W2N+oYPUKKFgP5nsAw1OzZJynbqE0NzUidW0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320480; c=relaxed/simple; bh=45ZrZ9a6InGLOX3zCd/VX2084a+7yRSkog5VZIcOYcM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=SRuE4LbIWcA8qFRJ5tKmtTo24K3mTnoPFxkNYvPmm2BfpmvZVIdVO1uFrhtzhYMd6ymFNUr6/btpJsR4pYvYli5eAviDf7wPKJIDa92xQ256yWVbMSCWViyC2zuu7RrqA5NRgiSaVH+ftAawIBmiAP++al+2K6eaPa8avfx9A14= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=sL3O8u43; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="sL3O8u43" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 50028C43394; Sun, 24 Mar 2024 22:47:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320480; bh=45ZrZ9a6InGLOX3zCd/VX2084a+7yRSkog5VZIcOYcM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=sL3O8u43dvX80ZkH3iJkx5nds1Ieju/GJiQwAQHXCbyQpEvM6ntrqIDflF836oKsA R6NPszQVuW4MU0JsmVVd82zDokTyV5oT1OdxhV/XdvuIHT2oIdC5LNOAjWmFy6weVw ZpuU39sx4pw7AXqCAYidq2OCEjFpPzHZW5KGrwgRIOhQK8i6umhFb9Ok4nNO/UXoW5 LoI9Jqlcyup32/ca6tXQz92s1lnViG8+vlfl764r5SDCiwK73ePbWI1b5YAndPexyh MQOewduWqSCZ+sytHoC9EKlEfez5dzGz/rpLeaFWLpGgYMblTqAiHvFPLdrXV2z4R6 r5rxAmEwtcO9A== 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.7 039/713] perf: CXL: fix CPMU filter value mask length Date: Sun, 24 Mar 2024 18:36:05 -0400 Message-ID: <20240324224720.1345309-40-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E68CB482DA; Sun, 24 Mar 2024 22:48: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=1711320481; cv=none; b=i5V2eHJNEl5sLJPKd+Ttn9DGQesfwXzVI/YRzI1OG6F4qOeR64gu83v4erk3qGR3EW6Zu7ZRfL9ExbM09HlaPEv79XKQUWvcTA8RijP65Sb5Jf9zwug9AdL/ZIqy/i/Gux1uBo8aJCsX6IimOWxQojmaf9Eh0XDg6kRjdHZqb68= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320481; c=relaxed/simple; bh=hQUbd13s4ll9bhRZbwYb/6PahcuZYCN+X3yVUaUpNtA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=M1JO+7g30PXsStEMHj8IXSLfsIBamaUI7mrIN6zM/58F4tLFvBW4mvnpUypQAYp2/tKOGm4TqRd6l0zpNHOVYcoMV9SqP3GUNENgCbElSlOod6ELy5UYSzeOyD05wGMWX9u5WfROp0dj1NY3/gtqTa/1mU/5G1ZYNl3fJl0XQp0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=srSP5sQV; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="srSP5sQV" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4BF74C433A6; Sun, 24 Mar 2024 22:48:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320480; bh=hQUbd13s4ll9bhRZbwYb/6PahcuZYCN+X3yVUaUpNtA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=srSP5sQVGG8IzdJiiiIG6dw9DXmKZFpzArLIQKUt7oxeg8Z96Rhf/7jiyt8e5/pnA YgiIGGe4X3fiY/2dcVPep2jalc/ioandkXYBRqd2D8A+rUAmcUcYVbkTQvi0ZKrzFK AG7O/f3K67Q1UhsFuXbC+jePlgqj1t7LGlLpZQ+Gik159kVgQPT9iyEmnnwld8omAR yH5vWO4SPbt7Ff12rKVqvH/EA9hKR/6VccfhNwA74bUO5F8yQz4Ju/lPsDtJ8DvjE5 kDmCahzH7l2nbzmOqM536oxBr5KIekWBuOPbWK/xkSLXfZ672nmWXvxPqMT8bo90Ed ugIpmovsJWZrA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Hans de Goede , Sasha Levin Subject: [PATCH 6.7 040/713] platform/x86: x86-android-tablets: Fix acer_b1_750_goodix_gpios name Date: Sun, 24 Mar 2024 18:36:06 -0400 Message-ID: <20240324224720.1345309-41-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 bc6bbf7ec6ea1..278402dcb808c 100644 --- a/drivers/platform/x86/x86-android-tablets/other.c +++ b/drivers/platform/x86/x86-android-tablets/other.c @@ -68,7 +68,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), @@ -77,7 +77,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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CB0F07F7DD; Sun, 24 Mar 2024 22:48: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=1711320481; cv=none; b=Edbj5D57ZHVx/ZJ2M9mbtV6tkldDOUZT45OUxe0BrDtHpqM2kmmV7CXoUsQKOKCdV3aqK20DoN/9dD68Qhk5E1X2XvmQZp0zJiCH6yw+Ckzz/hsgF6I0G1g3D28MCd1+eNZExGoXrac9P2D24BxEAsvSbF7x75ozmlPwv7SAZKg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320481; c=relaxed/simple; bh=TtTemqRxFkxr/MdJnK17D0OUpj5P+8iDtZPeja93eE4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=up+Y7B00D5Ag4496XXvdHKiNd/jsZWFJShZz6PSHeA3Zdw29sjFYiU5cqik/lKtx+cZEZlCx2qR8OnZV/rpRpR/xrjP3DiqTGjtf02pO/gAeF7kdO30zkTaPJdkqBFYxcXfe9NhfPZKbgEmBjK/7W/XYxcyWzBWFepWK9CMNKYA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=pnaAXBi2; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="pnaAXBi2" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 16C1BC433C7; Sun, 24 Mar 2024 22:48:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320481; bh=TtTemqRxFkxr/MdJnK17D0OUpj5P+8iDtZPeja93eE4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=pnaAXBi22vINJP3zfF/62JvGVjrot5nguXtuPVtujRdgDE9SYy9PLxn4SPN0R4bz/ ssxbZrTHH5AvCXjlMYQXFtp6chZkqqJN2M9v3gGuNnZ2b5PfbfgbtwYpJgQWZ6XGIi JaAWhLTINc59b5lm2VPg6uUkUA+HZhh1gHDjl5H34UMPbTnWhiaVEiDkolhSEc32eJ WdtA8UB1DYni4t2/c1bhW7KjzwGCl8rOAxD3i6s4che93HxEsSGz3VFM9CoG1k2MNP EMP4nJKMaDU8PMGDSDuZzGtBhD9vyhJc4y/E2xR3Sxi+whijbRLwqPVr6TMkcPd0Og j1bRIeDrK8b3w== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Mikulas Patocka , Mike Snitzer , Sasha Levin Subject: [PATCH 6.7 041/713] dm-verity, dm-crypt: align "struct bvec_iter" correctly Date: Sun, 24 Mar 2024 18:36:07 -0400 Message-ID: <20240324224720.1345309-42-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 4ab4e8dcfd3e2..35f50193959e0 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1C52B7F7DE; Sun, 24 Mar 2024 22:48: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=1711320483; cv=none; b=YiYHX62rO33EnNFijJN3L3fNhGpXK71aWWCaoYMAL9H2LnviSD0Ntu036GRERVu4+VrxQ9wPDW6M7YVsDnvpLigaWtOcp9kmsrUraJuT3P18zHf9ftBzmfRHFM7s6mimhhEVZwg422hvM/eDWtUc0p5E34kZN9Gfe9LOUyuHq6c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320483; c=relaxed/simple; bh=NKk9DfgAyxGXNWdgqcpfsG6GEb2KHxtt6O3UhenhoNA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=LmhHZW12cz/x/wY5rXyeOs0/IJouUieOIQ+lF2nweO87lKi3hkfTTghdCooCPMzwaETK/6XmC59CLKLhft8vKWHI5PXzfv2RQJdo/l6wtLYOZGUtw1MsVX6olEmXsP4WI1Ew1bghbVBltxuu7f11cFTnvwaBSEQR5978yjfLRuo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=mHAlRRNx; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="mHAlRRNx" Received: by smtp.kernel.org (Postfix) with ESMTPSA id F1B14C43399; Sun, 24 Mar 2024 22:48:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320483; bh=NKk9DfgAyxGXNWdgqcpfsG6GEb2KHxtt6O3UhenhoNA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=mHAlRRNxXr5k3TwgvUHO4Wb3zIYaADGyQ7IsW0mn2nx5njw29NBKS6Tf+CsOAxwaq Fw1j11wgfDUvvwSOLr8mTN5C/eXi26w3to75SjF+bW8UX38jmTlA+JDcowTckP74nB fXWPiUie0cK0gLJ+aXpKz50e6Q3l6trb+tYXnMEZzgpnyYfilb8Whw2IkJJc3jpb5d NJdU6tFGS+e5oXBISXNq4+gc/laVYDArJzingFCKQwwQYI4OfhF23GL1NtKn8apF+S qUQ5e5b/5jH2kHJUwvw5l4o7W6P7We87ql5/znIu9FDU3kuCPI9NLQIMUvbz3nNDrs Shy8zqsFpEuVQ== 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.7 042/713] arm: dts: Fix dtc interrupt_provider warnings Date: Sun, 24 Mar 2024 18:36:08 -0400 Message-ID: <20240324224720.1345309-43-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 619367F7CB; Sun, 24 Mar 2024 22:48: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=1711320484; cv=none; b=lzG7LMEgCIdt4E44jUKB+eXG4i1xAIatCQy1DfJtaiXp7tbJijonlW/aY8ClrjRURCB2/Qeo8sZzl+GfjI5BtlZf13FWj92GOi+yNCOjDByL+IrK6yw/FN0OJWGFKpaK/C3k1K9gt1XshiEAKDeJb3klNOTpP8d8LhItoDBSD3c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320484; c=relaxed/simple; bh=x7MLU62vI7O1d2eyk4IUEW2gd5l0YWD/HIw5tn3Wglg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=av5VFglDXGNxmQXGL45noEaASkXa7m92q23rzaaD7i3VAxjHqsQQS/GE9T4fvNjtiSNBcM25JBws/c5vwNCM/1mFpEFapNOtAYXHQDd7LvTCEzvc+7+Fcv2DVnp0tAmI8rBzkLEIIgkQgGqO+RG2E3dURbuLIrspT1s/V9J32WQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Ed1Wls4e; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Ed1Wls4e" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3F2DAC433F1; Sun, 24 Mar 2024 22:48:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320484; bh=x7MLU62vI7O1d2eyk4IUEW2gd5l0YWD/HIw5tn3Wglg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Ed1Wls4e8IBrbuE7DZR+QhRO2W+OPb4Tbl2SWA+MWI6bwBnM7Oc+jim1DGED2POoS NTOf2cS1wT4PyfNcL7ihrCnHmW/VaM7IYNQ16sdkjQScnAEcOY9q5a9Mj1XhzCyyYV kQJXwAGDleeBcS2kIU8kaPBfkZocPaqFA3nM/HRjlN/idfffRakoqHy30nvbpO1b1t MNW+dDqq9OKP68MAJHb3Hy1Ry2Y91ctUiiQs9Xh1DFcTPW/KrAqVujwng7ZzKUK0Ei sBpZo8YVevCL/ad+VAyLURTApptn8jV4iqH/JEoJxTSB6FbL0ChOmx69/mpMvVvREH Ji05qLd7jR0Jg== 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.7 043/713] arm64: dts: Fix dtc interrupt_provider warnings Date: Sun, 24 Mar 2024 18:36:09 -0400 Message-ID: <20240324224720.1345309-44-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 69c7f3954ae59..4127cb84eba41 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9A20D76059; Sun, 24 Mar 2024 22:48: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=1711320485; cv=none; b=MMyU9I5IUBbOyF9/X3XOIvunQkiUmUw2cQtW3xS6TRZs4M6GQU9UXW7ZZbkSZOKqTr16gmTVEjCQj1WB9VItX29SrMPiGjCF2zTrZ3mmSWNG7VcXWi88hixn7q9P8poEj4UxbAke9lWzELboA6HSymw19xcTUzKvWV8ltNdCzEw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320485; c=relaxed/simple; bh=00qCi/EnUJckOaChnHXcooFvowMzbyuYGrV7xG0Hu8A=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Yi4JIRPO0KXOsc4vjvEGLRfkY64O+ipiDhXxxgJzoYFFlViqBmbtg1MPVRAETFjgtr99R5gIS06Dc4DBnSNh/+bkaGFsam0LCNHKV26EXtUY6ZJ8N7PYIYQzyR9KoO+0UdHQyX3Ng82ymf0RJ8roTIhSS2ZiOEDz/enEYS6ItF8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=d+FVra/V; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="d+FVra/V" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7C58FC43390; Sun, 24 Mar 2024 22:48:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320485; bh=00qCi/EnUJckOaChnHXcooFvowMzbyuYGrV7xG0Hu8A=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=d+FVra/Vv/As+Lkt6l2ILTpllumfeziVeUPYgUYMoL1KKU78MvrpCL6TA0T6We4Oy Vu19E//F5p5u5t/O7ZVRa+5fzhPBOSkdNXHnZzej7XhdnfAhmy5DpRqxVP+sYH5pol GFtl2s2pwmVAdAjYgeRP7RIGHVafYGOE8w5UKQajpAh3Sk3W4pm3PUUIZVlTsSX8W0 GH3SSrwj3lCPfLGiGWb/lGw6a2C7UEB8fgh/fxaemDJ13iOF9jzNkAqRmGzPtdCLFX 7KPgBSKDvfXjVqfN1nko8JBG/hB8ZJ7rmP68Y88lYKFcOlAe5OK03Xqdub724aGdOX gmctXIKtt+L+Q== 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.7 044/713] arm: dts: Fix dtc interrupt_map warnings Date: Sun, 24 Mar 2024 18:36:10 -0400 Message-ID: <20240324224720.1345309-45-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 a976370264fcf..fb6764b2dcde8 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 444877F7E8; Sun, 24 Mar 2024 22:48: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=1711320486; cv=none; b=Vvb4aTjbi4kNHyadg0kwz5F3wPh2lHhgbtR7P02i7+GT6yB60Pdoh4TWqOb+dQQFUNOZHuePooJ0K+769OzKbMTZH0uJasWKwbYwxSR4JMqC3KPcZNRkLkhLwbA3juXU24mUOX2L9EA/b5xkJ3xT3jF9cWZMWKGRp1J1HzkHLso= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320486; c=relaxed/simple; bh=MSMHSSINMJYUm8BK2KXGSpQia4mfnHTv+VfS9CXCscw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=duyJchVmpQ43TMMDzisN35sC3tjDPKAnxUr60YYcad1fonryRuk+4mZi+HV7z5mDGYrWiRX5ftssDdbKSrf7M6CTlMyzsO71sns+eVvA7WOcwTR0mInzbMRZ126gPP5GSaZ6WCsfPuppkg3biW0fQIymA4VtQCEP//BwgIGly5I= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=a270KwR/; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="a270KwR/" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 78FEFC433F1; Sun, 24 Mar 2024 22:48:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320486; bh=MSMHSSINMJYUm8BK2KXGSpQia4mfnHTv+VfS9CXCscw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=a270KwR/8ky5g9C1w+2D6W0EEcCPXQmIXqB/vGQYDfGsauFnwLEgOt5BKVBuM3Eng hwyMFs6OVZH137avRDM5VmJAPw+opJpnyc4nIt9bm4rdx2diK71M0B1/ZO5SbO1hkl Yy2kOfQWxREdQDEzsFaZee47ynps/xb3lEYOII76a/YppkvyUWqwQm8HcaOpeeIcJG RLKxXahNnH8NMC433OX4EXYmzK3H8gL8FfgWrcfmeOQtQTGBmhXnu2ulJRKVVqVJ+l aIESGGM37uxx3n5uUtTRj192Vyc4Q12TsPxUTln+HcArD0k/k8ap0RyjMh8COiHOFx 44gD1muE9kzuA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Rob Herring , Arnd Bergmann , Sasha Levin Subject: [PATCH 6.7 045/713] arm64: dts: qcom: Fix interrupt-map cell sizes Date: Sun, 24 Mar 2024 18:36:11 -0400 Message-ID: <20240324224720.1345309-46-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 0b1330b521df4..cf4e501c84bcc 100644 --- a/arch/arm64/boot/dts/qcom/ipq6018.dtsi +++ b/arch/arm64/boot/dts/qcom/ipq6018.dtsi @@ -759,10 +759,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 2f275c84e5665..b33145b756ebe 100644 --- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi +++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi @@ -806,13 +806,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>, @@ -868,13 +868,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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6F2E97F7FF; Sun, 24 Mar 2024 22:48: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=1711320487; cv=none; b=hA7uP12VGygyAmfgW1F6dZzJ3qQrILMIMATddth5MFimrr1wnhmm+rnUhTO53nlOqyOfRf+nK+ACPoWH/Makq5oq4qBG181yD72SkOARvdFXpJJqR4K9vfo2SGek/v46yw2BK0qTPwCgRGIdFDDY0EXdCNLTukR3K2KTYNfe5FY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320487; c=relaxed/simple; bh=Hydcgv3m0EEIxLFQJmaHc1+FBJMwBP1WrXhgZbFNRGY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZRcRWJQCESbVNnHHISETasXsIXy3hUiNoFSCo74KQi05bCQWU6Yt6/AXdW8dCdMnS5xp4EOnmz+tTkkhLpHBAIFpmKa6VCas15D3V9nkQ20fmLnDupYc9hGA/xEbJdQQ+2z3xrJnVL/r2oojU9AYrYE37CqamQGR7UttVlI5zzI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ScMrPyjh; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ScMrPyjh" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5E86DC43399; Sun, 24 Mar 2024 22:48:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320487; bh=Hydcgv3m0EEIxLFQJmaHc1+FBJMwBP1WrXhgZbFNRGY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ScMrPyjhCDXlaesphR9woe9CdyAt4wUhWUE1tTbaNWZTboSHAfBwyV7plyX1Z+gdY 9yAFp4EBK8T/fbgQTX1rycQKu/0ceeT7FAY3dXptUTNohZZOcbVlodwFVGjbPNhXqT elai+R8IKtUSH/uSGndnd2i5ROs1SI2zYHGb4b7bYWHzKcwGb3Dm9QUqbacY0nGqQq yodlTG6VMpmSGzwYCIpGRTm1Yg6bu9jrwnfUDXr89Wpttr/DMbUPkm3ebpbDNi52O+ UuSrDxjQVPCSKXVwkzJgJGxMHYNzRIYh7CJUYQyQF0iJQ+Ujnz/trnxK376/F3S6c3 fJu9mH5YTlR0A== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Geert Uytterhoeven , Rob Herring , Sasha Levin Subject: [PATCH 6.7 046/713] ARM: dts: renesas: rcar-gen2: Add missing #interrupt-cells to DA9063 nodes Date: Sun, 24 Mar 2024 18:36:12 -0400 Message-ID: <20240324224720.1345309-47-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 4d666ad8b114b..b17a9f9307e59 100644 --- a/arch/arm/boot/dts/renesas/r8a7790-lager.dts +++ b/arch/arm/boot/dts/renesas/r8a7790-lager.dts @@ -432,6 +432,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 545515b41ea3f..ec01cc8595161 100644 --- a/arch/arm/boot/dts/renesas/r8a7791-koelsch.dts +++ b/arch/arm/boot/dts/renesas/r8a7791-koelsch.dts @@ -795,6 +795,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 e793134f32a30..af16f251849c6 100644 --- a/arch/arm/boot/dts/renesas/r8a7792-blanche.dts +++ b/arch/arm/boot/dts/renesas/r8a7792-blanche.dts @@ -332,6 +332,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 08df031bc27c9..73ec4d3541541 100644 --- a/arch/arm/boot/dts/renesas/r8a7794-alt.dts +++ b/arch/arm/boot/dts/renesas/r8a7794-alt.dts @@ -453,6 +453,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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5107C7F7DC; Sun, 24 Mar 2024 22:48: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=1711320488; cv=none; b=kp/fOmDMElqKFerPAPYX7rAXoM5EuvzUiNGSto2w3nK+sbz20aBiIxKTvHUjteOu6Fk3SkBaO/0wrijDVVg7stiawPsq7NhTa9fX0XHyQLyafoAi3hCybnduyvLlZWQK41u9nuVRzpiGL3sHqhhDHUyOF/xURBm/EDy8oug0ueU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320488; c=relaxed/simple; bh=F1BWa4jzZKYFHykP4yUqY5Y3/LkmRdmf8Kjmr64U45s=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=a3UacuZWFaM3B20k+2RC6MSq56BEXd1ngb3hc1MIoRrjcvDGqWCKyCCgLVe3N/cg6h9KUP0QHF449+TJVawxhaBxcsoV649QtHYc5Qeh4w3cfVsS+2d6qfN39nuXjdS1q3XTPH8uf1yWJD69Ib2mvKf/FWU/3E3ZWpWKw8YAQ9c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=r0psc4Wm; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="r0psc4Wm" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 456CCC433F1; Sun, 24 Mar 2024 22:48:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320488; bh=F1BWa4jzZKYFHykP4yUqY5Y3/LkmRdmf8Kjmr64U45s=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=r0psc4WmZVsSW2QTPk5O1O5g5/fFypjj5o3BZCMoUj/WW9bldPD8tHqeKR1uQpOM8 vzhro9RwMF1apfsCAeuxRfWG8hWv4CryEZ86I5Oia30K1a5hsOtkWeEhT60szvl/Xq bxS+pOWXgRz2KDI1fAH1nc3sK9pa4fKIKJzx0xdO3wpz0F9wk7VnKGk9z9Vx1SasHf dfFCVor3AmS+i/nX/bJTDqCaa/7uTIwxhD1PKQqp+plhQLBCr2FFaPi4+KRScgI0pX wM7zhbGhxbk3i/8cDf+5OZbUNI3ouITq60At7QthwivbI9CVs1bp4wKC2MDkDb7+PN 1Dyi6uQwQcHtg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Swapnil Patel , Charlene Liu , Rodrigo Siqueira , Daniel Wheeler , Alex Deucher , Sasha Levin Subject: [PATCH 6.7 047/713] drm/amd/display: fix input states translation error for dcn35 & dcn351 Date: Sun, 24 Mar 2024 18:36:13 -0400 Message-ID: <20240324224720.1345309-48-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Swapnil Patel [ Upstream commit 27a6c49394b1a203beeb94752c9a1d6318f24ddf ] [Why] Currently there is an error while translating input clock sates into output clock states. The highest fclk setting from output sates is being dropped because of this error. [How] For dcn35 and dcn351, make output_states equal to input states. Reviewed-by: Charlene Liu Acked-by: Rodrigo Siqueira Tested-by: Daniel Wheeler Signed-off-by: Swapnil Patel Signed-off-by: Alex Deucher Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- .../drm/amd/display/dc/dml2/dml2_translation_helper.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/amd/display/dc/dml2/dml2_translation_helper.c = b/drivers/gpu/drm/amd/display/dc/dml2/dml2_translation_helper.c index 2c379be19aa84..16452dae4acac 100644 --- a/drivers/gpu/drm/amd/display/dc/dml2/dml2_translation_helper.c +++ b/drivers/gpu/drm/amd/display/dc/dml2/dml2_translation_helper.c @@ -398,7 +398,6 @@ void dml2_init_soc_states(struct dml2_context *dml2, co= nst struct dc *in_dc, /* Copy clocks tables entries, if available */ if (dml2->config.bbox_overrides.clks_table.num_states) { p->in_states->num_states =3D dml2->config.bbox_overrides.clks_table.num_= states; - for (i =3D 0; i < dml2->config.bbox_overrides.clks_table.num_entries_per= _clk.num_dcfclk_levels; i++) { p->in_states->state_array[i].dcfclk_mhz =3D dml2->config.bbox_overrides= .clks_table.clk_entries[i].dcfclk_mhz; } @@ -437,6 +436,14 @@ void dml2_init_soc_states(struct dml2_context *dml2, c= onst struct dc *in_dc, } =20 dml2_policy_build_synthetic_soc_states(s, p); + if (dml2->v20.dml_core_ctx.project =3D=3D dml_project_dcn35 || + dml2->v20.dml_core_ctx.project =3D=3D dml_project_dcn351) { + // Override last out_state with data from last in_state + // This will ensure that out_state contains max fclk + memcpy(&p->out_states->state_array[p->out_states->num_states - 1], + &p->in_states->state_array[p->in_states->num_states - 1], + sizeof(struct soc_state_bounding_box_st)); + } } =20 void dml2_translate_ip_params(const struct dc *in, struct ip_params_st *ou= t) --=20 2.43.0 From nobody Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3A898762FF; Sun, 24 Mar 2024 22:48: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=1711320489; cv=none; b=RkKQDQf4AwgKxc5JDwKjlGZVEgHwRi+2ESLMd7UL01jEwu1Xzbx8wUFdJhBKlv4Hg+RFj/y3NBVIcfgYYfFgM9qIOSpFMYpiWVFgIlFOisWnkLkRHtSnwADyTdT1IUWOkhcwrkhrr+H9JKJahG5PtOjCBKV8f14tJMqOsoQ5AcU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320489; c=relaxed/simple; bh=YpUu2CjLMI0+YD/GN0Etjr06QCUFEP9kP/OYotHlol0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=VsZoM6iWFA/HSecHoFCUyKQvGCTy32w+fDHVmafXG4zewoxQvcJiWAS82iKV6LQtUMXK2wheiyjgWo2067DEmAc9FBaQ1nw7m+YZBbAfBzqdhRU/QPyLahg6mv502fgIyQN4OQj6TXT0VCbim/yO28eN6ENnMmioo5gkB6epQec= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=jpX9cKzE; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="jpX9cKzE" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 70837C43390; Sun, 24 Mar 2024 22:48:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320489; bh=YpUu2CjLMI0+YD/GN0Etjr06QCUFEP9kP/OYotHlol0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jpX9cKzEI3aCPFmh0A+oSutEGqKNceuE59ONrRui4OMDBs1yHuTxSNZZdB0EMkWVM 0mUL3bPGJpTz3m2uEg9Vl8Wg+l9Az8IKl5deKsczJr/1YHQH5P0mT+Bjig0OYOE9sf RaRmbvLpeUEwit8Y7JPZRBNUnwiENSzLpoy8rP0gMFfazeLAq4+amHyI3QSGbV2d0A fcboWCdSaoN9R5YylojQRNSuJdN0R+4vFC4pQBj5rKfns+g50NSPNUzztCa6h8nRVA +PunPRNQ8FsZRU4PNfByOYzVOQhsSy3R0izIf48x1g8ga4XbmGYx8RXP1ARACj22Od ua3fC63YJWifg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Naresh Solanki , Mark Brown , Sasha Levin Subject: [PATCH 6.7 048/713] regulator: max5970: Fix regulator child node name Date: Sun, 24 Mar 2024 18:36:14 -0400 Message-ID: <20240324224720.1345309-49-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 830a1c4cd7057..8bbcd983a74aa 100644 --- a/drivers/regulator/max5970-regulator.c +++ b/drivers/regulator/max5970-regulator.c @@ -29,8 +29,8 @@ struct max5970_regulator { }; =20 enum max597x_regulator_id { - MAX597X_SW0, - MAX597X_SW1, + MAX597X_sw0, + MAX597X_sw1, }; =20 static int max5970_read_adc(struct regmap *regmap, int reg, long *val) @@ -378,8 +378,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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 45EB77FBB6; Sun, 24 Mar 2024 22:48: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=1711320490; cv=none; b=MeLaBKUKExlSZmtzh27R9q/ypCbho7rDdserNQLeAdvfNqCwHgF+jY40OlscnFI6vsWdfavtJDHXC4pxIeX4sNTtgy2BfNPdelW1hhT3/o/8BkTxUUJGemvHThx4UhJ8emyj8/mke4hzdxm0tfttmoE1IfiS0jg0QOUolcHUGk0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320490; c=relaxed/simple; bh=olviz3N7KgcKZNdsBQeT6Zs90vm3EAN2EEUiaQCQYdk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Y2icErTe1i0nwVjjHLY1jKBFBqsDqefugOA8CZLFoO4xAhpZHdOWYYI0WqM9G9/1Se9zrVN3nunNNbqjavguE/2eEq3Ea9hDD9lfO/CJ82O9+QBw94CPeyymaZNQa6Q106yDJLG151L8pr90GAKK/eTm8g/pY8eA4BTI+pyHk8I= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=DB3IbRKQ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="DB3IbRKQ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 60EEAC43399; Sun, 24 Mar 2024 22:48:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320490; bh=olviz3N7KgcKZNdsBQeT6Zs90vm3EAN2EEUiaQCQYdk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=DB3IbRKQVo/QZb8A3xHYfMj99sFOQLT0ZQ67elFK7EWVQym/PzCzhyu5VlFLxAdg0 h0UbVJLsXgKe+khG1JK7oekdrpqxbdeni9IjGEt8xFs9QLaRbxAJgs+y+taWZLG/77 36o0+IKBoAWIncP3adnZ9xo8QQuCH/9aZbJLdPB2O1i5R/vg70z6/cNbj3PCtZiPr0 rbWJQwusiR0hYpU3qgwmZQawdDYqp6LxTEV0xZi72nF/uPJBzuIjh67WE3zKjbCAHk byxtjnWEYi4/po1trqwLNqQz6ujdqM8eWMT3Ty3eZGXP+uXss9ASo5RaF+TJn/iCwz 8oohhMygSwuUQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Benjamin Berg , Miri Korenblit , Johannes Berg , Sasha Levin Subject: [PATCH 6.7 049/713] wifi: iwlwifi: mvm: ensure offloading TID queue exists Date: Sun, 24 Mar 2024 18:36:15 -0400 Message-ID: <20240324224720.1345309-50-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Berg [ Upstream commit 78f65fbf421a61894c14a1b91fe2fb4437b3fe5f ] The resume code path assumes that the TX queue for the offloading TID has been configured. At resume time it then tries to sync the write pointer as it may have been updated by the firmware. In the unusual event that no packets have been send on TID 0, the queue will not have been allocated and this causes a crash. Fix this by ensuring the queue exist at suspend time. Signed-off-by: Benjamin Berg Signed-off-by: Miri Korenblit Link: https://msgid.link/20240218194912.6632e6dc7b35.Ie6e6a7488c9c7d4529f13= d48f752b5439d8ac3c4@changeid Signed-off-by: Johannes Berg Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- drivers/net/wireless/intel/iwlwifi/mvm/d3.c | 9 ++++++- drivers/net/wireless/intel/iwlwifi/mvm/sta.c | 28 ++++++++++++++++++++ drivers/net/wireless/intel/iwlwifi/mvm/sta.h | 3 ++- 3 files changed, 38 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/d3.c b/drivers/net/wire= less/intel/iwlwifi/mvm/d3.c index 92c45571bd691..a640860ab7acd 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/d3.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/d3.c @@ -1286,7 +1286,9 @@ static int __iwl_mvm_suspend(struct ieee80211_hw *hw, =20 mvm->net_detect =3D true; } else { - struct iwl_wowlan_config_cmd wowlan_config_cmd =3D {}; + struct iwl_wowlan_config_cmd wowlan_config_cmd =3D { + .offloading_tid =3D 0, + }; =20 wowlan_config_cmd.sta_id =3D mvmvif->deflink.ap_sta_id; =20 @@ -1298,6 +1300,11 @@ static int __iwl_mvm_suspend(struct ieee80211_hw *hw, goto out_noreset; } =20 + ret =3D iwl_mvm_sta_ensure_queue( + mvm, ap_sta->txq[wowlan_config_cmd.offloading_tid]); + if (ret) + goto out_noreset; + ret =3D iwl_mvm_get_wowlan_config(mvm, wowlan, &wowlan_config_cmd, vif, mvmvif, ap_sta); if (ret) diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/sta.c b/drivers/net/wir= eless/intel/iwlwifi/mvm/sta.c index bba96a9688906..9905925142279 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/sta.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/sta.c @@ -1502,6 +1502,34 @@ static int iwl_mvm_sta_alloc_queue(struct iwl_mvm *m= vm, return ret; } =20 +int iwl_mvm_sta_ensure_queue(struct iwl_mvm *mvm, + struct ieee80211_txq *txq) +{ + struct iwl_mvm_txq *mvmtxq =3D iwl_mvm_txq_from_mac80211(txq); + int ret =3D -EINVAL; + + lockdep_assert_held(&mvm->mutex); + + if (likely(test_bit(IWL_MVM_TXQ_STATE_READY, &mvmtxq->state)) || + !txq->sta) { + return 0; + } + + if (!iwl_mvm_sta_alloc_queue(mvm, txq->sta, txq->ac, txq->tid)) { + set_bit(IWL_MVM_TXQ_STATE_READY, &mvmtxq->state); + ret =3D 0; + } + + local_bh_disable(); + spin_lock(&mvm->add_stream_lock); + if (!list_empty(&mvmtxq->list)) + list_del_init(&mvmtxq->list); + spin_unlock(&mvm->add_stream_lock); + local_bh_enable(); + + return ret; +} + void iwl_mvm_add_new_dqa_stream_wk(struct work_struct *wk) { struct iwl_mvm *mvm =3D container_of(wk, struct iwl_mvm, diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/sta.h b/drivers/net/wir= eless/intel/iwlwifi/mvm/sta.h index b33a0ce096d46..3cf8a70274ce8 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/sta.h +++ b/drivers/net/wireless/intel/iwlwifi/mvm/sta.h @@ -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-2014 Intel Mobile Communications GmbH * Copyright (C) 2015-2016 Intel Deutschland GmbH */ @@ -571,6 +571,7 @@ void iwl_mvm_modify_all_sta_disable_tx(struct iwl_mvm *= mvm, bool disable); =20 void iwl_mvm_csa_client_absent(struct iwl_mvm *mvm, struct ieee80211_vif *= vif); +int iwl_mvm_sta_ensure_queue(struct iwl_mvm *mvm, struct ieee80211_txq *tx= q); void iwl_mvm_add_new_dqa_stream_wk(struct work_struct *wk); int iwl_mvm_add_pasn_sta(struct iwl_mvm *mvm, struct ieee80211_vif *vif, struct iwl_mvm_int_sta *sta, u8 *addr, u32 cipher, --=20 2.43.0 From nobody Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 355767FBBD; Sun, 24 Mar 2024 22:48: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=1711320491; cv=none; b=qG6qbhfXQxlweXJ85ygUIABqxmjxGdrL9WAlvZY4EUSTx+7Q6TmvVa06C3QRSDkk142JLlX/poxg22ci2pgnvHPh2VkZEFAHjTkOYYrt4Yywf4KiGiqwaMnAQKF17kbJSREDXMzr4XGQRC+aNKwQocgo7Nfa/vz/m7Z19/7gsak= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320491; c=relaxed/simple; bh=O3gGOkuRyZFboL0fmOL3hrmSbPvbiXSEcZC/rrfIDxE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=T1BVDlAoVO4jQLq9/kWMdbDoNvzxGgzXJ2jwCMpKacwnsUu9Oacr5QXl+etlsaLq9H9MKN6nRti76/1xYjCv1dHY4Gxv2+U5JBmwfWhTED7ewCMBsvnNyZdlGi44zlbXIMTeOdaPF1i84eTCVxrEDkIs6smMPRHN5n5YWwTu7B0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=cC4Kztk1; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="cC4Kztk1" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5E325C433C7; Sun, 24 Mar 2024 22:48:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320491; bh=O3gGOkuRyZFboL0fmOL3hrmSbPvbiXSEcZC/rrfIDxE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cC4Kztk1gliV/Kfy/ZmfSysFD5iox9TcOe21G1IbIqkBQJyOprbOFF2gEmx66hXwl ObWaraxrz5BWB/ItawEN0YMpAMYaZN9l6RPUkAqw/33f3iUCXBdjBUVs26/QyA4zdU u7vMQI5SgWuS91FOtZLpaMWz8tNKaqNq/D+76VEG71D9gnHwqNXD9zzxuzuww1n41Z 0Gg5pN0TWGSjB1r2aZFdcKpgOkGtqtXEwnz4wTFr2Tiy6/M6/G644ZTzn1XrK80sda 4efVHQkuvqz60aiD/td/oDRhM9q6ah0GojbKs5TQE7FN2mnJ2/9w7hwOyl4atztaYy EvuHwsWXeBYiQ== 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.7 050/713] wifi: iwlwifi: mvm: fix the TXF mapping for BZ devices Date: Sun, 24 Mar 2024 18:36:16 -0400 Message-ID: <20240324224720.1345309-51-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 d3433d1bb7bde449035f54b7000361ce151bad07 ] Those devices' fifos are numbered differently. Because of that, we were looking at the size of the VO fifo size to determine the size of the A-MSDU which led to a lower throughput. Note that for those devices the only user of the AC -> fifo mapping is the size limitation of A-MSDU. Signed-off-by: Emmanuel Grumbach Signed-off-by: Miri Korenblit Link: https://msgid.link/20240218194912.da336ca2fa0a.I73e44d5fc474ebb6f275b= 9008950e59c012f33b2@changeid Signed-off-by: Johannes Berg Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- drivers/net/wireless/intel/iwlwifi/fw/api/txq.h | 12 +++++++++++- drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c | 11 +++++++++++ drivers/net/wireless/intel/iwlwifi/mvm/mvm.h | 8 ++++++-- 3 files changed, 28 insertions(+), 3 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/fw/api/txq.h b/drivers/net/= wireless/intel/iwlwifi/fw/api/txq.h index 9c69d36743846..e6c0f928a6bbf 100644 --- a/drivers/net/wireless/intel/iwlwifi/fw/api/txq.h +++ b/drivers/net/wireless/intel/iwlwifi/fw/api/txq.h @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */ /* - * Copyright (C) 2005-2014, 2019-2021, 2023 Intel Corporation + * Copyright (C) 2005-2014, 2019-2021, 2023-2024 Intel Corporation * Copyright (C) 2013-2015 Intel Mobile Communications GmbH * Copyright (C) 2016-2017 Intel Deutschland GmbH */ @@ -66,6 +66,16 @@ enum iwl_gen2_tx_fifo { IWL_GEN2_TRIG_TX_FIFO_VO, }; =20 +enum iwl_bz_tx_fifo { + IWL_BZ_EDCA_TX_FIFO_BK, + IWL_BZ_EDCA_TX_FIFO_BE, + IWL_BZ_EDCA_TX_FIFO_VI, + IWL_BZ_EDCA_TX_FIFO_VO, + IWL_BZ_TRIG_TX_FIFO_BK, + IWL_BZ_TRIG_TX_FIFO_BE, + IWL_BZ_TRIG_TX_FIFO_VI, + IWL_BZ_TRIG_TX_FIFO_VO, +}; /** * enum iwl_tx_queue_cfg_actions - TXQ config options * @TX_QUEUE_CFG_ENABLE_QUEUE: enable a queue diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c b/drivers/ne= t/wireless/intel/iwlwifi/mvm/mac-ctxt.c index c4f96125cf33a..25a5a31e63c2a 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c @@ -31,6 +31,17 @@ const u8 iwl_mvm_ac_to_gen2_tx_fifo[] =3D { IWL_GEN2_TRIG_TX_FIFO_BK, }; =20 +const u8 iwl_mvm_ac_to_bz_tx_fifo[] =3D { + IWL_BZ_EDCA_TX_FIFO_VO, + IWL_BZ_EDCA_TX_FIFO_VI, + IWL_BZ_EDCA_TX_FIFO_BE, + IWL_BZ_EDCA_TX_FIFO_BK, + IWL_BZ_TRIG_TX_FIFO_VO, + IWL_BZ_TRIG_TX_FIFO_VI, + IWL_BZ_TRIG_TX_FIFO_BE, + IWL_BZ_TRIG_TX_FIFO_BK, +}; + struct iwl_mvm_mac_iface_iterator_data { struct iwl_mvm *mvm; struct ieee80211_vif *vif; diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/mvm.h b/drivers/net/wir= eless/intel/iwlwifi/mvm/mvm.h index f2af3e5714090..3be67f0ff74f7 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/mvm.h +++ b/drivers/net/wireless/intel/iwlwifi/mvm/mvm.h @@ -1574,12 +1574,16 @@ static inline int iwl_mvm_max_active_links(struct i= wl_mvm *mvm, =20 extern const u8 iwl_mvm_ac_to_tx_fifo[]; extern const u8 iwl_mvm_ac_to_gen2_tx_fifo[]; +extern const u8 iwl_mvm_ac_to_bz_tx_fifo[]; =20 static inline u8 iwl_mvm_mac_ac_to_tx_fifo(struct iwl_mvm *mvm, enum ieee80211_ac_numbers ac) { - return iwl_mvm_has_new_tx_api(mvm) ? - iwl_mvm_ac_to_gen2_tx_fifo[ac] : iwl_mvm_ac_to_tx_fifo[ac]; + if (mvm->trans->trans_cfg->device_family >=3D IWL_DEVICE_FAMILY_BZ) + return iwl_mvm_ac_to_bz_tx_fifo[ac]; + if (iwl_mvm_has_new_tx_api(mvm)) + return iwl_mvm_ac_to_gen2_tx_fifo[ac]; + return iwl_mvm_ac_to_tx_fifo[ac]; } =20 struct iwl_rate_info { --=20 2.43.0 From nobody Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 66E437F7D6; Sun, 24 Mar 2024 22:48: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=1711320492; cv=none; b=Hi7alKC/cfx2nL+IXouuikTbsU2wG/9rWRvVBmOKIe3fmR8KJTmAVw2pX2OQ/XQLFqH0ciBXcIhkBlQvlMrS5wWg+uOH4PsWx9JFH51tkDsU+rKJVkEkAjGeXPHlgnV4lYMzBQP/Auh0yZNQ4GXBWJdoOtHl1A18NvKj0trSaDY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320492; c=relaxed/simple; bh=vOIDdeDxdOI0karp+xCw4ebzSWVXYKI3oMsxVYitKmI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=F7UnEx/gJUTzXO2qB844ee7/77JKHf4YKErIPKMso+wXIuq/HsWX4l6PZCRjeijjTBhcQC9eBtjjeAMkXefiZHmqHfPpf6iphFgiC8w+A9G1WrwC0lEmqGIynJxTOPgZbi6Kj6YbC92jhvHo8j1ZVR+3D1TdIMRdJKNU6Cd3tN8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=drkJB0sr; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="drkJB0sr" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 59CEFC43390; Sun, 24 Mar 2024 22:48:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320492; bh=vOIDdeDxdOI0karp+xCw4ebzSWVXYKI3oMsxVYitKmI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=drkJB0srBDBGlhAsUfB5261i06MGd9xWqMUuVxuaGRLBCG4EYloNUZD3GUH6b/z+D mfJQIREIpO4s5PotHeBUlW+lL4yYoJ5Jvoub2zPxCzGCWxridROwJ/OMghTHGjA+Dj U+Bfe50ny1tJs4VGu0i4vQDvQMQSDHB4HmdokvpjyESc30aA0I1ql1AAmyvBfoVgLN tqqO0JeJjwLfStJk6+fXIPJtTCV5jGPoZAcwzr0VL1MizKjKPSyfu+0uXSw5ZYO8b5 XHklKD28EghH2dt0NiPklm5Rxx2YK0+f+69Rx/XOWP9pps2mbwjn+z/+LL6CH/FFbo 0R10p43mbytJg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Johannes Thumshirn , HAN Yuwei , Boris Burkov , Naohiro Aota , David Sterba , Sasha Levin Subject: [PATCH 6.7 051/713] btrfs: zoned: don't skip block group profile checks on conventional zones Date: Sun, 24 Mar 2024 18:36:17 -0400 Message-ID: <20240324224720.1345309-52-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Thumshirn [ Upstream commit 5906333cc4af7b3fdb8cfff1cb3e8e579bd13174 ] On a zoned filesystem with conventional zones, we're skipping the block group profile checks for the conventional zones. This allows converting a zoned filesystem's data block groups to RAID when all of the zones backing the chunk are on conventional zones. But this will lead to problems, once we're trying to allocate chunks backed by sequential zones. So also check for conventional zones when loading a block group's profile on them. Reported-by: HAN Yuwei Link: https://lore.kernel.org/all/1ACD2E3643008A17+da260584-2c7f-432a-9e22-= 9d390aae84cc@bupt.moe/#t Reviewed-by: Boris Burkov Reviewed-by: Naohiro Aota Signed-off-by: Johannes Thumshirn Reviewed-by: David Sterba Signed-off-by: David Sterba Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- fs/btrfs/zoned.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/fs/btrfs/zoned.c b/fs/btrfs/zoned.c index 3779e76a15d64..524532f992746 100644 --- a/fs/btrfs/zoned.c +++ b/fs/btrfs/zoned.c @@ -1661,6 +1661,15 @@ int btrfs_load_block_group_zone_info(struct btrfs_bl= ock_group *cache, bool new) } =20 out: + /* Reject non SINGLE data profiles without RST */ + if ((map->type & BTRFS_BLOCK_GROUP_DATA) && + (map->type & BTRFS_BLOCK_GROUP_PROFILE_MASK) && + !fs_info->stripe_root) { + btrfs_err(fs_info, "zoned: data %s needs raid-stripe-tree", + btrfs_bg_type_to_raid_name(map->type)); + return -EINVAL; + } + if (cache->alloc_offset > cache->zone_capacity) { btrfs_err(fs_info, "zoned: invalid write pointer %llu (larger than zone capacity %llu) in blo= ck group %llu", --=20 2.43.0 From nobody Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 99A607FBC6; Sun, 24 Mar 2024 22:48: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=1711320493; cv=none; b=JOsB+waRGN5eKMj0wG4gAZ0rFgq6zYrHeKo+/ZMbpP9UsPWrGdGqyGdYeYeUQsFgYlb7Z2PHox7DLVIxWhH3i1+SnGyxOCOTWQnBvA9XmSsWhw2FKog1qv6zHFafvwTsQxodjMPXCx1wWkFvWiCYoZQE9lOEcOcfvIJFnfbJc70= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320493; c=relaxed/simple; bh=FeLXSRH5MrZXssstwnUB/Rzv8X+nQ2QakxDD8feExpM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ArMDY2a91TEI20DPRgzkrXdlqwc/ATsqszl2VqZIcmPX+nlV+2hdZQddnDzaI3vL1DhY2MbiMkkALqJUHCZ7AsWlNACXy1LmGfUxm75KqJMAfhAG0QVgexl0jtA/Ud2FpX6Ge0Shn4P3UhnFW9q5E73lJGSbGFtwAjn+BwbBTtQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=SeUoEN24; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="SeUoEN24" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8D196C43399; Sun, 24 Mar 2024 22:48:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320493; bh=FeLXSRH5MrZXssstwnUB/Rzv8X+nQ2QakxDD8feExpM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=SeUoEN24ZrhsQARANXbQZ/b+jq5iGAZ7VM/mxAUytxHIrcTTo+2knok2IclVYpoKa Y/I1CAOlSIpK9sw4Hfsu1sm97OiDpVQmt+UahmDVGTr1krcgc9mKskTOFk19Lljbws jNGdyMy52vRafgOanxhxsV5VdU/fY18XNoy5gRhLeomrnNmrdW6e0zTJsgYcpjQF+N hMgpj4Nunr19XY6E+YgkDEr0cfpQ0yAyfNkKNrEPjwWXjwkjDEsbZdDuG6TzJI+kJP y2O7kxiTkDvu7o5NC/5Dcve+muMtqqsz+VpFg7B2le8OzT8ihUocOAy6n2APhmOdyb 4SSr46fWKYpgQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Filipe Manana , David Sterba , Sasha Levin Subject: [PATCH 6.7 052/713] btrfs: fix data races when accessing the reserved amount of block reserves Date: Sun, 24 Mar 2024 18:36:18 -0400 Message-ID: <20240324224720.1345309-53-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 571bb13587d5e..3b54eb5834746 100644 --- a/fs/btrfs/space-info.c +++ b/fs/btrfs/space-info.c @@ -856,7 +856,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; @@ -956,8 +956,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 @@ -1173,7 +1173,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 @@ -1185,9 +1185,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 @@ -1207,16 +1207,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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3ABBB7FBC4; Sun, 24 Mar 2024 22:48: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=1711320494; cv=none; b=dq8KyZSnAnlE8WeyyzR2+wrB4qXhIqeuRpSI2RRHN8HXsmiVSq7gfb1NyoBJ3HkKP/YlABEYoQtEycucUU1vIckeq8Spuho5PfJAwzlDpxC4DyQ6xeMMoRmVaXyCg/miI0hlVzJJD5Z3jN66sXApRtJee9mUZar5CZVXKnVG/Ok= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320494; c=relaxed/simple; bh=v/GqwctWlG2sHaK90uHM0kIohRdym6r35L14FSDIhDA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MXsOwYam8gYirdJgc0OWnmm/MJCTCJKjUQZFj9bS4HWvJnudFkf2zYwbtMo7jupTg6I/2VvT13o6G6IKkq0TzzxBbB6LiVK9ZWyKhDjSdN+QmX8GLnmHu+UQfZ12UWuSC/D9WkfoKkXvWIuEb61AtJ9zr59rkNVlg2DmIH0f2Eo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=nMkZqIbM; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="nMkZqIbM" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 761E3C43394; Sun, 24 Mar 2024 22:48:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320494; bh=v/GqwctWlG2sHaK90uHM0kIohRdym6r35L14FSDIhDA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nMkZqIbMNJQh4E/78wOl7aL0mysP+GEpCGxy9bKRHIV238aDjPCm7AT4ZVu6X/C6X pAHMSSiBXf7aew8qJ42JT0QqC4MBzO+RLnFKzteMfgtN+tOFkhCNKlMm3QWyaFInD5 +zcJkwnePTc8jTZg2YtieG4dM2rGu5ibZ0z4qWTsbBBPJ5VoPqyzWoTKtum8hxDxM2 ofOmMkWePTcuypEoXdVTlaX0IrbgLHWUOHBhEoE2UkjMX9i3+vb0X+b5jtJYXkDmXp 9jMmivLUYNnAzHiIaeAkGqEG9637bZuNpWZwkPYDuqU3SvioNw5RG0E1VDCTGehUm8 ra3gvw4DRP1Sg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Filipe Manana , David Sterba , Sasha Levin Subject: [PATCH 6.7 053/713] btrfs: fix data race at btrfs_use_block_rsv() when accessing block reserve Date: Sun, 24 Mar 2024 18:36:19 -0400 Message-ID: <20240324224720.1345309-54-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 ceb5f586a2d55..1043a8142351b 100644 --- a/fs/btrfs/block-rsv.c +++ b/fs/btrfs/block-rsv.c @@ -494,7 +494,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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 391637FBD1; Sun, 24 Mar 2024 22:48: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=1711320495; cv=none; b=tR6oaxXAHje3ysYQKcM2OPp/3E5A84gMj4sB+S8M3IT3/r25IjrvEth1r8B7Ueh6QvGDxkp2OuoBedYgHXTSv4+G/MkqW/pwoy3dMFOWmNktoEOEuNXL0FvAVEHsKUAbeUT5BQ7QhnWaY58SlMIHYdTWyeyu1SvQcjNqT1LLL4o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320495; c=relaxed/simple; bh=kifoJ9eFImu0n8wwJjHxP546xn+Rp7wiVvjJnpRAhdE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=bQKrMVgZcpBXVwVGFlZOw9NXNJyEJTbvHGem8S2LAvZDyznSjBTp5qE7Afwlbiy9Ewk8eiaaj7IpIUkhUZddOUTSzSdSiZaZUxBqv0ilPwthhUJk7c/oIXUO52Lc8946ONTdgq6ygKFJDnytmQEIumlZs4/c0xD7a232hmT05vQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Vn/sk8hu; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Vn/sk8hu" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5F31DC433F1; Sun, 24 Mar 2024 22:48:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320495; bh=kifoJ9eFImu0n8wwJjHxP546xn+Rp7wiVvjJnpRAhdE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Vn/sk8hukyRbOydgItX4PyBsoEJtvuUsriDJFTTw88Umil0TvFqsg4MtSwuGQwd4z 9RrQ9eBY/pvrrNwGFP/khZUFFP9bCmZX7eD8wM9ERYgZJAWj8WEfqDPkwv1jOAyKnd SvS6sRGw0WuBJOVNxB5dSux5c0Hu1zcuz8G62YOJt6gJKr91kby2WNVSW6OFNGGpZy 3fbzbKRgb0wSSspo2J1hL49w9PjGBXiEGHiQfkU+Z1DdBCPbykFqVI8G1lYYv8ZMFT 7NGCEMDAet3Im3PYZA36kqIDRwxUcbSfBVMaH9iER3952sx/jGKUXgfTfQzwxoRcL2 VHikqPwK7QJDQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?Th=C3=A9o=20Lebrun?= , Dhruva Gole , Mark Brown , Sasha Levin Subject: [PATCH 6.7 054/713] spi: cadence-qspi: put runtime in runtime PM hooks names Date: Sun, 24 Mar 2024 18:36:20 -0400 Message-ID: <20240324224720.1345309-55-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-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: Th=C3=A9o Lebrun [ Upstream commit 4efa1250b59ebf47ce64a7b6b7c3e2e0a2a9d35a ] Follow kernel naming convention with regards to power-management callback function names. The convention in the kernel is: - prefix_suspend means the system-wide suspend callback; - prefix_runtime_suspend means the runtime PM suspend callback. The same applies to resume callbacks. Signed-off-by: Th=C3=A9o Lebrun Reviewed-by: Dhruva Gole Link: https://msgid.link/r/20240222-cdns-qspi-pm-fix-v4-3-6b6af8bcbf59@boot= lin.com Signed-off-by: Mark Brown Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- drivers/spi/spi-cadence-quadspi.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/spi/spi-cadence-quadspi.c b/drivers/spi/spi-cadence-qu= adspi.c index 731775d34d393..4b2d42e54f568 100644 --- a/drivers/spi/spi-cadence-quadspi.c +++ b/drivers/spi/spi-cadence-quadspi.c @@ -1927,7 +1927,7 @@ static void cqspi_remove(struct platform_device *pdev) pm_runtime_disable(&pdev->dev); } =20 -static int cqspi_suspend(struct device *dev) +static int cqspi_runtime_suspend(struct device *dev) { struct cqspi_st *cqspi =3D dev_get_drvdata(dev); =20 @@ -1936,7 +1936,7 @@ static int cqspi_suspend(struct device *dev) return 0; } =20 -static int cqspi_resume(struct device *dev) +static int cqspi_runtime_resume(struct device *dev) { struct cqspi_st *cqspi =3D dev_get_drvdata(dev); =20 @@ -1949,8 +1949,8 @@ static int cqspi_resume(struct device *dev) return 0; } =20 -static DEFINE_RUNTIME_DEV_PM_OPS(cqspi_dev_pm_ops, cqspi_suspend, - cqspi_resume, NULL); +static DEFINE_RUNTIME_DEV_PM_OPS(cqspi_dev_pm_ops, cqspi_runtime_suspend, + cqspi_runtime_resume, NULL); =20 static const struct cqspi_driver_platdata cdns_qspi =3D { .quirks =3D CQSPI_DISABLE_DAC_MODE, --=20 2.43.0 From nobody Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 21CD5482F4; Sun, 24 Mar 2024 22:48: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=1711320496; cv=none; b=fzILjs1rWINnjy7kp8zOB1H2gyDkmYn0a/MXlPDGMPsglESZoNckyu7XZnVP6cSjFqg9m3Sdrfvp+J0+Nq6qo0sTvdx8W5o4WCrmRFBHFN23atC2XrUmuXXgpLdT/B7r0rT78pUtnGl6xy21g8d90tKkGg4GtvA64b9FcrI0pac= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320496; c=relaxed/simple; bh=56cDsqFOGwW5Ckc+DVvS50eIfweND0EvI8zRDNwLbWU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=cXdfU/OBRZccwg2mABm0eCkkQFdypxRco7zWf9klraOFXXcaCjduY1KpoKgB0gyhtxBmiyt1XFGYL7LTPdz2V1Pp3mCFYCYof+qWi9i+zwcvHROYQB5YZ/5iyqyfaNJeoaWvKyclNoEs8IRVY89+TUcZECQVES3sy75PiwZwO+Q= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=GHB52tM0; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="GHB52tM0" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5C23FC43399; Sun, 24 Mar 2024 22:48:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320496; bh=56cDsqFOGwW5Ckc+DVvS50eIfweND0EvI8zRDNwLbWU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=GHB52tM0Nzg1JR2/TQoqlh9wJpKBac7dPqDJcM7Ty4peXCszti8rYQ2vx6L9ikd2p aQ+WX42gr2ecS05eElhwmaAr+nMu1o1Ol9zkN9M1rtrfJ/yFCfcQA2rhMcJyHtu4PF SCwmpel0FKmR4rXyMwgX9tuFdUQ1mqgf7JJcNAqLCbxhgTFWmNR2F8Fo6t+HeMKXxJ txIca3M6jPq0BnVcx/411LCmSVVuaCT5xiSW3/uaZR945WPAuRWlOAGPkE4+WS1vVx n06n+GWO7BtGvVz/JGu7aZr6S9th40mnHWkgSbn50jWaFxtHB8FWmvTt63ChnidkYv jGaWjLR0Fcf2g== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?Th=C3=A9o=20Lebrun?= , Mark Brown , Sasha Levin Subject: [PATCH 6.7 055/713] spi: cadence-qspi: add system-wide suspend and resume callbacks Date: Sun, 24 Mar 2024 18:36:21 -0400 Message-ID: <20240324224720.1345309-56-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-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: Th=C3=A9o Lebrun [ Upstream commit 078d62de433b4f4556bb676e5dd670f0d4103376 ] Each SPI controller is expected to call the spi_controller_suspend() and spi_controller_resume() callbacks at system-wide suspend and resume. It (1) handles the kthread worker for queued controllers and (2) marks the controller as suspended to have spi_sync() fail while the controller is unavailable. Those two operations do not require the controller to be active, we do not need to increment the runtime PM usage counter. Signed-off-by: Th=C3=A9o Lebrun Link: https://msgid.link/r/20240222-cdns-qspi-pm-fix-v4-4-6b6af8bcbf59@boot= lin.com Signed-off-by: Mark Brown Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- drivers/spi/spi-cadence-quadspi.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/drivers/spi/spi-cadence-quadspi.c b/drivers/spi/spi-cadence-qu= adspi.c index 4b2d42e54f568..1a8d03958dffb 100644 --- a/drivers/spi/spi-cadence-quadspi.c +++ b/drivers/spi/spi-cadence-quadspi.c @@ -1949,8 +1949,24 @@ static int cqspi_runtime_resume(struct device *dev) return 0; } =20 -static DEFINE_RUNTIME_DEV_PM_OPS(cqspi_dev_pm_ops, cqspi_runtime_suspend, - cqspi_runtime_resume, NULL); +static int cqspi_suspend(struct device *dev) +{ + struct cqspi_st *cqspi =3D dev_get_drvdata(dev); + + return spi_controller_suspend(cqspi->host); +} + +static int cqspi_resume(struct device *dev) +{ + struct cqspi_st *cqspi =3D dev_get_drvdata(dev); + + return spi_controller_resume(cqspi->host); +} + +static const struct dev_pm_ops cqspi_dev_pm_ops =3D { + RUNTIME_PM_OPS(cqspi_runtime_suspend, cqspi_runtime_resume, NULL) + SYSTEM_SLEEP_PM_OPS(cqspi_suspend, cqspi_resume) +}; =20 static const struct cqspi_driver_platdata cdns_qspi =3D { .quirks =3D CQSPI_DISABLE_DAC_MODE, --=20 2.43.0 From nobody Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 078247FBD4; Sun, 24 Mar 2024 22:48: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=1711320497; cv=none; b=DA31F9ND8olypBoc9qdu37hxos7Wagn1GrjoP/3HoHCbZ2+36A706nit+5JXXTAgIg82Fdny84k0VeeA9X+ecRufCLAxZC5Zrnz7i3BbfKP4b9+C5mrve5BWtaV8fooRsPYh75aTmyo1Z0MYjZPI5TuS6/GeiU3gg9+vYnazO7U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320497; c=relaxed/simple; bh=d+U/DMyqrJmz9isk37XQbdH4HzIhR5FvXPZ0QF5sqY0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=aZ1lIL484fyrFHAu+JxbjG5jkaR7fBUTPK3tmYzRHDCYJRpo8rf7Ua4ntpgt14bLIHWswnFIaZv3r2RDMF4KcimQqJ6cnQUnANg3BZeC3W+13blLNBVi9eX/GyrWcVChHLXXmRNJ6jI8UjojQEDnSGNmqnM1QyPB1MdBPG6NI8I= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=n9WEDvkF; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="n9WEDvkF" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 45641C43394; Sun, 24 Mar 2024 22:48:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320496; bh=d+U/DMyqrJmz9isk37XQbdH4HzIhR5FvXPZ0QF5sqY0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=n9WEDvkFgXAwys3Lht6ES1yXnFl/UwOG3Unq1nU0NxcUfJ+8wlNlZv8ud5c9zeuNm 1W2pZfcOhdoO54AlZ1w8qp3/BgfiEOdkx9EBCaRGpEmfT2ZAMCkdU7Sg4oX/1qVFgn TZh2TxscAmQZMvDtekPdW4x2+KChsPTTIwKwor0D7PwX4NTLut/4hL4QWF11yHAQLX tAW7OdAUmlvg8M9szuqDPIeqQ2GtLzfAj1Uezqp3qvWCLcEVVH97+S+E5L1urIpDSj zf41RUnob/iPKwNMA+5whWcqTfkYtZKxDXYbJjcv6X5/LYB9wV/Zsdb+wqkLquM3az 0tywKj4ObgsNQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Andre Werner , Jakub Kicinski , Sasha Levin Subject: [PATCH 6.7 056/713] net: smsc95xx: add support for SYS TEC USB-SPEmodule1 Date: Sun, 24 Mar 2024 18:36:22 -0400 Message-ID: <20240324224720.1345309-57-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E3E327FBD2; Sun, 24 Mar 2024 22:48: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=1711320498; cv=none; b=QLyFLWTe+lnZE2vDY9BwhiFzArPLxUblXQSsWJYJv3El0XhOljrcnFloa30Xe9CsY+Kf293FEspJHPA+kgxYjdiPURiIRUsWNPzohonukMgUl6YtB4MXdn6cbhOtMFI0Vi4vAZS0mtVWIvaxADiafgSlQdBsfpjfp082JvpAeVY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320498; c=relaxed/simple; bh=S9i6rVDTLrc92ZdyKfg4Ixk7H6eGpB3PH6E05e+MPh0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=N++JXEKSteaggI7ej9qVLQvBFBjIAoI9/+Ad8OLlNM91BNs9kKOp35h+3AbP3mBPn4MmNvXk/jWrVGI+/ZM+3xrnRhPx9f6eettgNyYUO8cSzHcsqci5h3k9YdfFzZ/vrzwOFZhZsuaum1WI5f1CVsIEj1nQ/mBk6I1Uc38kArA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=A42dBByA; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="A42dBByA" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2DB92C433F1; Sun, 24 Mar 2024 22:48:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320497; bh=S9i6rVDTLrc92ZdyKfg4Ixk7H6eGpB3PH6E05e+MPh0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=A42dBByAGWn8aDqIx1S5EbWtO1GukNi3nlv+TQOOUKkpWjiO2uBMa5VYKqv7ZyVlz 0YIbZHUXlfM+C7EcNta2DcuUejeJQgWT3MkTiAWe4Y9lNA6X84AyZC+aCkwBSiYi56 fUtLWPIOgxpgzr/WYqhkkwoUpCQHlgoLzId71ztEQVrQ3oVCshuEE6ALUgLMThywhE xF0viWq+xMb04B7WETuiz1mE2z3CMcqJUb4Jiq5osrJFozz8oQQtm6iypt8pLnjKY8 vVHeVHIsFsz7LnoU2ggqu3kMcqxePLn/jw3wpX9YtJUHymhGU04xyFS1kEf5PUB2Pg KbWFjGmHyjJEg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Felix Fietkau , Johannes Berg , Sasha Levin Subject: [PATCH 6.7 057/713] wifi: mac80211: only call drv_sta_rc_update for uploaded stations Date: Sun, 24 Mar 2024 18:36:23 -0400 Message-ID: <20240324224720.1345309-58-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CEDFD7FBDB; Sun, 24 Mar 2024 22:48: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=1711320498; cv=none; b=fX6WJVfW9vkwKhV+EFlttOWKiY5T1PugN26geQwP1APVZ0cKcvLHyo7k7eyirfJlUfG12L/HUW02NuZWZK7CErygEyMJKItsXKG7VGBEr/vcy0jwziWSMfnnoKsZmkLW+LP0akOayrDou669i1se5/gvRSG0YEXPuL63ntvzSrc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320498; c=relaxed/simple; bh=C3JXHkC8QSlxMQacEgZP+jIDKkUrjVb3FnkXfTRxrtw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=l40/+8vHYXbss6pknwiP1m3VSjN1U97bPSSrdIEh2XmBGW/LAknGVfJbeZbDFzJtvxI+YQqyL4LLhI/7kSKjsqkUgeN0n+Y6MkH0l+Kl8cmyBdNi7RLKtjSNInFV43odMluEc+6ymDJAVKIdK8yT1luOhQp/rNcTBRmespUQEYA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=nXNdmKN8; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="nXNdmKN8" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 161A4C43399; Sun, 24 Mar 2024 22:48:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320498; bh=C3JXHkC8QSlxMQacEgZP+jIDKkUrjVb3FnkXfTRxrtw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nXNdmKN84Cr2nohznlDZqZbcwNDHiauo/iG36bkcCQmz7/KnyXOH3DjOaIx115fDY InaX8X6wZVFqFJ0YpqDBl9D8MnL91HTKpwGjq4OJqg58GyFtfz6FEOs4M18ClyGFtK YW8YTz4YFB0jwnCgBeDsCQPFpMdYG/OAR49V9QSyMF8EXvBb3N5QCa7TeahCeJvImT qYu+Mf7KRMPQ7+Zep4/O0NpET811RA79EPztWmxLQ/wODw8lSQSayccK6NI5w4YObO D4g60YAiA4GFxzfyG1h9f5SYQd65a8PzXy8FyMaNqZ9eS0j13G3kB8SgeauF9EaVkn ilqS09sSIB9zw== 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.7 058/713] drm/ttm/tests: depend on UML || COMPILE_TEST Date: Sun, 24 Mar 2024 18:36:24 -0400 Message-ID: <20240324224720.1345309-59-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-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: Bagas Sanjaya --- 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 3eee8636f847a..9b079f3a1b811 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DEF5B482FA; Sun, 24 Mar 2024 22:48: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=1711320500; cv=none; b=bFzi2s8v0khdiVoLAVjaak0KNgNU8Cj24EqOYK0Y2gkUwfFkJWyW0yZ1XxihHtrjGdz5B/Y1+jCrlZ76abh7rqzrzkLEHvJ622UTKmkQzQ0hzxUHfEHoewTOTWVFY/nXQf/Joo0mUUAwZSsexqO7RCmqz3hZ9p/3cE7N41QJkzM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320500; c=relaxed/simple; bh=oZM8KMIQOEe1NkhuP82yx6UpYRUZXW+a3NEGlch/gKM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=BkpOSE3w7r+slzTZBTrkSWgVzSDNHyKu0zAz2WjmDfzBJK63PFW5uV+RtqO8BMVFC62CrbuPB0COv1s3AmbMjTbw5RuYgv2lThU/e8JX6RE0Uwqk7KeiXY9aNN1HnpSor8QWsRjSxjlZfZ/vMfJLziL45ehaoOW6udfn9N55QnM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=qpNYx5ku; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="qpNYx5ku" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0065DC433F1; Sun, 24 Mar 2024 22:48:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320499; bh=oZM8KMIQOEe1NkhuP82yx6UpYRUZXW+a3NEGlch/gKM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qpNYx5kuJwyRxVvFzvkGMT1mM1N2Qnfx6NI3PQ6yD3tcVZn46vtLZkwO9kZ6jMprD WPAb1WDAqy+Bf4pI5srCkZ7z++/DkWBnSvdw+XSqDkhLsnL8BUV01WpISgBoIzvOQa eKj6ezZUZ8DGU9GRbCHyGRadeSf0UicuqNi4jPVooOCn4UY9jsYoERrN513WErcPUF fTKZ0WUU5Q3daPIgz0UWfm4AP8myQ5uNhiWM5pjypjUPR8vxSHSduxBhpFd3EmuYiK K/5l3Vl7iD+M1GFkezD0rzN9XXwJOxrQluY0OGDUAzU4M6fhBu4RmbE6xI6I22eWEy jDrJTROqL0rvg== 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.7 059/713] ASoC: amd: yc: Add Lenovo ThinkBook 21J0 into DMI quirk table Date: Sun, 24 Mar 2024 18:36:25 -0400 Message-ID: <20240324224720.1345309-60-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C53C17FBD5; Sun, 24 Mar 2024 22:48: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=1711320500; cv=none; b=c8lgFv4SeWbAnzulFImR2TSH2QwyQ60RTgcL1akCtvhuPneUds+WiOFK7+yl5x0Wgdw7wvTGrtV7NAcL0o0JlYHYjb5etZDph1wudVb5TiaVr8tt56xkhh5Jg/nV7saGXIJU5S034FQNxQovZgZJKH6s7ZDv6FijYCZ9xSSkZSI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320500; c=relaxed/simple; bh=fcYzSLOFq5sMLBWQn8a4zJLsYwI3TPCX+aV1ze6z2EI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=eta26/otKTTPvFB5EabiglySw7olIoVnp52ApFvTgJ1RcIhTjaHxJ3BSx8RtGYa4tsEwzo1SRPSdHTXzmaPY3E96dQoWAaWQ9XORwGwW5xm+dzdFe5Ywa9z+PKq9LA7eSlaT0tU0FmimHdijlk76GFtSLSpBaUju6Via6g4LzNQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=PR+EnOr/; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="PR+EnOr/" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 044E4C433C7; Sun, 24 Mar 2024 22:48:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320500; bh=fcYzSLOFq5sMLBWQn8a4zJLsYwI3TPCX+aV1ze6z2EI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=PR+EnOr/NI8iDeFStYQD71CgeSpbSMgSzNzF/KI8yFDWlQdalV1pw3BPeghKyGpxK 4NqPZ0fGX3HHo/vfuzBtCJtjxCNyt8YzhLdfvtT23N9ALbUpIOcTYylssXKhrobPZ/ n4d3HR189FQA/9KdrDo2GxwMA7RqBPBsi1M0/xPKXxmgmFxhXZppDSp8M2igXucyPX b7FfWVMg1VEZrIucTl8S8ieui6RW9+snQj7G6ehbh/fqUgwBsKSKh5omxXAOhE+5Yk m2RGxjyQftx5cQPWlPnAuvEvxcF54/V4KS03Y67GOw7ErE2Rtmgd/sOrWYqZZP4kJw KZKM53vjdP0iQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Ranjan Kumar , "Martin K . Petersen" , Sasha Levin Subject: [PATCH 6.7 060/713] scsi: mpt3sas: Prevent sending diag_reset when the controller is ready Date: Sun, 24 Mar 2024 18:36:26 -0400 Message-ID: <20240324224720.1345309-61-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AA2617FBDC; Sun, 24 Mar 2024 22:48: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=1711320501; cv=none; b=smNlBQRUSndkz94EWwzVzdKpBVQcz0PfZJgthK2RuNGAUCwtBKoPzks63lvcYpCl1+yP2f23Wh0YMSRvejzH0FqNBv+8n5cUR07vN8eeT4krgXWf1xWDJ4f4Zjy7KO6zWjXU17WfYFDau0FlbRrUcIAFhyiy5yNoQo53WVf1gIQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320501; c=relaxed/simple; bh=qExPU8C2HXd+ID3W+ZzNQdWxRTKsDvz5q7M7trnFqHc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=CAHx175tClX4ET0TP4l3VLkDnsSPu1pME5kmREQIgeKRn30XwyH7qZXzl0y/Ni1TN+jtskiSwb71mjT4Woj4bN0qCJiY4AUhbxvEZXvlXC0EsXutTgwOkpBe8yk3nHaobdmsVw+eehe1pp4Gh1rY0W5Di7UkHLXv6Ip02kL4lmU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=BA02QO19; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="BA02QO19" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E43F2C43390; Sun, 24 Mar 2024 22:48:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320501; bh=qExPU8C2HXd+ID3W+ZzNQdWxRTKsDvz5q7M7trnFqHc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=BA02QO19CQDpfwbE9OLKCDWQHOhyvsiuEAyfORKGQZMaV6/0bIbj9rrZtiTlB+rF6 owVGF+s3zOAxeXV+Uz1EFrZgXKAqhaocTkZriti0M8rQ8ud0r1blEFkrvzb1usAhgA L+UwtP8jI1nfs1dgwWxhI3pEyDpwmkq6JUEP7FrSTm80tVmheBT5+TPUyZdaSf608i xWaSWQxS1t+v6bLrKGYdFEtImuVthB6NKd5AUE/EOgR26WSK7IViBhJbGfom6kN7wB D+HA1ruUuLDx9GQRDwlhPXlEdpSuGTIlfWrpEWzvAIAPYMxq2OaFYGvCPVO0zTuKj8 GVoHAFBoZF8Dw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Kailang Yang , Takashi Iwai , Sasha Levin Subject: [PATCH 6.7 061/713] ALSA: hda/realtek - ALC285 reduce pop noise from Headphone port Date: Sun, 24 Mar 2024 18:36:27 -0400 Message-ID: <20240324224720.1345309-62-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 eb45e5c3db8c6..ebde2ea8fa812 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -3684,6 +3684,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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8E46A80021; Sun, 24 Mar 2024 22:48: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=1711320502; cv=none; b=akeDqbjbG2t52+0kIBh3ZUmM2sN47P0zpyj42aH1N+wsK8loCQ2mNKOkzejdIcJoxoCTiIqgu0L+sQ0A7T8wnh20fnKpfVLuxmrKxZx4w7ilFhtGj+nfYgKZSHwglDgtG7CMJ2z5TdhbChJ/N6q3aLQl5IxYFvcLNbWEYe866WI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320502; c=relaxed/simple; bh=vGsRcugzQXk3Cte7pTGXjU6O3+vYXY4P4bjFaOnISPY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qZlG8GRip18HlgoIF+DUbhbMdZSf4mrOOFu584q+5IrQ2Vn4G3qwht0NBFlnxfxqqbXWgA6vxQigBqf3Aq3QfLoKTkZ4il2nGV7kqSmH+4oJQqzDIwQ15ZXEKHUK/ziMcL8g0mv7vijxb2WqFM0Evd8cQJaxpF9m7sT4EMIWCgQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=EmJt0wq7; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="EmJt0wq7" Received: by smtp.kernel.org (Postfix) with ESMTPSA id CE854C433C7; Sun, 24 Mar 2024 22:48:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320502; bh=vGsRcugzQXk3Cte7pTGXjU6O3+vYXY4P4bjFaOnISPY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=EmJt0wq7bppQzJwOP7KIZzDelfh3Ns6Qhq2aBM8I92gyWxp0nbJxcVVZ6D9KzNzMe ZtIPHM2TNLtBqpD9ZYKrnBAEGWySRhbrNNLKYODoASeEPi2p17qg66qMhI/LKIO9LU zTiLGlA0rVtlBIyMGIenJKU6tpfbvWhL+tDEQMAKyQKbiRuXHKlF7lRm/UtUcXEqlh RzN46kreuYMeY5vw86TLq4QYITFKUV+4gv61lB+w8aWB1ctEtFKntm/n68FqUwvwOF EpegNPaMPxtBS36H4hhm0EvaJG4hheTICTNcZ6g2HMyb9i5ylxDFGpSv4vDkP3qL+Y BuEF199UZ330Q== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Prike Liang , Alex Deucher , Sasha Levin Subject: [PATCH 6.7 062/713] drm/amdgpu: Enable gpu reset for S3 abort cases on Raven series Date: Sun, 24 Mar 2024 18:36:28 -0400 Message-ID: <20240324224720.1345309-63-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 9b5af3f1383a7..f9ba1803046d9 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)) { @@ -1297,24 +1320,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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 977B28002A; Sun, 24 Mar 2024 22:48: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=1711320503; cv=none; b=JkRyaVJSIBLiCAjPFO4o2p3JIDs6FsfBtfxw05D0ePtFDQMZux5hsgQcy0FUwNpQq9fbdi+Py+JS/9qbPoHhKRSt1XYgn3KPNOn2TlhZNSi4RtXQ6mC+emf3sbQO47gVKhXRKu20c4Ro7LgUqefY66kaSjCJcWG450EBYNT7jmI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320503; c=relaxed/simple; bh=OgG/WDJUTsEvv9Tyw8GnnVBTZTEmUUmnwLIp/HEj/Eg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=RT829Vy5Phzz1dwDnXTmi/2NU0B+G/tHgLM22yIYkLvJvPpcW1fm9PNcJ5LBMbeiYGrtTjbxhJmIskn3pVFYvswoJOrSgYHSBu4aZFNxqxlahY2MQnTIp/S3Z0jv1bP9hY/aqlWiXJp5//3yB/EPrPcxh/CizsqVI0xzq0YRi3Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=RriCyZuX; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="RriCyZuX" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B4FA4C43390; Sun, 24 Mar 2024 22:48:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320503; bh=OgG/WDJUTsEvv9Tyw8GnnVBTZTEmUUmnwLIp/HEj/Eg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=RriCyZuX15QM2sU9nriKQNuXda5FwE3tbj2tgshwXu1ytbnQFKFzlZECXxXa+pM9s 7bPQQ0O0vL0fTOUgxfFkbfk4qyu7t0yTzihH+pqeNBDiEBjiDnpxxrPcco60R8MAJ0 vyGNszDykR4Xi2nIa4swb/difhUxaC/F4jBb7zGdk9zaCHN/OpJAB9/BSQSTjYHrV0 QAkJtpC+a8xBZCJOFsKlwWeDknaWLfBK8RYGs9uezT0rRWv7txc2e1rsFtYO7NHu+c XMQ+tJWS8b5lO0t1I+wvPTWgsL+OguFeo5UbLK8r7PT/Z6+/7UxfbzDfsgUluoCymG cF0GsQoKHuGeg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Matthew Auld , Arunpravin Paneer Selvam , =?UTF-8?q?Christian=20K=C3=B6nig?= , Sasha Levin Subject: [PATCH 6.7 063/713] drm/buddy: check range allocation matches alignment Date: Sun, 24 Mar 2024 18:36:29 -0400 Message-ID: <20240324224720.1345309-64-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-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: Matthew Auld [ Upstream commit 2986314aa811c8a23aeb292edd30315495d54966 ] Likely not a big deal for real users, but for consistency we should respect the min_page_size here. Main issue is that bias allocations turns into normal range allocation if the range and size matches exactly, and in the next patch we want to add some unit tests for this part of the api. Signed-off-by: Matthew Auld Cc: Arunpravin Paneer Selvam Cc: Christian K=C3=B6nig Reviewed-by: Arunpravin Paneer Selvam Link: https://patchwork.freedesktop.org/patch/msgid/20240219121851.25774-5-= matthew.auld@intel.com Signed-off-by: Christian K=C3=B6nig Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- drivers/gpu/drm/drm_buddy.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/drm_buddy.c b/drivers/gpu/drm/drm_buddy.c index f3a6ac908f815..5ebdd6f8f36e6 100644 --- a/drivers/gpu/drm/drm_buddy.c +++ b/drivers/gpu/drm/drm_buddy.c @@ -771,8 +771,12 @@ int drm_buddy_alloc_blocks(struct drm_buddy *mm, return -EINVAL; =20 /* Actual range allocation */ - if (start + size =3D=3D end) + if (start + size =3D=3D end) { + if (!IS_ALIGNED(start | end, min_block_size)) + return -EINVAL; + return __drm_buddy_alloc_range(mm, start, size, NULL, blocks); + } =20 original_size =3D size; original_min_size =3D min_block_size; --=20 2.43.0 From nobody Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7AA0C80031; Sun, 24 Mar 2024 22:48: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=1711320504; cv=none; b=kWM0+VFyee88gZtppVrBeDcCpx+n0ZvvisIrlb5LdNp2hn/2LsX92KmSkp7hUWFJzSNYkAW3NbetW7oocew3dbkxZBUtm+gN5C9/zo6V2h3sQDA+4ECE78w++nsW0102ReKBw0M1B1e/kC2V7iH0qclBM6rXPoUwJcVS9VxMnTo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320504; c=relaxed/simple; bh=hznCVND+HknEJDdeppqPpocutl/j4K2q3jGl5en2yYQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=oTulxpvimDgXcJxPeDg+BvBCtdUc04JYE+kyqyLHhElEpUZBDk1ktbc2CqV2XmpwTsyG2LRUQSKxAOudyNV7/zAFl5U5B5t5hYaVZp7rITBLOR0cfQa9CXo/ok7doL5B6PUn9i4utT4EN9SAL5UawE+rP+r/VuVhN7Gcm8YYqQ0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=qFK+ZB5c; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="qFK+ZB5c" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B44B4C43394; Sun, 24 Mar 2024 22:48:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320504; bh=hznCVND+HknEJDdeppqPpocutl/j4K2q3jGl5en2yYQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qFK+ZB5cVYTcZ0bTYAdt3v7xzWpjl7ZJAlp/tCpJj/LVNzjeUQo2+sfhmaqh3vDhv 6SBC8xZneh/E5lP4VhnMkgkSrGf8wY14QA/WyuE+JONJDEERGWjatmJvIuGKhZYR4J 7YCCOwc+RvQBBrrmYcbcxC1TC9y8wvFOXW36L9gumI7GrARjO2ge2sReY0Da9sUoUW CnD38OUL3yhuO75tU8eFq6GA8YFU4iukkEX8N3o2qsqqeDS/guQhhOFoDOeCK7jYyE LtDZlrbxK2Oxh5kMmFTqly5J+Nl6YkVv5kfC3ZKf1TWAwDFOkJKUx3bCSHoPsXFijj HpelPWZSujKAQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jiawei Wang , Mark Brown , Sasha Levin Subject: [PATCH 6.7 064/713] ASoC: amd: yc: Fix non-functional mic on Lenovo 21J2 Date: Sun, 24 Mar 2024 18:36:30 -0400 Message-ID: <20240324224720.1345309-65-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6D2AF80041; Sun, 24 Mar 2024 22:48: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=1711320505; cv=none; b=s1y3AvQE2wBUruuR177QBpsZn0IebTHT9tdybKqArN2zAKHB1PNilkI5GtU4PVv357cWWo0DuagLaCDxt1rHnkxF5+nGUYEGRU0hCHwaf8B69kaeYPdfIuIO0cQp5WiaEl0dgVpknFaGU4woqF+cvUcGODg3UbX+XSFe3PnCOko= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320505; c=relaxed/simple; bh=rd9CTn5d36v+u366AsJVE1eQgwQIsnkSjg/Q6MfoA3Y=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=kbVV6NWjyDtGdxBjIT5G9ELBpEu2AHrUm1Q0hLwbJS/nBnf9K9FEJoNQ5rMDeOf8FSwr1A2Vl1SdQN1nX26shH8oSGvaJSi3Q4b4e8+iMsEeEq4XqlXvP3iCPtRWud5msiFZuesqIOOkHWH9a3Iylk1BiaFckFjDgV4bgWOoIcU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=VmkyPNLG; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="VmkyPNLG" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9E946C433C7; Sun, 24 Mar 2024 22:48:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320505; bh=rd9CTn5d36v+u366AsJVE1eQgwQIsnkSjg/Q6MfoA3Y=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=VmkyPNLGkyaJfYuSbRWUzmLlpgJ2am+gF3IQ46c5OlykmAuf1w8zanSYRbrqc4kgM NOJi4+IDSc5mJRQv6PPQ7x12Rsl1GC1oPnOS3iusr17bFohrwDWl8XIXUCl2AvmsOG zHESEUTfkjisub6A3U5xZPSSmgaA/CkdkI4UsHXAm4U7MyiWX2KRP/aBVHieGGsIcF 1LuwSs3MbSpYyhcFXA+vQGTmnckW/fEy7qWCOPa1GVFRJdnj+xYnNaK0QFYVkcGKgG VfXp8UdWKBF5MP+wMGbmmUsT2XioLtliA3VBdIOH2UAw9ZVvCzAHjZJ4pWv8s0kMOH 4jvh3jhN/TarQ== 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.7 065/713] Bluetooth: rfcomm: Fix null-ptr-deref in rfcomm_check_security Date: Sun, 24 Mar 2024 18:36:31 -0400 Message-ID: <20240324224720.1345309-66-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 458F7482FE; Sun, 24 Mar 2024 22:48: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=1711320506; cv=none; b=UlweVP9HYCiOp7HDHIQrEZZZ15K4TIjmYYhChEPOUPuRB0twd3qIAW0CUQ6GiuKPcYLMuPVeT9vePknQ5XNe5CfgNx5LThwAo+WO8OBexQKLb/bip7HR9/KC0Iz+2pKH8IofXLEb3ihTax52ctU2/l+UKvPG6ibCesJW+3SfPVI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320506; 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=CGUKFffFPFmDfzqs/KaQtxnJft0PJ5c4HemImW+pzv9lLYzFH12Fbl9gTyyBYY20Po8NsmleEsGzyOJVLDd8+oBdgL6EUsFqGZzhHJEuWn9J491k4Uo4SkjcaMjs4uDg1cpa5yc4G4vDGDr0SfAMPZ4xyhYje43Elz5Z4ADQLjA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=VsoityMV; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="VsoityMV" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 84C0EC43394; Sun, 24 Mar 2024 22:48:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320506; bh=ee4JVX+b0jEgqSk/X+DrWDhtXvtITEYxbWllb2TfOyI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=VsoityMVqZqaRAEbiBQjWKtniBDMalntjZFX6s32+Oi8dtH27Nzdikyyx4ZMVg47S ZLt0FwgMXX8kR5REOxw1DqwbXJgg/dSdHOKhFvzADbbvUegIZmv+//EDqh+dyhegnQ 92SYoRSZzWbRBFX12THhPcL2ElVTAKOc0CCFbjPZyb9v6lPRwZfLY9ScaXbX+nzHr8 VnR6EiewscHkGxFDBEbrhtUWgD7fQgB62oflEPD3hLMdc7LSHu3ruZ8uJUcgUWexnS Qoh2N+wBI5kd1JA/4v3o9nfQjSkHIc1hJdDDgWjrpc+CgRP6a3ZWhEsSGJci+hPFAE d0a3BNE90xqwQ== 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.7 066/713] Bluetooth: mgmt: Fix limited discoverable off timeout Date: Sun, 24 Mar 2024 18:36:32 -0400 Message-ID: <20240324224720.1345309-67-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 29BD18002D; Sun, 24 Mar 2024 22:48: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=1711320507; cv=none; b=eUdQZ9Tuv4fpjh9Irm0zIU7KlAU0wwYTpKNkBeHR9KdUd4d9OPMsu93ulY3Y2Buu0FLpMvcyO7Xcg7G+/Ljnobe0xh8VKtOck3p3MC5Ajmyb+skaRjNbGuArJdpQr7jg/rwrkXknTfh0SgLVo8K9UgIwueVCqi8abC6m09wDrxQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320507; c=relaxed/simple; bh=CIckCfCvElbP7qNZyEFS868bjqgWhDCd+IzI7ldl7Hg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=tSUHL9v/FHK13MY88jZIt1u5ZItYQlRb0Mu5QakCtJPugCTMlR0yMgbxZ8oFLg6B2Ue+QZtgjucFcDcGk5orRwQLxy+gG1fUUVOxx7aK9Y+B/Q5Z1RGac+yTj3TXH5IzIMShfC2OmZzt3+rV2wMKWPGeYHd3RGbllvs85oRZJkA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=u1qsPxTe; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="u1qsPxTe" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6A5C2C433C7; Sun, 24 Mar 2024 22:48:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320507; bh=CIckCfCvElbP7qNZyEFS868bjqgWhDCd+IzI7ldl7Hg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=u1qsPxTeJdpdTOr57F4JhGP3GGhQbE7SJCQ/zIys+dN0O2Z7jsDJCkefo81fmI/h2 AbIC5NTO9eaJ3pKsBQnzlqFu6dvWcd4fdVp/fAUmKJefyg7hK/1LhpmAjIt+LYh8Ee Ff6yM6PDbg3YWDcEdNboGjrRO7uqaZuiMtse/+En1mvMQ62jdInoLwj6QYONZqr3U6 Wo3wtj0ueXkWzhS6UCli0itKXL/7qPv+Sdc6EUSx/oOmHCIzrVtGXypnte+NCktnwE JLQ1VFFXqFNOlDd6HxAvJXpFEyIsincNgrenoJQraz8n1+UxirlGld8FJFfHGixrM+ brNRnHyUwNm0w== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Takashi Sakamoto , Adam Goldman , Sasha Levin Subject: [PATCH 6.7 067/713] firewire: core: use long bus reset on gap count error Date: Sun, 24 Mar 2024 18:36:33 -0400 Message-ID: <20240324224720.1345309-68-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3F5A080033; Sun, 24 Mar 2024 22:48: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=1711320508; cv=none; b=hCHuaNJlizxKm3wS9FLECkokhtYvyr9dlKp5JlSXN5Nh/hK5JGON8mDFjpxurhbHjcEVGjST2gC6q2xSEKGgcQjrN8doTsbCOhkUyouELX4QY4fFCfmjbhtnfvWAS/q1vCXMVgAULDQhB7KsvRbfG8t7tw4x0Q7+eJO1DrIQaN0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320508; c=relaxed/simple; bh=oMx6zHeOTkEXDKbjq76qlbY+QDGbPJEZZs3fhZ3D9bk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=JNq1eYV2NKO4ct922TMPs/Q3c5UcGJC/qCRzlq5eIar6WeXmgBlNOIiNFjypXv0ZXwMwNr3drlgrfGr8IEM09eVdGRx6BUmogWVGHn7tFHehM0AzuML6Xw9ZmUTOnuXIZghs8GJfh9RF/4TZrklcIaAbiX30FFo/C+O2D/iTjyA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=UdduIOjk; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="UdduIOjk" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4EB9FC433F1; Sun, 24 Mar 2024 22:48:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320508; bh=oMx6zHeOTkEXDKbjq76qlbY+QDGbPJEZZs3fhZ3D9bk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=UdduIOjkGghYcLksHtuRpFyy8HYdYWv9caCGNMcEi7isqlxn3n/5rYUIVOL4017JC MnNwVF+90w0FzbFwXnhFGcdFYuV9Tqw54l+xlnWJVgIda05KMaqABjLIhCs4GuTYtc xdcjG7uEi3vhGQ7MtntHGhP0MKX/zb4fzzLIqeX9nlikrpCLJmum/bd7PsmnA42ObK HTHH1o5DdQlN6XjAiTdHilHjmwpp9jxptDfainAOG9vGzp8WSJAZTukuvwyX8ys/6v 0FjxgfF0yWTf2yDJxKd2YEsGZo+FxWjJbifHjCXUWa0FYjVbS6f93B0K8fW/RcUI0Y NL1wa9ZEzFXrA== 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.7 068/713] perf: RISCV: Fix panic on pmu overflow handler Date: Sun, 24 Mar 2024 18:36:34 -0400 Message-ID: <20240324224720.1345309-69-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 16acd4dcdb96c..452aab49db1e8 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2608C80044; Sun, 24 Mar 2024 22:48: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=1711320509; cv=none; b=Y1W9DXjqZkICsyHDpcu511YUDN9MpjybEZpJilv7eLd3bCnIkiY7P9+KQV8W3uoPhaO6gTCplos2GZFhmDoBy422WfHN+LVJfc3fJYzyMLB0X4pIW/rcJuz6MilPaOxgurQ/l6jz1w0LCfXKieHA8D19+zY7Ka0KpkPOL2BqHxA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320509; c=relaxed/simple; bh=8H3S/q5lYOP2vdj03mp5FU8Yxc0yT9/q3KcU1fAJ4V8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=H8csO1VkXkzdaMJh4wdgIUgnYDeV4nVAe+yiYYYJEjGBL9j6dbv2dyCaBkXpNGfaaKJoUVNlU7QJiWxhb5Tfz2bmjXQg73GHy34Zb2Kah9VWZwoomQRI26OLUDRaZJPhq2gEnbFCe/JmlumlX2Lmxgymx0XpNIIxZG59JMfqBBo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=PjmftE1h; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="PjmftE1h" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6385CC433C7; Sun, 24 Mar 2024 22:48:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320509; bh=8H3S/q5lYOP2vdj03mp5FU8Yxc0yT9/q3KcU1fAJ4V8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=PjmftE1h11duJviEgHf1LGlt9bJYoQ/lfdnJUeBohKkNXUepampaLvVBvMv3bEWPn R77US3NN2fAmYf4DQ01OYH4TBl65WuePjztSEzVsarsNwwnEGTyZXOyJhpo7bsKJfl 2YTGaDl0NDaWTqHO6QK25HqGn4NmtekMLJRUfjzcQrnl3iOR2uT61w3a+EqxvtjRCm fuDR8L+RgCJVb2cM6O3jJLWK7V/+ARK5kY6ielCXIEyy2GDwY5xfmVYD7+ronjpPQg bXbOdFvbhltcAHLfvCLyV6EZGzR7DfO8YMiJIGXgPHbWUzmPqqggq0IoXlLw1k+wii goJT6yvEk8GbQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Thierry Reding , Jon Hunter , Sasha Levin Subject: [PATCH 6.7 069/713] arm64: tegra: Set the correct PHY mode for MGBE Date: Sun, 24 Mar 2024 18:36:35 -0400 Message-ID: <20240324224720.1345309-70-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 ea13c4a7027c4..81a82933e3500 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 @@ -175,7 +175,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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4362880049; Sun, 24 Mar 2024 22:48: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=1711320510; cv=none; b=HhyzqSp0MRqfshG4k1bSrg92ILubl73faCmC/jmcht8s9qOjy8NRUR4qx9YZaBhUhIVGgqVZhpb8PxNXNZ67JfygsxtsHL+MukMtE85A/fdYu8SWKT0Y62L7gzgZ8sj5VbCWPFmcFRB1zWRSzUf7ymrVrlhuH9wrJzTLALHUrHg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320510; c=relaxed/simple; bh=9ccDM9c454YdhVODsmOP14BtRqS2+UqRY7429uin5Oc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=b34kgGSDOZBjlNWRgTfXkn4/qDd/SyNKwDu822wO8PrIWO8JRw3Bv1LIBFiLLRZnCNc87kln8VV4V72gxYqB2HV+6lM9i/2Z1I2dLy21O2EPb/EVAGTuZCFHAV0pZA7PkTPTwXXRSJYwMkDxn2zAqq6c7D8NstsKP+10/U4o3pA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=VmcOMpYQ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="VmcOMpYQ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 49EC5C433F1; Sun, 24 Mar 2024 22:48:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320510; bh=9ccDM9c454YdhVODsmOP14BtRqS2+UqRY7429uin5Oc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=VmcOMpYQY/YB3BBDi3seKzBd9+ulzJZuP5c9/dM0zceTJICPHnT8qwFCVSEwmRUoq UNslcs8lHjW9lyA1bbSPxkIBqUydtXUMHszNuYFfR1HPsasABdKNV9t4o0Znqi1vd8 05w//WwGoLBDee1i7SUFGN+XOmZZ+LnWh1LHh79mZ7OQ56AeE/+bjuIhP2S2WIlIln vWzq659vwaZDIOrr3+Ke87GtTAXfDwEdxZZjcmLGe4pmp7Jw9r0Y0jFcKcCQpe7/oz FS3Fk2mZjdzrqzWjf6KB3SSeZYfOU4Q9RM2/IR7Ce/Ftp92WtGnAmpgdzz9b0sZaBl eEIfiNNFtappQ== 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.7 070/713] ASoC: Intel: bytcr_rt5640: Add an extra entry for the Chuwi Vi8 tablet Date: Sun, 24 Mar 2024 18:36:36 -0400 Message-ID: <20240324224720.1345309-71-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-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: Bagas Sanjaya --- 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 42466b4b1ca45..a290f498ba823 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4007A80055; Sun, 24 Mar 2024 22:48: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=1711320511; cv=none; b=Mlkfun4GE42+PGB/7Ao2BaZyZMcaEqm1Ec/lb3bkei66KEAMUnM0bJlZqJX+l6eWmDo1GoO16wFg14aPITWjf+/90+Zd06mISmdlHSNSY09yQoVLcVgByvBTECl1Knsg/bmTNWvFt48MWkGoPqc8LcUXHCB6zwIkOyb9l8e4l7Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320511; c=relaxed/simple; bh=d3YjCGegKBiNlaqnlaRwjobA7R6W5+YKEQ2B++yBx3M=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=dFfk2MsR2R0AGSrPV9ppBhde5cdAvvq44W4+jGoXn7T4Ho0+f0WHlI9l+uUWRwzGwSJDD9ukZotR91XOeoT/MBUhI3UnVn26SDT16+n8pFwxUY7ACkT6Z2bfdTPfhEstQ0xn4epOj2ho+rRoWYhQJK1zdRHN5ROZlaCDMhLyC9k= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=a63LtQ44; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="a63LtQ44" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 60A1BC433C7; Sun, 24 Mar 2024 22:48:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320511; bh=d3YjCGegKBiNlaqnlaRwjobA7R6W5+YKEQ2B++yBx3M=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=a63LtQ44XNG1WBdCJadl0NmlZG0y9zcmAlUtVbAly1Ba4VOpN5S3CqpDGRaZdOnuV DMWNcrGh9gLYL79v2ft54s22xynCF8zAIE10JjHUBczIrFUUYmuUYngGDhHWL+MMKH zUZtv4eAxpf/mgP9jtPP7J1w2hkFHVUJfuOLRVnK2LR8Tok+/s4GO1keMCIhYMuiZu T2PkwIYF90cmGMuZMMSgXQFw7AsaTZZxXXUSrIAfaObcbgMBdpz72iCG/nFK+sc37j wF/UzsUXxKwQVoXg5znBQ5Ig2XQK+yg7D+oCCaiCFrEhH1OTRYZXfcMsBi3X/pyjdW +ULDwC2idf/xw== 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.7 071/713] x86/hyperv: Allow 15-bit APIC IDs for VTL platforms Date: Sun, 24 Mar 2024 18:36:37 -0400 Message-ID: <20240324224720.1345309-72-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 96e6c51515f50..cf1b78cb2d043 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1DAC580046; Sun, 24 Mar 2024 22:48: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=1711320512; cv=none; b=dWDSyAs0RywNGDQk6ZpsgmFB86z0pEkFDz/iJLyqXmE+V4j5sBd38jOqxynZR4uhx5VmHTwO6qjrL7s955aljjje0Av9KxA/BfHSvlC9iDpEzEfLPJ1Twkd2KvaIW/Uqeh5eUUHSTXp4cY9JG/BJ91ss6pqIr9exYAwAqrr+BvU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320512; c=relaxed/simple; bh=0EowKxSuj9Iounah89l3Kjvg/Er0LQCGF6R7b/uy6FY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=hEIVpBxQ3LvyFfxoJQk/HxNXTuIbMTeBds0EfZ/S/DLT/P/WI5aWXzNytBzH/fIV2BTo9A5Em2o9ktf0XYDXnFhUgDbSVfPBm6ojvYCK6AVqdF9jnJGhiAd1yLBkgQTZU0oTT5+fF47f6DK9bGyst4bPueOqU2jKLhjligenYyE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Xkpx9r+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="Xkpx9r+I" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5C1B2C43399; Sun, 24 Mar 2024 22:48:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320512; bh=0EowKxSuj9Iounah89l3Kjvg/Er0LQCGF6R7b/uy6FY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Xkpx9r+IBayNo0nlQ0DCjdVYyn7cSJQJIuJJMGAu2hWWE9F7jdg0M3vnKzvaQdzJv c+x4MY5DKJ1qu8ktP8wb7McyqzB5SNaMHYTX7ThLgQ4SHKnqnDYEfBG1uL/VdUs7J5 ZPqIe61WWZbhA8qsGzPyIcVWS8Yf4J3w+KhKE8wOis9p/niBgVXCKzdYssJe2WbxZ0 vbD7LyTcCiA0CYzwCnCO9MKMLQm+Ex+EEl3Mx84n650OEwZzYypImxmJwj8qR57i5v 9p2kRuOBs+iPQx5J1GjbflAuuQnjK5SKaVhpScBExxLmX8lqaKL7+F6y+mwPZuMZ1z Inoba3WeUsKcQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Stefan Binding , Takashi Iwai , Sasha Levin Subject: [PATCH 6.7 072/713] ALSA: hda/realtek: Add quirks for Lenovo Thinkbook 16P laptops Date: Sun, 24 Mar 2024 18:36:38 -0400 Message-ID: <20240324224720.1345309-73-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Stefan Binding [ Upstream commit 6214e24cae9b10a7c1572f99552610a24614fffe ] These models use 2 CS35L41 amps with HDA using I2C. Both models have _DSD support inside cs35l41_hda_property.c. Closes: https://bugzilla.kernel.org/show_bug.cgi?id=3D218437 Signed-off-by: Stefan Binding Link: https://lore.kernel.org/r/20240301160154.158398-3-sbinding@opensource= .cirrus.com Signed-off-by: Takashi Iwai Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- sound/pci/hda/patch_realtek.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index ebde2ea8fa812..baf550b5a7c49 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -10289,6 +10289,8 @@ static const struct snd_pci_quirk alc269_fixup_tbl[= ] =3D { SND_PCI_QUIRK(0x17aa, 0x3886, "Y780 VECO DUAL", ALC287_FIXUP_TAS2781_I2C), SND_PCI_QUIRK(0x17aa, 0x38a7, "Y780P AMD YG dual", ALC287_FIXUP_TAS2781_I= 2C), SND_PCI_QUIRK(0x17aa, 0x38a8, "Y780P AMD VECO dual", ALC287_FIXUP_TAS2781= _I2C), + SND_PCI_QUIRK(0x17aa, 0x38a9, "Thinkbook 16P", ALC287_FIXUP_CS35L41_I2C_2= ), + SND_PCI_QUIRK(0x17aa, 0x38ab, "Thinkbook 16P", ALC287_FIXUP_CS35L41_I2C_2= ), SND_PCI_QUIRK(0x17aa, 0x38b4, "Legion Slim 7 16IRH8", ALC287_FIXUP_CS35L4= 1_I2C_2), SND_PCI_QUIRK(0x17aa, 0x38b5, "Legion Slim 7 16IRH8", ALC287_FIXUP_CS35L4= 1_I2C_2), SND_PCI_QUIRK(0x17aa, 0x38b6, "Legion Slim 7 16APH8", ALC287_FIXUP_CS35L4= 1_I2C_2), --=20 2.43.0 From nobody Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 04E0B80610; Sun, 24 Mar 2024 22:48: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=1711320513; cv=none; b=Q5AYd/ogRhIp9hpgDs86IJRzWgO4DPrfFnzcvPOQp81AV3/NzIkYdlliADQj3556Y195DIK9PRtSV9ULIjwWjEdC6Kg0Eljc0U9t3yGnYr5skYBlytoslM3fWRf8hLQWOLW5nwOcCwYho2KlOuOXrQj94Q8AjPAnvE2wkUT2cBk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320513; c=relaxed/simple; bh=lNQsheyNDdU4fFjsczF/E8ef3yJSjcxsBtth7BKLDKg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=bpOORBlRYhh9Dxl8LpGIg9gDsRdiXF7X95Pl1uzSA5MtghJaat64WggY7YhWG9g2cgZH3BsAxGEFC95O0NFQyWIg+kKUEnEHWm4P7RUFyH5zPYmT96mpRb/QpMy9mkDv0mf6v1JkByYFfulZIapIzBAO4x75ieBM1JTGRKsh+fE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=gjkdiMeU; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="gjkdiMeU" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 44313C433C7; Sun, 24 Mar 2024 22:48:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320512; bh=lNQsheyNDdU4fFjsczF/E8ef3yJSjcxsBtth7BKLDKg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=gjkdiMeUkD3TxiNsCG1lU5rX7MwMgrtIaxG3wdwpYXGWOyUuVgLNmpGiXJMHvcErM 5RhnbW5iWG8L3J8c/YQ7vs/IYf2l9f3uEvN4WE1/MhM3CqGKOadfYkKmRHO4Q8zsQz /Hzq3orBg/esZmGrk1P/C4DuC+0jIRvAcNthV/fvwpQt7qCuvQCMzXOM0oscs2esxs YyxoXXOBihBzLJI83HqEcrkrw4W/nJZDqaWxCLLMmOVpmhs0jkufNtwzWT4NYASZne mOAiWh7nkShwpwAVQjEF3nj7ashSbyNjozVVaaKasTBFpy/hexy9ig3eYtr4uKH3fO CTL/4G7k0EvpA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Stefan Binding , Takashi Iwai , Sasha Levin Subject: [PATCH 6.7 073/713] ALSA: hda: cs35l41: Overwrite CS35L41 configuration for ASUS UM5302LA Date: Sun, 24 Mar 2024 18:36:39 -0400 Message-ID: <20240324224720.1345309-74-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Stefan Binding [ Upstream commit b603d95692e47dc6f5f733e93c3841dc0c01e624 ] Whilst this laptop contains _DSD inside the BIOS, there is an error in this configuration. Override the _DSD in the BIOS with the correct configuration for this laptop. Signed-off-by: Stefan Binding Link: https://lore.kernel.org/r/20240301160154.158398-4-sbinding@opensource= .cirrus.com Signed-off-by: Takashi Iwai Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- sound/pci/hda/cs35l41_hda_property.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sound/pci/hda/cs35l41_hda_property.c b/sound/pci/hda/cs35l41_h= da_property.c index 6cf4c02f9effd..5a5f4b499fd94 100644 --- a/sound/pci/hda/cs35l41_hda_property.c +++ b/sound/pci/hda/cs35l41_hda_property.c @@ -83,6 +83,7 @@ static const struct cs35l41_config cs35l41_config_table[]= =3D { { "104317F3", 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 0, 1, -= 1, 1000, 4500, 24 }, { "10431863", 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 1, 2, 0= , 1000, 4500, 24 }, { "104318D3", 2, EXTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 0, 1, -= 1, 0, 0, 0 }, + { "10431A83", 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 0, 1, -= 1, 1000, 4500, 24 }, { "10431C9F", 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 1, 2, 0= , 1000, 4500, 24 }, { "10431CAF", 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 1, 2, 0= , 1000, 4500, 24 }, { "10431CCF", 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 1, 2, 0= , 1000, 4500, 24 }, @@ -420,6 +421,7 @@ static const struct cs35l41_prop_model cs35l41_prop_mod= el_table[] =3D { { "CSC3551", "104317F3", generic_dsd_config }, { "CSC3551", "10431863", generic_dsd_config }, { "CSC3551", "104318D3", generic_dsd_config }, + { "CSC3551", "10431A83", generic_dsd_config }, { "CSC3551", "10431C9F", generic_dsd_config }, { "CSC3551", "10431CAF", generic_dsd_config }, { "CSC3551", "10431CCF", generic_dsd_config }, --=20 2.43.0 From nobody Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 001AC80632; Sun, 24 Mar 2024 22:48: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=1711320514; cv=none; b=OclBjzXTQ9Y8yxWn7BK/7VmRx/twPpI+AozsFBmmeNS2jBqL69K9cMITX6aPyYb1TeKQ4Im/jBtH5s8pVOyNK97FzUh/Ri5sL019RqKzac1Ol7z8H7e2hMQjfkiRQBFs8tljY8XZu6sVmhiCnX802kP7CISR2ZbISeDmtWMzONM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320514; c=relaxed/simple; bh=aDa8LlvKm/2ZXeeUmHNzrvWDnXaqmsLoBFx0k0dXmCk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ndbSVuoia0Iy5fTX1//lCCtZXT7seiM0KqfmDHwBGP8t1KWGxQHS/Q7edL4etEwA7joGdh6HNiSq1fnBBiXkDmMOZyVlE63FF+MZg5aau+/CKqBvBt0r1U8JTTINLuWbvX70ZovNlXiYYwZY4467mg85pq8aiMuwpH0tLDyO3Hc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=pKDfpw/h; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="pKDfpw/h" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 27FABC433F1; Sun, 24 Mar 2024 22:48:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320513; bh=aDa8LlvKm/2ZXeeUmHNzrvWDnXaqmsLoBFx0k0dXmCk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=pKDfpw/hZgVc2nayIouybOhHSQibMyL5SvELwINtJNpESipW69yIaXQ0IMH1qHqLe zqXank+WMm+KVIKvhqqxJDqINyzTAHRFIeayqtNj3Z5h79vVIx/0TuGMYhCmS1Kn3E qebSIqJmnlro/akJvx2TcKudexNuaLVRPZM00HIjBGTU4lADrvuSYFvTFL3+x6TzTK EjYGYsDuk8MAqcu0wECE3/oiAV/ZiwTLEf8XCgVIoA4KZILqSqBIFaCwhRiD9VzxdK zwOuOYAN+vPRvPatliPaOEKfHy0a8XFTOvgxaeOMqNGWM9oPVH/K0N419A1PoG8rNs sqfQhoFg5VePQ== 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.7 074/713] ASoC: amd: yc: Add HP Pavilion Aero Laptop 13-be2xxx(8BD6) into DMI quirk table Date: Sun, 24 Mar 2024 18:36:40 -0400 Message-ID: <20240324224720.1345309-75-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D550C80C00; Sun, 24 Mar 2024 22:48: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=1711320514; cv=none; b=fQfS5fui8YtwwLiLPb4eKkx9/Wk6oMhiP8F+0jxSni1Rakdgd3LEsQhc80FHzEK8BZuzYqDL4EUD50OcEf1wzuFCI8uXuZiblqCIzGBbemGbbZ9k78qH01TVxzUJnZpds0S4240/JCtzj/8CvaUSE7DFy2kgkkSV1MBxQgPWYew= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320514; c=relaxed/simple; bh=O9V6/TN435gODXHOlwJPy0OeVZD6dXtAzOUmJleT3mQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=RzAMKD+ufvwcWbIxkQs3uY4rjV+BqZTYshoIh/62FbA4s4yi2KcSy69Z8mzDy4wXQpnig3n2EFAWncPooRhLXqPPRvV9i1aIp1Wav5RGasktu9Ij4CaANv4VmI++Wlvo6BC9IRX0bazY8vBz+du7LYWUHqpsH8CB2kSmRaj6TSY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=kRL6akHw; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="kRL6akHw" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 22CECC43394; Sun, 24 Mar 2024 22:48:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320514; bh=O9V6/TN435gODXHOlwJPy0OeVZD6dXtAzOUmJleT3mQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=kRL6akHwTf0eHYDm0T8Oof6S+hsD2PIl5EWYA1CQrbaaIc5QcCeD7O6SFTlR3NNJS QvJW01Y7WnsETqaeEuM2e8jC8HdAcTVB4nP9GCBaqLrpntqNScCxcpPVu9nBud6+fn /puFVIbm89nowG341m0vuRLnHFTHOtONWuAklp5YctEFkmUysypi4smYeyZZhZxLT8 NgR3CVakmlJ87pEqU8Yxd6Z64YJrwjFrS7bSDVV2ISFFLSrkZvxrQ4I3bVxaefQkYf B3Z64Fhm+mxnCvHQ3LtQNiEPompe58Ks/CdDaOYTi2IRlMppF1L/jFSuFA22yPJpt4 ghoIVNCnidnZQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Mike Yu , Steffen Klassert , Sasha Levin Subject: [PATCH 6.7 075/713] xfrm: fix xfrm child route lookup for packet offload Date: Sun, 24 Mar 2024 18:36:41 -0400 Message-ID: <20240324224720.1345309-76-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 e69d588caa0c6..9c5f2efed3333 100644 --- a/net/xfrm/xfrm_policy.c +++ b/net/xfrm/xfrm_policy.c @@ -2694,7 +2694,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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BF29F1CE6B3; Sun, 24 Mar 2024 22:48: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=1711320515; cv=none; b=iCCajK13Y9LI1/QjtFPsYqzCs48nQ0uCEaVeyw3LarUFXMnCxYkHwe6pt0z3mWmu0ujuZYOHKGLiZz2AB3qwcaGBA6BfeAMrOOTeJMdeZPsiG5V9WyPJ3dEWeSx2P+MMexgOvQhMmrOZX3w84wCsCkFvvHd3/4VPIBcMtkf8mn0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320515; c=relaxed/simple; bh=KLNv6IZ5yEeP9+TzZ7XNfvS9hm4MRpt6kWqrQ9+/B+s=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=jwJPVqLz3Ka6Kda95TFr/YijBM8ziWI72dYF/umU6KLdTaZvvBKsgB9jJmwD5MZrUo/6X2WWqF111kyw/IIcJ1PQ4CezPA8F3QPOYiMcTcFoECn7CNM7sL3XX1L+KyIa5dQwRViyBc5Soj4LPG8cKO5WVpcdxIT+VY+0kT/HxYc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Xh/3C/G3; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Xh/3C/G3" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 059C4C433C7; Sun, 24 Mar 2024 22:48:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320515; bh=KLNv6IZ5yEeP9+TzZ7XNfvS9hm4MRpt6kWqrQ9+/B+s=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Xh/3C/G3z/ETJBFT9HR6ng6c6K4GVcO1yuOXTPpM+hg5EZd7VblgXu8ft0Q1wuYM1 z4NHCD22WwXx0cosrxd1DNDcsqOjdWW6eSWu+7dG9St53CXfLzojpCgqy+4EGKpVOA iLFOWHykkTrJHRBbpidOJOTFPaCKuy2OIAsOlfaGccLgDaSEiPpYzQPIZ58VcFoqQF mb9CYJyTQ30u1N9w4P5npBe3t8kLcpwwUXAOFb4Gfttm4GlnAzN1u47B9HuIT5Mcik jk0wxUCJc+tIW8c26Bz0oQNc1DKd95MtUtmZAKSfEcvYdMbu9h94Zcut9TFNACZudH xAl1oLiIfBYnA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Mike Yu , Steffen Klassert , Sasha Levin Subject: [PATCH 6.7 076/713] xfrm: set skb control buffer based on packet offload as well Date: Sun, 24 Mar 2024 18:36:42 -0400 Message-ID: <20240324224720.1345309-77-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C59CF1411C1; Sun, 24 Mar 2024 22:48: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=1711320516; cv=none; b=kXeeCE8gpISWB9hxXHrreHtmGuS6o6RxzCIz+Qi2NvGBa75rDlwVWp8ZjQ5B1iNvEi6+CsF87eF9WQ24/CqTsp/uiHu2rMAwSTggwxpk+JEEtXGtTzS0nzmX5FSpRwilmkdUuZZZTBbsZ6AhEC7aPzMpP0AwLDlUu+pFtMHpLpU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320516; c=relaxed/simple; bh=a90TlNcd55CuvJI7AGBcJt7/5SipQJTr/jE8uvYuenY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=ODrPzWMFq2YBBrbX2P4kkrFI7spPkJe3cFJPTB+pKZOCjkwNCBfoto2tbMU0DZEYG/fza4APDZY2cQ4+OnoyJGdnOU0gwEJk2HCE9p1YcpFK/GZPayZVGVrwLr+XuSN8iMqBD4j5wkogK1q1i6oYuJ4S179KWg/wLhqhyoZfncc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=thuGPc/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="thuGPc/L" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E3304C433F1; Sun, 24 Mar 2024 22:48:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320516; bh=a90TlNcd55CuvJI7AGBcJt7/5SipQJTr/jE8uvYuenY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=thuGPc/LgPv2ux2Hifr2J7PYK6X7/HN1nZtRTMjVbq5yphl7Lq8FCCNA7JSaywFaM R6RTj35WNAlEIDXCH6SnGKPrj6PbXRcIwRzI4uJMJQezk89PFVeFYM6tvxppPBRIj2 SFY4ce9ndftPtUAiuKWOqUXD/ajFutGNy/XLKjdmKRPaP2wqTqAK7GNneAmONoGcJd bG61Q1oBlVOaXXyuQRpzOKH8ry0X85Lrs0Cyo/R1424f9lYh+S8DX7cKM1J8F8EnEI jh6rYQ/mYf3NMBTzUal3ezCThRd69709Dgpp3Uuu4pMoHdEA/lpxzrzmF5lfmje8HJ r5EMl+Q5Lxm0A== 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.7 077/713] Input: gpio_keys_polled - suppress deferred probe error for gpio Date: Sun, 24 Mar 2024 18:36:43 -0400 Message-ID: <20240324224720.1345309-78-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A25851411D0; Sun, 24 Mar 2024 22:48: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=1711320517; cv=none; b=MrK5lErEJium9FEtGpMkdFCLqCkGDx4Fn9iMlQL25L6zDVvaNDAXaatTjTC5J671cpzWJxAZZ9qUZaGS/r3h/9Q7ENADsDlumrBt00fguMUgdPO3P+ut6EI7Xg2XaV2gaXGLbLss8yqT7nIg5DU0jw7zsqCdB7t+ZMAFhH2KJ1E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320517; c=relaxed/simple; bh=+QnN6eBvfT5YP0LZVKnQaEsUmmjbX3a5mPdlwG1VBws=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mrdZSWWRT4nRWWFzDfn3Poh5BzhXc7R019Kf0w+0fE90g03nWLBu3q7VsgyeWok2oDakJceAdOZaY+PU9HZZeaUC4jSPaZUoKTTLVBzLy/eQKLiy7qM5W89WvGulEvDP70Q7LvgUIMWqHLm0rQ4JOzx9wyRhQLsfSUhhydZllM8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=YgNI9aIW; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="YgNI9aIW" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E0928C433C7; Sun, 24 Mar 2024 22:48:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320517; bh=+QnN6eBvfT5YP0LZVKnQaEsUmmjbX3a5mPdlwG1VBws=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=YgNI9aIWo5eohKg5YV4WK/+v43SYMYjO2L2MuU5UxLmYTO38FozwkiEUSQju+iTiL E8T24LAEm/PKKYGx+ixc0zwJLYcm1oHKxLLM8o08qqJEwrwD6ODsRYFS8yNk9sZHgX M4cydsjfWGlxkLX8K7MFs0Tq77aaYBo53kw1R4Jn/0cDucaz5c7AO64lpR0HU0f0Pp qXvu3xtmB189ULRV3vUh6vt/P7WTVe0tVGXEdmIRdS0bh2uZZNXqHLZil8EWBzspJt YsKcd1fFElb7g9ZjfHXTQDqrbRM7e+qQioWoQUkV0tZlAbGB9RCZxDo4Bw3wOfYlr8 WUfsjIuDy8I3w== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Stuart Henderson , Mark Brown , Sasha Levin Subject: [PATCH 6.7 078/713] ASoC: wm8962: Enable oscillator if selecting WM8962_FLL_OSC Date: Sun, 24 Mar 2024 18:36:44 -0400 Message-ID: <20240324224720.1345309-79-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 fb90ae6a8a344..6d7bb696b1356 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 896891411DE; Sun, 24 Mar 2024 22:48: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=1711320518; cv=none; b=B4hzqG+yiSGzboZ8LrCSoqaDb5KWGUuu9r5ZgY+OMkAYyw8iq+JkwR5caO5alCS878VBL0kQ82KtRep7NCSRafuKbmKEBPjfv0NOXCM1lmsON8VewUxo9uKpEAxrzEcsmrmZAcNDEgU5j17A6UgYZkj/rP/eC7vb9x9Af47UZ8U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320518; c=relaxed/simple; bh=kN41ERk6uq12skAjGTO6BjFCIfERQsxkyKHG8F0KuKk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=pXL2OQM20YN8GAOXiZqEACn+d06TRBYyE05u5AJxs13NzHTeushJ3sBmjCUILgNL1H7WvAvTuhY0K8Wg9DshntOs/vXRCJDEn7V8RwHInyaa3DkXDsdVdZuEKfI68YGqqgoxcZzSQXnFwV53AYj45gegr6Grfv8tPzr87mw5L6o= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=BaM7vfaF; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="BaM7vfaF" Received: by smtp.kernel.org (Postfix) with ESMTPSA id C8154C43390; Sun, 24 Mar 2024 22:48:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320518; bh=kN41ERk6uq12skAjGTO6BjFCIfERQsxkyKHG8F0KuKk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=BaM7vfaFYBejurke0OPOQH/tNUOpZgVEmia63h/lTAnfk0RGL2SqguNtCYU0QqYA1 eT/17g95t8xXTKqafFmY49EBowOp3uJyd9aD/KcOXVTWstiCEuzOSZiWOfpENNWqU1 sC+CYyjwNqVCXjQjefu6vkMSHp7C6b8y5cXrJAmqBjOQNC9QNSjHAIyWM5eOlyW29a 01Qpv4RNpNq5gz7/9vyxI6c4oGGevO8eRm3F/PLpP6yiCSES+xUbQKI6T6qHivLqVA pWaeP0AT6po3aFM3aRxpxuoNwOlwmaf2QzET8dTj6Z5ltTpmRCh9CvQSJ7vgTCjTi0 4mFcaFY54VqKg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Stuart Henderson , Mark Brown , Sasha Levin Subject: [PATCH 6.7 079/713] ASoC: wm8962: Enable both SPKOUTR_ENA and SPKOUTL_ENA in mono mode Date: Sun, 24 Mar 2024 18:36:45 -0400 Message-ID: <20240324224720.1345309-80-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 6d7bb696b1356..2256cc0a37ebd 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 702241411EC; Sun, 24 Mar 2024 22:48: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=1711320519; cv=none; b=Vn5ZKxLqCoET0mqxlBxNeR+/4PdoHmyOYsBpWkVJgYHMTgKwCepgs+o5cVwSssg56yO4mIo5glyAGr9yyrXbEXmvzhu1eCGE4YFVj8xr1hV+lYdnLSB3TUU31QAdrXUUpjJNBqhrI5r6eGMbUmeviVeeRRHy8sQBba/o8rFBSww= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320519; c=relaxed/simple; bh=KK0r7HLEGlnhN25/A0rpX5LySpg3lS7iiWtkuou51PM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZXK3VMfp1aoR8LwJZFhvVsd0XmvHxuiux1fgZtCuU5PvsMBjGp2VBCrshRLgrZi96v1oEZeSNrbfLnH/7udoME61l3x5+4V/l4/1UHbay5Ej/mgXkF55zLm9I4vJINi97AMPNZmN1q7Ybgg6Lvh306u4BVurjxWlSXlPX5ZWZFQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=aGRpm29b; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="aGRpm29b" Received: by smtp.kernel.org (Postfix) with ESMTPSA id AD7E0C433C7; Sun, 24 Mar 2024 22:48:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320519; bh=KK0r7HLEGlnhN25/A0rpX5LySpg3lS7iiWtkuou51PM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=aGRpm29b1+o44XAddPtujYuo3fsWO20xR013CHD/4nHES6Wd0mBxjK9po7Zgw0LDI 3nL+vL7Gp/Xz4CXjA0JOa/y+JvIjpPvRJ3sIigyAJE7++IWNIYNCe8Yd10rrTZMLPJ CiLxgkLkp9W9/TLEoSHPfZRv/A3sZQk5uplB2JI3TyzX8b8IQOQrWNyrRaUNCQqWtC MJlEf8DavKJrD8Tl9Q2M62bxN2PfvNXT2GQ9arqWLG4AuiF5LUdtNyfDG5oyxd8ckG ObREQFDVDKl4UosBrg2LV19lzA/Uu8/JGkclzzzYOD5L9XHSNZknHJfy8E0715XuFP FPR/ZC5+zReZA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Stuart Henderson , Mark Brown , Sasha Levin Subject: [PATCH 6.7 080/713] ASoC: wm8962: Fix up incorrect error message in wm8962_set_fll Date: Sun, 24 Mar 2024 18:36:46 -0400 Message-ID: <20240324224720.1345309-81-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 2256cc0a37ebd..7c6ed29831285 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EF3B61411F9; Sun, 24 Mar 2024 22:48: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=1711320522; cv=none; b=C0MxB7BWoYflBHYg3MI2581/PqO+8q8vzmg2NBiqSpbD8Fr44mj83+hpeonq3b5M9qqMDbwuzEFKwbnSTKfrUBeBcqfGdguWj/HRCoMA0SoOuRnUvJeSyCXhInmJA/nlYnpVPLqr1yMWfSRgk+tst8JeZoS56KC+ldz5g/VXKL4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320522; c=relaxed/simple; bh=cjoyQ1faXxRarwNjQiwL0MuY+lSCvlUxadrZlLQ452M=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=AXKOLO8Pw+ZSBbTqIJJEdwWJqTyT8dDhqcT9A0Uh+8Lxk7Zp12mPMQA3WlAGEPyvjPo18/qogS5fMlvqymn5f7vIKD7IhgmbW/dvzUWTQMw6ayZopeWsrqfECEngp1oJp9cRsfQJnvy125cFzGPxvLa+s3N2gKOr0OOQtlNSf70= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=uv1CKWka; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="uv1CKWka" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 94A21C43390; Sun, 24 Mar 2024 22:48:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320520; bh=cjoyQ1faXxRarwNjQiwL0MuY+lSCvlUxadrZlLQ452M=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=uv1CKWkaxaiczqkchiaeYmDvhkIOmjx7id7zHypBtHuUVeBabDEHpbV+wE4D7HlVB d8iRfUWhk7PtT2bIZC5uNgs19n6WTRiuwg21ZLYCQZM72m5bQoxVXUIs/U4/51GWa+ ojbjal0iit4da8XVXwKN/xsziM/qH0172XWqIItQIIb/PDqjaRbi1nq0r+I8Ezuyg/ 4pb6cSVhMVnZtqbqrTnaiMMKxCTAqCkafP+tQIiz8q+w3UwX/aUKF+b9RBLHKoK/wR GcFAvfvG0ZDaiGOzllASlFnZjtryHx+MwTXzFewQzVoWqhDYeiwMJ2MPQpSWcP+0my hM6lpfj7APb3w== 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.7 081/713] do_sys_name_to_handle(): use kzalloc() to fix kernel-infoleak Date: Sun, 24 Mar 2024 18:36:47 -0400 Message-ID: <20240324224720.1345309-82-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- fs/fhandle.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/fhandle.c b/fs/fhandle.c index 18b3ba8dc8ead..57a12614addfd 100644 --- a/fs/fhandle.c +++ b/fs/fhandle.c @@ -36,7 +36,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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 80E091411FF; Sun, 24 Mar 2024 22:48: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=1711320522; cv=none; b=oqpuoeaeRveH/hHc52QcIiLq0aGLSFNiHp9BNpaHFBHi3GFdimXnijhQ4LrAmRqGEXDJBdc41P+ht9qIn3TeqHrfp+GFpZhusJ6jMgySR5mNUVX7CgqZjjPL7XscW6lxFu+jgnwIwT6KEP2YEUnS9wkpMy1P9v1QvBB5gjPGHOQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320522; c=relaxed/simple; bh=xyAsRpzrs64a3QghDN5vH5iXt7S6hDMvZ9FQNW5X8ho=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=gM0OzO905yYtj6cIOM9QoQ818DOxXb45ka2msoi957UT3TwB7sOA/xC1rN0jrdsQk3GqHb6SuC83C4U4bAhS7+bJB/ZMN98u1os9LO6g7ah7CR7M5giXQ5cULTlfACr6bcMv3fg5ouZJd3WMVfxgc5YCSpFzxENeISgAbEu7vQc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=tv10uR4Y; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="tv10uR4Y" Received: by smtp.kernel.org (Postfix) with ESMTPSA id BF1B2C433C7; Sun, 24 Mar 2024 22:48:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320521; bh=xyAsRpzrs64a3QghDN5vH5iXt7S6hDMvZ9FQNW5X8ho=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=tv10uR4YkVg9+FBEToZGo7BlfdQJ1FzfsVyiXNpSRw3jAhVh3KIzRZ6WmrZwqhZmN 5UzG5SWDgxLST8nt+8GNGH2cnnXcJMgDGXtjkiJMsTMr3RH1LhwJ9l2QAiylJXedie 9oWzReN5xc0VbOzhpKpCgk38tGdfM7QhDZ5WgCsyBkJvgG2F9NogTKR9Mb6kJxSNZC GDCYRIFwOdKFVG4tdtUaG5bSCXK+LZbfhj5Bc3rqowMsCEQ+Wcd3ae07L1MG1vKEF6 ImvGOx9CMzxz2PG4+2Ru0XfVi9SlGB6F74l8/x6Mmi2RtUi5BLz8oo19XnnT3D4+3t oCQzAV0LkLQjA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Audra Mitchell , Tejun Heo , Sasha Levin Subject: [PATCH 6.7 082/713] workqueue.c: Increase workqueue name length Date: Sun, 24 Mar 2024 18:36:48 -0400 Message-ID: <20240324224720.1345309-83-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- kernel/workqueue.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/kernel/workqueue.c b/kernel/workqueue.c index 4f87b1851c74a..1c72a616b9888 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9C39380C1D; Sun, 24 Mar 2024 22:48: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=1711320523; cv=none; b=k2HYFceJZpthhgSB7WimAtekCqpTDQeZPGC2V3Nbcg/LPWbmPPlSFkUvrB+7wQJY/rgFzU7TD76/6Bj/dB/OR1hpxzSot0boUGk6OkKmSxBzILiu/UoIAzUFkiinEmDMUjQ8wa1vyqlWQMwht4dAzDyiTI2Z56M0E1jQN0VtSvo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320523; c=relaxed/simple; bh=+lUh1ZDYkp6OBBsf4J9qRbpTilQcTdUi93yE2v0DY50=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=CD+/pv+c3LTIui9NJGHPm88hHcPMfuoOiE+6x+3key3U0+o9x4lq4v3yNDhHf3fz6MbBqllBuNnzj19JVId3kLmn5EpmLB5Ci9qtVLejsHNa5QLxcLPKqg17pYTmuyub+F3fk1TlTGTPfpuC9PPWAYneBAW3LZdEDjN5ziWQK/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=WTHSGf/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="WTHSGf/x" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A5078C433F1; Sun, 24 Mar 2024 22:48:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320522; bh=+lUh1ZDYkp6OBBsf4J9qRbpTilQcTdUi93yE2v0DY50=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=WTHSGf/xvNE7D8Usamv4SbY76w039UEKdL8rm+CNhexFGo/JbbzvV37t1sSPiRB4D WMPf6HcQpyYPWbyuOluyfT21w8XQFE8TjrOu0Kiz42cLkqqySiTwXt4FUnIqpq1Jx7 6PLNJ4moAdYpjUYXLHQiIGqN3mn3QwZsR6Bc2LQcJ3BQZ06Q7EEq0UtFgsc2PhMe4c K3h1beHnc+zy5bpY265OxbNFFWH9pk9q7ZSyFG/UqSPlmS/ZCDTrjjxafet497ZQPi tFt6cQO1Bme5dhzMFU1vPoM9yesig/52T2ogJHgNYIqvqkdgvRk4T2bDk60/Ei7gf8 BcJftXCkP5WXQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Tejun Heo , Lai Jiangshan , Sasha Levin Subject: [PATCH 6.7 083/713] workqueue: Move pwq->max_active to wq->max_active Date: Sun, 24 Mar 2024 18:36:49 -0400 Message-ID: <20240324224720.1345309-84-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- kernel/workqueue.c | 133 ++++++++++++++++++++++----------------------- 1 file changed, 66 insertions(+), 67 deletions(-) diff --git a/kernel/workqueue.c b/kernel/workqueue.c index 1c72a616b9888..f67eb40203ffc 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8E66780C17; Sun, 24 Mar 2024 22:48: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=1711320523; cv=none; b=Y9/eFbiy9D8dU52pSb/mSx9FtsUgakQnk3anixWgyOrjPpItqInZhQOYZ1BFcB43VzhG5hKhMHQIFR7iwhYvULWGaKLlBg0Yi06LxUqFWH94v3QxmIJKEql5l9hJlemhtQOD1nGVw6pJ7OExTzTik9Wu7BI8FLZCzTsvjTQWxds= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320523; c=relaxed/simple; bh=wd8GCL5M6ALkdfhbttLGKAwfW7ned3dpLEr+dadbP78=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=hdRY2vyaITJs2csABPyKFJMyKgco+Gx1desbW0hqiuK4u8vCPDsA89RjXpb83iuEaIRO2VnQNGdVeybBtJsUyGowJNMlkimqPE6z/8rVQQj3avUcZXIzk51o5uz4YjgZ3HQotpNbSkoYLXZwt2rlCvfNcJY007J+aRA1TZt6aJI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=U4TUPGvB; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="U4TUPGvB" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8BD3CC43399; Sun, 24 Mar 2024 22:48:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320523; bh=wd8GCL5M6ALkdfhbttLGKAwfW7ned3dpLEr+dadbP78=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=U4TUPGvBaVXMtPsQBi2Xd1ga2XgxmvcmPo/9Ob8el6HWmN+8XIiCRqXnJzB7rXc9H HrErB/tJ/B6BkbXUR9Ll+m5Racvp6QsqAH7UB5qjC2gbJqQoB1E625iQ5n2YY1bYnt JYBnbTxVhedsxp8JhRTlcwTTQx3iiugW9T2cCDOgSJBsTEKkFJKcUZ9b+TxlH8/xEL qeETyHw9ybaHZ/1rQOMPbEsn/SFM1nJit/suOpvZMSDR4cvoRIslmSGhIXqe84fsv9 2CeicI5XTbWMZcm4jY/lExumCADjg3Dz9a7Ja7kedR7riUa2MrVoobtxJv75j2o8D7 F8xYHspIt3hAw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Tejun Heo , Lai Jiangshan , Sasha Levin Subject: [PATCH 6.7 084/713] workqueue: Factor out pwq_is_empty() Date: Sun, 24 Mar 2024 18:36:50 -0400 Message-ID: <20240324224720.1345309-85-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- kernel/workqueue.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/kernel/workqueue.c b/kernel/workqueue.c index f67eb40203ffc..4674b45620e74 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3300180C16; Sun, 24 Mar 2024 22:48: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=1711320525; cv=none; b=Z9btAb2z3I5k9yAzt0Yp0b19DzoxxnCEcBbEH96+298k7nlDdya6kqLx4eGkDCjtwt98Anc0qyIwlXPmSAiDGsm1keyvzqftC/bSFIDAgJbgzMIzniUBkjxO+ENXDv9I/jMGzNNI4FuDcFEqcui5jsZwEAgWDt9/zlngZgQJkn8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320525; c=relaxed/simple; bh=+mlHzEBUPNqfokPIaT4uJRapE/C8RmPnz2gA32qU8Nk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PTeVjaohntESE1ZKp0fmCdwNNXQdR7LLOcuCtp7neQFXqLlXVtc9HQqAJMJirJRaZCgYjHytwC1f0O2gMCwJXEqwb4EM85ybOzLFhjqeiWrdJqjuSb9/7B3PMUEWkBM+ApUrBTlTb9305rvHCZjRuuGY4LCvQvj4fa3gpCxiEso= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=aNPzw0ed; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="aNPzw0ed" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6F0BDC433C7; Sun, 24 Mar 2024 22:48:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320524; bh=+mlHzEBUPNqfokPIaT4uJRapE/C8RmPnz2gA32qU8Nk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=aNPzw0edclHUb4Xfmdi6PHKGZsQJGk3CFOqGJibEFGj5g2G8ysO9DA7LXaH84k6r2 RFIFll6hSTrODr2F1gTBCfhtdpBz96gnIJ6ywXaAqtQGDQZXYpoZWWlrHyZ8KSnGEC lpgGT+9VLcH/mzC+XyKnBrsrmvZ6HGzuOLg/DOLrrRGVj9lmNHnEcjh6aINGfNiIna Ma0UDo+sTesZfGC670dr+1xwcfWdZoxAE3hZv6X4JzAp0yUsaHXwBkoBhoopqkL4Wz HqZnOxQj7MFNDQ0Jbbe3pHBrdvcAzQNya9rq0ZplzVq2uzT1dDxol1wii/ZtJM+BLQ EJkaf+USxI8qw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Tejun Heo , Lai Jiangshan , Sasha Levin Subject: [PATCH 6.7 085/713] workqueue: Replace pwq_activate_inactive_work() with [__]pwq_activate_work() Date: Sun, 24 Mar 2024 18:36:51 -0400 Message-ID: <20240324224720.1345309-86-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- kernel/workqueue.c | 31 +++++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/kernel/workqueue.c b/kernel/workqueue.c index 4674b45620e74..861d8c7d6449a 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 143C5811E0; Sun, 24 Mar 2024 22:48: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=1711320526; cv=none; b=GvmJheYr49q/18PTlIXQO86iftVCNSTqFw1eKXcl1Zjt2Vse+3wwrLSAkGTB7gyCx55mIVzapZBjbPA1/8x/5notZoKZPDmq8348XupuEbtQh9ue3Yy+IDsuVXWa7jrN+IzlSPaoTpfR5dFrg8WULT5eD3/fl0MI9iGqzLNbzWM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320526; c=relaxed/simple; bh=dUmGfVrxL7Wmgc2JNjSO7HBgRSs477Viq3KsCfXDnYg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=QwiGsiktSt94hDXTDURK8pgvZlwAIgLtsjkCtZNev0iSYeZQUen/6IkC2mrss14no5XoLVRQMG/0vyYCKeLzKwKrdgFOQQHO4jGwEwSY9FPTr36dQOZcFGXvyhQl+UlkYOkjV/jphfygmcR/v4Ea87XHDZZIp2EVVfoxY44hBvw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=GhQmHO44; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="GhQmHO44" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 54DC9C43390; Sun, 24 Mar 2024 22:48:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320525; bh=dUmGfVrxL7Wmgc2JNjSO7HBgRSs477Viq3KsCfXDnYg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=GhQmHO44yvtwpC4nIkRiDN1YQZXv+PVTLb4nfzaIyDwbxd3gArTPh1zzBu4zScqVP TDzo0hy7bIMMldwsUIOUWE7EBB3a4cKuv9XBEfhhi0t6volJSzZMLzLSqdCl33znQe nbaDLAdKXihjw4P5/2BLr1yZOmanf4CPsG3NF04bu+/dCBb29nX4RUtzBIXkl/wJz1 nXCraobOMPIkIwBSviZ/1h0GxYzSI4nCDNHrRqQHyELyBTBeB8zmH1Oo6l8WpuaBcV 8AnJyF/CfLx0ZxxL/tIwh9ipsmOF4n/EY+uURLs4cK2fL4MKGay6OzsF4+l/w4x+JK dteqF0FWorJgg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Tejun Heo , Lai Jiangshan , Sasha Levin Subject: [PATCH 6.7 086/713] workqueue: Move nr_active handling into helpers Date: Sun, 24 Mar 2024 18:36:52 -0400 Message-ID: <20240324224720.1345309-87-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- kernel/workqueue.c | 86 ++++++++++++++++++++++++++++++++++++---------- 1 file changed, 67 insertions(+), 19 deletions(-) diff --git a/kernel/workqueue.c b/kernel/workqueue.c index 861d8c7d6449a..78b4f4e3e41dd 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EF0231CE99B; Sun, 24 Mar 2024 22:48: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=1711320527; cv=none; b=Hqozh9vETmpRcAVxgzjc/wtuYf35gSe7O/V95L447eRaK8gKzpysA5YNlLhlbvxJ+UUYE69zLMAqfP4zdF3gCU1qR7yF7zZyx8cgDX/2OpJcBJ0ZQhj3kBuEi755MaTLsxhmE6EbkfNCuA3FRdwyHugZPapQeIF5d/d2iLTYUgA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320527; c=relaxed/simple; bh=MMQ1PVr+DULjkb6hUdVFC51M9t05DhNVZVRYlp2BvVA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=GT8avEoLH7y4i1gUKBT8kGlRmdJO4lKhVAEj8N6mJee0Wzv02kL6nFAC/J/cGxdFt+czVbuUU/a06rL6Zjjy4MySwLIws/jOnnpRXaIcLnQy47TfDurUV5Ao/QlGFMS8bUnyHsKSAVPWrlN3+nU+/dP1yi3bLcMSDMeKV10Jtww= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=KYqEGVS/; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="KYqEGVS/" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 39232C433A6; Sun, 24 Mar 2024 22:48:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320525; bh=MMQ1PVr+DULjkb6hUdVFC51M9t05DhNVZVRYlp2BvVA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=KYqEGVS/F89y0xNHFtiIo5Hd0lgC3MIru8XJ1xCNIJ4wqNpUZZEaQPdOy78XcyrxT 6vzCFRaDMTXto4h/z+dub+cEidNwciFRRwswnjqSh292NtcgnbzyNyWiOerzE0wsAB 5JBwV/VOepQp3lxIUerycykZdq3yxx5jaNKGs6/FAaViLV2hwn1GksqXlIhwcIJ9l+ uDemwdV3KksXoagbJoVFnCPa+fmSmfPQjjBib/iBQXstIv/LXsTMsiciFYey7r2OQ1 zs2h22tE7ncCn075TOlJind6F8U3sn+onHKZuYZE5HVizbyRL5IQXvjA6YPWV6ku7/ U4yg0ZE6VrIbw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Tejun Heo , Lai Jiangshan , Sasha Levin Subject: [PATCH 6.7 087/713] workqueue: Make wq_adjust_max_active() round-robin pwqs while activating Date: Sun, 24 Mar 2024 18:36:53 -0400 Message-ID: <20240324224720.1345309-88-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- kernel/workqueue.c | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/kernel/workqueue.c b/kernel/workqueue.c index 78b4f4e3e41dd..059f122563def 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D1F138120A; Sun, 24 Mar 2024 22:48: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=1711320527; cv=none; b=X1NvMg9/wJ+0v+Z/XNh8COO2BJtfmybYzdqo30G8jXU8FnBifQXwjAJEKJx1QPP4uYFN1vGoSfjRBEv6NlQomq1WQrKO8L1n7poZPDz4XV2lI9XnoATrR/2yNlJFoOHFQd0bnW0kiswLgqBAYwhN9l4NAluuI1IgDJ+CzaGplHE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320527; c=relaxed/simple; bh=OpbSXIs9k98gbYogvjWK31VrjqjDrXBfziuOBKHJiw4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=DuaFNUnZr4Ugd6n/KiXORrsl7iBYYk4UuCWI0P5z2MOXXMfrasz/SBy/JKyIGe29b2wXNSVCb2/N/UFEZo+T4w+ld2WLioKdRWi2YmfXO3vmx4j7ODrbfvEh299seUxboN7tuEgkY892kxYQJPfklXQkWrD6MI65bvKAXgdtxjY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=OFTcr+OU; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="OFTcr+OU" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1CC93C433C7; Sun, 24 Mar 2024 22:48:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320526; bh=OpbSXIs9k98gbYogvjWK31VrjqjDrXBfziuOBKHJiw4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=OFTcr+OUneQA9qpVMqeSPRz8LJIuvl+AHVkz6vLnSYewPyA7Ye8fftWLn4YADaT0d NGEC+rPNgOabG//TB4pLTtNcIrplfHRMjp9MCfaqbydoT1jwEnbIGp2jaLDZsZ+zYg /YGI+j3I3VPdlLI+1UoT/lqX0WnfWNRJDuoY2C+zmQrt20NsXmpr5YDOOm2A4JNu9z bhwp0MJlTIEPZXo/vdf+Efa83131vZ2y+r/tSB393rJs1/ujU1H0C5GrkIA8ufv2JC tvL5BdRMPHV0z60L20xPu0Xdc/Ne+ll0bD/n6v2Dlqv6KgIR4Ga5LuMB7rFdDQ4tP/ CzdZCy9pmeRdg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Tejun Heo , Lai Jiangshan , Sasha Levin Subject: [PATCH 6.7 088/713] workqueue: RCU protect wq->dfl_pwq and implement accessors for it Date: Sun, 24 Mar 2024 18:36:54 -0400 Message-ID: <20240324224720.1345309-89-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- kernel/workqueue.c | 64 +++++++++++++++++++++++++++++----------------- 1 file changed, 40 insertions(+), 24 deletions(-) diff --git a/kernel/workqueue.c b/kernel/workqueue.c index 059f122563def..53bebd8c8b457 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B46A4811F8; Sun, 24 Mar 2024 22:48: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=1711320527; cv=none; b=j2s1KnEqjJfKwrDd3m8uvXe4dgQY7cEWBRMpG2CF1gx194iazxvbkUens8T7wMWbeClsSBHmWYbGNhJB5xMUTkLMxi0x0O9RgMrKPjpYsIP/kwvGAV7v+ZtL/0noKfuSZPbvqnSnYEZv0SWkT2LO/BiMZdf65GmqzvrOD0byJao= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320527; c=relaxed/simple; bh=6+SYbOYNnKPwultYmz4ENRnWG3XaQXiJHsyiff95gzg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ECeuK2Z3WH15yZBnwtHSPOayH4GPXXIJPprbjT24C88K5pBZBxkGlPsj6L9rPGRQVIDUs/nQCXP/MqfH8sr6YKmw5vrY2/3WEo5Vkibs37rHGjD/0oYaFISkDoNkYlLQFIzZ6yel2+u7VDFARsLgBg8NGQ0M3K354wx5b6v4vik= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=qpi1LjGz; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="qpi1LjGz" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 00797C43399; Sun, 24 Mar 2024 22:48:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320527; bh=6+SYbOYNnKPwultYmz4ENRnWG3XaQXiJHsyiff95gzg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qpi1LjGzm278bcC+eo1HJi7kM09//MDqElwYSOHWqpbJc6PRJaTJX6XcnciLc0wfg SWBoDClKLSH2PbdKm3lPGltXHv1GE5ZtLKTybncW4jsOjR5saLCy7JofNL4hjMWNln oKKNIxVWSXk75wHaIqeOZ6meuWjt8oHhSXtpWjfeJ5/jbksf3IOIF6NQfdQY+Id9UC wt/tAK8/mWBQCnBs/BGWqRXXbTa4B/9XOY6zIY6vZKmeABiGgrCZ2I2EQDHbuoupg+ NImfYmbfWVHGL7px4QYc0cp2cMXrUcC96gW7/ZaDAorbRukOD5YVLHa9lUhZwRG7Xf 8qhqCpzcXjgPQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Tejun Heo , Lai Jiangshan , Sasha Levin Subject: [PATCH 6.7 089/713] workqueue: Introduce struct wq_node_nr_active Date: Sun, 24 Mar 2024 18:36:55 -0400 Message-ID: <20240324224720.1345309-90-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- kernel/workqueue.c | 142 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 135 insertions(+), 7 deletions(-) diff --git a/kernel/workqueue.c b/kernel/workqueue.c index 53bebd8c8b457..be1fc91b9851c 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 03C1F1D1D41; Sun, 24 Mar 2024 22:48: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=1711320530; cv=none; b=Guh7b+WrtT4novrp/aUQoLUoyvJZvDzz83DcDjLvkcfvxE7KKiBhzjnoicHSHaZCMFINPgxBbYhUY9hZmvaNTSaJh/kiPrt+Z4oh/QgUOcZxkjLFXTKyVjcMC+pC85vQ6DWW8uJGM/d7ne5H8TDbptOOVixPFWQcncVLkYnkzhg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320530; c=relaxed/simple; bh=LGZ1qlzaHEn3I8lsSm+bKeAGLv9w1zu0+gRRslUzlZE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=SFkI1vf8UMN0Eoc2S5+/HbtbgdHo2BSrsc1WFgO+2NfiPEoR3MHSc+hN9scttCHtJ8dAHyqHfunM09H66CalnyDIRcxx3F4eksrwnPnHVtL4yzE11BZ4aZfu26zAB2WBb9L5o6izvAs7FYMwDGR8wiee/mjH6B5ldSvg/S+1jqo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=dp6GM3Uy; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="dp6GM3Uy" Received: by smtp.kernel.org (Postfix) with ESMTPSA id DAB77C433F1; Sun, 24 Mar 2024 22:48:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320528; bh=LGZ1qlzaHEn3I8lsSm+bKeAGLv9w1zu0+gRRslUzlZE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=dp6GM3Uyn5IFLQOG/D3PKqMYNBAN9S6BHY5wQJiASgXqIiq2B1vKnHHyElY+Kmwpp GHLVclORQt9grLE4NeoAgG6EuLYt7OrOuqP+TaUarlgQn31PWKXPEcQKg13YtYqmdY cIJRiyAVRKmT6/7uB8jkbDAL6AF2W+NPs+WLx1353maTuDvxxbFm+I4UWr23FNIx/f gFFzHo4tGottRJ9Mugr8oTKFfkmvpPfbrtJbgELlxhI7FFk2SkxZRNicAFrPpbYIwa FldcZjtySdooq/atRfSoDXmTxzHoWpyEz5oqKf7UQYTouj9gei7GHvpjgOJ4G0g8Nu Qd27MbWaLDrlw== 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.7 090/713] workqueue: Implement system-wide nr_active enforcement for unbound workqueues Date: Sun, 24 Mar 2024 18:36:56 -0400 Message-ID: <20240324224720.1345309-91-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 be1fc91b9851c..6b18926cf3523 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 00F161D1D4C; Sun, 24 Mar 2024 22:48: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=1711320531; cv=none; b=prKENz6XOcm/xKTXm/83VxsrEbG9dxFcd/TbbVyI5gPKGtUNl9huieCK/VOpxyHuKOKbQDwVsrz3Qq19S0cAlp6Dcxu7GNf4OvpBvh/Rw77Z+XMU1tg0iLLxbOvAt5SNqTqWBWTEY5SD4Dkf6a8hK9FhBvCVp+1PpPVFbhSfq+w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320531; c=relaxed/simple; bh=kfUHX9dNA6VHlvW4hx4foa6phsP6hWb01o+wTBPm9Go=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=GZHdBiVxDNilBG0av1D9jEOdEg/66jiwxYw+v5jiPi1z/jFYB0vOKyJ+/rWeBG5PEIzuaUptYuGvTf6/AMheXaJ0GGW63D4eoGKSYvcDBi3tRZ3Amj06g2kUowyBoitHSiDfQo1BdyDedrWEmeUD43ms0eTNPWTVRHsRndldZeo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=G2zbLnis; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="G2zbLnis" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D84AFC433C7; Sun, 24 Mar 2024 22:48:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320529; bh=kfUHX9dNA6VHlvW4hx4foa6phsP6hWb01o+wTBPm9Go=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=G2zbLnisKCPx8QmRkESBRKXOA6LyQdlXvV6U4ueTzvKoPpSBFloi4LnvPMuGuaonU I/18z5kt7OpqVOBEh3nQMBMtEUoxTyVscebYSQ/wRHAcgLrmhWJmhaGNlHAZd3QRDv UgGf5gWRXk7aMFYc37Dzn6NpcsGKiF7s3WRi9pkWBro6q9COXL/BN+nxxRMN5uTTNi nDCSATDzueCtEpcDAc18wLwv/oIt5dp1r4SiK2wZ7UwgTESR9Nf9fHnwkHwxjocQt2 hFAfUvl+WfJ7ZQPD6B7PhS2bUtCWh1qaMwKqqFtwGnPHOKADFkzyzpCcCozuuGNu7Q TiQUqC8CvyYSA== 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.7 091/713] workqueue: Don't call cpumask_test_cpu() with -1 CPU in wq_update_node_max_active() Date: Sun, 24 Mar 2024 18:36:57 -0400 Message-ID: <20240324224720.1345309-92-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- kernel/workqueue.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/workqueue.c b/kernel/workqueue.c index 6b18926cf3523..6f7cb619aa5e4 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 96DB01D1D50; Sun, 24 Mar 2024 22:48: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=1711320531; cv=none; b=eBC/BvHpKHC7sLqh/tpgLZL/k3CQLic2dUry/quSc8b8o6F3TepmN5vsnF8DIctGlIZLGlpY/ICqJBRe0kEu6Bv/flC0AGDSMO/bHrkAwRkZsGtZrRJJfGi6oLzS/6FWLMJkGc6cDrq4o3F4qvtjcaFwTlAnxZvsQeKDQTLEGkw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320531; c=relaxed/simple; bh=Vk4HTc/xRaVdkDvNcdfvdHv7Ol25Px/EUYYf8d2Z9es=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=uAknNExHsyNVflEkFN/DQjXW8U5mKIxYwAeexll/WWYx411bEei62ynjfmxvSpL2Bkdjm49OhJbH1StFS3A+aJv58AEwcqHl5KAC5sZqIa7KT3JHyaBRvwtgi6kukFEZMkHdsOhm5s1P+A1VK6YMpgaGzxTn+1cyITg4caWa/tc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=j7+7wRMs; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="j7+7wRMs" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D467EC433A6; Sun, 24 Mar 2024 22:48:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320530; bh=Vk4HTc/xRaVdkDvNcdfvdHv7Ol25Px/EUYYf8d2Z9es=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=j7+7wRMscMY0O3YollNuqTrM8dhJve9wHnQ7syTlL18OalNagT0XyLM+bu46vSnPH 0DnnYGMFidFjfm5F25yTklt/C1M2xauSy6h83dsKlUJtI2Q3NQKhSbhSx85o8RLfjs BX10a3tCbzbcUVSF6xd5vM6zQLNOrj8fs6hUwerzB9bP+mzxF9LWqwqOjHHxcwQ5lZ MXm0bF+M0mZZAISPNuBbAoIwDoTuEfLJUJC//iGoTRuh68sp2jlXn/FYwvpgccvV2F mb33k0Dtq/Ws19CVH+inKyzIXA4wpQyEK6dtzXPd9Ap51VG4tDeNMRVCWrWC+yxxhB lsUM4+mnRszBA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Christoph Hellwig , Christian Brauner , Sasha Levin Subject: [PATCH 6.7 092/713] iomap: clear the per-folio dirty bits on all writeback failures Date: Sun, 24 Mar 2024 18:36:58 -0400 Message-ID: <20240324224720.1345309-93-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 f72df2babe561..fc5c64712318a 100644 --- a/fs/iomap/buffered-io.c +++ b/fs/iomap/buffered-io.c @@ -1843,16 +1843,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 /* @@ -1861,6 +1855,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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 523F41D1D58; Sun, 24 Mar 2024 22:48: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=1711320533; cv=none; b=FmjcuAa4WLeIRNrWfRAFVH3QfbuPmIxcmkYFxSBw3W7PJC1+Ht9PnFVDeEQj6FOtoEvtEvmy8tLB13+9XavQeLsWWuC5cLwYqVO0jiK6NXvnPeb0/0UOplqbVbRE2DpTpzS9qoK1BeI5DmYOeGv6xt2SMySFSY94psxZe32Xl1s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320533; c=relaxed/simple; bh=76vkGyrV3hb3aWyw3PS3hSUigT9JbLaVi74F4EZkltQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=c0B/jWAokJ6zVUNNl4fFtNN6987Jh1zYVYndi3ExrePfPmyfGk7VOdxCOOYUac+kNqnx2oFOMEaoLzVH643ZBzqjVeHoVc8yoyc65pLkQjtv1vaQ/C8BlcrfR86Et5C232ILqf/AgPMGwYF+WIJSB/YcI/p5veBlX0+tSrdO2vs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=NhhUi1aM; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="NhhUi1aM" Received: by smtp.kernel.org (Postfix) with ESMTPSA id BAC5CC43330; Sun, 24 Mar 2024 22:48:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320531; bh=76vkGyrV3hb3aWyw3PS3hSUigT9JbLaVi74F4EZkltQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=NhhUi1aMyE7ukx0oD9AQLBK26vBN1cxtCHxI2jm7b4YPq91TmcDIf3Z2Jur/s69iz utO6U/71LXy+B6m+9ZA32wjh+eiNeOjaq7gs+lu39sAek3ewyCbp9cu3fU+aWSXTxy 9HB4zu7rlzh7zW0dV0xIqDmd8Lyh/C7WrBfTkoaCsQ5+1wfBkhItO/ok8qNYh1+ddn 9Dd65Nx8Ym2N3bE8UjRX9T44LXMq0Mm9FMzhddy/+WjwBS+lQWzOL6M9MxKKDzBH1T 62OKs4LVF+Hs56nml2634Sw9UolD6rwhyL7Icrz2Rbox1Y+aVhaxFbS9RUJsh2D03/ LJyHohE8OAXPg== 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.7 093/713] fs: Fix rw_hint validation Date: Sun, 24 Mar 2024 18:36:59 -0400 Message-ID: <20240324224720.1345309-94-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- fs/fcntl.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/fs/fcntl.c b/fs/fcntl.c index c80a6acad742f..3ff707bf2743a 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 239DE1D1D65; Sun, 24 Mar 2024 22:48: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=1711320534; cv=none; b=YQU+m/n4ie0VcOPbW2pL5/zjFLuH/yOlItb1LtAg5DWcGYO/h1OBf0pWjpM/9Vawi0otANpBQe/Eu2fw++RFzkbukc2es8MfhZT4aH5xJCu4jrD9GDhVc9npWESTbM7dA0VSyu9pl1Ff7PU1I9rXnqIqmfQbNX1vCEl//yG3TB8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320534; c=relaxed/simple; bh=saSomq0+pwPHqV4U1Bpn2rUVGDiMXZ3Ct/2tCLU8Ur0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=msfPDdgZ/XluGHE0z/4C1EPNvamS5ivilsG1yAmAm0qXjDsJ/WtvUD2qXdphATpIBdl+c1wbrYwtENZdhT2jLz4Hbsck3Erk/OqEGijRteGPsOez7zYysPtbhM6CRoBGll1wzMI++FVYsdac8i0nEHi8fngE1cEx+JUzO5jm+dA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=HvfPQ7/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="HvfPQ7/e" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 326E6C433F1; Sun, 24 Mar 2024 22:48:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320532; bh=saSomq0+pwPHqV4U1Bpn2rUVGDiMXZ3Ct/2tCLU8Ur0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=HvfPQ7/eY2a4vhEUnyfHepTDE12hzbG+LvUudrGYE+Vw6x20y6ZalVL345odsJvXK khbCwT8VhD6IMEwtdey5fBV6I5UEy+fU5YLoem7cHm55QDci5ccOajlsFDpaMAtlDO S0WxQSSdD0Xz5GkXGSsN0QhVGr8DeySWL/FpsqSsTbsG0DFXXfmQl1p61ZiX7hcfms MfMXRkd0LKlIDFBU11PYyekHGCVbB6yEIHYwxZG9efMhhokTSWx1oLjiFYQaPcvxWU EGN5r8Q0g8lrUB3yZjVzuMzUWKw+Z9lvxRUa071OngqJu/sY0gkkyOyj6lcIeF/z8z aA/suHgqkCq0A== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jens Axboe , Sasha Levin Subject: [PATCH 6.7 094/713] io_uring: remove looping around handling traditional task_work Date: Sun, 24 Mar 2024 18:37:00 -0400 Message-ID: <20240324224720.1345309-95-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 f8d145fb40bbc..763ef8fff614f 100644 --- a/io_uring/io_uring.c +++ b/io_uring/io_uring.c @@ -1174,12 +1174,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); @@ -1203,7 +1202,7 @@ static unsigned int handle_tw_list(struct llist_node = *node, *ctx =3D NULL; cond_resched(); } - } + } while (node); =20 return count; } @@ -1222,22 +1221,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); @@ -1272,9 +1255,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)) { @@ -1282,21 +1263,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 @@ -1304,7 +1273,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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9E2CA1D1D6E; Sun, 24 Mar 2024 22:48: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=1711320534; cv=none; b=tB54kGbDQgJKVBYAcnFElsCQ9K8gFW39GPblKCYUbBy5AyrbX48lwfSemWn9gr7JDBqh3arU4AbaQoCke7Y1rExxOnMSEIBNDBQQTmzgfAGYmaoxYcj8jn2WMtuCFaTL3d6t9GHm9EJ0MTTohqErpL7cX4u/wWke4SD2Zm5L45g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320534; c=relaxed/simple; bh=YuQu28a5lAbixqa1lNZGvoJPKlxcFiJ0I8TNlgF/XUg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=BHQxysr+KA9/kKUKpofoXSG8EopAEubjZzgZeFet/njyFOw+iMPOBe0dpOY18a2ItC58YLm84U69opZGtUJPMunb/D668KElzLHbwezwsj7Rngiraq4gRTvbx8tqdmI0S45d0ZMoyBsUDE1ASuZSe3mfIXa1+hvJUIifxABdwp8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=VTrm2bDG; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="VTrm2bDG" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 018B9C43394; Sun, 24 Mar 2024 22:48:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320533; bh=YuQu28a5lAbixqa1lNZGvoJPKlxcFiJ0I8TNlgF/XUg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=VTrm2bDGeN661ZXQlCzSMFTWsWrvu+j3/0hW+Z2FilGCbq95PX3dF76ifzDxyHtUA MHvh8932bWmkd0UyaUp+qEZnQi7gxhha6azBcx/yTwYyI500QDcStR/+HiKLXHcxqv RQhqsbcC7I8W5I3gKEdhaLxry+M16sStACv8TVCAWJAW0lpfhx24ejhAdFe/+NONxi WkUUnNtTBO1oJJxWN2Lz0uF51ieF8chO4LTs3VYkh2WSqEy8yqZiHQUVhI/MoLdJUY ApgfOnQoUY2PU/E9bYizQ7GBWt4I24937gu3JIWyKiz52pnRKOYQ6u6fTF0gExqV5+ DnIJ5OF6l/j3Q== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jens Axboe , Sasha Levin Subject: [PATCH 6.7 095/713] io_uring: remove unconditional looping in local task_work handling Date: Sun, 24 Mar 2024 18:37:01 -0400 Message-ID: <20240324224720.1345309-96-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 763ef8fff614f..b658ba6703cc2 100644 --- a/io_uring/io_uring.c +++ b/io_uring/io_uring.c @@ -1370,7 +1370,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; @@ -1399,18 +1412,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; @@ -1418,20 +1433,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 @@ -1627,7 +1642,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)) { @@ -2470,7 +2485,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) @@ -2538,7 +2553,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 */ @@ -2576,11 +2591,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 { @@ -2599,7 +2613,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 @@ -3322,7 +3336,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); @@ -3684,7 +3698,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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D3A491D1D7E; Sun, 24 Mar 2024 22:48: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=1711320535; cv=none; b=g7PsNVuHwK818wTH0NMxQ4JHZHzX94Eo0c6qWPBDMkGcnhL26E9I33mRD5YMLy1fLHpmNSTiu3ZQ9qxhaeKW59aRaVsbZyQ0oJhHh6RH6tUwLeftP5ZkDKLvW7+1qe0E4ORUJ9bm7tKuj/GDD937wvRTMVGiUL548QexEStJxfw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320535; c=relaxed/simple; bh=adxVTphVLidzk8t0vX9goEcOrzMopwtUizQK40x+Yfo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=EBHuY17yiVI0kc1QzIa8cJvp5/jpQOAPqHQvNBEmdDdtubCXTVIjX+w2gI/WNcHRHbADr2D/RGkYATVncK1D+aGzjrdWweshtBryBdA0jtu4s+dvzFxOVziC85uTxqdxiPjBGkBTaJAMRcSKHb3EBHSbHWITouJcsClGOWfaISQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=aK+fWdrc; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="aK+fWdrc" Received: by smtp.kernel.org (Postfix) with ESMTPSA id C5215C43390; Sun, 24 Mar 2024 22:48:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320534; bh=adxVTphVLidzk8t0vX9goEcOrzMopwtUizQK40x+Yfo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=aK+fWdrcUc3KHE0D/HBFvJG5Jxzgha3l41TVTiCPrYfcLx3pgJpNfexx2yGuRnM5v iesrA8Zybl/hsRl5y8ujUrHXkLwCHx+jizdJzzbOTLimS2vko5ARDjUDm+SGwiP+Ma 79C0oELbhfT1bp8OvckE2GyFH8r815rqCz2zuui5XX+Z/+3w5v2NdPBHLGKYeG/2q0 iINs/aONCE6f506EB2f1IMZvGyVZeFMXKLMTCvinrX/VwcZme3FZ5bEgrHvLgrydmr VjJcQnQ7BR6TnOuRD97C8VnqOYaY7qgOzKef7tRrTMnFhdS35pJWVrPDfAFXI98j9F GU0cBpvZaOJrg== 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.7 096/713] s390/dasd: Use dev_*() for device log messages Date: Sun, 24 Mar 2024 18:37:02 -0400 Message-ID: <20240324224720.1345309-97-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-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: Bagas Sanjaya --- 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 833cfab7d8776..0eac1ae4f4acb 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 @@ -3408,8 +3405,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 /* @@ -3496,8 +3492,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); @@ -3510,11 +3509,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; } @@ -3522,8 +3520,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; } @@ -3544,8 +3541,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); @@ -3554,16 +3551,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 @@ -3574,10 +3570,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); @@ -3598,11 +3597,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; } @@ -3962,8 +3960,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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AD50A81AB3; Sun, 24 Mar 2024 22:48: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=1711320536; cv=none; b=IWHJUZ9/54Pkh0PeGjzPVLi2eAI7WK+fnbvk+wzucxDtag28Vnjjldik5qtAWxXVzU8VH+o4WpG6p+BNP+KWiRUe9LUQWxEUTkdK91GcOaS3hBdM7aQNPoA9XtTBUp5LoL7e9J5W5plwUT3mFzDfaLJR7dnC6gRlJB5nVC5SQJ8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320536; c=relaxed/simple; bh=AwyNxaZOvXSXnp4f0s/g9Unj9WcJWoQ1M+XXVbWtZNY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=aM1V0d/5yb+wE4WgeSLwd8WLGmXDq5U7KP+sZ8wT4tZzNj5fxwJLfrBD3sAEcthEbcISV7MQbhD9qDyi8Hm/kuh7Oq00W+tFggt+/yseoWWerFzQosD1qVLZMS6DI3BuHr22Pu5YTFOqOSNM7wSFGRjj8BhwVWYCJtFX3LygsVA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=bJnAQJko; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="bJnAQJko" Received: by smtp.kernel.org (Postfix) with ESMTPSA id C13DAC433C7; Sun, 24 Mar 2024 22:48:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320535; bh=AwyNxaZOvXSXnp4f0s/g9Unj9WcJWoQ1M+XXVbWtZNY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=bJnAQJkoCSylrbxMUIe4PK6DrxgctchyW/FE2cZHjsV6PwBe+guEhY3xbeo2gxpGy hLjDAr+6lDPrJbKPuCzat2fck1CZ14YF4H7Lcr0e5XWmuEo+VwFrBLwZXpLpZZaP4q U3Mngkg7gwRq7T6fcRnuSzEZduh949g2TPkjabMRGagWNc8NHljVfIGmujm0nSj1Dk P7Wz1ogw4sRydYPn5Tl1epp5mZO4ZOrdZMFAq2MTitUvC6CNG91QMceKa8MVZCbn0j voOrghEReZkiB7hUAiaW+n0ZdFJZLe00l61tUABLMmJyR+K3ZsT1dWvHV14Q3VHyD0 3iXdje5US5oAw== 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.7 097/713] s390/dasd: fix double module refcount decrement Date: Sun, 24 Mar 2024 18:37:03 -0400 Message-ID: <20240324224720.1345309-98-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-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: Bagas Sanjaya --- 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 0eac1ae4f4acb..0eea5afe9e9ea 100644 --- a/drivers/s390/block/dasd.c +++ b/drivers/s390/block/dasd.c @@ -3530,12 +3530,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 */ @@ -3543,8 +3542,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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 90BF61D2A89; Sun, 24 Mar 2024 22:48: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=1711320537; cv=none; b=oWsYlFc210Vlig+g/0Jhgurkm+JOVj8fe9hyngwgJMD/UejF5t2ughsCkqlcjp1ETkkzuJ9TjjNGftyZ1sQSv4SoAkHsEcdC+xxPIwOQWdQjdvIMWZ/Ag/y1tZlrX48vm+sxVAETy5IrP9JJJ8jV5MSr02sPLI73Au9D9JoluYw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320537; c=relaxed/simple; bh=XuA+8nGkGj4xp7oyuXzOhHBuT5R9Q9Rrl3+R1s6tAsw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=QoiqGIqLdnjeQ9kUB0l3a0go+DsFiMltqRwe+0cHg3hikn86ILJwVXDXQ3Pnc0Ka4w+6Lq16IjHBnRizWOuOw3qtZsiempOI9Spert/i8sELQlIfQZevanNgv3vnsw4MzNMD5deQjcFXDKREgUjv/WqBVaC062ueC9mnYdfajuU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=CEdqcoRc; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="CEdqcoRc" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D50D6C43394; Sun, 24 Mar 2024 22:48:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320536; bh=XuA+8nGkGj4xp7oyuXzOhHBuT5R9Q9Rrl3+R1s6tAsw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=CEdqcoRcuGNUa7tUtfHeUY6YJkW6bYvND0zCz2TxybrJbhnluXpHv+0XOMKt5YuE0 9rx+fcPlNHg6q0C0OImznsXOkRPGcq4cv75XRe7S8XeLiEv9bN/55DCTSGvhg7bWi/ s6g47hfMHrGZ5RdEP6sdap4+IEURjO411xK53b8/VXkHrP+tiYv4c7fHFLs+4dnFa4 hNCWtm/9Cvc9XpStK+Jfvc47IWsvuFCbMHTc/JpHR3B5NZk2WZcjjOV6YESTZN0pF0 GFyIg0O91J2UEa6QPjUQYxJmuRedqJ9DYnHn1PdFsmHBnJsP4ujCX9m/vRTUQbeMun eilbW8ZydnCGw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Li Nan , Song Liu , Sasha Levin Subject: [PATCH 6.7 098/713] md: fix kmemleak of rdev->serial Date: Sun, 24 Mar 2024 18:37:04 -0400 Message-ID: <20240324224720.1345309-99-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 6cf350658736681b9d6b0b6e58c5c76b235bb4c4 ] If kobject_add() is fail in bind_rdev_to_array(), 'rdev->serial' will be alloc not be freed, and kmemleak occurs. unreferenced object 0xffff88815a350000 (size 49152): comm "mdadm", pid 789, jiffies 4294716910 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 00 00 00 00 00 00 00 00 ................ backtrace (crc f773277a): [<0000000058b0a453>] kmemleak_alloc+0x61/0xe0 [<00000000366adf14>] __kmalloc_large_node+0x15e/0x270 [<000000002e82961b>] __kmalloc_node.cold+0x11/0x7f [<00000000f206d60a>] kvmalloc_node+0x74/0x150 [<0000000034bf3363>] rdev_init_serial+0x67/0x170 [<0000000010e08fe9>] mddev_create_serial_pool+0x62/0x220 [<00000000c3837bf0>] bind_rdev_to_array+0x2af/0x630 [<0000000073c28560>] md_add_new_disk+0x400/0x9f0 [<00000000770e30ff>] md_ioctl+0x15bf/0x1c10 [<000000006cfab718>] blkdev_ioctl+0x191/0x3f0 [<0000000085086a11>] vfs_ioctl+0x22/0x60 [<0000000018b656fe>] __x64_sys_ioctl+0xba/0xe0 [<00000000e54e675e>] do_syscall_64+0x71/0x150 [<000000008b0ad622>] entry_SYSCALL_64_after_hwframe+0x6c/0x74 Fixes: 963c555e75b0 ("md: introduce mddev_create/destroy_wb_pool for the ch= ange of member device") Signed-off-by: Li Nan Signed-off-by: Song Liu Link: https://lore.kernel.org/r/20240208085556.2412922-1-linan666@huaweiclo= ud.com Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- drivers/md/md.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/md/md.c b/drivers/md/md.c index 58889bc72659a..0b49033afa6bc 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c @@ -2582,6 +2582,7 @@ static int bind_rdev_to_array(struct md_rdev *rdev, s= truct mddev *mddev) fail: pr_warn("md: failed to register dev-%s for %s\n", b, mdname(mddev)); + mddev_destroy_serial_pool(mddev, rdev); return err; } =20 --=20 2.43.0 From nobody Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A292C1D2A9A; Sun, 24 Mar 2024 22:48: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=1711320538; cv=none; b=sNscjdui/GB4EcaNewcRZkw5mz4Eovu9yWiZJM+K+XJ4AoUUfLENUPNTCeAGxshgY4gS0m6r8mJCiwj3jCk+CpxcMFL03JBzL+LDrtlW1fewk9qynDCSof9CndXqblI+u7uCbQ2th0hgbgAlKZmWCIJaohQHN5kKZcyIvCgvMR8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320538; c=relaxed/simple; bh=OMAk9UOGghL2sUqX40h2Jrbj1lwl32TZ1AeXnBhK4Nk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=S+u9JyDb3zyx/1VpW4d2lwt+AtUocVbNx33q0HwoF5qVkYoJjVQYR145bCdSfJTf2A0KCKE41WTe1iRZR/2Z/3IMdaIfpzNQ23KjpXEdDIky15Rr7h24daufrfHqS1ik4Tb3qO9wTSzH93rvyexa8TAXtEJ0mk1nFg9vq1qdIKo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=B0iAlah1; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="B0iAlah1" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B82EDC43399; Sun, 24 Mar 2024 22:48:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320537; bh=OMAk9UOGghL2sUqX40h2Jrbj1lwl32TZ1AeXnBhK4Nk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=B0iAlah1CQ2WQ6y4F6XWKUMiNr8nKJthtAfVz4UeEC/a3unvRZm8jfMZutLahJYKC YoLMVWUQ1lfp1DiDxg1s02pBb7uTveYBTSgPVP3QPftLNh/dMjGtszUqh+EpiNt4VF 0iXw0fkIJ6N8yz3SeURMVH6q4SZvkHJTX4LBBCYe96SKx5XKQDyZE+WHPv6Ghelydu tpslXlHkNUqUb/mFtJjEsU0Ux45nOZdz6AgDsrDo7nps1f3ih0ApPcFvY+u48DzF+F DTO+SzABeaYkwfNxLWgEecyNxPHOY8SRPIC/9idrjc/Jw2ltnOXLm9AA0dY/DUkJHd JcYTHMPNaXerg== 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.7 099/713] rcu/exp: Fix RCU expedited parallel grace period kworker allocation failure recovery Date: Sun, 24 Mar 2024 18:37:05 -0400 Message-ID: <20240324224720.1345309-100-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- kernel/rcu/tree.c | 1 + 1 file changed, 1 insertion(+) diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index 157f3ca2a9b56..fc318477877ba 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -4747,6 +4747,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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B75281D2AA8; Sun, 24 Mar 2024 22:48: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=1711320539; cv=none; b=KhRziT/QL5c+TCtGOufSoMPHB7D1ZN9ZLjK1HCcXtTkEYqXYB9916ujFBRHeYU6geegyNqyPU8mc9IFaw7Z9IWg/JryNnJY5b1Us+u26/Q8N9ieCZjcJFBtzbrAnQ9xu6w75OpTX20qkDK7UQ8X4hwuo62Q4K8eJ2Rg5TbRqNlw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320539; c=relaxed/simple; bh=3F/obsnB6vypavBgIG5iRuZ26KM+eIJVxAzL8Q3GuRc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mtqy0giCwsNixPI48WiJETIhmMe7GlTTPHH5tZ+S9URXBJxaZGzWBho6CVZuxB9K8pS2dvL5uQBoRhArKhJ4Hw2UVnq+LgP2n3LceQOGvl2sn9FD1Vm8P86BaegTLxQEHYqedKvtdBLSuIV16dOUIuCPDh9EMPg+X53IxrQZQio= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=HclZI0Gd; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="HclZI0Gd" Received: by smtp.kernel.org (Postfix) with ESMTPSA id CBE1FC43394; Sun, 24 Mar 2024 22:48:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320538; bh=3F/obsnB6vypavBgIG5iRuZ26KM+eIJVxAzL8Q3GuRc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=HclZI0GdrQoiAqrQrABv+AhS2jRhv/6Hi0809o9Xi0YHZuCjeLAzCn5WaFmpuzHem Bh/8/JN9P5i8ncbSfOnfTEYqdXQjFCdLJ83NAu4P20E/UJ67lNFr1m/R6J9BXmhgSd szfmwmA+LNpMOwSYzWvAcqrNu/xw7gkyeuPqL6EgfvBbyU/AAGD+iujGFiaJ9Jn7uq weQ9//biGC+XJehJh+UNZkIDV/eNYqJM8IvhVWmFZ9xpnGDKa49O10+MTfGKd1jWpJ 9O9sR/1BKAyPFb1Tbx2/mGxrCO5SvjRg3iqr2E4DHHgKhDQJ0qIj2Xl3l4bOTlYpKg UjuOGK24BylVw== 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.7 100/713] rcu/exp: Handle RCU expedited grace period kworker allocation failure Date: Sun, 24 Mar 2024 18:37:06 -0400 Message-ID: <20240324224720.1345309-101-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 fc318477877ba..f544f24df1856 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -4741,6 +4741,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 @@ -4749,6 +4750,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 2ac440bc7e10b..8107f818455da 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. */ @@ -956,7 +966,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; @@ -967,6 +977,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. @@ -996,7 +1009,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 { @@ -1014,7 +1027,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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CC8FD1D2AB8; Sun, 24 Mar 2024 22:48: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=1711320540; cv=none; b=q5DTlo5gR5+fFp0CXQznvN4T1QWV/ZuCpxciTc2Q8E736f+75rxmbANBRck+ASlaJZlMpZuI0Bsret7a6CKImHQLD/x+k9f7sgv6KtjZSZAr+wADE+pvRuS4fZ/jrvHEkmPwdJxOagtNufDCecRTzWaj1ilVYc2VB/iCiUfMOqg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320540; c=relaxed/simple; bh=iuDJNO0DaCTOuSrMMwWIo+ZzkIKJPWt7rbgvtIBljgg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=IvU55yW1RJLQOJxZ8RK8uNCXpHMqwL8ETLmk+j/ealrxCcy4U0gBYybB0hDDZVVQ9BdYJNv6ojov034j2cyrUhP96YYyBtqH4YG5kpfvQI1vRV5HGoO5c1DHGQPrMzgY7pnJ+LyxfKvjbB50QoTII9cKxhFYmMkJ+s+I4BOH2kc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=g+CaWMhy; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="g+CaWMhy" Received: by smtp.kernel.org (Postfix) with ESMTPSA id DEEBEC433C7; Sun, 24 Mar 2024 22:48:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320539; bh=iuDJNO0DaCTOuSrMMwWIo+ZzkIKJPWt7rbgvtIBljgg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=g+CaWMhy12G5xHG1ib30kMmKrbN4X6bbEuyHUWaJLoDuVOdJ+Sx8mUE4lUjIGxzak EvQbtoe3MtrykbaxqMTbJTPj9fl/4iXtXcUwaE6Wfcvtzt2yIQCwgAnrZa5axNA1sV PfQ0WDH2aJtTdmDndxjd41RZNT9yPHYiyyhsZboDTmbz+yipc/jqbUu0jEW11tQTVM ViQ7BBEA4VPXIQMGOW6F+xZcDioes/Dne8zefWxiSVFT4ZRNFVNdKHyUOZAvVF7LBA gPF3zbRzm4Y38qPP7uSFvdHltRHZotQaxgQHN9hkdiHg6r1wS89PoyPNFpdlTVEQHL tzveg/HShjWOw== 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.7 101/713] nbd: null check for nla_nest_start Date: Sun, 24 Mar 2024 18:37:07 -0400 Message-ID: <20240324224720.1345309-102-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0690C81AC4; Sun, 24 Mar 2024 22:49: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=1711320542; cv=none; b=puAM5w+h1GfqhkqaGWyhP5QA42EcAh5xJsd9Rj3HGAsD6eS18kL+Ke1j8kg0BYzPE8YhKhcAI3TLvDKgifehR91+dJBYF8ZaIJ8pLwu0s4N5G9/ctYRtSwQYIOP6xWhBQSBBejQlgiqyPk4oLao8mxRoY7LLb12Ddi0fe2OBUjk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320542; c=relaxed/simple; bh=c/8ThzkfXePMKSUnih7WKsu2s/C2H5smRXIfTXnLdnc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=BDTjPqOWV0LNId6hi4+gYSSRyFn8Hetc4320BjkBbC85ty3EgpnVYr5jJuP0BaPWaUQgrsxka/aJLtymjFzO+m2G7OGxH/4xk/QrYx3l0+opq8g/UBhOKhCuv3fuVk247A8DeIO18PC1hYWb3dRrGfW4yoN3TOsnsofhNdZOV9I= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Zx1I6V8S; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Zx1I6V8S" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 00504C43394; Sun, 24 Mar 2024 22:48:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320540; bh=c/8ThzkfXePMKSUnih7WKsu2s/C2H5smRXIfTXnLdnc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Zx1I6V8SZhU5lPYPsb2DoXt0nt+lNVe68ymZwsD9ZkexNhxl248Uug2ovtvNQ3P/Q 1ElvFnqnxyXsbD84zYnq8+rXBjdDgM/iEfJLh9PO/8H5l9uyHtpMBqhzb52HpezHDn LJFTJWNLYI31jygyMlp7SAOlVMpBzKLN03nXgOPmNKn/KMlSI71GkO2I3//60S7mQk GC/ZqYiCIUxmbElYzV9W3fAQuJN4vTe2074huHKvKdrmC1iJ/+QlLU1JIER5foF85N ou9RY20LzyXCEELeBMjpkSdBaE/0aKuRZydPni8K3HvmnxgGUOlsxYqJQt7eEj6zNv 7IMhIMSJZIpYw== 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.7 102/713] fs/select: rework stack allocation hack for clang Date: Sun, 24 Mar 2024 18:37:08 -0400 Message-ID: <20240324224720.1345309-103-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 32FF41422A7; Sun, 24 Mar 2024 22:49: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=1711320543; cv=none; b=cvFqLEH42s6HWdm/owRSOvoJ7BB00dDsUKWo/Fn6aEehfe2AtRupsZqho8+5gO1Iaw/jrt2qIBYv/tJCMKMoBPv1D6LBGImLgR710dTg2AJPIk946voo4F4f+zU8Y9SzZJgHpbE/DJqJRJYJzO1+X7GhC1iphj6cK/p5EVR+dk0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320543; c=relaxed/simple; bh=XOYrKTWco8HiIB6DZWLSwMFHj0pkQP8UMX5FuLWZT+E=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=rCVESlKVtD7txpYj6a7VaP0oO3da7zv1WzmA18+HHiEcs9Xsxz1DyJ7pudxR4Sib7GlzYqiROro/QCn2gVTqQhi9M4yWkXvujcp60J2abvRKANryyFwrxPW6jsxihbuoDl6QP5C1hgj/kNcULLeXR8NhaF4LAfxfAsGYuz6qd/8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Ufk0EqLy; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Ufk0EqLy" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2B0BFC433C7; Sun, 24 Mar 2024 22:49:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320542; bh=XOYrKTWco8HiIB6DZWLSwMFHj0pkQP8UMX5FuLWZT+E=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Ufk0EqLy47YI1XjhjNSFGELxXH1u9A+L5C4TEnHUoFKexnV85wXZYZYXcFLwi04qG rmjHsmmoD/JzJ+pb+hL6qkBiDhei8gPfvgnoJD6Db3pz/5JHYQz23b/KUiduxKrTop vWluBzM4GMTvEW+Ysxch7AN7IsR2YdO/WhfOO1AXjI652fohLnxoYp/aBzdBJtdzE5 kLQkPEnQxeean6RZB6QRzY5pMYAGVmm/m529mn/9Sa4GPKJjfuQ1PoXTrodKUZ7/RP lLC/ahauQvbE+B+KP4tW8LWTzdJy+yNIwDUJRONxv+W7O9O5D1tEq1g+OJyRuhZn0v PCfQ9LM26UXkQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Li Nan , mgperkow@gmail.com, Christoph Hellwig , Yu Kuai , Jens Axboe , Sasha Levin Subject: [PATCH 6.7 103/713] block: fix deadlock between bd_link_disk_holder and partition scan Date: Sun, 24 Mar 2024 18:37:09 -0400 Message-ID: <20240324224720.1345309-104-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 03f12122b20b6e6028e9ed69030a49f9cffcbb75 ] 'open_mutex' of gendisk is used to protect open/close block devices. But in bd_link_disk_holder(), it is used to protect the creation of symlink between holding disk and slave bdev, which introduces some issues. When bd_link_disk_holder() is called, the driver is usually in the process of initialization/modification and may suspend submitting io. At this time, any io hold 'open_mutex', such as scanning partitions, can cause deadlocks. For example, in raid: T1 T2 bdev_open_by_dev lock open_mutex [1] ... efi_partition ... md_submit_bio md_ioctl mddev_syspend -> suspend all io md_add_new_disk bind_rdev_to_array bd_link_disk_holder try lock open_mutex [2] md_handle_request -> wait mddev_resume T1 scan partition, T2 add a new device to raid. T1 waits for T2 to resume mddev, but T2 waits for open_mutex held by T1. Deadlock occurs. Fix it by introducing a local mutex 'blk_holder_mutex' to replace 'open_mutex'. Fixes: 1b0a2d950ee2 ("md: use new apis to suspend array for ioctls involed = array reconfiguration") Reported-by: mgperkow@gmail.com Closes: https://bugzilla.kernel.org/show_bug.cgi?id=3D218459 Signed-off-by: Li Nan Reviewed-by: Christoph Hellwig Reviewed-by: Yu Kuai Link: https://lore.kernel.org/r/20240221090122.1281868-1-linan666@huaweiclo= ud.com Signed-off-by: Jens Axboe Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- block/holder.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/block/holder.c b/block/holder.c index 37d18c13d9581..791091a7eac23 100644 --- a/block/holder.c +++ b/block/holder.c @@ -8,6 +8,8 @@ struct bd_holder_disk { int refcnt; }; =20 +static DEFINE_MUTEX(blk_holder_mutex); + static struct bd_holder_disk *bd_find_holder_disk(struct block_device *bde= v, struct gendisk *disk) { @@ -80,7 +82,7 @@ int bd_link_disk_holder(struct block_device *bdev, struct= gendisk *disk) kobject_get(bdev->bd_holder_dir); mutex_unlock(&bdev->bd_disk->open_mutex); =20 - mutex_lock(&disk->open_mutex); + mutex_lock(&blk_holder_mutex); WARN_ON_ONCE(!bdev->bd_holder); =20 holder =3D bd_find_holder_disk(bdev, disk); @@ -108,7 +110,7 @@ int bd_link_disk_holder(struct block_device *bdev, stru= ct gendisk *disk) goto out_del_symlink; list_add(&holder->list, &disk->slave_bdevs); =20 - mutex_unlock(&disk->open_mutex); + mutex_unlock(&blk_holder_mutex); return 0; =20 out_del_symlink: @@ -116,7 +118,7 @@ int bd_link_disk_holder(struct block_device *bdev, stru= ct gendisk *disk) out_free_holder: kfree(holder); out_unlock: - mutex_unlock(&disk->open_mutex); + mutex_unlock(&blk_holder_mutex); if (ret) kobject_put(bdev->bd_holder_dir); return ret; @@ -140,7 +142,7 @@ void bd_unlink_disk_holder(struct block_device *bdev, s= truct gendisk *disk) if (WARN_ON_ONCE(!disk->slave_dir)) return; =20 - mutex_lock(&disk->open_mutex); + mutex_lock(&blk_holder_mutex); holder =3D bd_find_holder_disk(bdev, disk); if (!WARN_ON_ONCE(holder =3D=3D NULL) && !--holder->refcnt) { del_symlink(disk->slave_dir, bdev_kobj(bdev)); @@ -149,6 +151,6 @@ void bd_unlink_disk_holder(struct block_device *bdev, s= truct gendisk *disk) list_del_init(&holder->list); kfree(holder); } - mutex_unlock(&disk->open_mutex); + mutex_unlock(&blk_holder_mutex); } EXPORT_SYMBOL_GPL(bd_unlink_disk_holder); --=20 2.43.0 From nobody Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6970E1422B6; Sun, 24 Mar 2024 22:49: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=1711320544; cv=none; b=c5C1356/MS7OUSnjsH3itjFFN93ogLMpeQaA/bJrsuxYK8FFpOxwzy8QRuD+ODaFVtxifwYHcPovDsnEgrXWnqZ1TKGXmU9RT4CfhgV+TFLNW9XmtjjbvZ9ZDG6HIZGUFAPjNlrhwDkI1uO88ldiNU6Wg7QqXpTRwiuwkuQDP2Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320544; c=relaxed/simple; bh=CP0GBc2tzjL7Eq3mKNB5Vuisggt/8ApKO4BnLcAc2Gk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MEFEwShYsw2PGoQZcu9bIaURrZLcnzM7SctdHteZDKRjNZygqLPuJ+deGBFexcISI82C/mX6GcoXgtSKU5e0GCW0uuSk3+bV3a3v4vhpXT76/RTApgFGyrGcWvBSjPdxuKKu/eX+LWW6V0Bi3GO2I6ejC0VFVOc2iI545csGiys= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Alkpp2LL; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Alkpp2LL" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5740EC43390; Sun, 24 Mar 2024 22:49:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320543; bh=CP0GBc2tzjL7Eq3mKNB5Vuisggt/8ApKO4BnLcAc2Gk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Alkpp2LL6ePAoHUhl/rjiHwj5Vw1qaiQOt1gaKVVMZEoKPZ8MP4r+Myw2+e+hUcNl 9IJMETN3XIE8RlTPV1Soi788IwDRQ60w04lFz8CIXTx64MNSSHt8QV3w4ejNnaJyZ+ sfXmHKJHCRIsW2BvWx49o90APKG8fGtlWv0vPS2A77VH3Fm0xQHGZUwrb0PcJUonTS gqyzReCqoNJu+g4nx0q5T5qTNtVktwBWQ7oWeSDZKkWRm9w6C160yYlVNcgJOhzM0k KfqSchbPZsyJnQ9Y6EMrlgwehi0VkDTisnUdMLA11fjeqd6Ys4c5EcBzNAE2xQpAYD 1pPt34rQ/Kisw== 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.7 104/713] md: Don't clear MD_CLOSING when the raid is about to stop Date: Sun, 24 Mar 2024 18:37:10 -0400 Message-ID: <20240324224720.1345309-105-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 0b49033afa6bc..b2f27ac51bfb6 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c @@ -6304,7 +6304,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; @@ -7650,7 +7658,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; @@ -7734,7 +7741,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); } @@ -7876,7 +7882,7 @@ static int md_ioctl(struct block_device *bdev, blk_mo= de_t mode, mddev_unlock(mddev); =20 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2D23E1422BE; Sun, 24 Mar 2024 22:49: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=1711320545; cv=none; b=WeiAxAz/lfF35PEBgxWbN6jeT1fsmbmJcBnYlzCGF6v9e2a7zVwLLofWp9TGP+3w2UNcXtCHIEUgj7VjQO9KSfzHUJchwmkrb/cGOp8B02E4Xur2DluwvrIYKziMV2sqtLhST1aqSBIo8uo139dYWcwJd4lK9ylf0m/mASPWGM4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320545; c=relaxed/simple; bh=TqbdMatSwzqhA9SLehDS7UjFj034MU3eHyuNpAN4Ps8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=eZjY8PYFsLmm+Kd/TwrwXe8CYBcSqUEwhbrr1z1aGRq0VRer7bI96zYI88jbbryMHsjpYg24xbkL0ZoUpD+9k14LA3Zr75yS4O0rC8pabXElZ8QVRKqYJGqc+s/FE6LTRLeEORO+JwSn0tNNihQquvOVRZG3ScCBFrZ0WILZJOE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=RIqyzooz; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="RIqyzooz" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 531E9C433F1; Sun, 24 Mar 2024 22:49:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320544; bh=TqbdMatSwzqhA9SLehDS7UjFj034MU3eHyuNpAN4Ps8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=RIqyzoozJ25rN2HeXZWkW9kxregwj9EFm2XxP2BrpmXA4/jG5P0LD370+mxgrtkqi VWbCgXZNZMFGSHa9urvHXGa/MWYjkp4SRCDo6zvxkOfll/1jGTWu6kP0QqgC/1gG3o BKzL7OPyzg1kXJEPNdHLofmKJJqlf4rgh+f+d05u2ebNeENUSFibwS42NKbmuh3jJ8 E/tWhhTEVocuh+n04X2t8WwZBJHRVLam7TGg6p5zIfmRRb511gykSk5Tj794RenFtC 6+eEtMCJZHNEb3/wDuoi+Ayht9elqakrgSiQT8NpccZXPKs2EWHUq18JXIaKpGHMi9 WI8AuRWmf6ZDg== 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.7 105/713] ovl: Always reject mounting over case-insensitive directories Date: Sun, 24 Mar 2024 18:37:11 -0400 Message-ID: <20240324224720.1345309-106-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 3fe2dde1598f9..488f920f79d28 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 7f659c26794b5..98c718b0fe532 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -3205,6 +3205,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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 67F9D1422D1; Sun, 24 Mar 2024 22:49: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=1711320546; cv=none; b=HRpCAxNXnGB+CrDzyuYy8yOsJUux8rjW+8wAVfGBJ+dgLOZQR6okZoCwfjJsACJxyqdYIHwf7458fqi5zCYAJdpXYAYi/MAPMRh0G2bXTO51q1bfi3WIOPsTl6H+Y4HeovMOdC+e9hCKS6B0AaZTktUcmvRIlD4Us/cZqIbUcyE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320546; c=relaxed/simple; bh=kcjCwDbEJD49FCkn7bWPsxt2uts52PTkJf8FWlS/DAE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=g9TuaaKC7gmDMdyp9+BrfFWJz7ue/fnC38Szjbb/bS6yrs0KNTobk9rq9YRwh+DV2+HOIuCsYk0SafZvTcZ4JyLS3BJewvFBZcDd5+59108uCR2kLrW5guymV7W9fbY+QhNZSBoPK3hUQegLi8toD7ini9eWJEcfqLYHLuX+qr4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=dQQp1tCe; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="dQQp1tCe" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4E4BBC433A6; Sun, 24 Mar 2024 22:49:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320545; bh=kcjCwDbEJD49FCkn7bWPsxt2uts52PTkJf8FWlS/DAE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=dQQp1tCeM63NF0Z8xT1hXJoa1vFyz5wwOHdwS5Bj8uSCIt0vPdIxjMviWFcrzt/6c RvthkeIk7EikXNAunpGip20HxZ9KYEoezNAT2rm3WLhKy6ylMUb8SFWlsNjx0hDW/x Hc5O77lF10dkFS8Pr2V72SjaJUkvBnzsjjK0T3zcXq1P+JR1rUMF23Fa5TO9X2lO2g pR/j3STgJUdNVDox0KRW66palwvplM4SAs0PdTiQHdSan3W8nszYyFRunlaKIZIial V/iQrmS1Ko4YF3hbz/hT8Skz5zUh3OWh/Rk7qHF6qi43mPJa7c56h9gH8KmeV7uAQJ GabzOA/+HOK4w== 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.7 106/713] kunit: test: Log the correct filter string in executor_test Date: Sun, 24 Mar 2024 18:37:12 -0400 Message-ID: <20240324224720.1345309-107-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C540381ADB; Sun, 24 Mar 2024 22:49: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=1711320547; cv=none; b=m0Mh75qo+dfBfArmqBzj+tTh1X2/IMnya0Z40e9ZcqzCB5K28KfX8j27dJPyw76DkfyPFVLE5mInrfT66Vis5zSC1HkMp6KzNjFc0NaloHNjwAfPdvTO8vxrh2CG5Ujd3ndNQYG+iARh7toe68356UcBYITpFHhfskbor8GGlRA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320547; c=relaxed/simple; bh=UtPbFHo8lwti70qwLux/kF9zRmuI2UztEodfyyPfoCg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=emstW3FzHajmogWkkKkMNepupDzSobch1Tj63G93vMXubPF2oS0AeDytLrNQ2QntUNAtEu+4oUsl0zmTp+v31DdwKbOfjIEI/Y2iWu8CKefO18ASSBe/sBdE6lRrXD+q+D79Fd2JtJhTaqIvpUtyJQMHdMlNgnMYSYdMKSthzeI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=u9a9A5ma; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="u9a9A5ma" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8D8B4C43390; Sun, 24 Mar 2024 22:49:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320546; bh=UtPbFHo8lwti70qwLux/kF9zRmuI2UztEodfyyPfoCg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=u9a9A5maXPKU8On3HszyYBE0lPB2y8tvJqEXF9x9NwgzJ53u7mWXYT8mY7K4L6a/7 tcSvQx804G5zhDua5FHFDd+zmgYWJ1pZ5YNAlobm+ZlAMMvlSl2maCr/MyQBqVRiOO WJbrQWqUkro0aIMeS7CEFafE3qRyBJMICtALqR9Chac5yIRhjHC/4UKg9hhcM6ZxNu yqIQG/ARdNvSvnSrAtVYc/MsIN1wog4k2II129P+b0bFr5dFOUdVMC0//7a3rjo/CB QIjgnxo36hoDFhMnEMrvn8A05wG/yyymOTky+iZzHUaMEOst37efsRKhOZ8RuMgCfY w4jDqkfjEAKpQ== 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.7 107/713] lib/cmdline: Fix an invalid format specifier in an assertion msg Date: Sun, 24 Mar 2024 18:37:13 -0400 Message-ID: <20240324224720.1345309-108-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9540A80612; Sun, 24 Mar 2024 22:49: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=1711320547; cv=none; b=ouj5wKG91iePJdukynrN42OPwuWxbdHRlfD2+ItCJXoJXqt0oNiqMYJxFdLLsnUhaEsoIoNzNJSPD/M0gnjgC9/CFMV3mcahQ69+TF6NuNPx4vmpJ2kDk+tx/ld49iE86yLYdpVz16oL4SVi/kw7PRYgXsMzdOiJX/sM/uaDCag= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320547; c=relaxed/simple; bh=//otllxWTZARqxoMNJaZWiaXPi8swLKbFrMrfBueuy4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=RHIBCPrPVNrdnXHDiCPECouP0ojwU/QUPA3H4GytM8mjB734krPMdTXPkM1jOX7gaw8ph6wqrXQmC7txnmzIh2iTwLx8FcOzbvohXsjFQCSadcGAxUKK3qrb5xM7HXHQe1dMytqNPIta/HhnKp8imfIDSwcMkf9xunvl0ffr8hk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=cGIUOnfm; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="cGIUOnfm" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A5A4DC433F1; Sun, 24 Mar 2024 22:49:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320547; bh=//otllxWTZARqxoMNJaZWiaXPi8swLKbFrMrfBueuy4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cGIUOnfmCIreTtQW5eMttoK7GtJJtmZ+7W7kTCVPCwTv/HRe5wiI5CNs4MxrDOlhm mn7c91LQq2U4jqllR35ADCYZFWp5xUDBtRmAGpR0jhUA1S6yJOf8kxjSLDS4e/7L/P nKY2FtjGROavrBmKHJvFKe7tQ3UNrgHkxLMVFj7SoU/jAqodod95HWkuYxCxm5ZeqT ZT5eunTm5N4wz4zMTs/dzBAWObkKCD1xVCMhv8yF9mLsmlg/Yu9cGT0tmH8HPxrBYa pY846/RO+SfVpfopT2mbKa2U7tmj1Zky0pP/I4uaP30+4z2KwwH/zU2Sp77A/B1zdH zyEVqpsHJZCjQ== 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.7 108/713] lib: memcpy_kunit: Fix an invalid format specifier in an assertion msg Date: Sun, 24 Mar 2024 18:37:14 -0400 Message-ID: <20240324224720.1345309-109-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A541513FD6A; Sun, 24 Mar 2024 22:49: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=1711320549; cv=none; b=gFnQw0UZgNGEN4mwQf28unA65EwXowaLEcOwgIyv9vdbGAsKQk/fH6D7jCU11W3HaFoldoyoOaCNs6unlET/mX0NrIBQ1cqlQ1SYnbWX3GTDRw2Zf8dVG1z7dks0ysDaWTDLl0VJDsssEJEad05qV0A5x7wFc1ZvwjsBMT5USDk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320549; c=relaxed/simple; bh=5Ds3TB7+/SF9s/aIHH6qhACfJy7hakZs8cM0naRFrrU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Xs94Ux+2ZS+TlH4hmQXuWBRU2md9bCnk1FKruNqWYRcjGgbaclkjyHLbw4TtlVKR8BPagKur+rHhlVnjWzAjXEFRxkwW0waoqshZcr+NawTfjakaknKz6HMwQBziVUa+06g9VIeLHsa0HF+7woukNAQkVcBGs+mokAFvGavwHUE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=SkrANMUe; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="SkrANMUe" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B8513C43601; Sun, 24 Mar 2024 22:49:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320548; bh=5Ds3TB7+/SF9s/aIHH6qhACfJy7hakZs8cM0naRFrrU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=SkrANMUes0T9mzgx7G8b/V4xX1pBp5bAdJ6wYegbuiSIXiZfeS52ne5yJlAKH+gno GM6VUun7zITALJ/2OM4ETpEFfGpqILlbvj6sn0/0YnImSQFDAa3Ek6uXmK459sLuxS C7x+o5M9uLUbBrDj6V7snoxxPsSsbWElrdmvAKReeQ6pJZttSmB9C72F00L5+gi9Nn 9Cpx+hYbfcP7FdsdYAKTHVrfOBguzVjI+XwYvyHwSOwqaJGjxnAslYd4ejpZiCQ2vj eyG6reit35mOEkXmrgsi4HFxahNSw/oKddcY3qxp8fT6aikmh29P61HclDgJHdLiR7 Q7ejIOgQtiipg== 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.7 109/713] time: test: Fix incorrect format specifier Date: Sun, 24 Mar 2024 18:37:15 -0400 Message-ID: <20240324224720.1345309-110-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CC12A13FD7C; Sun, 24 Mar 2024 22:49: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=1711320550; cv=none; b=pA9tRPGPgTgI/spKlb/8s8NEXz6tBYT0DwyOjrQZSnfkOslzjvDai128ANUFWU2x6kUeU0cwViyBw9V0mcnT9+A/gdaeyePXRV34/9ZRMsBEm7NESnfs6okXiNS/DggeiMnwhI3Wpbgkr7IGxQuGFaGDhie61Ds89tDMyEDmf8s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320550; c=relaxed/simple; bh=5C+htp1cj21cUDOBsDFxDwPW3yx1GRI9GjuFvV4teBA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=C71PGBDL0K/6X0tBt0nExf4Hqm/4HnYHLCB/qJt+s/FqwmpTAuJw1f7rBV3BI2yBAYuhLdKznmI+xwmAi3B17oeN/Wea1eJ0Ly+IBSOXLcT0Rl1H/nJK8E9VyalGZJ6AIgJFrQRxRsTpTkc9VdH73k2+Q6hvkpOdSp/FvTQ86Ng= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=sBVxlHSt; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="sBVxlHSt" Received: by smtp.kernel.org (Postfix) with ESMTPSA id C9F18C433F1; Sun, 24 Mar 2024 22:49:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320549; bh=5C+htp1cj21cUDOBsDFxDwPW3yx1GRI9GjuFvV4teBA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=sBVxlHStnSInKIzPJ0DeH4oIdQka17CGBiI3J57VQdweiI70eiUyF/0q/BmplM0QB LXHfebXCauOHfSEZkix50fyJ8aHBkprq9qJcSQrL1kBifDsgjLd4MmCUvZ//Ex1FCc 3BCDTgtjBiEaSeHVkKOBzlR0/mJbDS+eGOKBlWkpGlQJx+BS3219D5aLJ8C+LfpIt+ q/g2DlvqBiaUaA6i5BvOt9RZ8ZfRNUZYxlSLeO+mrd/z4gGSTjIsb017hB3ePjAK87 P5jA1/gdp7Q3SeBFGtU+SeqHMr9c9z5DfUxeZzUjeioPVwHHZujM+Hxf7nZKHVPUA1 FOEIkf6EzpSDg== 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.7 110/713] rtc: test: Fix invalid format specifier. Date: Sun, 24 Mar 2024 18:37:16 -0400 Message-ID: <20240324224720.1345309-111-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DF1EC13FD76; Sun, 24 Mar 2024 22:49: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=1711320552; cv=none; b=sqWXWMx3j2ksVzHsW3jw++lDvsfbAuoSnBnjID8lEXjaZP/UdP2xE44tlVGdKkcv+Vx3SwzxVBg1lSKXpnZUGEiGwHn/ZoDhkQpGBGZN7lrmgDCm9+Azayp/tmdoIAPc132mOOfA/SPTse9lsbnbx45jtuzgujOQv0w7Bm9CPPw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320552; c=relaxed/simple; bh=vrxNdixPF1P+PaS8QLrMH1Ze7LzOwQIc98jq+2n817o=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=fhMljgho8FKr71S4f6WtDMOca4agHEqhEEgC96wIa1XiGiAe7KCQvRg9JduNMI1cV06x8Aq59WJE0atOhJA7UiFqR8ArTaYEVuGcKtLsbrqa0uEp2HMPcqMIcfXgR1invpid8yArkuTaIzQid5lB2lgHHZs532orODHCDm+x8ps= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=DyT1woi2; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="DyT1woi2" Received: by smtp.kernel.org (Postfix) with ESMTPSA id F0987C433C7; Sun, 24 Mar 2024 22:49:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320550; bh=vrxNdixPF1P+PaS8QLrMH1Ze7LzOwQIc98jq+2n817o=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=DyT1woi2aPRuk7TeiWcgHTMDul46XctPBf1R9wtL4hDD8bwJEjgFRfXuzA9arbzw6 09BBiLsS1nW81MotxFzSPxncJljQBAhh3beJ8V/3FVY+9a+hnFlhtEGJnCru6oeCbR OpQYMDKXp9Dhy2ngwbFy1gIs9IMu0yyQo72Gr5SpwNvJQ9YhsbjzgJD5a+QaYtgtEL 5CAAWl32NEhlMVIBNYOlzyyXtwY2reEL8Ej4kgJR5h7pNwUmmZrtg+ST1RxJ8mrgii 0N46PMJ6zHmpYS1OU7qOvexB2nAEhcsDGKy0ApvqVbUou3gAjEK8Wm4P4Gy3oswE21 RRA1qZgiJqjow== 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.7 111/713] net: test: Fix printf format specifier in skb_segment kunit test Date: Sun, 24 Mar 2024 18:37:17 -0400 Message-ID: <20240324224720.1345309-112-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 ff3b96f2c9e5c24fca12239cd519a8a18569e687 ] KUNIT_FAIL() accepts a printf-style format string, but previously did not let gcc validate it with the __printf() attribute. The use of %lld for the result of PTR_ERR() is not correct. Instead, use %pe and pass the actual error pointer. printk() will format it correctly (and give a symbolic name rather than a number if available, which should make the output more readable, too). Fixes: b3098d32ed6e ("net: add skb_segment 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: Bagas Sanjaya --- net/core/gso_test.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/core/gso_test.c b/net/core/gso_test.c index 4c2e77bd12f4b..358c44680d917 100644 --- a/net/core/gso_test.c +++ b/net/core/gso_test.c @@ -225,7 +225,7 @@ static void gso_test_func(struct kunit *test) =20 segs =3D skb_segment(skb, features); if (IS_ERR(segs)) { - KUNIT_FAIL(test, "segs error %lld", PTR_ERR(segs)); + KUNIT_FAIL(test, "segs error %pe", segs); goto free_gso_skb; } else if (!segs) { KUNIT_FAIL(test, "no segments"); --=20 2.43.0 From nobody Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2AB52811F9; Sun, 24 Mar 2024 22:49: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=1711320553; cv=none; b=LPgsodBVg2oePqS4P5oeXEoeUKArgyKsXfy+1l3eZOkyJD1tcOpl6MEGzd4XWI3DBzEM+77Ssy9ZS/4a4Qyh7vj7MmdHb8TKhAsb3jBPj7tSb5BI/7ZVepL6EMadqXz72i88RZwJO8QTNErQr4dzj+eDDcIK3fEMKCx9GncSaRY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320553; c=relaxed/simple; bh=yVUsKV4jgxvtvm1H6E8T9TK0qKFypGddsw3+FQLzm+g=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=hefjqB7FEQx7fTqHJdAHQRjm6QtSRnOHeEpdZPej91q5FfFyc/MAbctupzJKO/3sJdC1kf3pzCWHk1JIYLIgZ1JmQLz3TSD78PawqAA6AUnVEMBEjdoJ0QrCVFZzIaVpilD9hyA0TMbPPXo938IljOQarEuZnVXaSm4ImezncwY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ChUnC/Ho; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ChUnC/Ho" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 10787C43394; Sun, 24 Mar 2024 22:49:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320551; bh=yVUsKV4jgxvtvm1H6E8T9TK0qKFypGddsw3+FQLzm+g=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ChUnC/HoTmVmlLpQW1vULMR1Mi9Xfx3yxf1TgY5gjkPyMqIpcUaZ3QpysZiLf3bn4 7JSLvLKzb1by3tipCi0I7M3/JVT5VBUMPAHUdTcLW8FdtaffAweCMJrmo18g+mg6D9 E3vi/iJrwWQp9CZ7veQNNsiBOJnLxDIYNFWhY8Xw2QQu9u4p72smatfiZXhiMFUpdE pjRJ3G1gJMsWuNrA3uZwKrAPCeH1X3se0fWYbFT6jraqaXXpPhUEMKsl91sPP/wkOl X4Iou8EO930RK229U5ZyeH1ZlT1MJYRR/Th8Ato1fd+oAl4njrKp6Fa02K5cXyHUYy pWqHPCIkdP+cQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Yu Kuai , Song Liu , Sasha Levin Subject: [PATCH 6.7 112/713] md: remove flag RemoveSynchronized Date: Sun, 24 Mar 2024 18:37:18 -0400 Message-ID: <20240324224720.1345309-113-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Yu Kuai [ Upstream commit c891f1fd90e66e584bb1353e1859cef7c9eb36f8 ] rcu is not used correctly here, because synchronize_rcu() is called before replacing old value, for example: remove_and_add_spares // other path synchronize_rcu // called before replacing old value set_bit(RemoveSynchronized) rcu_read_lock() rdev =3D conf->mirros[].rdev pers->hot_remove_disk conf->mirros[].rdev =3D NULL; if (!test_bit(RemoveSynchronized)) synchronize_rcu /* * won't be called, and won't wait * for concurrent readers to be done. */ // access rdev after remove_and_add_spares() rcu_read_unlock() Fortunately, there is a separate rcu protection to prevent such rdev to be freed: md_kick_rdev_from_array //other path rcu_read_lock() rdev =3D conf->mirros[].rdev list_del_rcu(&rdev->same_set) rcu_read_unlock() /* * rdev can be removed from conf, but * rdev won't be freed. */ synchronize_rcu() free rdev Hence remove this useless flag and prepare to remove rcu protection to access rdev from 'conf'. Signed-off-by: Yu Kuai Signed-off-by: Song Liu Link: https://lore.kernel.org/r/20231125081604.3939938-2-yukuai1@huaweiclou= d.com Stable-dep-of: 257ac239ffcf ("md/raid1: fix choose next idle in read_balanc= e()") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- drivers/md/md-multipath.c | 9 --------- drivers/md/md.c | 37 ++++++------------------------------- drivers/md/md.h | 5 ----- drivers/md/raid1.c | 9 --------- drivers/md/raid10.c | 9 --------- drivers/md/raid5.c | 9 --------- 6 files changed, 6 insertions(+), 72 deletions(-) diff --git a/drivers/md/md-multipath.c b/drivers/md/md-multipath.c index d22276870283d..aa77133f31887 100644 --- a/drivers/md/md-multipath.c +++ b/drivers/md/md-multipath.c @@ -258,15 +258,6 @@ static int multipath_remove_disk(struct mddev *mddev, = struct md_rdev *rdev) goto abort; } p->rdev =3D NULL; - if (!test_bit(RemoveSynchronized, &rdev->flags)) { - synchronize_rcu(); - if (atomic_read(&rdev->nr_pending)) { - /* lost the race, try later */ - err =3D -EBUSY; - p->rdev =3D rdev; - goto abort; - } - } err =3D md_integrity_register(mddev); } abort: diff --git a/drivers/md/md.c b/drivers/md/md.c index b2f27ac51bfb6..99b60d37114c4 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c @@ -9314,44 +9314,19 @@ static int remove_and_add_spares(struct mddev *mdde= v, struct md_rdev *rdev; int spares =3D 0; int removed =3D 0; - bool remove_some =3D false; =20 if (this && test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) /* Mustn't remove devices when resync thread is running */ return 0; =20 rdev_for_each(rdev, mddev) { - if ((this =3D=3D NULL || rdev =3D=3D this) && - rdev->raid_disk >=3D 0 && - !test_bit(Blocked, &rdev->flags) && - test_bit(Faulty, &rdev->flags) && - atomic_read(&rdev->nr_pending)=3D=3D0) { - /* Faulty non-Blocked devices with nr_pending =3D=3D 0 - * never get nr_pending incremented, - * never get Faulty cleared, and never get Blocked set. - * So we can synchronize_rcu now rather than once per device - */ - remove_some =3D true; - set_bit(RemoveSynchronized, &rdev->flags); - } - } - - if (remove_some) - synchronize_rcu(); - rdev_for_each(rdev, mddev) { - if ((this =3D=3D NULL || rdev =3D=3D this) && - (test_bit(RemoveSynchronized, &rdev->flags) || - rdev_removeable(rdev))) { - if (mddev->pers->hot_remove_disk( - mddev, rdev) =3D=3D 0) { - sysfs_unlink_rdev(mddev, rdev); - rdev->saved_raid_disk =3D rdev->raid_disk; - rdev->raid_disk =3D -1; - removed++; - } + if ((this =3D=3D NULL || rdev =3D=3D this) && rdev_removeable(rdev) && + !mddev->pers->hot_remove_disk(mddev, rdev)) { + sysfs_unlink_rdev(mddev, rdev); + rdev->saved_raid_disk =3D rdev->raid_disk; + rdev->raid_disk =3D -1; + removed++; } - if (remove_some && test_bit(RemoveSynchronized, &rdev->flags)) - clear_bit(RemoveSynchronized, &rdev->flags); } =20 if (removed && mddev->kobj.sd) diff --git a/drivers/md/md.h b/drivers/md/md.h index ade83af123a22..8d881cc597992 100644 --- a/drivers/md/md.h +++ b/drivers/md/md.h @@ -190,11 +190,6 @@ enum flag_bits { * than other devices in the array */ ClusterRemove, - RemoveSynchronized, /* synchronize_rcu() was called after - * this device was known to be faulty, - * so it is safe to remove without - * another synchronize_rcu() call. - */ ExternalBbl, /* External metadata provides bad * block management for a disk */ diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c index e138922d51292..6bd42ccbea9c4 100644 --- a/drivers/md/raid1.c +++ b/drivers/md/raid1.c @@ -1863,15 +1863,6 @@ static int raid1_remove_disk(struct mddev *mddev, st= ruct md_rdev *rdev) goto abort; } p->rdev =3D NULL; - if (!test_bit(RemoveSynchronized, &rdev->flags)) { - synchronize_rcu(); - if (atomic_read(&rdev->nr_pending)) { - /* lost the race, try later */ - err =3D -EBUSY; - p->rdev =3D rdev; - goto abort; - } - } if (conf->mirrors[conf->raid_disks + number].rdev) { /* We just removed a device that is being replaced. * Move down the replacement. We drain all IO before diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c index b7b0a573e7f8b..6e828a6aa0b0a 100644 --- a/drivers/md/raid10.c +++ b/drivers/md/raid10.c @@ -2247,15 +2247,6 @@ static int raid10_remove_disk(struct mddev *mddev, s= truct md_rdev *rdev) goto abort; } *rdevp =3D NULL; - if (!test_bit(RemoveSynchronized, &rdev->flags)) { - synchronize_rcu(); - if (atomic_read(&rdev->nr_pending)) { - /* lost the race, try later */ - err =3D -EBUSY; - *rdevp =3D rdev; - goto abort; - } - } if (p->replacement) { /* We must have just cleared 'rdev' */ p->rdev =3D p->replacement; diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c index 6fe334bb954ab..f03e4231bec11 100644 --- a/drivers/md/raid5.c +++ b/drivers/md/raid5.c @@ -8241,15 +8241,6 @@ static int raid5_remove_disk(struct mddev *mddev, st= ruct md_rdev *rdev) goto abort; } *rdevp =3D NULL; - if (!test_bit(RemoveSynchronized, &rdev->flags)) { - lockdep_assert_held(&mddev->reconfig_mutex); - synchronize_rcu(); - if (atomic_read(&rdev->nr_pending)) { - /* lost the race, try later */ - err =3D -EBUSY; - rcu_assign_pointer(*rdevp, rdev); - } - } if (!err) { err =3D log_modify(conf, rdev, false); if (err) --=20 2.43.0 From nobody Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AB605823C3; Sun, 24 Mar 2024 22:49: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=1711320553; cv=none; b=WG9FbSDr2Jo9H3zEslUXjrmH5iWwsrNHLWODrmYn1yQsumZaxfNx8mGMq0/h5JJNp7z9GdbsovqJSvY+hPrwpPw22XYYyE69D+FHtuPxi7qmDLDWdOtV+X8OkK50injOU5TzaZxOKb9uS946QjkaPZzZs+fQJD8afZnGJ7y1sUw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320553; c=relaxed/simple; bh=1+ikIWtWHRXR0kk5lqirv4izK6JE6ku88jJ6P99LoZY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Rft56q9AfHT1SkPoPt1SP4D1sRFCariFKQGIfS65X+W6MeIWHtokOOPUkPgrm4fzCixJNdeiUtoG4bFllsZlab3VhxKyk0P3kUnIG/QDxuuRrPEpUi8ylnvnzD6p+MPEizBioSe3IyXEgEPgHg6Pomn8ZVHTHrRzbp3zqQ9C6Xw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=AxTZn1aN; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="AxTZn1aN" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E955FC433F1; Sun, 24 Mar 2024 22:49:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320552; bh=1+ikIWtWHRXR0kk5lqirv4izK6JE6ku88jJ6P99LoZY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=AxTZn1aNEZOUEOw3EQOJE7IUgZLcIR16eFwfIcSzVLiKotZpgfe68DC3smD/PMQR0 xeapOTFehevEibj7K5DgwguttWRs/naz6b5JP9t+387TomsC2L1wmWbj9s5Z+1LKin y6IY3YP+GkQs4bWrQ70ohyUQRrIL15f85sb/U6CQXiPs2ARKcw28ZdwZF0SpRo0K8h TeC9dJJzdIuWhn53NrfbNJ8m6Umrv9nwlKQggeLvIWmmiEY6NzIK3PahmyBTr8IvA0 V6nGI9r1Mb8RcXCS72I8HXbaEf0FV5Sdx4qCkHEjn14W+vqJQtud+M8ggoG+vwmWCL jUl7NJkPAOyGA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Yu Kuai , Song Liu , Sasha Levin Subject: [PATCH 6.7 113/713] md/raid1: remove rcu protection to access rdev from conf Date: Sun, 24 Mar 2024 18:37:19 -0400 Message-ID: <20240324224720.1345309-114-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Yu Kuai [ Upstream commit 2d32777d60de81aa020a2431567020af26564c71 ] Because it's safe to accees rdev from conf: - If any spinlock is held, because synchronize_rcu() from md_kick_rdev_from_array() will prevent 'rdev' to be freed until spinlock is released; - If 'reconfig_lock' is held, because rdev can't be added or removed from array; - If there is normal IO inflight, because mddev_suspend() will prevent rdev to be added or removed from array; - If there is sync IO inflight, because 'MD_RECOVERY_RUNNING' is checked in remove_and_add_spares(). And these will cover all the scenarios in raid1. Signed-off-by: Yu Kuai Signed-off-by: Song Liu Link: https://lore.kernel.org/r/20231125081604.3939938-4-yukuai1@huaweiclou= d.com Stable-dep-of: 257ac239ffcf ("md/raid1: fix choose next idle in read_balanc= e()") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- drivers/md/raid1.c | 62 +++++++++++++++++----------------------------- 1 file changed, 23 insertions(+), 39 deletions(-) diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c index 6bd42ccbea9c4..71bd372c14e2c 100644 --- a/drivers/md/raid1.c +++ b/drivers/md/raid1.c @@ -609,7 +609,6 @@ static int read_balance(struct r1conf *conf, struct r1b= io *r1_bio, int *max_sect int choose_first; int choose_next_idle; =20 - rcu_read_lock(); /* * Check if we can balance. We can balance on the whole * device if no resync is going on, or below the resync window. @@ -642,7 +641,7 @@ static int read_balance(struct r1conf *conf, struct r1b= io *r1_bio, int *max_sect unsigned int pending; bool nonrot; =20 - rdev =3D rcu_dereference(conf->mirrors[disk].rdev); + rdev =3D conf->mirrors[disk].rdev; if (r1_bio->bios[disk] =3D=3D IO_BLOCKED || rdev =3D=3D NULL || test_bit(Faulty, &rdev->flags)) @@ -773,7 +772,7 @@ static int read_balance(struct r1conf *conf, struct r1b= io *r1_bio, int *max_sect } =20 if (best_disk >=3D 0) { - rdev =3D rcu_dereference(conf->mirrors[best_disk].rdev); + rdev =3D conf->mirrors[best_disk].rdev; if (!rdev) goto retry; atomic_inc(&rdev->nr_pending); @@ -784,7 +783,6 @@ static int read_balance(struct r1conf *conf, struct r1b= io *r1_bio, int *max_sect =20 conf->mirrors[best_disk].next_seq_sect =3D this_sector + sectors; } - rcu_read_unlock(); *max_sectors =3D sectors; =20 return best_disk; @@ -1235,14 +1233,12 @@ static void raid1_read_request(struct mddev *mddev,= struct bio *bio, =20 if (r1bio_existed) { /* Need to get the block device name carefully */ - struct md_rdev *rdev; - rcu_read_lock(); - rdev =3D rcu_dereference(conf->mirrors[r1_bio->read_disk].rdev); + struct md_rdev *rdev =3D conf->mirrors[r1_bio->read_disk].rdev; + if (rdev) snprintf(b, sizeof(b), "%pg", rdev->bdev); else strcpy(b, "???"); - rcu_read_unlock(); } =20 /* @@ -1396,10 +1392,9 @@ static void raid1_write_request(struct mddev *mddev,= struct bio *bio, =20 disks =3D conf->raid_disks * 2; blocked_rdev =3D NULL; - rcu_read_lock(); max_sectors =3D r1_bio->sectors; for (i =3D 0; i < disks; i++) { - struct md_rdev *rdev =3D rcu_dereference(conf->mirrors[i].rdev); + struct md_rdev *rdev =3D conf->mirrors[i].rdev; =20 /* * The write-behind io is only attempted on drives marked as @@ -1465,7 +1460,6 @@ static void raid1_write_request(struct mddev *mddev, = struct bio *bio, } r1_bio->bios[i] =3D bio; } - rcu_read_unlock(); =20 if (unlikely(blocked_rdev)) { /* Wait for this device to become unblocked */ @@ -1617,15 +1611,16 @@ static void raid1_status(struct seq_file *seq, stru= ct mddev *mddev) struct r1conf *conf =3D mddev->private; int i; =20 + lockdep_assert_held(&mddev->lock); + seq_printf(seq, " [%d/%d] [", conf->raid_disks, conf->raid_disks - mddev->degraded); - rcu_read_lock(); for (i =3D 0; i < conf->raid_disks; i++) { - struct md_rdev *rdev =3D rcu_dereference(conf->mirrors[i].rdev); + struct md_rdev *rdev =3D READ_ONCE(conf->mirrors[i].rdev); + seq_printf(seq, "%s", rdev && test_bit(In_sync, &rdev->flags) ? "U" : "_"); } - rcu_read_unlock(); seq_printf(seq, "]"); } =20 @@ -1691,16 +1686,15 @@ static void print_conf(struct r1conf *conf) pr_debug(" --- wd:%d rd:%d\n", conf->raid_disks - conf->mddev->degraded, conf->raid_disks); =20 - rcu_read_lock(); + lockdep_assert_held(&conf->mddev->reconfig_mutex); for (i =3D 0; i < conf->raid_disks; i++) { - struct md_rdev *rdev =3D rcu_dereference(conf->mirrors[i].rdev); + struct md_rdev *rdev =3D conf->mirrors[i].rdev; if (rdev) pr_debug(" disk %d, wo:%d, o:%d, dev:%pg\n", i, !test_bit(In_sync, &rdev->flags), !test_bit(Faulty, &rdev->flags), rdev->bdev); } - rcu_read_unlock(); } =20 static void close_sync(struct r1conf *conf) @@ -1810,7 +1804,7 @@ static int raid1_add_disk(struct mddev *mddev, struct= md_rdev *rdev) */ if (rdev->saved_raid_disk < 0) conf->fullsync =3D 1; - rcu_assign_pointer(p->rdev, rdev); + WRITE_ONCE(p->rdev, rdev); break; } if (test_bit(WantReplacement, &p->rdev->flags) && @@ -1826,7 +1820,7 @@ static int raid1_add_disk(struct mddev *mddev, struct= md_rdev *rdev) rdev->raid_disk =3D repl_slot; err =3D 0; conf->fullsync =3D 1; - rcu_assign_pointer(p[conf->raid_disks].rdev, rdev); + WRITE_ONCE(p[conf->raid_disks].rdev, rdev); } =20 print_conf(conf); @@ -1862,7 +1856,7 @@ static int raid1_remove_disk(struct mddev *mddev, str= uct md_rdev *rdev) err =3D -EBUSY; goto abort; } - p->rdev =3D NULL; + WRITE_ONCE(p->rdev, NULL); if (conf->mirrors[conf->raid_disks + number].rdev) { /* We just removed a device that is being replaced. * Move down the replacement. We drain all IO before @@ -1883,7 +1877,7 @@ static int raid1_remove_disk(struct mddev *mddev, str= uct md_rdev *rdev) goto abort; } clear_bit(Replacement, &repl->flags); - p->rdev =3D repl; + WRITE_ONCE(p->rdev, repl); conf->mirrors[conf->raid_disks + number].rdev =3D NULL; unfreeze_array(conf); } @@ -2281,8 +2275,7 @@ static void fix_read_error(struct r1conf *conf, int r= ead_disk, sector_t first_bad; int bad_sectors; =20 - rcu_read_lock(); - rdev =3D rcu_dereference(conf->mirrors[d].rdev); + rdev =3D conf->mirrors[d].rdev; if (rdev && (test_bit(In_sync, &rdev->flags) || (!test_bit(Faulty, &rdev->flags) && @@ -2290,15 +2283,14 @@ static void fix_read_error(struct r1conf *conf, int= read_disk, is_badblock(rdev, sect, s, &first_bad, &bad_sectors) =3D=3D 0) { atomic_inc(&rdev->nr_pending); - rcu_read_unlock(); if (sync_page_io(rdev, sect, s<<9, conf->tmppage, REQ_OP_READ, false)) success =3D 1; rdev_dec_pending(rdev, mddev); if (success) break; - } else - rcu_read_unlock(); + } + d++; if (d =3D=3D conf->raid_disks * 2) d =3D 0; @@ -2317,29 +2309,24 @@ static void fix_read_error(struct r1conf *conf, int= read_disk, if (d=3D=3D0) d =3D conf->raid_disks * 2; d--; - rcu_read_lock(); - rdev =3D rcu_dereference(conf->mirrors[d].rdev); + rdev =3D conf->mirrors[d].rdev; if (rdev && !test_bit(Faulty, &rdev->flags)) { atomic_inc(&rdev->nr_pending); - rcu_read_unlock(); r1_sync_page_io(rdev, sect, s, conf->tmppage, REQ_OP_WRITE); rdev_dec_pending(rdev, mddev); - } else - rcu_read_unlock(); + } } d =3D start; while (d !=3D read_disk) { if (d=3D=3D0) d =3D conf->raid_disks * 2; d--; - rcu_read_lock(); - rdev =3D rcu_dereference(conf->mirrors[d].rdev); + rdev =3D conf->mirrors[d].rdev; if (rdev && !test_bit(Faulty, &rdev->flags)) { atomic_inc(&rdev->nr_pending); - rcu_read_unlock(); if (r1_sync_page_io(rdev, sect, s, conf->tmppage, REQ_OP_READ)) { atomic_add(s, &rdev->corrected_errors); @@ -2350,8 +2337,7 @@ static void fix_read_error(struct r1conf *conf, int r= ead_disk, rdev->bdev); } rdev_dec_pending(rdev, mddev); - } else - rcu_read_unlock(); + } } sectors -=3D s; sect +=3D s; @@ -2732,7 +2718,6 @@ static sector_t raid1_sync_request(struct mddev *mdde= v, sector_t sector_nr, =20 r1_bio =3D raid1_alloc_init_r1buf(conf); =20 - rcu_read_lock(); /* * If we get a correctably read error during resync or recovery, * we might want to read from a different device. So we @@ -2753,7 +2738,7 @@ static sector_t raid1_sync_request(struct mddev *mdde= v, sector_t sector_nr, struct md_rdev *rdev; bio =3D r1_bio->bios[i]; =20 - rdev =3D rcu_dereference(conf->mirrors[i].rdev); + rdev =3D conf->mirrors[i].rdev; if (rdev =3D=3D NULL || test_bit(Faulty, &rdev->flags)) { if (i < conf->raid_disks) @@ -2811,7 +2796,6 @@ static sector_t raid1_sync_request(struct mddev *mdde= v, sector_t sector_nr, bio->bi_opf |=3D MD_FAILFAST; } } - rcu_read_unlock(); if (disk < 0) disk =3D wonly; r1_bio->read_disk =3D disk; --=20 2.43.0 From nobody Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8E4E71D448F; Sun, 24 Mar 2024 22:49: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=1711320554; cv=none; b=ae1T0qWYGeKegA5t/mAvLaFZPO8MfqQmdmH+YPvjOea+51NYJs9Zu/LHDfPis7INj/YcDHYPQUzt9kF/4P4qTG42ImUIk0dH4xECVjC5AzFMRxTN7M6dXJtlPxJwmjQPgl/nhIRHgeWo4LFlTgBFOlEAqORKm9opfYC/FMSXd6o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320554; c=relaxed/simple; bh=gNibVN+d8uudqfIkLgv4WRr3iXmjBMOjk75vTW9te9E=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=nCJT+VjoR6h30Q8LT1dJ5x2U8FMiD93k6ObBWYYUNYDzwliNVcbllA9pwjlLurKC0k76Yie1/fF2nzQUQetM2PRqgDh9+7AiZpQrCJrv8nO5xKHf9EcuXlinRAf5oF77cAGHv60I1GN4K+Ht4TRKRHqEiNdu+FOxGrvvEtnSqx8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=XSDYEDoX; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="XSDYEDoX" Received: by smtp.kernel.org (Postfix) with ESMTPSA id CEBBCC433A6; Sun, 24 Mar 2024 22:49:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320553; bh=gNibVN+d8uudqfIkLgv4WRr3iXmjBMOjk75vTW9te9E=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=XSDYEDoXWrbfTnCACEGAPyuDX6XGpZ753uoPrVxPW6us6soNnXnvMZxH/Jh+LPJYb leqGucn9mmNRBdNnJPKVupOWBAsNlSsb5X074igJG8T6V6mE5H43W85qSwcQ7svxVA SpqT6HRNnq8c3McwF0qCE050BtLbGPLgFqSQwyPquwtfCrszeN9hFJHL0e7BrNG9ME Bf9PFeRfHFPjcVWGYQrdZcqax1A4Mhz56v4OUYYlAPZgcZYsS0g0YLoCyn+kVb5XcH VoLn/B32u6pBHU0zymEX9D9ONFROT3Rx5/HIWHj4dQmrbUxAeYqeti/NC8YnqSdsom JNdcZPCE2HpsQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Yu Kuai , Song Liu , Sasha Levin Subject: [PATCH 6.7 114/713] md/raid1: factor out helpers to add rdev to conf Date: Sun, 24 Mar 2024 18:37:20 -0400 Message-ID: <20240324224720.1345309-115-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Yu Kuai [ Upstream commit 969d6589abcb369d53d84ec7c9c37f4b23ec1ad9 ] There are no functional changes, just make code cleaner and prepare to record disk non-rotational information while adding and removing rdev to conf Signed-off-by: Yu Kuai Signed-off-by: Song Liu Link: https://lore.kernel.org/r/20240229095714.926789-3-yukuai1@huaweicloud= .com Stable-dep-of: 257ac239ffcf ("md/raid1: fix choose next idle in read_balanc= e()") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- drivers/md/raid1.c | 85 +++++++++++++++++++++++++++++----------------- 1 file changed, 53 insertions(+), 32 deletions(-) diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c index 71bd372c14e2c..57e2487a03507 100644 --- a/drivers/md/raid1.c +++ b/drivers/md/raid1.c @@ -1761,6 +1761,44 @@ static int raid1_spare_active(struct mddev *mddev) return count; } =20 +static bool raid1_add_conf(struct r1conf *conf, struct md_rdev *rdev, int = disk, + bool replacement) +{ + struct raid1_info *info =3D conf->mirrors + disk; + + if (replacement) + info +=3D conf->raid_disks; + + if (info->rdev) + return false; + + rdev->raid_disk =3D disk; + info->head_position =3D 0; + info->seq_start =3D MaxSector; + WRITE_ONCE(info->rdev, rdev); + + return true; +} + +static bool raid1_remove_conf(struct r1conf *conf, int disk) +{ + struct raid1_info *info =3D conf->mirrors + disk; + struct md_rdev *rdev =3D info->rdev; + + if (!rdev || test_bit(In_sync, &rdev->flags) || + atomic_read(&rdev->nr_pending)) + return false; + + /* Only remove non-faulty devices if recovery is not possible. */ + if (!test_bit(Faulty, &rdev->flags) && + rdev->mddev->recovery_disabled !=3D conf->recovery_disabled && + rdev->mddev->degraded < conf->raid_disks) + return false; + + WRITE_ONCE(info->rdev, NULL); + return true; +} + static int raid1_add_disk(struct mddev *mddev, struct md_rdev *rdev) { struct r1conf *conf =3D mddev->private; @@ -1796,15 +1834,13 @@ static int raid1_add_disk(struct mddev *mddev, stru= ct md_rdev *rdev) disk_stack_limits(mddev->gendisk, rdev->bdev, rdev->data_offset << 9); =20 - p->head_position =3D 0; - rdev->raid_disk =3D mirror; + raid1_add_conf(conf, rdev, mirror, false); err =3D 0; /* As all devices are equivalent, we don't need a full recovery * if this was recently any drive of the array */ if (rdev->saved_raid_disk < 0) conf->fullsync =3D 1; - WRITE_ONCE(p->rdev, rdev); break; } if (test_bit(WantReplacement, &p->rdev->flags) && @@ -1814,13 +1850,11 @@ static int raid1_add_disk(struct mddev *mddev, stru= ct md_rdev *rdev) =20 if (err && repl_slot >=3D 0) { /* Add this device as a replacement */ - p =3D conf->mirrors + repl_slot; clear_bit(In_sync, &rdev->flags); set_bit(Replacement, &rdev->flags); - rdev->raid_disk =3D repl_slot; + raid1_add_conf(conf, rdev, repl_slot, true); err =3D 0; conf->fullsync =3D 1; - WRITE_ONCE(p[conf->raid_disks].rdev, rdev); } =20 print_conf(conf); @@ -1837,27 +1871,20 @@ static int raid1_remove_disk(struct mddev *mddev, s= truct md_rdev *rdev) if (unlikely(number >=3D conf->raid_disks)) goto abort; =20 - if (rdev !=3D p->rdev) - p =3D conf->mirrors + conf->raid_disks + number; + if (rdev !=3D p->rdev) { + number +=3D conf->raid_disks; + p =3D conf->mirrors + number; + } =20 print_conf(conf); if (rdev =3D=3D p->rdev) { - if (test_bit(In_sync, &rdev->flags) || - atomic_read(&rdev->nr_pending)) { - err =3D -EBUSY; - goto abort; - } - /* Only remove non-faulty devices if recovery - * is not possible. - */ - if (!test_bit(Faulty, &rdev->flags) && - mddev->recovery_disabled !=3D conf->recovery_disabled && - mddev->degraded < conf->raid_disks) { + if (!raid1_remove_conf(conf, number)) { err =3D -EBUSY; goto abort; } - WRITE_ONCE(p->rdev, NULL); - if (conf->mirrors[conf->raid_disks + number].rdev) { + + if (number < conf->raid_disks && + conf->mirrors[conf->raid_disks + number].rdev) { /* We just removed a device that is being replaced. * Move down the replacement. We drain all IO before * doing this to avoid confusion. @@ -3000,23 +3027,17 @@ static struct r1conf *setup_conf(struct mddev *mdde= v) =20 err =3D -EINVAL; spin_lock_init(&conf->device_lock); + conf->raid_disks =3D mddev->raid_disks; rdev_for_each(rdev, mddev) { int disk_idx =3D rdev->raid_disk; - if (disk_idx >=3D mddev->raid_disks - || disk_idx < 0) + + if (disk_idx >=3D conf->raid_disks || disk_idx < 0) continue; - if (test_bit(Replacement, &rdev->flags)) - disk =3D conf->mirrors + mddev->raid_disks + disk_idx; - else - disk =3D conf->mirrors + disk_idx; =20 - if (disk->rdev) + if (!raid1_add_conf(conf, rdev, disk_idx, + test_bit(Replacement, &rdev->flags))) goto abort; - disk->rdev =3D rdev; - disk->head_position =3D 0; - disk->seq_start =3D MaxSector; } - conf->raid_disks =3D mddev->raid_disks; conf->mddev =3D mddev; INIT_LIST_HEAD(&conf->retry_list); INIT_LIST_HEAD(&conf->bio_end_io_list); --=20 2.43.0 From nobody Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8F48B1D449E; Sun, 24 Mar 2024 22:49: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=1711320555; cv=none; b=TCI2BOYf2lXXv8npMMIwuIGG6g0dQ/GeX4pjjbpVN5iEooO/02isGrkDUnP5LLB241RxUOfPB+cBFJzebrxD34WCnvVvXZFlfIs27Jktj6K+uFuqyYbU+db6O0W10ZrsWZVWlHUiTalvqWwopRoRpcILpIIR/hboIMfM/lnp8h0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320555; c=relaxed/simple; bh=jm8vtzOgOrM3dLp/kr7hOREKcTEftJ9mR8az4FFkQSo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ioIeLYcZwog3DM8EOEJcKnRD8bgAWn72prr/822FmP2HYMM7YmEKNIs0xWSJQV0HUbPUK13wXyBnALg8OpevpTe/FbZI/9wPx3sD4bWQInhGPuVZvymxVrnb4Bc7GZHrQJ9im5TwnhTLV+KMIYMHCRJBhS/JsxpLBILbMSP/4CA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Pr6IFrWi; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Pr6IFrWi" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B6142C43390; Sun, 24 Mar 2024 22:49:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320554; bh=jm8vtzOgOrM3dLp/kr7hOREKcTEftJ9mR8az4FFkQSo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Pr6IFrWipoOKUhrAHVF2cikZQ6QBKEhWSDbWf5iterrBdNcez1dkH4HMP5VD6RuoK A27PNnSb7TQtk0mzbkb10OZzXT3s08ISB8Gx5vBz/LT9xobdnqMwoqVopjQNA7ryh6 57HUH2SRn7nXhUxxCsvVVA6yGF0QjRJgan0jHlc6ZfYiCEnhkD8oUs/r5072DZ7kBY HMIX8evrmTteXMEK9VIucn8Cgjq+dMP1wFDPhEvQ1rpp5q+3MUD+NzJyAGe9jz8V8s PkRuHUBVqlaO0l4L59+17i+K57P2m3z2Z7KObdTZBDB1ICvhMJ1CP5eVzL3wNb3fCe YZh6ZXpOdDlyQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Yu Kuai , Paul Luse , Song Liu , Sasha Levin Subject: [PATCH 6.7 115/713] md/raid1: record nonrot rdevs while adding/removing rdevs to conf Date: Sun, 24 Mar 2024 18:37:21 -0400 Message-ID: <20240324224720.1345309-116-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Yu Kuai [ Upstream commit 2c27d09d3a76b33629d2e681bf8b774f776ade7f ] For raid1, each read will iterate all the rdevs from conf and check if any rdev is non-rotational, then choose rdev with minimal IO inflight if so, or rdev with closest distance otherwise. Disk nonrot info can be changed through sysfs entry: /sys/block/[disk_name]/queue/rotational However, consider that this should only be used for testing, and user really shouldn't do this in real life. Record the number of non-rotational disks in conf, to avoid checking each rdev in IO fast path and simplify read_balance() a little bit. Co-developed-by: Paul Luse Signed-off-by: Paul Luse Signed-off-by: Yu Kuai Signed-off-by: Song Liu Link: https://lore.kernel.org/r/20240229095714.926789-4-yukuai1@huaweicloud= .com Stable-dep-of: 257ac239ffcf ("md/raid1: fix choose next idle in read_balanc= e()") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- drivers/md/md.h | 1 + drivers/md/raid1.c | 17 ++++++++++------- drivers/md/raid1.h | 1 + 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/drivers/md/md.h b/drivers/md/md.h index 8d881cc597992..27d187ca6258a 100644 --- a/drivers/md/md.h +++ b/drivers/md/md.h @@ -207,6 +207,7 @@ enum flag_bits { * check if there is collision between raid1 * serial bios. */ + Nonrot, /* non-rotational device (SSD) */ }; =20 static inline int is_badblock(struct md_rdev *rdev, sector_t s, int sector= s, diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c index 57e2487a03507..27d15b640eff3 100644 --- a/drivers/md/raid1.c +++ b/drivers/md/raid1.c @@ -601,7 +601,6 @@ static int read_balance(struct r1conf *conf, struct r1b= io *r1_bio, int *max_sect int sectors; int best_good_sectors; int best_disk, best_dist_disk, best_pending_disk; - int has_nonrot_disk; int disk; sector_t best_dist; unsigned int min_pending; @@ -622,7 +621,6 @@ static int read_balance(struct r1conf *conf, struct r1b= io *r1_bio, int *max_sect best_pending_disk =3D -1; min_pending =3D UINT_MAX; best_good_sectors =3D 0; - has_nonrot_disk =3D 0; choose_next_idle =3D 0; clear_bit(R1BIO_FailFast, &r1_bio->state); =20 @@ -639,7 +637,6 @@ static int read_balance(struct r1conf *conf, struct r1b= io *r1_bio, int *max_sect sector_t first_bad; int bad_sectors; unsigned int pending; - bool nonrot; =20 rdev =3D conf->mirrors[disk].rdev; if (r1_bio->bios[disk] =3D=3D IO_BLOCKED @@ -705,8 +702,6 @@ static int read_balance(struct r1conf *conf, struct r1b= io *r1_bio, int *max_sect /* At least two disks to choose from so failfast is OK */ set_bit(R1BIO_FailFast, &r1_bio->state); =20 - nonrot =3D bdev_nonrot(rdev->bdev); - has_nonrot_disk |=3D nonrot; pending =3D atomic_read(&rdev->nr_pending); dist =3D abs(this_sector - conf->mirrors[disk].head_position); if (choose_first) { @@ -733,7 +728,7 @@ static int read_balance(struct r1conf *conf, struct r1b= io *r1_bio, int *max_sect * small, but not a big deal since when the second disk * starts IO, the first disk is likely still busy. */ - if (nonrot && opt_iosize > 0 && + if (test_bit(Nonrot, &rdev->flags) && opt_iosize > 0 && mirror->seq_start !=3D MaxSector && mirror->next_seq_sect > opt_iosize && mirror->next_seq_sect - opt_iosize >=3D @@ -765,7 +760,7 @@ static int read_balance(struct r1conf *conf, struct r1b= io *r1_bio, int *max_sect * mixed ratation/non-rotational disks depending on workload. */ if (best_disk =3D=3D -1) { - if (has_nonrot_disk || min_pending =3D=3D 0) + if (READ_ONCE(conf->nonrot_disks) || min_pending =3D=3D 0) best_disk =3D best_pending_disk; else best_disk =3D best_dist_disk; @@ -1772,6 +1767,11 @@ static bool raid1_add_conf(struct r1conf *conf, stru= ct md_rdev *rdev, int disk, if (info->rdev) return false; =20 + if (bdev_nonrot(rdev->bdev)) { + set_bit(Nonrot, &rdev->flags); + WRITE_ONCE(conf->nonrot_disks, conf->nonrot_disks + 1); + } + rdev->raid_disk =3D disk; info->head_position =3D 0; info->seq_start =3D MaxSector; @@ -1795,6 +1795,9 @@ static bool raid1_remove_conf(struct r1conf *conf, in= t disk) rdev->mddev->degraded < conf->raid_disks) return false; =20 + if (test_and_clear_bit(Nonrot, &rdev->flags)) + WRITE_ONCE(conf->nonrot_disks, conf->nonrot_disks - 1); + WRITE_ONCE(info->rdev, NULL); return true; } diff --git a/drivers/md/raid1.h b/drivers/md/raid1.h index 14d4211a123a8..5300cbaa58a41 100644 --- a/drivers/md/raid1.h +++ b/drivers/md/raid1.h @@ -71,6 +71,7 @@ struct r1conf { * allow for replacements. */ int raid_disks; + int nonrot_disks; =20 spinlock_t device_lock; =20 --=20 2.43.0 From nobody Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A54101D44AF; Sun, 24 Mar 2024 22:49: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=1711320556; cv=none; b=RcJ46/Evfpy2+4FlCkWN2fsNvi1z1PncKetigKVbshFirIRO50O7/by6K/O/5T54Zk4xD6zLzGHEXfBzbOJGuPr1KncPylofj7YYEo67JJhX1ENYcdu9CDPaXuCCkeKpS4DykSEjDu3qA2PmaGNLVdqvFEeuUKoX9ujzCgJoclY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320556; c=relaxed/simple; bh=vqjNV31bAJM76RZC3bgXxtzZINuHlO/JuRr4ZD6dRS4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=FIqrQ78PVXwQEcV3ir6GH+KlrJHMXgjY02RPUEAKxeWwkzPcIxzLNcqHmjnWVJ0VojDdPrjynN9SU00M8qrpQJYy4uOh5Nqxb17REifDHd7OLCraFegSx89Z2K3X1NbFbH6gsxjIcKY5JUkR2YXBQuRYCr4iZN95y86K7XwESlI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ejoD+RvL; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ejoD+RvL" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B7159C433C7; Sun, 24 Mar 2024 22:49:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320555; bh=vqjNV31bAJM76RZC3bgXxtzZINuHlO/JuRr4ZD6dRS4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ejoD+RvLaTXOI5EowjalqC+qmNfhUUrBVsXzu/2LyggJes7jrhtXYAV4hG37A5Kqo lTk1XhIJHpcYMOzQ7U248SlpMsmDtQ/6VcAawNKlqmEEehii6DFHCNaKi5VhQlu+T/ xnXk8uuLi+3nqWlr85G6TtMVR/YGnGLo2BlFS4ii1GLguO/4M2TwxCdhWkWX7FYqKo gr8297/4OVI3vGC4lc53SfSjwjaFnz+rZjVpt1HZZkujFpYCYyWDji4TBigmUtOKMh DsHgv0rpgkww+F10QRvvtohbBt58KWU/GkwqmBuZ5psLbt7/AjakUw36UFk9U8s0FU ho6mIWQjHvOfA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Yu Kuai , Paul Luse , Xiao Ni , Song Liu , Sasha Levin Subject: [PATCH 6.7 116/713] md/raid1: fix choose next idle in read_balance() Date: Sun, 24 Mar 2024 18:37:22 -0400 Message-ID: <20240324224720.1345309-117-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Yu Kuai [ Upstream commit 257ac239ffcfd097a9a0732bf5095fb00164f334 ] Commit 12cee5a8a29e ("md/raid1: prevent merging too large request") add the case choose next idle in read_balance(): read_balance: for_each_rdev if(next_seq_sect =3D=3D this_sector || dist =3D=3D 0) -> sequential reads best_disk =3D disk; if (...) choose_next_idle =3D 1 continue; for_each_rdev -> iterate next rdev if (pending =3D=3D 0) best_disk =3D disk; -> choose the next idle disk break; if (choose_next_idle) -> keep using this rdev if there are no other idle disk contine However, commit 2e52d449bcec ("md/raid1: add failfast handling for reads.") remove the code: - /* If device is idle, use it */ - if (pending =3D=3D 0) { - best_disk =3D disk; - break; - } Hence choose next idle will never work now, fix this problem by following: 1) don't set best_disk in this case, read_balance() will choose the best disk after iterating all the disks; 2) add 'pending' so that other idle disk will be chosen; 3) add a new local variable 'sequential_disk' to record the disk, and if there is no other idle disk, 'sequential_disk' will be chosen; Fixes: 2e52d449bcec ("md/raid1: add failfast handling for reads.") Co-developed-by: Paul Luse Signed-off-by: Paul Luse Signed-off-by: Yu Kuai Reviewed-by: Xiao Ni Signed-off-by: Song Liu Link: https://lore.kernel.org/r/20240229095714.926789-5-yukuai1@huaweicloud= .com Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- drivers/md/raid1.c | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c index 27d15b640eff3..750a802478e52 100644 --- a/drivers/md/raid1.c +++ b/drivers/md/raid1.c @@ -600,13 +600,12 @@ static int read_balance(struct r1conf *conf, struct r= 1bio *r1_bio, int *max_sect const sector_t this_sector =3D r1_bio->sector; int sectors; int best_good_sectors; - int best_disk, best_dist_disk, best_pending_disk; + int best_disk, best_dist_disk, best_pending_disk, sequential_disk; int disk; sector_t best_dist; unsigned int min_pending; struct md_rdev *rdev; int choose_first; - int choose_next_idle; =20 /* * Check if we can balance. We can balance on the whole @@ -617,11 +616,11 @@ static int read_balance(struct r1conf *conf, struct r= 1bio *r1_bio, int *max_sect sectors =3D r1_bio->sectors; best_disk =3D -1; best_dist_disk =3D -1; + sequential_disk =3D -1; best_dist =3D MaxSector; best_pending_disk =3D -1; min_pending =3D UINT_MAX; best_good_sectors =3D 0; - choose_next_idle =3D 0; clear_bit(R1BIO_FailFast, &r1_bio->state); =20 if ((conf->mddev->recovery_cp < this_sector + sectors) || @@ -714,7 +713,6 @@ static int read_balance(struct r1conf *conf, struct r1b= io *r1_bio, int *max_sect int opt_iosize =3D bdev_io_opt(rdev->bdev) >> 9; struct raid1_info *mirror =3D &conf->mirrors[disk]; =20 - best_disk =3D disk; /* * If buffered sequential IO size exceeds optimal * iosize, check if there is idle disk. If yes, choose @@ -733,15 +731,22 @@ static int read_balance(struct r1conf *conf, struct r= 1bio *r1_bio, int *max_sect mirror->next_seq_sect > opt_iosize && mirror->next_seq_sect - opt_iosize >=3D mirror->seq_start) { - choose_next_idle =3D 1; - continue; + /* + * Add 'pending' to avoid choosing this disk if + * there is other idle disk. + */ + pending++; + /* + * If there is no other idle disk, this disk + * will be chosen. + */ + sequential_disk =3D disk; + } else { + best_disk =3D disk; + break; } - break; } =20 - if (choose_next_idle) - continue; - if (min_pending > pending) { min_pending =3D pending; best_pending_disk =3D disk; @@ -753,6 +758,13 @@ static int read_balance(struct r1conf *conf, struct r1= bio *r1_bio, int *max_sect } } =20 + /* + * sequential IO size exceeds optimal iosize, however, there is no other + * idle disk, so choose the sequential disk. + */ + if (best_disk =3D=3D -1 && min_pending !=3D 0) + best_disk =3D sequential_disk; + /* * If all disks are rotational, choose the closest disk. If any disk is * non-rotational, choose the disk with less pending request even the --=20 2.43.0 From nobody Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7143D1D44B8; Sun, 24 Mar 2024 22:49: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=1711320557; cv=none; b=KLvpTC43pXGnFbUItiOYOxcDqQkO6NYLm1Sfme8H4o6ZOaxcZoTZE5FNdZKRxFI6gmunuGH0sm+RbdSbG4yaKQGE4vBQ6tZRdiSF8hEOLfgzYdCduHrSKDg+3FVM+Z2o+hOMU0TqNxp3+rbmUL3BSAYwfpgjrXwFDUz7UqxneFo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320557; c=relaxed/simple; bh=o0P18BDc75hN2CyaedHN48mE5buT5ZzzGqs59ZBu8ls=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Mer6JQhv/gvvA9qK1sMMGrsjtY3jZQGbNHBEyADM0L8Zqw0gh6wsd3EuHdkScB6W60OPcvzGV/SkBGnLmYHHWJPp7UAuUxdC7aQTX0jJy2BGCrKao9Ji+aRWrb6Eh8qBgI/5zP7DB2Beol3/368Z/YgxLUAZWuVjaTFZimsXm20= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=bMHwz1sQ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="bMHwz1sQ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id CC1D6C433F1; Sun, 24 Mar 2024 22:49:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320556; bh=o0P18BDc75hN2CyaedHN48mE5buT5ZzzGqs59ZBu8ls=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=bMHwz1sQUThKXqc8MlTOOKXi8SPWceOGugFMGA+Jbodpgq/9mkshk/k3ld2UWqrtB /XurdISA5wmSp0qfIBh0Kp908eh3qeC7tA0V+VlX3ORNpyTfpqMaEx2HbUjeme3dHM nmU9n9TVQJ8uS+YEboWSfnQPvK3364ZeBgvbBzXTxXIBC8BTBJyv7KD0E1w38M44r6 5GfRJ5CfNp4591E2ol37C3vieIvDNPhpW/ug1YuUI1uz7nYsxec25VPOOIEqES2EE7 hJzba8Fm92e7B78fif5y/3+8rNzzCji6yB90mi2FmJqet7Wrh5FgvIQn5NNDsyLz/d ca4JwFvAoGOvA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jens Axboe , Sasha Levin Subject: [PATCH 6.7 117/713] io_uring/net: unify how recvmsg and sendmsg copy in the msghdr Date: Sun, 24 Mar 2024 18:37:23 -0400 Message-ID: <20240324224720.1345309-118-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 432181CF8D7; Sun, 24 Mar 2024 22:49: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=1711320558; cv=none; b=I9SsoWaIWuJzqkwTRKvLvQGZq8f6HVcDQJeeKs/HQoNlApmKez/sMh82y5NLLKkMokjRO0S3D6q/tTknNfrdernFXKAu1WHe8OISZR/T9B0rcd7vDLX650TGeTCdy61e1bEMkTf9l02V1jUXIwjw1VsOnGjJ1k008mBgfXbrz04= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320558; c=relaxed/simple; bh=gUOyQMOyLGmeWKluDeufXTqUbLq9Ei/WR0Jgx0MLd2w=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MPtawmrvufrMqHVM3ZhjrB2COw+2n6hMiaHAfSyVmaZ+nVTuUOklG3LUBLD2uDzFvDnGhAhZSnGaonNwRk3ev4/Kxx2KMaJ+EeOVEMwtYawGP2JTkz20wpYyBbKQtisMAwzjmWcP//Tns7B1zDHAZboWtLaiHTm7cuNhhqvE+7w= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=BWQcY+70; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="BWQcY+70" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 98625C43394; Sun, 24 Mar 2024 22:49:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320557; bh=gUOyQMOyLGmeWKluDeufXTqUbLq9Ei/WR0Jgx0MLd2w=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=BWQcY+70m+UOAgQbelJQTpJJaoB7T2KM74Ztk70wvzZxNmw627cGllnTSqC/ITLxF oIq8TULpIf8EFO9XvsYDrLlGho3r4tNk8d0Q37bswGjXLxsUw6MzYG8GTN27+yIrCS NV028xM7tr6hFglWyrA0kb+5kDj5d/D283l3PkmabDFFmXMGnmwLAMG7QxT7q1z5hn GWkDxj1BUFb1J5EfoL1TGU28QDxVSDf0d4IYwic8qEdPD+wv0SLFTg4AWDYRnYXEbN 05ApUv9I8wZQiT1MZ+U4u2DGSTWxu6VHpKDTApA9D5Z2l9855sErRJ4w9zXhaUgmXO 7WEPb+HZH4QKQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jens Axboe , Sasha Levin Subject: [PATCH 6.7 118/713] io_uring/net: move receive multishot out of the generic msghdr path Date: Sun, 24 Mar 2024 18:37:24 -0400 Message-ID: <20240324224720.1345309-119-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 241AC1D4C4F; Sun, 24 Mar 2024 22:49: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=1711320559; cv=none; b=slkts+7j9JAFXzq0ZMDsCL3ZrnR4DQzlTWnaAcxN+BW0jjomGIZqRWiEMhh0c0VBqvZFmhjVy6OX/6lDZsJ4dckSpH7uI5SpInAZYxZSn9rukVLbWsVLglYO5UNcML8HwIpo9YJ2H+aSoetUGaoM9R39fMrhMD+SWJ3yE54TXfM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320559; c=relaxed/simple; bh=+mRypTj2AN+uFrmsMst73xXavbGCXAj069qIzrAjzZE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=pPKgdKQ9OB1jXxDbtTf+7VMGn6bPTo1YhV/yv35utsjEUZvfxiX9eFVgxITd9IK3iujO1kLmnM+/ehj+csqbmjcN0a+mLc+TEjdvi8toXUNyfOjVE0DhtGX0zlESyA1B4v0uZOvv+ku6J5YAC5TkKABQERSzEwVbvIC8n16tL7E= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=h5oqHkhH; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="h5oqHkhH" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 65A8BC43399; Sun, 24 Mar 2024 22:49:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320558; bh=+mRypTj2AN+uFrmsMst73xXavbGCXAj069qIzrAjzZE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=h5oqHkhHzqpEzalmSV2L/2/UrEEHfrVzgUCMrD214a7xumiqKkbpAkxzOcPQHlpIv kJx12VoiC/m0/qMD+Cgl5vQSJ6Wvtkfa+1zqj3abjuL0AIG5kXLSj6elMcuqhx5Xns /NwpCBtfsa5Kzfyik5HI/+orDCsauA50/WMSOoMBwrcdtCLvXXefMYsMC5KvtprmAD BoCWF4o2Bw/qFnzHbHNJallWGyUH8tppEImA6r/cC9LHvhwc+AXdPfPjh79JA3DdlC wvOIQ9sUZ0V7kgpXDq1MBqJqen9l/N4ru6a8mGSSEjPgy/tqNlk2E5s/AmcaJVZ1UW Ww7v7xJIa92cA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Dan Carpenter , Jens Axboe , Sasha Levin Subject: [PATCH 6.7 119/713] io_uring/net: fix overflow check in io_recvmsg_mshot_prep() Date: Sun, 24 Mar 2024 18:37:25 -0400 Message-ID: <20240324224720.1345309-120-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0B7391D4C5E; Sun, 24 Mar 2024 22:49: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=1711320560; cv=none; b=QG3sN8h3ZqJye4PoZcF6vgi0Jczqd/+xw3w5pASYR6lwaV/4V0No0kOLBAbIq3AKD2N0HX/xMHea+l+bLNCN100rfRWH46uZ0amifnaoyMf7dL+t7wFB8y9veet17+tfZjXo7q2EVQplDW+DLTmry8Jps06u6LKJktqnC38aQwg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320560; c=relaxed/simple; bh=oR6kvkBMYS2cpiqZLlshxpoI6c+KY4+ToxoVOXN4ufk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=QOhXfLq2EuZF1YaeJp3I2dIxC2WXChPWYS+Z0lfbrEveLIMtXaQAxEc69BYUVT5TuLflvQtEERkKWhDRhw+oAMLJioENupefREWR7rWbhuAaxNDTpzs6fX+S7DmCjNUC0Kd2vc0Uwocm+cTKOS+nwX309Yk+61e+QgBiWimrqQk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=h9KpIqcx; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="h9KpIqcx" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4B668C433F1; Sun, 24 Mar 2024 22:49:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320558; bh=oR6kvkBMYS2cpiqZLlshxpoI6c+KY4+ToxoVOXN4ufk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=h9KpIqcxayb0YFekncOauZQEclhksMQp5bhpGnL8rLJO8SikyIkASTez0gO3sS26w N9Ufixfm62VZe6rzzbWF5AWkGtqgSsFRBTu7wcuk4XaRSCHtjUA4Ip1np1LlyVg07y Oz5OItkLpOXELAtap5hcrBJ5K04vT55cRN5nH8F67nwlef47Mmi7/w1BscwYMp3kV+ IgZOBmozHKcg76tg2COcwFdJsIHVQu1IVcDxjyOpxdbZBLbUxc9uFr2aLcmvMlghsC oUg8q7vMVBqvfMX6ARs3OsGFlexemvUQ36LfgLo5Va/NIfdG/IvVzBoI4sY90kF6Ju LTmqyoNT/9kFA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Chun-Yi Lee , Jens Axboe , Sasha Levin Subject: [PATCH 6.7 120/713] aoe: fix the potential use-after-free problem in aoecmd_cfg_pkts Date: Sun, 24 Mar 2024 18:37:26 -0400 Message-ID: <20240324224720.1345309-121-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 c51ea95bc2ce4..923a134fd7665 100644 --- a/drivers/block/aoe/aoenet.c +++ b/drivers/block/aoe/aoenet.c @@ -63,6 +63,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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7E3251D4C65; Sun, 24 Mar 2024 22:49: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=1711320560; cv=none; b=ZMbQl6Am//HAqjgBI/HgLvBf5kA26FAwEcrz9KYgzanEayiN5lOqfH91xrnwm6INZRfeBKYoYvId+n9b1DmPNh0/zb8lqX7SjoscuR+PMZ8MIBssZL55deIb5ZiM/B8ZLGodRAFnaDMZ3oRkTr6EMaPfpl+6uyAmMqAsqP/JD+0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320560; c=relaxed/simple; bh=vYYFwKto6yg6woV1Hr3fxCR11bex2S34Ri9YamTHIhE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Hujw/wOfurpkS7Vy0ZgC7AcOfudnnPka6pDT2h+CLBv4Zq2TJo8Z6Vk9GANZtkRfEU8bb0QhXkZGC/sqRhCnILWg/cXkUS/555c1NFMm0XsfiiCqrqbgd0256+dULODrkLlWVKFqJpuJpgyVql+Ln2VNNl2UXhk8bEEbfwYjsA4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=PxxV5vmq; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="PxxV5vmq" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 33937C433C7; Sun, 24 Mar 2024 22:49:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320560; bh=vYYFwKto6yg6woV1Hr3fxCR11bex2S34Ri9YamTHIhE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=PxxV5vmq+V3sQ+vubbe08K9s/fSge8IgY+om1uM7rxwtOGBj06775ZTU0NVwCC4Z/ PQ3fevCjVEvXkHbysvfMoeCUKmx+T71SnrTB7WQGr9TXlxrX+cC6ti7WbBir//Emgr snlfcq3o6Yj6EcJC+AuMqFUdeBN942bCe+TxX5CRYcLxujRthkiY1OLhHAikOhWnM2 VBltzxT17fNe4iwec0WF3eKXJzC/aBGB1iEwxlClgl9qWFMgiAkTrtj0ga3915CCS3 RLXiZ/H9oYPcT8rxXbdK7Ky6lsmyx7CUjujRXMlcY/GKMZNGMkqLgYCEqIfaZVovHw BYXaeXAzpj2BA== 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.7 121/713] x86/mm: Ensure input to pfn_to_kaddr() is treated as a 64-bit type Date: Sun, 24 Mar 2024 18:37:27 -0400 Message-ID: <20240324224720.1345309-122-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D03D6823DF; Sun, 24 Mar 2024 22:49: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=1711320562; cv=none; b=dxkGzc0d8kzx8uze/nLhVAuhCKM9mcLikS0ggLurebv294CZn2eN7u34RCSjLCI1YawbyWb4UISbvy9VKhkNbCtVp1jlrZvniIARacdP6aHxaGNhTg0PDHW9ZxUoTqk8CE526ZhK+T5rlyFigGCHPi03ze6TFN6E0KZuiVjG49k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320562; c=relaxed/simple; bh=Bo9STP/2YMxC8WX0+B/N7gU8gl/AULgfdFnHDucbbc8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=QqfEgB3s03FyYoyppFAQnM7OLrAunPZ7bIa5J1Eb5xa3nEcCz5IT6Xg/eKIve1XoeGaixCQk0GRglfyPqI78VhhwzJYujolR+yTlyvPDN8nS8dy7tZjfD+nqf9IKmjq7aUSuxhEdcaFf30iNO1YZ1airijaAmKimf4TXHrFP5eI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Hc8zobks; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Hc8zobks" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A1211C43390; Sun, 24 Mar 2024 22:49:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320561; bh=Bo9STP/2YMxC8WX0+B/N7gU8gl/AULgfdFnHDucbbc8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Hc8zobksOf+h+K84dWFBHNGRElKD9yVBdoASKgWraywwToeDoQAytIqVx0vyh5fpA tempXsq9yeIoNeesvYo4IdtsHAnN02x2cs9D8AMm/6HwTIz6PX/Vjk9cRE7LdURGHi F5ytxvCGhlyHWkhsZfp7qIjAk8IAQz96YPCgX9MXR+Lq4GSHN8lDMeD/0/gXQaFTJS H3NG6Qav1GtPXQb/X+Ov8/RKgrvEmuu0wOXKunxJNpV0H9pWDPsLwp7VwWn0Bo7HFW Guz9LIILyLwPlLcE4TqC5Zje41VisiKTQuW+Itv5mR2DOPMZGW9pmo6sRcCrLCMxAg R6miGU2xvTPJg== 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.7 122/713] x86/resctrl: Remove hard-coded memory bandwidth limit Date: Sun, 24 Mar 2024 18:37:28 -0400 Message-ID: <20240324224720.1345309-123-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 19e0681f04356..d04371e851b4c 100644 --- a/arch/x86/kernel/cpu/resctrl/core.c +++ b/arch/x86/kernel/cpu/resctrl/core.c @@ -231,9 +231,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 @@ -241,9 +239,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 a4f1aa15f0a2a..d2979748fae47 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CC51B1D564A; Sun, 24 Mar 2024 22:49: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=1711320563; cv=none; b=DX7zORqVwK1OZyjnzKrc7hw5m4jEyULOhAw5DolSARDNU0v4xQ/lSwUnm3GTNBglLUaLhqBSvXdi4bPRqrdw8zjTfiz0iwyRG2ZPdjrSko8efzD3ByiyCK7f/TJY0dsmP+3bvEtHqSaelPafdl2IgKVM5GNzHAAMnI7gf2tozPg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320563; c=relaxed/simple; bh=P49efD8rlRGlUbOAd0Tvwnd/0EIr02E5XZUZfN8A1nI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZydaifnsLJ21SupcW9p6Z3fywGXwWcIl6z4/xRcNxhlCgptOfFHavtzEeyZLNTO4gY2Y2qth/6d6Wk7sJmQoRqyGvs/qZPvvxqd5wnOGB9aPIGySMs2AkhVC0Vv1Qq2Xx9gFTFtqlUiF/3ty+NLwLiBi/AxFZzU84hB0xFD6Zng= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=VquW1RGP; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="VquW1RGP" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9D2A8C433F1; Sun, 24 Mar 2024 22:49:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320562; bh=P49efD8rlRGlUbOAd0Tvwnd/0EIr02E5XZUZfN8A1nI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=VquW1RGPM5nHcE05mvLleur+hjzPv2gQZRR5CmnpL85VN2vbipe09fbrjsoaZXMiQ 0W67Ls2Yo1xKPdAQFVeXI7CEo0rjtSJIU5USJAGkQajRhij3vaVIUY8WQfTINE7qqZ mP4JAOgich3dMJP55pWt7zC9+vv6mZNm6Chnl5LO68pBHg9EoPNDj/N62E6ySdHA/Q oDL3NJ52L6i7cgMi6wi8RD2dDM7Mpn5FRPjB/qI2tpkDGB8Hk/z/kiHGKxpf2odl4R THsjzj3pSFNcNIPnJNfWFVIPJyiyhdrWuTOA9NBeeF0cQE16nQFVAl9ZjloMf8jnjc zHrGsqpUiOwAw== 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.7 123/713] x86/resctrl: Read supported bandwidth sources from CPUID Date: Sun, 24 Mar 2024 18:37:29 -0400 Message-ID: <20240324224720.1345309-124-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 d2979748fae47..e3dc35a00a197 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 69a1de92384ab..2b69e560b05f1 100644 --- a/arch/x86/kernel/cpu/resctrl/rdtgroup.c +++ b/arch/x86/kernel/cpu/resctrl/rdtgroup.c @@ -1620,12 +1620,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. @@ -1663,6 +1657,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; @@ -1686,6 +1681,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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 840E61D5656; Sun, 24 Mar 2024 22:49: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=1711320564; cv=none; b=dKaE/vsBusR0GoWSk9+p7Zz1fMSEG2Oo3+kSkVsuFU7p55LYrQjOOx2Uw7vp/NBxagkVliXSeY8Odxg7AeFtqsd2cOh4L9iWYbC1VtVjvjyz2gpgnUTJOXAYQTQwNW5LWu1w7PUZKKtVqPVa2rhKkEYKEy630nytOd6wmfRN3E8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320564; c=relaxed/simple; bh=3O2ZGMzYJDzn9u6tCYoGpiraSg8V3UozvV2JPZySKYU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=BRzHjJfuzwh3TuaXZxI8gOB/guGUjoohU+krGTws9Y4l87SttvZwM9jx4ava0H5Hmye9Qzay4QtHD8FJbOvAsCmZv7JL7Uf1GLLUHUu3IiQzkk5NS5vgXfzx5RbZUq+AblEuTbKdyIoz9fI5vmLb0CBG7PamXeJ9yNIS4QBUn3w= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=l3oxnz+C; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="l3oxnz+C" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 96894C433B1; Sun, 24 Mar 2024 22:49:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320563; bh=3O2ZGMzYJDzn9u6tCYoGpiraSg8V3UozvV2JPZySKYU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=l3oxnz+CZhEsGN56i01mA8EMo2ahBPY0VNZdbO1xtVH8ZqLQrjQGXixXB10zuc9FI pF6ZcHaieH3T+g411c9ouBE8e9h98I6+sdYp47pNFqTDFhJax+fwbS19QT9jgZ+EXd 6IfDE9UNbKwjGM8OqNE3UPOWmexOCLIEoGw/S7ernWBNG1qJUpm7VfGXbZJDBiKLCz TL3G8nP72EdQ9zPuFcaB27wycBrErMRVJ1Mnb7cHsJ3dFYWcDl7OzjEsCfmrCwS+lY hu6hgE7VBAb3Vu+HVmr1i2FvSpvZy8W2ib/E6qZ6FE2GAVNrCwsotYs1CvMJxyMJ/6 FfCun2NIouvMw== 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.7 124/713] x86/resctrl: Implement new mba_MBps throttling heuristic Date: Sun, 24 Mar 2024 18:37:30 -0400 Message-ID: <20240324224720.1345309-125-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 e3dc35a00a197..52e7e7deee106 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 825861D5662; Sun, 24 Mar 2024 22:49: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=1711320565; cv=none; b=aYJbMHO4LKHfDisPbD0n8UYy7175ZAPx9tLYpIOLKaACCCyQYFjlmYTmibWR66+Qr9NEavrYh+pZ7e0PMknWOfGAqgq4NIic2Q7eKHp9ub8FNewFtPqyJP7Ven3rufcPc8zTXpj54avtnj6KQRjeF7FKC1M3AsP+VKtsiazudd0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320565; c=relaxed/simple; bh=jdfu/KH7YL1zTK/NxSGJU5Hr4wSQlNuG4dX03k2hbfQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=GyRbH4LXwQ3SKg533yJZLCNye2gb2GYUrkGYlLEGKOw4poVMP4LvTSVboAe2/liKEOni/D+IsS9xLrhw7J78hDaMST4A9LDjzjEQjDD+11veMOQgfaXckIFSHE/Z83Q5Wv9SBCuhKUC4zBn7aE8SzmIWwU9YrSMFdM/i5DklO8g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Sdmdcf5Q; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Sdmdcf5Q" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A8C8FC43394; Sun, 24 Mar 2024 22:49:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320564; bh=jdfu/KH7YL1zTK/NxSGJU5Hr4wSQlNuG4dX03k2hbfQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Sdmdcf5QLWbtMx8AoTZ5Ao9cd2IG3nAsBSfgodkwAdaU4BdHQ1s9491aUU0uMZTAP XnSVE/w/Obi138qBxwaMRefKbaQr0VCm7WcxWXkVMJLHaBDRq+E6CLq/TvJZzQwuQj KjEj08QDUuJUSFnRaGjq/IVD0HWUxBowRaeRvDQZUzsK3NYQcPR6MTWyHQU6jp6hot BlZpVyDvJMQfj6Sjwg9ZHx1WK0MUbLwUKo3HfRpQlxflwV9qAhNk+CpULdqLpQkBZP CKBPmBbbxVxosuGYBbqKl30pUoDqNyfJXysnzpcW2379WhVHRyb5s0Jv/zFYW0Ujf7 /+vLL2XQflU5A== 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.7 125/713] x86/sme: Fix memory encryption setting if enabled by default and not overridden Date: Sun, 24 Mar 2024 18:37:31 -0400 Message-ID: <20240324224720.1345309-126-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 79CCE1D5651; Sun, 24 Mar 2024 22:49: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=1711320566; cv=none; b=s1jVuuyO7WjGE3+uK4wzxcDRhVBeo4N2QBZ7q1VdlnaRg6/q9Ue1ex9fHW2+IB7OTYD/bURRJgEmOOaaasniIMK3a6nYmSa5zw7OEfVsBypF70nCs/vvrTHeX6S1G7YXdAE0p3g1E33GAkbGLbVVYzTdr0TjOFifo/lpdZxadjk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320566; c=relaxed/simple; bh=23eHHuh/DV2k7PZWl6XBVkeG9jJGgENpTKhIC6FWxGs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qC8/1oYj92nXSSipLDmm8g86ouNQ+Er3V79djzonXgJLJqpWo4IQg5jFFnMypTpqyiWOcjTK7ghI5E496TsdTHdEOkx4JHqKZMRZYCUxp84B7qV+c5oPri27f1apQMiOK8McJJ5/TQFARzfWaHty8AyjWODSfXQ0CekkGhJAYNs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=bWlK7JTt; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="bWlK7JTt" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A4EC6C433C7; Sun, 24 Mar 2024 22:49:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320565; bh=23eHHuh/DV2k7PZWl6XBVkeG9jJGgENpTKhIC6FWxGs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=bWlK7JTttHO9pKXqf3wVykt7L6l4JwkCRD9PUyZV1su7sWk3uf25e1lH7pBLkLIJP YfqwiMPU+sRNPDup7d0RYHrM1miVNWPWShmsl2fYO681fWXOBQSGk8SK6omeMWZuel f03mvHKoChbFgTx53CDd1RF92g88nan6tkdP+3EHlxP0znGO6BxEtnsliKoLYrBu6p DlXejO5v/R7aTCOtrhfWMsdTunQTrKjBsVTnApEQRNkeCP9xXI0M65TebX/68Th12P qCwKvIrSeyC9L1/RK0mOReBkYEHdaeyH52nIJ6Ee/E/d8imoTsFe+e7nyArv77jcMz 7/YC7ylQ7zptg== 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.7 126/713] timekeeping: Fix cross-timestamp interpolation on counter wrap Date: Sun, 24 Mar 2024 18:37:32 -0400 Message-ID: <20240324224720.1345309-127-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5DC131D5674; Sun, 24 Mar 2024 22:49: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=1711320567; cv=none; b=D/d/8u/8CNNlfOJ7pD8IRX+xxuRa/NlEVoKFH2b4gLO8FaT3RD8wa7qhSNVzXM6TcDAaDKahjm9hTk5gXG0k2KYyh1ybSi885RBMXQBwJGPdTzhaXfCMXqoEMRgS0twmDD29iMWw5/lacIzI5SCdpXZ0MPpx+1nTmZMNn7AJLOU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320567; c=relaxed/simple; bh=OrTxKuavkmAwp8h1Jo3aMTmD6H5/LjHaoUEWZ+XZ/aQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=VxWA6pvK0uBObCToTsqsHnBezMf7DTSK0Nb3FEJg2VNNsSIWqe94mOhA/EwbxQ3imGWIqQP3CjL0v0GVqDPPD2G5fsufuGqVR/xT7Z2hVoD+K9PSETwbf0HkGUQpLtFAAdhfCs5GLsiTFRAPkQf+fvXvAhOAqNUQEtMBltAHnvA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=aiHY/RoH; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="aiHY/RoH" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A0F0DC43390; Sun, 24 Mar 2024 22:49:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320566; bh=OrTxKuavkmAwp8h1Jo3aMTmD6H5/LjHaoUEWZ+XZ/aQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=aiHY/RoHVrv4nmgYh1wx01eXIYg1wHXgRWoeNj2vlEx7Lt+MUDGebHrXlPDuU7kW2 SZa6iPRG2ZY21CR7AWxheNG8sQ5YO15L5L6kCR6AUzWfDD74bMhlGtN62ENInlIjzZ Xz1fL69N5LdhBOWRVUpYIwveLTdbyTftRATY0zjU+X7L9Q/YkNfUM6pSHkQ+ArYOaL yNdi55TIwKJrmm8bbYZqSTutDiEvDAWm6gedGmIRdax623UrhwzqtZ1wJnV/ztVFb7 IjrIunLPXGcSXmsdYq6rj0JyGhSIm10oXH7r+CLLlmmCQzzZr6gtnh6J7LCDx44xX4 brl0eqWflzqtQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Peter Hilber , Thomas Gleixner , Sasha Levin Subject: [PATCH 6.7 127/713] timekeeping: Fix cross-timestamp interpolation corner case decision Date: Sun, 24 Mar 2024 18:37:33 -0400 Message-ID: <20240324224720.1345309-128-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5953A1D567F; Sun, 24 Mar 2024 22:49: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=1711320568; cv=none; b=L4ZVBgOWaNqOf+6LgGqQSHLtGJujBpP5X6zK9bxmTYxtazurD78ri1jdqVk8dV8krLxhO4tT59WvbK3TTtKNHSDcHv9zMLcfbfHa6bY0fwJGoF6kouE4OUO26SIgmTSZCCcQMuH2dNYJKwvhOvbWS/OW7RimNdHwx247dkIG950= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320568; c=relaxed/simple; bh=4NV8jozK46/fbyAfW2dcGTbTjJRTkGsTkxZjNikSahs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=didY5AWvnQWDmMh2Fjg7Xy0pGyeZaGWEnR4Ix33NKsaxiMhz5KBKYjU2VAsI6Cvo+UbNqZZJKIKQPVN8Qkuje8UN1JBnf200BsHtODMn01IW1agPemgF8rGSguYxGuCqh//6d1pSdspDYQQRIfC+hrj0BU8oVHyOYOPcsSOyafA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=omOoOBsP; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="omOoOBsP" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 835B8C43601; Sun, 24 Mar 2024 22:49:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320567; bh=4NV8jozK46/fbyAfW2dcGTbTjJRTkGsTkxZjNikSahs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=omOoOBsPIr1gGvh6MP4aUB63/50MhZF+NjLL3u1d7f0TcQRy5pkp+icxqElonSmOa BKj7/zwfPb86eARvHJD23VcXLMZSR63qT4IY72WI/3X/8b1Cx67jXIUrP/oXbphuUV dLQ7Gz24CoWRdxBNskW7L7ujGnpyTNU8uaRjQaIAzQWPUN/ZzAJCvADp9KeQYxlDM6 SjNBdQpHnBt8XvpbmLEjmeaz1Z18OWyAqkNcbxM9WgV+bBoOEYnVFzV3B/JrZ38BMo ueKlvu81knbBwHrtoGQifsSyNKCOB7Fm3wRzx6OMtqHUlEWSGHcRsnPgWmnc4eJUIh Zy21q59Q9r1iw== 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.7 128/713] timekeeping: Fix cross-timestamp interpolation for non-x86 Date: Sun, 24 Mar 2024 18:37:34 -0400 Message-ID: <20240324224720.1345309-129-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C636F1D5F65; Sun, 24 Mar 2024 22:49: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=1711320569; cv=none; b=NX3d6KlwZVYqNqlSsjd2G/DSzDEMNh5spxI+smeLK0ge52URCP2KnIH+wPMUhfORTv33+AcB8WRrEBSuX/zq0sprcpy5uoIv9vigoMUdfG2N3jjqyAKvD+KbXNAbseXzVld2hOcfVxqgKlfffPahWlm2aDF0TyiVCfNhos+nt9g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320569; c=relaxed/simple; bh=+5YPbWjlptl8hmfAMIJeiodU22MkYKtuc8lSZTYliSg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Te2E2/ZYuuYf5Ob8TTd5sXBCNhJU4JsCcrcqt2eyx3dvw3pRu/YMVoNF28atg986LpX6a5sNB68yoigsAHlfia7MSBD7qJCn1u/t5Vw+1edcmMrL9s0BcRFLesEcwh8NYM7xt8kNzG4+7nKeKjqXfbiYNKWuRbxo46bqF7B+C4g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Rkev0qVk; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Rkev0qVk" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7F513C433C7; Sun, 24 Mar 2024 22:49:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320568; bh=+5YPbWjlptl8hmfAMIJeiodU22MkYKtuc8lSZTYliSg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Rkev0qVkQ79UVnVS6CdX6SQKNPinMtq8j7FpCq3RA+x9ApJWXkrKx+YH75Ygj+JBC inWBA2+UQ51KddxQ94VYj8UNnvYnh/YxY1TfmP+76dFEfX70BJB8WD+aHz3jTRvs6A eFAJnQbaB3Typx4dZwgCbQbZKPN3OTRb1Gl31MDhB2e064hipemQMUBtXlWynyAicZ 0RS+qoSLjFO5eAxBXDis7IMcL7bnzCr6AD1xHbIahPEfJaMBROCJAqyxgsH0TeXeHb VM1NNHzvOBDhKCNwq454qlm0nbh+CbA/4OO+YLbWu0OWZF+jphgY4wkJrrE+3nzIQr ejg2l4onA+HyQ== 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.7 129/713] sched/fair: Take the scheduling domain into account in select_idle_smt() Date: Sun, 24 Mar 2024 18:37:35 -0400 Message-ID: <20240324224720.1345309-130-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 7ac9f4b1d955c..68bd1102133ef 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -7318,13 +7318,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; } @@ -7348,7 +7354,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; } @@ -7598,7 +7604,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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C3E4E1D5F74; Sun, 24 Mar 2024 22:49: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=1711320570; cv=none; b=hebIVTDCVNo6zvtv3hRGyS0sykukkq+TxHCvk7NnkvgfqXBgvcYi+goPGNFrxBUUuWS+3JxLEj728XUt7p1dwrSq7lVOYgZIdF1Z9opZlvSfQ99VwFZFSX+njSmEvPI5x3qlCX6PPpXRKkrbDpXEY4+V0Y0Uc+AGmFKS6BVvGNA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320570; c=relaxed/simple; bh=bNg6LzGgXvZgGySCXYzXDG3E4aRuskSPGtJL92Jmy/8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=jT4W4WUht/htYPdI3+vL7i0sBxZNahh09oUsB474R2cGh+3kqKcBZcD54tYz50N233ceby26SQOfJIIfalMPed4OribTgNY/8Qep4ZKTTo0NGwzS+pKu0jAdOwFi+UB4ENpucUHQIeOvAjWI+5un0N2fUYjYzNneXewKmvJNC5Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=nAWfCVwn; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="nAWfCVwn" Received: by smtp.kernel.org (Postfix) with ESMTPSA id EC6A6C433F1; Sun, 24 Mar 2024 22:49:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320569; bh=bNg6LzGgXvZgGySCXYzXDG3E4aRuskSPGtJL92Jmy/8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nAWfCVwn4lDQbwXP44qD7c+SR9euUfsKo9aiE039Fxf3Eqw3syOLewLJMNh2upGf9 4KgVCXvV+MUfFuP3AspJeXvCBGeKQtDTBA1uH33RO8PmHdkkOD/Wm6L9JlgD/gI2yl qUJ+O5hYUmV+IQsWOjqKFgSrJpLSdYGYZLTsy8cmfRGXwdQXAVxvWZYGYpASB1nFPk X+Z/78+vKnGuNCw7utBGSDhONvA7f70W80oLr1iQdneW2WEwIlQrr7kt4MV3G978Q8 LuWYTtg0WxQHCnwykZuggle8oK0vCrDlesDm+aS6RBbvEMvhxtIQvwvGnH5iD4J2Z0 GVw0cHYzlHa5A== 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.7 130/713] sched/fair: Take the scheduling domain into account in select_idle_core() Date: Sun, 24 Mar 2024 18:37:36 -0400 Message-ID: <20240324224720.1345309-131-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 68bd1102133ef..c43b71792a8e5 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -7296,7 +7296,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; } @@ -7304,7 +7304,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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A2D1A1D5F85; Sun, 24 Mar 2024 22:49: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=1711320572; cv=none; b=m92xW0rw0AjuWAKTD6ZSDopxdzt4OVYBfuXlBsNMygIqMHnoVbO71eJJ3gCNT6EIpGvEt8JgPRVOlMq2R/yOk8Y8vtMXy9JElgVntyZGVzll4kmixAtcStU2xc24IJJ0C3jmJqpLjLsn2xS7XRfStSeDxpf9UkvkGjgsoteZlrs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320572; c=relaxed/simple; bh=oYYvn/6nxGWAVbko5rNqBa3zP6x2dNPOvgw8qbioNx4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=dMRkSwr4WqvlS3hhfXPIQKTbguVhbs3kkwU4CEXX4KwAgA2DDU0X9ENhc4ti8wREwzdyfxp+OJ1OQPh7AWrFrzHHcrWPxb9ecp4mf7nU6SMcDe1f2dN4keA+qjVf9aoxLFdrABQI4YFIVbBeBJK2KULoHTq+iOYiOoBv98lwYc4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=LLTeUYrj; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="LLTeUYrj" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E88C1C433C7; Sun, 24 Mar 2024 22:49:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320570; bh=oYYvn/6nxGWAVbko5rNqBa3zP6x2dNPOvgw8qbioNx4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=LLTeUYrjQSWbyOQIHgvLsD9+UtPBDnThyndGZ3H0qaFfNU6Q7rYXtoGrMMvZqQP80 wJ1NzWff6pmdTDxruaFvDGel2dIU2k+tyMtapvdvAfBbLpkVLfVZiW8FTBPCS4vpVe c7u5p0PcVB86H9UHgJoexZ4iUniD35a+DXCNcAaAopeH1QfAiuJZTtcNJauTNur36A Ub/lQHzen1V3iQ5Q6myITo4essSMRRxbNWf61Ass65D7eMmHDWy60/OkqDf4pM/N/e ypBg0gKiiPBg++6gEV9XVktrJYnAR4M6TKDiSWtW1yJLOspC8joL37m+CPyavj0lPB 5Z/tWd2AxvrmQ== 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.7 131/713] wifi: ath10k: fix NULL pointer dereference in ath10k_wmi_tlv_op_pull_mgmt_tx_compl_ev() Date: Sun, 24 Mar 2024 18:37:37 -0400 Message-ID: <20240324224720.1345309-132-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BD2E71D5F87; Sun, 24 Mar 2024 22:49: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=1711320572; cv=none; b=UCIZUFXqamO2dqdxlHIG+Oosw2RmaSIqttTEh6Nl2of0ZkdeQXFqpcGQ80fhN5chTKn+0Y2JZyzgtA86mXmSoX5u4UZ18HQYMQE6M53ZG/Z1fu0tpd4+RTL605Wc0QHPiQDdk2HBlEN6MypICXZc6bUUDRuHPsmpuesSsWNEmpk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320572; c=relaxed/simple; bh=MdKkC8K2KCUHqqeU/mA8WssUVLz2uaJbi/ZYVNKSEuI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=tswgQlSCYfBfRKdLI0uBzPnjGCnIElD6vsXOhXjg275Ez47KsszcgFE/otBleK50Wh11DuM8HGXAZkW+caSQJ9jWwVJODJp/EzMEgDKZuXmrzwO+BSCYlU2ZeW6W1hXQ29PVPC5+pp1Q2zDjnZZ3umMfGZ+pqaZKyRewnjHV1oU= 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+z/3jBb; arc=none smtp.client-ip=10.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+z/3jBb" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E3F05C43399; Sun, 24 Mar 2024 22:49:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320571; bh=MdKkC8K2KCUHqqeU/mA8WssUVLz2uaJbi/ZYVNKSEuI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=B+z/3jBbyrI6J2RB+tiK8IB8BId8o6nd4UP0Lu+tuAaudDgznNeOASF+8R9pedMWI LvXshg+VjHimg9YgH1i6hKR4s8UkXAIhIa+hldvHNnkmprxCsGOctbKJJJ6JMDIrIC mryOCAahdGdRNMWuAU4HgHbOnz7da/iKeDLALoT658bp4jnHNlaQHXzMijbOAAacCj sQh3gdrpOK/KrRCbd6dz97tJZrrL9zRJ4mPzQN2q65Mhy4tevSquRqOsl6woQzeyKG i6LxOxjgqavpeKtcV/Ly6IbzLQK1nhXtgV1V9Jo1bUDSv+ryKn0ThObyreIZJ8qyX7 G1Srn5fC9eDUw== 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.7 132/713] wifi: b43: Stop/wake correct queue in DMA Tx path when QoS is disabled Date: Sun, 24 Mar 2024 18:37:38 -0400 Message-ID: <20240324224720.1345309-133-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 760d1a28edc6c..6ac7dcebfff9d 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1F3891D5F97; Sun, 24 Mar 2024 22:49: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=1711320574; cv=none; b=EGzk6+H1VUKbZ4vg0dOJ9Aap34QH8JwXiSuRpzqhZsGbApQVEdPDMX6PewdvtfCUntmKLF5sgU8RBvo5B+km/w1b+p6y5eb/Z+5lI1EwjmSwoMy1ElxV0QdslLY6/7P9Qpmd1uIwz0NjCQGeD03hvq8Q8jhd6VBmnXY/zpL1sd0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320574; c=relaxed/simple; bh=5WtQM2tX+LYOhsFO7UKkhfKkpfG6hezjSSD2zr4H3Qo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mr917uXp9V4HnxQFI/PiXkVI4LAJuTG+R7Y0xns7BKg5cXDD+Btq7w9W/ql+zQzuTYVrx3wxOwpzLFtGqkquH78d9aTL3PFLKexnTrFogpfYKQujqvFLV8yJugZcKMnQsiroPhUT4NknrOToD4v2Vdm+KD71Ok+k7kq5v6xAuME= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=t1HB7jlP; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="t1HB7jlP" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E1A78C43394; Sun, 24 Mar 2024 22:49:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320572; bh=5WtQM2tX+LYOhsFO7UKkhfKkpfG6hezjSSD2zr4H3Qo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=t1HB7jlPsbKBZMyHM4GtGdBOEIQxGx6n6rLMu/iynKuFJwyffeJembVfsp4eifgI0 m7ipX+fkSeFIp5eO8LeCkxA3PUv4GwlJ4YTaaKjc9zNKREF5Bp0oHA2vzQ5G0Hvy3a SqxHL4fvcB63cnnwg3yE03Sacz6n+/WMpBr6q0v0Gcb5rgIBctqRtTcYMPNB9CmQwQ 20ZVLOfF1ofIAtsWRi9eBJY5zoglQUHgbGe3a3ZNCylNoQWv2W503zRJYGY7mRmeFy UrRcLEKdPXFJnNy4RT021hh/IDhZSXweI01iWeQOJ6JyzCPRb3iBvgOBLqScvjnEUv +mlSJ6HI1dV1g== 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.7 133/713] wifi: b43: Stop/wake correct queue in PIO Tx path when QoS is disabled Date: Sun, 24 Mar 2024 18:37:39 -0400 Message-ID: <20240324224720.1345309-134-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 0cf70fdb60a6a..e41f2f5b4c266 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B37191D5F92; Sun, 24 Mar 2024 22:49: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=1711320573; cv=none; b=E6i6yQSEicdjZHM9xpbdNYQjYLWg10/OZrk611+cl/oUG17MsS0Vq5AdQOsieVsmz4x9b7gptisNXxOfhQEFAeTqXN+L2ObK4DP3Q0gE9jdoCjmPVRIJhYNsSzK5jUvx8LySEfP8exbiNCZjVQy0LJTp1U+sIjMEJzuHE3h1uKQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320573; c=relaxed/simple; bh=T+ReKdZ9roAuzU/DfsquugIpMTaDIpDuv/0TiIsOPPI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=daSC1jqnndeVeX0k71A2c3a7oyJJoRlBmcn8M5byuLIAw/AnK5+9RmRhVeMzszVweCbVb9RwSIA//siOioxC4vJOLibkC28yr1d05YLfx3Is8wEVbJfKeGf8q7/Un9IjNYuN2GVljHZDVAqYTapEedVOYJ/vmXwEG7Wxm/SatCY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=l0zlSFO1; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="l0zlSFO1" Received: by smtp.kernel.org (Postfix) with ESMTPSA id DC750C43390; Sun, 24 Mar 2024 22:49:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320573; bh=T+ReKdZ9roAuzU/DfsquugIpMTaDIpDuv/0TiIsOPPI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=l0zlSFO1SXnRV9a3zmbYS+2qsqd+ud/o0knNgw4IYsjpRHOMT5p01YA526A2bySky JCPsua4/uiwMooZKM1+FOPggZa4eK9gLii+SpKttfaua6OLJwENJcKw+YBdztVzfHV EH+0L0YPShfa1RABjE4/di7RBlPkSXc5+5yKRguC0GUpUgxYvyw7eYFCPUIUjVTQCQ GIqq9K+2LGwskoOdvuYXeN56ZKHcWXAUU6ZzjWYrnP/msLoTQZZdalGffvmhKflmeu nU/w7S9Kry1FtJg2fFLU/oey1zF5TKVVxBBcrsdsR5GlQ11vq0i+x7rwiLB4ETf867 9eqkMsLtcXARA== 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.7 134/713] wifi: b43: Stop correct queue in DMA worker when QoS is disabled Date: Sun, 24 Mar 2024 18:37:40 -0400 Message-ID: <20240324224720.1345309-135-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 07F5681207; Sun, 24 Mar 2024 22:49: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=1711320575; cv=none; b=SaDffVCNvGQeOuc9sIefO3IJPFqXFXBwnx0EOYztoXrqtmGwdf9l5I+WgWY0MmsvNaV1kj8oHrHHCJE70NXddIxP/M1rQxFswJcfmqg+I6/3clmQfgXKEVta5g/Z4Vpjyxr5UGxTm6QmFjePCUU9Hf3OU/HdLgQSTNCtrgMbzgg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320575; c=relaxed/simple; bh=CsAMiHQAXIh3ppx29hoMWB2i85+/qOx9nZjiv2Urp3o=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=IyKP5untXYlYX9GbW9wI9OrqP6i7iQPp1viJDA/go2eoiV2zP2lY67gm3uUnj6u2tdAr6OY+GoMYZamE3iNxiZAzsisfGtO45Y2zJzNehMDBAk1N/FudYy2YLkNzngXA4vxkDWDY+RKugvnP4rgCO7t2VgX83o5zcQrI8o0SX4I= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Z1Guap+C; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Z1Guap+C" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D825DC43399; Sun, 24 Mar 2024 22:49:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320574; bh=CsAMiHQAXIh3ppx29hoMWB2i85+/qOx9nZjiv2Urp3o=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Z1Guap+CPbFdRLR/sjHHW4ujwOlcKOGF4opCpipXnEu3pamG1Ydgi4NS+8MPCMhgp 7ncbZ4cFAoLTODGRjuAiIid25eBA78959zjuDiL6Z/+jqQ3hh6DGwUerhmhhkPoUvs SxCtZazBWdX1JUepKpctu6SQOSYZkyU/NlYcbifWGxXCYMzmg+2axKYrVqy5FF11YV G6TJf48vtgv3vWMDaK0QYESKnz6NvcYnCxyNQK/Oc0U4md6hY6sk17y/r23h5Pw8Ss twIL7F+OaXZ1vAtjx+FT9PM6M3Pq+JozIcpYef37ZIZJPGMJJZxAD4iK/57I1nTWGJ AyFZPg8vcZ2Rg== 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.7 135/713] wifi: b43: Disable QoS for bcm4331 Date: Sun, 24 Mar 2024 18:37:41 -0400 Message-ID: <20240324224720.1345309-136-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EC1231D5F8F; Sun, 24 Mar 2024 22:49: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=1711320576; cv=none; b=qfuaGONWgdJqnM4GPFSQU6CEhiEwAKJzq2HHEjGj3t+tyfRgpSbQlIznV8nsxYJSd17bSKO/82FMsokJWPKY+DKm7qbFVKShDB2hY1VHaxqfZI1CeLMvp4eQ0HxPwbPQ1XKI22elH79DAsLZ5uCrqVj3Y3fh8me59IubD6j0L8o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320576; 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=jAXPVqMF9SCh7fPqxIYKtc6XHS6Bpvk2Eastaba1Ex+WJ9RzLa8wlY1ab9xtr7T+H50CynVOoiBarD6zhNREGrkS0FYRgVR/lses9C4Mz34N+j8Nr8eulHSHffbiIPInFUHOs3uB0+D7Fai097tl34X7jjwImvbu/zcFysGHBOM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Mbarqa6P; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Mbarqa6P" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D5347C43601; Sun, 24 Mar 2024 22:49:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320575; bh=G+hduV/IVdxX36FY9MOF6jITJo3Fxej2/2NW473H1lw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Mbarqa6PXi1JBnqckkqHNGH8x9QG/NlM7VMZIY4x/+dOyuWWeYOrBhXIyT7dshDBI 13mdqxhwMOuGnPsOBBZej1HTbKv59ICi7WK0mdHMFBnnco4BQiGb6EWKNbj0SGRTbc fk7jYLg6YZj1rqVWADtNhlWuOsclLN44IaVX8YqBbdmH58wXqGnR0vNoXyI9ryL03t 4QzKkOt6wc3hnbHSfOjvCHWKS+cIfAq331BrgMwKEOWXAUNnxzuJN9cU4ov1PyzuLA 23cT8QHAoceVeLwngitOYEEFftrWLgiKXcX/15tpdg+aKxBnK/raFqXS/rAcaojlZx d/1yOtY5k24+w== 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.7 136/713] wifi: wilc1000: fix declarations ordering Date: Sun, 24 Mar 2024 18:37:42 -0400 Message-ID: <20240324224720.1345309-137-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8B3491D6945; Sun, 24 Mar 2024 22:49: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=1711320576; cv=none; b=miOJnGSjA/tGcD1EGP4s4qjueV2PEJOjR7w33zKQKaqmhn3WpAP03PzLRp/wGIK7oGysHmnAcEqwAJ2b0kX63OuhQabX3O3SU8UjtrjlevfFrw7P5/jxR/nx+dkabM4yOTM9g41RMGxqOzcHG6Lpqa1Q4fs/tfycUI3uIEJad40= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320576; c=relaxed/simple; bh=Y4q1qgBEaDqTjFh+WJkMM/hiX5fJdaY3qDxv1K6DD0M=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=JSR7lVfNlS/WYFIEW8H81Cus7F0M1SokLlOZOXVKfDbSj91qMFbDM+J+ry1nn13PHMftCtLPaNF+vK3yRxIwWEZw03vMUxXH1Ths3dUjarD8daAw0ZgPsO7fyd9JEQKEGtBfyo6j2D4GvOIuDvSn6WrdqMOZT2WR42oSLGna6JE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=YJ80W/y8; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="YJ80W/y8" Received: by smtp.kernel.org (Postfix) with ESMTPSA id BBEB5C43394; Sun, 24 Mar 2024 22:49:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320576; bh=Y4q1qgBEaDqTjFh+WJkMM/hiX5fJdaY3qDxv1K6DD0M=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=YJ80W/y8SCpWtm8ABryXomfiOv/PyfoMQoc7U5gL0UkI9XHDr9UpXEaCGBZJfCZmd oBJP1i3D8tIRY6v7t7IpDREBMe4y5bLJnXGfQeAdeRZveaFMwoKWhfDSCvULgjKRH3 RjRjkwkb3JKlMkFkjW9KCCTjfLNvZmjDBFJ2lD3mGtir0rk2rNR4tmsYf+VplIcLXO s4lsqgXXTFFJZNApnGFG2aYtpSZHw0xyxB502AaRDpiMtbk6DudaIIiWWLrBBHjmVL CtnutXwIlY1he/TO5eaJxiyBmDUgwTal/hmGL87QeZuzXtckJMP5mlHuJBipCHw8X+ PAob10IHEQtQQ== 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.7 137/713] wifi: wilc1000: fix RCU usage in connect path Date: Sun, 24 Mar 2024 18:37:43 -0400 Message-ID: <20240324224720.1345309-138-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-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: Bagas Sanjaya ----------------------------- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7FE6D1D6955; Sun, 24 Mar 2024 22:49: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=1711320578; cv=none; b=o7dKFlcAKP//BeHAE9UjcO/10EFjf+JUnCxvlVIJ0dIFKeQNNkjswn3RF0mDsK5HQgbk8Awm4QtAxIwQOt1pBdgUwSd3WmGW/8ZGodIfzLs5ysKB9JI1xmzVqHE7b1KZfXxvmD+DkTJTu41qDUjOxQQex4+pLiX7a4f4LqNW6ig= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320578; c=relaxed/simple; bh=HRsI8JAt342So7xUBYg8KsqVHOOsA3e9WgoFFAH9MKM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ImuuNJ5OFyWq3z5lQGY8q01jU2/yO7xkgJGJgKQwMHWdLn16qjVeCMbWZyucn9veokV0KVp3KjERhmsMlw+cbdMkupNviDSFq2VDL6+6uZOv0WvcORstmh6r5OLx+btLkdaIJq8Ixv0Dr4+aLIhnxmNO2Eg9+sCUvIEc+qkTTzs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=hhROVB0J; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="hhROVB0J" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A39E2C433C7; Sun, 24 Mar 2024 22:49:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320577; bh=HRsI8JAt342So7xUBYg8KsqVHOOsA3e9WgoFFAH9MKM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=hhROVB0J1QZqoEZvxQNuFQwfw3gyv49rXsXqhLwyNO/QAK7cmbk5zZhJHX2teaoJN vpzj0UFL8OK2Tp9jgbEkcsjgrQI3DQ21IcChlhG7esEe1W7LpVL+KLEBld1B7qcyhm fS24bRcPeAmC7ZmCasgz2FGlP1s8LFctgtbUc7eNJIk3AXsBpRrbroaFhA2S2wWU/y 9BAxEz4h+D6bclu17FfVjkvTchvJwpDTPj0sjc+QsdGaASkLGQeig7tLWfiZsFix0U 0R8za0M+Nq9nYhBcRtKxavZDvFoWGoxvOmAeP0Iy1mmz/MiQWs8g+zmYeUnYH9HnIf r91uIbXf5hDJA== 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.7 138/713] wifi: rtl8xxxu: add cancel_work_sync() for c2hcmd_work Date: Sun, 24 Mar 2024 18:37:44 -0400 Message-ID: <20240324224720.1345309-139-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 180907319e8cd..04df0f54aa667 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7D76A1D695F; Sun, 24 Mar 2024 22:49: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=1711320579; cv=none; b=Gvm+0IK04IqBxf6owV5vq+0e3Asd64RIPUaX4Fh/dUJWOpgDcGGUBzC6Eiaa6EmcTe6692y0PYAlqXEX3nazD/J78rA/cF6z74NCQlsq4WKb2DbKbhsey9nm4VVkO61p9XSkvkrrug03IyEf8Oot4OqmBhmczrBxHVThkGloMao= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320579; c=relaxed/simple; bh=WqsZA9zL0MuvkFRHQCU6S33CFbNlq2m/TCnMWYOtG9s=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=AdQRMtT3f/5L9T+10LG0ZO1MOr2li5z9YSL+AYOiJek+OmTIkcyGxcTqEuGZaGeZgtvA1PQINunDtYHJ4q1h5hNCc40wRiTTAQNDRnNvD2+/hleiVolFtrmewxWGMp6AfoT3ya71TZurDFmnBRKSIets8mkFa4y4dOu1qklbjvw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=GSgsZgkb; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="GSgsZgkb" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A458EC433F1; Sun, 24 Mar 2024 22:49:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320578; bh=WqsZA9zL0MuvkFRHQCU6S33CFbNlq2m/TCnMWYOtG9s=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=GSgsZgkb9IDCkl/R58Sd+5vVBZcZePTlIVYWpTaVAqbyISz8hNWo/kYF7yS4Op4tG cxHFb1cBhKmhzOAsQDwYgC/KQ2fMry0J6DjXEiOXI/n6MjmbZPf26FFDfGXhYI3Y8S nN18BbibGCRabKK8Rvv1e8xQBiDBJJSR4IR2s/VtBeW1Cx7qTUG5t+IKie0NP7R0Sa BMjURO6foPj24Xt426+XcmQKCY8G9YLjWbRMiNPH15j2VsaMLUnM10TTnst3SlQ1Gh YX61QEF7jsrclBqnpgX9sU3wgkfhqpDBhsHzagjuKcZKIA5Spx2xLJMAAa35ZOtsZ3 Sbawwn2mrJZBg== 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.7 139/713] wifi: wilc1000: do not realloc workqueue everytime an interface is added Date: Sun, 24 Mar 2024 18:37:45 -0400 Message-ID: <20240324224720.1345309-140-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-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: Bagas Sanjaya --- 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 da52f91693b5b..fec18be90697c 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 91d71e0f7ef23..d6602ced44f50 100644 --- a/drivers/net/wireless/microchip/wilc1000/netdev.c +++ b/drivers/net/wireless/microchip/wilc1000/netdev.c @@ -989,13 +989,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); @@ -1008,12 +1001,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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7A49F1D696B; Sun, 24 Mar 2024 22:49: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=1711320580; cv=none; b=iWFHYoo8p+P6xV7nezmiV3hmkfB7Lv2xJeRR2b0iDfG8lhpC44YV96oe+o0Arl6liq8KCFl/RC3llrnqXn5bxbDSy6OwFroSh8Gq2rgOieWksA/ZO4huVTSNQfsFhWAS+CaXPn2HdjFQCu38gzTkBiY0uz6gRBMe+ZTOU49T8+U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320580; c=relaxed/simple; bh=CFbF8Gb1ow+NdPZA7IBEO0pn0ejXW8fD02MyU28E5tc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=pMxL7M27SoCluBOdDHpnT8JKVYPtvpXJgV1MUnSuCZlth6YU6b50rzEu0lJjW2PEUMidKAycY6I/gb9lDtBq5nnjQX8Ey4nkToMlpIdYCYusqZgs2ZVWMLY4XPbskKEaAM/oE8+AwYkNK20/HO2iBYunk7LxmCyH8kHXOtH2274= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=rZbyLry1; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="rZbyLry1" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A00A9C43390; Sun, 24 Mar 2024 22:49:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320579; bh=CFbF8Gb1ow+NdPZA7IBEO0pn0ejXW8fD02MyU28E5tc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=rZbyLry1nqJ1KmVqC8vxnh8T2SvJ7AnGDErwyJvYhy6uhh8LKFhfl4qtSNa0Igfwi 0ZOOD3kaA/Clu4bIgE5n2DeqxsYTlZ7c9tq8KKC+3kv6UYCu+jQiP+10QSX2AieZPx tjS5QSZc0zp9tNMIJPsA4MzsmKpZ3+TXoe+GCTHIYGYKUtpZoNgyQjS3FWd2sNpqZY 2K9l500fbaN3rjh/wK0eXy3wG4yEvGYwB24sEp2n3/EhYsn3yKfa7mXA9127VNOVCb Z6DueUfkiPTB5FJ4UUoBfLU8lg2iXXZS1pb1mja/nbA2dD+hSejEMXocapHUPOGl87 K/fx8zPo1kk8A== 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.7 140/713] wifi: wilc1000: fix multi-vif management when deleting a vif Date: Sun, 24 Mar 2024 18:37:46 -0400 Message-ID: <20240324224720.1345309-141-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-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: Bagas Sanjaya --- 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 fec18be90697c..e9a047a8c7dce 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7E6F61D6977; Sun, 24 Mar 2024 22:49: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=1711320581; cv=none; b=h9MaJaJLsm+0JZYhOxvNhOR7YcuFDWo5nEkHu/ssJZ4qXF0PCtEXr48QzKjnsAT3darCbpXqe3keF/hTnwBPmX765R79D25P24vooSjiQIT5rYFUnoBPy9kv3mEjeLS8afNWpl4ZbNugGoaOtjdneadElumEUiLhNg8yCSm9TMg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320581; c=relaxed/simple; bh=60vo75mBcZsaaWRfia1pLHWloNQ83WhNjty4gGNM0pg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=oHbQjoShkZM04O4f5k0wWHG94ey/6A946gWmvntbiNd1ENMuJ3wHV7jFnTdtv7kV/2dIHgbznXtELn3ELdihgygzjud9vH7tvnD3rkh1EstWx3iTqzoGQ/24nKjUI+0NuNHYYsmwjcJFxBygUVpsH0ku+K5Qob//nKQMfkQZvCo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=tv0lCSew; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="tv0lCSew" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9D0D4C43394; Sun, 24 Mar 2024 22:49:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320580; bh=60vo75mBcZsaaWRfia1pLHWloNQ83WhNjty4gGNM0pg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=tv0lCSewDMEEwtfPiNMYNKCA5SJOxJayngE/4tsZMb5mW7nPzTVnehNtJMNrZ34Up Jm1VGNjp7PYyXkwya+TLHgeah8BRMwQO+sKWGshNk/rFWIGuznurwG8yzr6JHIRUNW A6rTUXb+V+RNajruwS4K+sGqKUpXB2ZL5++XzQfIlxM1YZsPMcIIXgmgT6P/metmfb ncYo/gqeS4aTzm+eMINLgzLtvV0NZ7R5hcG2d62uUCzu9DQQLfqCPEUmqVVEfWwufh bhgjywZDEpdpeUkWqqFCTWsAnMGmQ/W09b1wjtZv2akpK8+t4Y8ZHxIBZJ50MoZDfp 1VtHpJkAPzm7Q== 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.7 141/713] wifi: mwifiex: debugfs: Drop unnecessary error check for debugfs_create_dir() Date: Sun, 24 Mar 2024 18:37:47 -0400 Message-ID: <20240324224720.1345309-142-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5C1681D697E; Sun, 24 Mar 2024 22:49: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=1711320582; cv=none; b=UcFyULC1oB4p7RcyVfSAuro/yYDUiwxag2BR9l3lW1vntUf4nUXVKXgHoENcFxhK3J2h1lf5evnnq1yx3/+X6Wv43D672JEn3GX0BXYwgMmTmsdoswyyWN9diu3YVcecP2Knzxewq+6koE9mqUQYyUgaUeHcsnzPUtE44ROADEk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320582; c=relaxed/simple; bh=YEPz7/LV8rFX1YoEpidCsvFq2drnraVPp+Gh9O1b24A=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=CqRnvHXI7qy+4N1lMXu4IBF3EVBX402moRbBQ6W+2DtViq2eNcO/YL2MkOS4TKyizTLFvyIomSkf5rjX0AkuKf39tsHB+yEnSdZkAzFt4ZJZL0gmFJWUfsBJivEsgjwjqCBp/0EdoQnfknQus6PQwHsi1MFbYiv9RKLRXipNGco= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=mKSJxQ/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="mKSJxQ/Z" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9E2C7C43390; Sun, 24 Mar 2024 22:49:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320581; bh=YEPz7/LV8rFX1YoEpidCsvFq2drnraVPp+Gh9O1b24A=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=mKSJxQ/Z9c77KAVY+R+6SlawyA/iquiKlSo6TkqlRHZOhLZmvkvINCvSJLjV3Mmue U2tmr8X37Hts8ABKWS9h8sNXBgGfJxHaGG2ioOw3TuY8zZPPXHUn10IIreE7jH9NVL DTJ7nXnB+e7oaYqlMCaYfCkKvwywnJRhRdzKfk4nlTs77tLUgAzjKCuSDRrRmsqYnn 7E624wSg9BHJQp4MfkkBzWDegQ5jYy7OMjy7AQ3WubIUlQXkrrhf3p6u41xetPX44q mZFZ9/1nttoeQDlRh7I/c6f1MpMz0iNEDkRsIt0XlocO/1LeDO+ljcGacW9fQLBonL AkwQqb4QdK4HQ== 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.7 142/713] ARM: dts: renesas: r8a73a4: Fix external clocks and clock rate Date: Sun, 24 Mar 2024 18:37:48 -0400 Message-ID: <20240324224720.1345309-143-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-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: Bagas Sanjaya --- 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 ed75c01dbee10..3d02f065f71c2 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3FC941D1D65; Sun, 24 Mar 2024 22:49: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=1711320583; cv=none; b=cX3Rscp7oLceiuQQUTQqjPLpCsoTaq7KOe+7bXugNnkKGX7ptGYm/EXuQ0j9mFDaC7HfTyQ9QoTuoy5jEobFiOtSCY66obMJRYDBjjTOzAO+vgZe0JktO6d4bZtCApm2ImLKJ1U2ysujXrlus0RFvSWPvH3UhcYG5SKHQGT3/js= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320583; c=relaxed/simple; bh=l6C4Gt3BuSiTVpDszGUvAntoV6yA9mHB2XxgMdcptEw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=cVQ1EWCxpsuqtECj6C1NC1Z17s1usPKf/R5YokPg4eTNcFFs1MRDE1U2dvO70/j+vQGHo8dVqOJr3H7WLzteH927iBGy9BYqR45bAFsQRDlFD/iEuX4gA/ya2ixlNKFwNjvkpuUvJEIIHpQOVcxv7RKD6V8CovSWkf0ugH7vk7I= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=IBb2dEUx; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="IBb2dEUx" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 83211C43399; Sun, 24 Mar 2024 22:49:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320582; bh=l6C4Gt3BuSiTVpDszGUvAntoV6yA9mHB2XxgMdcptEw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=IBb2dEUxRumjl4XWVDNyeDgzFbvOpDkK/7HDWcekMJl4bCtdn2qGXaraP4Vy2B11d uJZk4nU8pqTWgW9ATMLLWZ6xZAL4ZOwcuXpsnuJ4RcVUljKd90nrSKOoDVvNLQynfr 3Q0PFK4unGzZR6s5Yg8oGr6o0s1QuxidS1IdHKm2T5MtY8kvn8dZuXLG+l33ynefWU oK+6h6FFwBo3NDvrMAWPDxRb3R8pbk6CrhgzFpONZ8LXeRDCub6iLcd5zUBDk59V6p Q0QSlIKqvblCyd3hovjcHnyTT+LOJ3gjS/TX+K2wDVEZD0xu0SVc6wKk9nlj0sk1sU +8DyfnT3MBxOA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Konrad Dybcio , Bjorn Andersson , Sasha Levin Subject: [PATCH 6.7 143/713] arm64: dts: qcom: sc8180x: Hook up VDD_CX as GCC parent domain Date: Sun, 24 Mar 2024 18:37:49 -0400 Message-ID: <20240324224720.1345309-144-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 b389d49d3ec8c..b1d9853419415 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 27098142E64; Sun, 24 Mar 2024 22:49: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=1711320584; cv=none; b=tVbI9aMpTbr2oeS/aKUnv4Afca49IlX5xAAGC4nedlY9vaTif7frVESJn7jA/XSDwJ/vMnvPxrYiWGHnyKHOX7H9Xto6OqBsZEnvnmP/hlApIZ75Ia9tzOC5AeqDzHA3s1rRZT0uFZ+0F43+6/RS2UavScUh5DxbVuVfd150K5w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320584; c=relaxed/simple; bh=YpNz7k0bZJf6FZIogUl5rE4t51Gl1H2vSO5ig7uR1Jo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=RnnxTUoS33yaJ+PLd6Qx9+UO+oypk2cQPtkEYsNQK961FF/9sl9lvPVej0MstbAkkq2GhFfSzof5etTQygDlN05mcqmnLkMuThbsuSD5OLG/dK6x1RwL4Ma6IzHrU5vDbBZRluZl/3hnxC1PKD+w3ViDHoniy927J0f4US+Qeqg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=K6B+xpqj; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="K6B+xpqj" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 673D1C433F1; Sun, 24 Mar 2024 22:49:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320583; bh=YpNz7k0bZJf6FZIogUl5rE4t51Gl1H2vSO5ig7uR1Jo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=K6B+xpqj4siV5pLv2+z02Sm6XGFc9mpjL49xmuh1qnNne8ArFjQMGxk75V6BD9rgS JINIORXYLiLtPHXI/ju/TVKDNQ4TIQk5HOvmfv1jaaLV6lUgv7P3YIBReTmZuP6FBB LNGMo6JegUU+nPhxrJinipiOv2F1fLsna1RmJ9S/cdGxmXQPLIoyDlrYDESOVHPF33 88gtAUiQWUuW23pWMHGdcLG8LKZD5Bo+KykMsl5b5CBIkv4Mtr0vWnAbAaqDhT2wa3 EAoAurq959BTU9VYyNYldZvq1+gbkB2wxFxVLtsojSGlta0likAEhezPf02pXUD8jq nn4W4RnDl6tlg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Konrad Dybcio , Bjorn Andersson , Sasha Levin Subject: [PATCH 6.7 144/713] arm64: dts: qcom: sc8180x: Fix up big CPU idle state entry latency Date: Sun, 24 Mar 2024 18:37:50 -0400 Message-ID: <20240324224720.1345309-145-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 b1d9853419415..f2eedbdc025c3 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0EDD9142E73; Sun, 24 Mar 2024 22:49: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=1711320585; cv=none; b=rty3C+f8OuouL7qxWkHsucFoS9P9K31Ba8BClh9S6zeUa8ZGAVome765IwVea0pt/QJ7lDM0N94oEZKpMLYWQGDN/jgiCv/36r5d1k7Stq2Xjv+KpS9dt6m/CZUNcZ13hcDzbmE2HknFSFiIXaCupBvWot+3+HuRHUJ8nzO0g9U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320585; c=relaxed/simple; bh=ZwXuFkqNZmx5JQ14seezatPnEP+6OXGKABZlAYssQow=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=bRgEQILDuEM4WsUi9A2t+/b0v9cj68jaovvR8lWKx+OsFR5p+VmynaaVTh7Xb9T8Qf/bW2UcowHKuHH2cuA0bN4KlzRBoEDPnaWHzXdin9d5OFMD8hu5HRF2BWc1EuRuEsbT6CypnwdsgFn0UqLnAN9rnMRpKkUq2GnfSvw651g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=DRcDi4It; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="DRcDi4It" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4E318C43394; Sun, 24 Mar 2024 22:49:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320583; bh=ZwXuFkqNZmx5JQ14seezatPnEP+6OXGKABZlAYssQow=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=DRcDi4ItdrJ5q2SCKNDFnfIt+PqhztHol0vSAmCM7I5NsESFP9hNeBmWbb7OeIve5 99p7q9cbHxPvn/JzDV0qJZ/OWnsY1GIfTZNiWY6sQR4wzbVZGn5KSy3V9hKENumpAA +iOC/+IPH9bFwyA3yiYMFhCwh+/xXx4tR1Js0/59Us4oXRnjECEefRwzEjd5hNt5oc An6t2xy8hqUF8aNn7bFGbiL5kld6KN6FbFZQB6lnzhncY5jl7WX0k3+N36C/Y4C3am nMXnWPIP1ko8/nWFY1V5VpxeSoLQUN61Omm6cFRdHGu3EmdTlB2oEsr7rKLkWPk7WZ YV7TJpK4uLYkg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Konrad Dybcio , Bjorn Andersson , Sasha Levin Subject: [PATCH 6.7 145/713] arm64: dts: qcom: sc8180x: Add missing CPU off state Date: Sun, 24 Mar 2024 18:37:51 -0400 Message-ID: <20240324224720.1345309-146-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 f2eedbdc025c3..a7acaa8ca6055 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E4FB782C7E; Sun, 24 Mar 2024 22:49: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=1711320586; cv=none; b=KhraUa2dV22tvAwOmJU/7QQccUziH9csANMUlyZ2kaBsxdNiu01CH6OGjGZToKLQLfbI6uK3avLdlEEkOgCm9kKbnssO2jjfP8gFmtG5U9vx1gvaCbCfos0+9TK4Klh1vFxoHSbeUOIiGjVCizYypBh8rtdlqnr+Sa7F2IFBgbg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320586; c=relaxed/simple; bh=PcFvhoYZE+ee2vGKAy5yCnMiJVxLRzXZE4mdK5yBUrA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qLpSrfZcHDlQxjwJ8Gh0Pz3NWA2lLLocGd1wQDsbH6JlHdYC7BL5iImAKXnsDRj4Jy6FgUgF/9+50c+15gO61HqNgoiaSLBUYv14OYF5yDF3odhsO1Cg4VKvsxCAExRAlOq5nxGoTLC6S0D+kAEyOCm7/yjtcb7r4hJZE+buaao= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=QqcRYOs0; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="QqcRYOs0" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 33420C43399; Sun, 24 Mar 2024 22:49:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320584; bh=PcFvhoYZE+ee2vGKAy5yCnMiJVxLRzXZE4mdK5yBUrA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=QqcRYOs0eZNU93e1pvfgwRdryz8KMbTpfL+JuiH/Z4a8h3DXQ6Tu6k15KgTRNV20n 54cdfT/27qhT6uUS89LJfrYiv3JkZwjSmR5P8ICf6Fc/+aAKoRjQ1ZRUMiPmvuOjw1 /bF0bAWCSFQA0QAnAkTMB3Yroo6qP9x/Ry/tOEYYL6RriDVNUo/k9nq4b9mO+Hyvg7 KHkrM6RAZgp6kVdUcqOkoX5dsOfBlPdFjwt0mVeOhSVJHjYUXaCQDcrPzJ/1LmEiqs wS22cVdfmuCVtEp0/Ft88IxynU2bPaq986do/YZPwcR/0OfDN0ddy6tqXmGWXIKIZB tREUtyIOoe95g== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Konrad Dybcio , Bjorn Andersson , Sasha Levin Subject: [PATCH 6.7 146/713] arm64: dts: qcom: sc8180x: Fix eDP PHY power-domains Date: Sun, 24 Mar 2024 18:37:52 -0400 Message-ID: <20240324224720.1345309-147-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 a7acaa8ca6055..df40157f2ec63 100644 --- a/arch/arm64/boot/dts/qcom/sc8180x.dtsi +++ b/arch/arm64/boot/dts/qcom/sc8180x.dtsi @@ -3186,7 +3186,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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C8E6082D7A; Sun, 24 Mar 2024 22:49: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=1711320586; cv=none; b=mH5l6pofw00HZaUNHDN+i21XW0adNdtK44vZ/qca0aKy0zJMN1YPUWJEu2YJYpNrN6Gss1ppmRfusRmfstHWVzW8iuFRd55nnsr5p0OhJaWFL3BwLRMdiVzZyBmIS3wubDnddwI/ecasRuB9XiQzm0s5hhiPmUdktTFyPy10WpQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320586; c=relaxed/simple; bh=ZO59JFqtgl/T+PX6b6DMW9EVL6IiYtwpAYSt1odHLGU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=RQdXoCv/Fd7T4KwinKeJ6ikRkJxCsV3s+c2O+woWOAX9OQrEaQky2kEFm/3mVhsxp9fx3NDANCKSaj7s72k/WPK4ECi/iL22zsCS7We13L9vyjhIowRduSdaGBmws/OzxjfWHWVxSrZQliBLK9E+ZaxfqsXE0tAJBxdhyF3TPI0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=I0wTv+zc; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="I0wTv+zc" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1807EC433F1; Sun, 24 Mar 2024 22:49:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320585; bh=ZO59JFqtgl/T+PX6b6DMW9EVL6IiYtwpAYSt1odHLGU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=I0wTv+zcsMiwjQelcZHB8qydNR0eorLc/LPXX1EwS0WN5T5ybWZ26IDxJ/vRfsvxP 9/NpIeOrwwOBW9R1BoiJT6RmguU8oI77VhD2CX055Hc9MRK2qOb4St5gxuGj6OlqCg CXOP2FgBKNnOjlzX/oXjKFB0AIyNJ8KUskFWgi/pFJ4W971scFaYfUaSzouVDkgldJ O23iSsVL3QhPpg/0t2BwRPnvSNYhJ/RjjPW9lLi8v1j7xIAbuT4JDZJ9HN5bUfB6G1 6gh17qsdLuEOwh4wV5pe1Hf2h96SUQCHjzn4yvQ6fIsJR29Ufz1RnVZYmwlnhmjgtF CPWFn0eN561Qw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Konrad Dybcio , Bjorn Andersson , Sasha Levin Subject: [PATCH 6.7 147/713] arm64: dts: qcom: sc8180x: Don't hold MDP core clock at FMAX Date: Sun, 24 Mar 2024 18:37:53 -0400 Message-ID: <20240324224720.1345309-148-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 df40157f2ec63..687efe3404ce5 100644 --- a/arch/arm64/boot/dts/qcom/sc8180x.dtsi +++ b/arch/arm64/boot/dts/qcom/sc8180x.dtsi @@ -2723,10 +2723,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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AEC79142E78; Sun, 24 Mar 2024 22:49: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=1711320587; cv=none; b=LVLEvQ9ep/AQtOpgNY214Rfx67E/kHEUgruSbBwLsAfo2SPqnNb5AHEU3QvXDkIhmpHVQEq+mMHyPyhwmb+es9z5vUbFeFfIXY101GUqpI6Plo1M8xB4COjktaSnhqJ2wLc8u0wC3Vm/+aB45LdXw82Pz0St9Djkk9sn0c+TjDs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320587; c=relaxed/simple; bh=Lf3DJ9DScd7km095/jj3YNB0FFaQ8n8sAu8BommosWo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=QFygjIn0JJSROKd26a02CwvPKHdLWoo0SbV19pQv9lDeHqJFCGB0O34WuHpDHFVFftVevwA0mihdqajHHEdlii7cClmE08yX1UjJsuW2ZQqKYt1FQML/1beziTnZzNMoAQcRCQF47ZnfAnHGB2NsAImyubujMI4T9nDSMBJnbrY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Vw1k/PzF; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Vw1k/PzF" Received: by smtp.kernel.org (Postfix) with ESMTPSA id EF1C8C433C7; Sun, 24 Mar 2024 22:49:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320586; bh=Lf3DJ9DScd7km095/jj3YNB0FFaQ8n8sAu8BommosWo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Vw1k/PzFzPvxyyMw6XGn1WDsDhUrdIYkFemK3vp88rxUvPloqHlCiCji/aJcMiB9O Ek6z3UUjwLXT+MGdcSOxh5DJKBwD0/mwCwGiBhw2MBEM1W8kjp66blf7h5VlVeYPRA jc4Bmp/nAEGNhVkeJvB+5o/V0/0CLxqUSMvfDdaJAwGG/A49jNZpicQ+fGPgj2eCtY wpmbwKXGLLJ12jRrXnlv1U2WSdoQXaeGeHNhn9MYk3WknQGOHzMCWSIDBXy3MyR4YG ywGyOMRIYy/9ylHCDLykG82FAOZpVU6EM23tmcR89ShsuVztxWJTYodFMFyJMY9MjR Oje9S/V6ynN8w== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Konrad Dybcio , Bjorn Andersson , Sasha Levin Subject: [PATCH 6.7 148/713] arm64: dts: qcom: sc8180x: Require LOW_SVS vote for MMCX if DISPCC is on Date: Sun, 24 Mar 2024 18:37:54 -0400 Message-ID: <20240324224720.1345309-149-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 687efe3404ce5..881b4e0d5b8b4 100644 --- a/arch/arm64/boot/dts/qcom/sc8180x.dtsi +++ b/arch/arm64/boot/dts/qcom/sc8180x.dtsi @@ -3210,6 +3210,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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 930C2142E69; Sun, 24 Mar 2024 22:49: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=1711320587; cv=none; b=n5wAocOWGSeL7/TF6Kva9H9tiZompvcf7rE2QlR5Uobgbo6RUhoMvP9bcUb4Rz3RvHKChgegqlXr+uxZGGckQkQKsneucE/j3jUN3OEdVDLR8VEzq7BTt9lTnWjyMxaslNzVzsu/jtNBBo4uJjeCIT29GWA9V5RClLEdR31zqHE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320587; c=relaxed/simple; bh=v4tpY9TjgoZAruqQPzt21efiR6gEuxM8n2q2NqUeDqc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=P6UTzisFeHmLk5+2/tLKhy6qIhemanq31CjONsDsvQFMOEdoCKy6NgAG1pQQiOfXSDGop/sU91UYk5nBBCRnWaaoLJ5AjLRxMMqGZlFbnYt30GhDgmmi2KuALqo76pMJ/jmMYba3KT8zAaD7dsvVF5PjI4CFKCYo49NwRMk5pV4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ieYiv/KS; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ieYiv/KS" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D5A27C43394; Sun, 24 Mar 2024 22:49:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320587; bh=v4tpY9TjgoZAruqQPzt21efiR6gEuxM8n2q2NqUeDqc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ieYiv/KSeYHLwBlWEmvYMibdlEGoghjIlUSzXRBCgYO3UvsX0JmAOlE2CCDatutGw akbYsa0B2U4iBOLUSURnw+02wLWauTYau7D8l8EwMmG6CHjLcF8FDzn1UhCBIyis8U 5WW4BbjQ9mjPeT2/7Z4jY9opYn6RQ/vyqFnkz7N/WQ1wRhFK+lm5P5Of2uj5C9gjof hh7gX9vib11ZiRy4/s8Uysr/1+flsgy+7HDFFbA3R0lL0jJ7B84em8zAshgoEkYmds hFt8TssiDzxhbMtEhx4QsEAn+UdhFb1hmKE4ApabCjpZ7ySKFzSW2sG0f8BW3MOm0t TkuFwd0nvIzew== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Konrad Dybcio , Bjorn Andersson , Sasha Levin Subject: [PATCH 6.7 149/713] arm64: dts: qcom: sc8180x: Shrink aoss_qmp register space size Date: Sun, 24 Mar 2024 18:37:55 -0400 Message-ID: <20240324224720.1345309-150-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 881b4e0d5b8b4..6760f6a340975 100644 --- a/arch/arm64/boot/dts/qcom/sc8180x.dtsi +++ b/arch/arm64/boot/dts/qcom/sc8180x.dtsi @@ -3249,7 +3249,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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7BFF0142E84; Sun, 24 Mar 2024 22:49: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=1711320589; cv=none; b=Me205az5hhj0Qf5SflTSAvB7VY6bye2DbiJCG/IVVY3qN3lurk9NAqA6ZUc1GD7VAYReHHp6GX5vlxm2bzbleGg4HKNpKXoNlckEg9B9cd0RJZNy9ixmlre937JlX5LEo1kz6r1gEBOQ+LgnsfpaDguBIIOOhHCzsbKR9WPiY5k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320589; c=relaxed/simple; bh=RiNJz9zlSFXEx8zYJSB1a4ND7aEOOQrZQdR/XEnpxN4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=fC+xoj8kETGDkKHfJQ475tI+nuD78pgUPIijxyeWmw1E6kia3Ry5Yox2ShVe4aZ+DFAmpu+95DqHNJeB7L5/pbDR0yQvcGdC2jT0XxurvgaOdzlHEW8pmXByit2591QpWPcTXvPwuiqvVk/6k1ugXQC27iOlJKFBr7Y6G7sZfzA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=RpzL/7ll; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="RpzL/7ll" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B8D91C43390; Sun, 24 Mar 2024 22:49:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320588; bh=RiNJz9zlSFXEx8zYJSB1a4ND7aEOOQrZQdR/XEnpxN4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=RpzL/7ll9r47e3rn/dsfQNZ44CHhzs4d4+sFqlIY2B9xHMGcrKoZKEozqtvW5+2jk ExgHZAJ27+VfMtyC2EACFbgO8NXatyVmJy5lW26ec6v6wHbHfO8mBgIUqSViIhHv8d z3xUNzJPjUkB3XXUAwTYSEfLNTP+rbTdrBKpejmwlR3Bw+2uzXebH0wW0RnT5KJXwy 2tF4iGK2DQjKVZLZrs4JfbWyu/2JUOkW23pNxOLB1pd6zyukk3geq/R7AjchVxy4cy g8uD29MlY1N877XQI8kJXuzXjIsoFCNBy3IYJTvG8w6kJHoMoHLT7xkkK7nRApDQKO dopqXE0LE7Nmw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Anastasia Belova , Viresh Kumar , Sasha Levin Subject: [PATCH 6.7 150/713] cpufreq: brcmstb-avs-cpufreq: add check for cpufreq_cpu_get's return value Date: Sun, 24 Mar 2024 18:37:56 -0400 Message-ID: <20240324224720.1345309-151-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8F31E142E87; Sun, 24 Mar 2024 22:49: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=1711320589; cv=none; b=amGfwpqR3YyyQYIz/NI3+ZbSmkLSx63YN9tb5+PCQnnlxUsZOjouKzgFqTPuqIki5KBZUAIy9/hNWPwnt4tvirYoFDLbHsJMHbPZaOC3Mxy3cTF2xSI0+cMIicNkFMwyDyUqD5SLck8T0oA/yvgNdZP2IQwOUlNxQebglIpvp9Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320589; c=relaxed/simple; bh=yo2Z2RP8nH+NEKT0SUBmtftPM/25colUC9zO2Yovi1w=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=GixN6oq42Wxva0wxCVbc8OVKJbMJAoziv+BMgpHhZ10zfN5kVCfPy4Mm+AgXDm5we6g0npnvKox7X+g8wgiyBnRJ4AGryqhOwn6B12dqFWM4TIUREVuA9eujC8ofesqDskSk63qIjGT+uXgzLj1aEBbKNC4ZQo4w89Amxz3bd4Q= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=PeholQze; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="PeholQze" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A0615C433F1; Sun, 24 Mar 2024 22:49:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320589; bh=yo2Z2RP8nH+NEKT0SUBmtftPM/25colUC9zO2Yovi1w=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=PeholQzeA+RAG7yyB+zDJCH9NOPBGYXFFE4stTux1rKPVaw5uN1yJUuB0iNmRMxcD 9GKqyeZGW96h8PP2kIs2+CSbJPRKbgg8GfCdxf5HtfqTlwn/0XVWtpCJlELg6cRulG nqIVdjpI4F8dBe6pItymDyP2kjJ46QdgAEgfDCSNZeXhAG94x1LGE1g091AAwzzSyc utSZC5tSAj9R4w65nuJZl4unw/Vv0z7bIEvbbUMFgGiK5EiybM28jUVJwv3QXXAN28 PHFcY6q/jP2ZkO2Izx5pF5nkvGJKOP5RK9IQz+CAPJ8TktYdApdG3zyjUMvwbhBEtt DwHeiKdOh62Og== 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.7 151/713] cpufreq: mediatek-hw: Wait for CPU supplies before probing Date: Sun, 24 Mar 2024 18:37:57 -0400 Message-ID: <20240324224720.1345309-152-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B8C69142E8D; Sun, 24 Mar 2024 22:49: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=1711320590; cv=none; b=TGX6+WIJ1H3wC94NJQVvoUA92l1x99aWgpYycVql+mwdp5R8ERjKksG3XcrCql6/Su/uYTxiJRF/FaSQin3AzHkBeK/tMZ9xIAKgbaiL+8cHvN+wk7dsFJRoam/XrjhoF21dJzPg9SCjBScrm6+HlqavurCNKt5nf7osi6dJVJs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320590; c=relaxed/simple; bh=D57pdJksZDNWerhEQsBg1nHrR5mUgawKpu8fiJ1v6ro=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=NQ61A+tv+HnewzTHGEyPDi7dVk3prd0n7kZnwnXcCK/WhH6cWP+eZs2U+7gkk1gejUrDyET/5+tNpoTTKN+r5U/JrkRP9nhlfaeDEyNoSNUQZ+BmbNBv5tLyG0zj8LZykwTt07gMUrajuZM97hyAXIkcK0/wF6nSUNZgLh9BXEI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Y5nq9g8a; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Y5nq9g8a" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B3591C433C7; Sun, 24 Mar 2024 22:49:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320590; bh=D57pdJksZDNWerhEQsBg1nHrR5mUgawKpu8fiJ1v6ro=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Y5nq9g8aKoh+DQ8pONjVVSvFoLedVSe9JBeyn37l4PciT+zjgN6CEWhSfYjthGj7k hlhVjKGLRwUXB61hV8m6+eOTvlpN72ki3LIzIr9mEswGDPnoFl6lKlGV60W+9wP7gt ZR8a+d0HTt1AnAR34OEhwHP4hRiyzFVdL38z/JNIxW4VigrspRJwjIC/Q5NFUITzrd ADtFxE5lz1O+X2019MXWEtK3W6P1Y9DYap2kulzbrCTcjnOHQo+CtVEJ94jmukEr8S gIpZSA6GaBkI8vZ/oEyoK3xlSKDGEBTZDK4cXp1cAUngRGEBDRKCob5VFbG7TRe2F1 JjT/evq9QEo3A== 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.7 152/713] sock_diag: annotate data-races around sock_diag_handlers[family] Date: Sun, 24 Mar 2024 18:37:58 -0400 Message-ID: <20240324224720.1345309-153-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 22659142E8B; Sun, 24 Mar 2024 22:49: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=1711320593; cv=none; b=NiCeGrDi5rmxpfpnXWbToZjzoDCWNuaObfggEkpzzsti8QgEHDNd9ctqu14qYc5cgF0e9WPGhEdUaF1tS/posf6hKjPWp0X7ChT1lkXx6xMs4Xa7MeQoKnURhL0MAb3zpfLglsag1G9sOVdnnMOePat/sU7vhkfgliu9AB8Ge20= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320593; c=relaxed/simple; bh=0+48isTzNvrmKnyqjubuz+hXbpcC9TAg3X50SmYHahw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=QayZ1/zyAPfXMWuw2Trnbp8E5HUYfLQGyNH/zTLd9kc9Ihe6CjoJKR5Q9WyoiYJWppJfidV0EMATx1K+FQeMxQIFhGXSlFJ0Y43grtjSJoXheHynCGJrIQdmMgax/lJodJHrSupoetmw9FXtFRgYaj7V49SPCcr/5IDYLoh2RYs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=BljaAypH; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="BljaAypH" Received: by smtp.kernel.org (Postfix) with ESMTPSA id DDB6EC433F1; Sun, 24 Mar 2024 22:49:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320591; bh=0+48isTzNvrmKnyqjubuz+hXbpcC9TAg3X50SmYHahw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=BljaAypH48eKhFHrIntztfUIYbuX6F0MkO4omcAwqUe8cErRTG/p/EHD13IUzwniO 8nVHFjuVYqdS8NII+hcG+FPI5a8whMyDyoEgTQLPbOUV9cPcFtD6TDBA8JAzdaziJL GEdmiOmoUIuJw/U5A8U589xQGV0F7banO01K6BIkc+5gC6SZx0ypOmfYi6W9gDe2yk kYj1bBrrpt55sEDzS7/X1nhhZfj0/LaxLCwULS+0/AOqZvDsQuoutVBeyTJnp7h1Ab 4FyigRLXxU37OSYqgk28J2vh+aIF6Cvo5ZRqLL+deJqdUKabzfZvOnxjkbM8RY5OPX GpzV+J61uHymQ== 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.7 153/713] inet_diag: annotate data-races around inet_diag_table[] Date: Sun, 24 Mar 2024 18:37:59 -0400 Message-ID: <20240324224720.1345309-154-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 7d0e7aaa71e0a..5f7fdbd01cf9b 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0075D142E9D; Sun, 24 Mar 2024 22:49: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=1711320594; cv=none; b=t33ASXxezsxAhHC6zpNvAaoPxZk+Q+SskdQPiqJjlqxnGQVlWTOeFgSDtv1O4N3HYcOm0erOifpkC6uISFOOIjGM6pNNurtlC5wzQkn8033ynuIbBMGshnrWJoQdQt03mNzB0O79zSHGUKSnZXkOcK9RHIGhscIXDi9VOpw1Psg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320594; c=relaxed/simple; bh=L+q+T23+1lW4C5N0dC7461f4F21LtGdi1jiX4zsCkTQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=IVsCndQ/b8GjjkIYe6WT9TwFCdRacY0viK6JHZgavKKyB6PUox4TZJVpMx9JvvHjke/HTO1YtCNsIMDI7WhubVN94EpYQee0JIVajQDFcWvnnt6poCx23RodeKMIURr/DzwSaAoOFxxzB+mA2ICv+nFPsYKPTZj8xLjQDMhTfII= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=AKH+FQtE; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="AKH+FQtE" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 16006C433C7; Sun, 24 Mar 2024 22:49:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320592; bh=L+q+T23+1lW4C5N0dC7461f4F21LtGdi1jiX4zsCkTQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=AKH+FQtEXWvmk5Kq27yjiq0XAvxMHi+1VTb3gveiV/eyEhFhWoxqR5V5zk/6ialau +XuZM4/fH4B3pCN4rjQizx+iXuUQSC21g0tJlcx+TEULpRkfcHNGL/MaKiVg5/KGn7 FISE4jtPPAdqsyMlhqteIaMvZg6eB0DXjwN6f8EG3FUwbQq9SSUIoLCST4FKvFHQTL 5iTkRTq7jeAg2ZCBKCzMsyr+51gB4ITpeWsb0gadHqst2H2AgepEHTxfwNR8+1qkkm EH6s3mgJwAxcOMoJmhvlz8wvwTZ2ThxGT6Thr4wqdEp5YHsQRXx0K+QIJ+aj7P7Iwd DIveLL4wG/qSw== 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.7 154/713] bpftool: Silence build warning about calloc() Date: Sun, 24 Mar 2024 18:38:00 -0400 Message-ID: <20240324224720.1345309-155-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-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: Bagas Sanjaya --- 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 7ec4f5671e7a9..865bfa869a5b2 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2F570182DF; Sun, 24 Mar 2024 22:49: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=1711320595; cv=none; b=Z0XgMTMBvuVrgTxb5QIAIYlu+gQlKmWAomASOeUjj9uz92gdLtaj/aBnYn1mOFZWqsDflXk8J8Cpa6ojYPqBQt6BqKTzoTrGelSLmZC/+SbGJYuM9OcFbmUEIWc6VaO49wjzX373EDt6jVEWU2V1j3pzH6BDHB3AM+g3CHIsFMg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320595; c=relaxed/simple; bh=S5lSRSEl+8Ri8IPAHVMzY1VhWNuSPB/Hjn9uxUE1cn0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=SlyCmn4ED1CqR3eK19F0NG2dq/c68OHwZEi1hEMpuGFrrdSYF7+lPAUGGXNbysTNvQ/9WnAn5IeCPev/UIiRxXX7vlROTl402DCPoDME3QTIi7eyukwN6h/ZgCzvBYtbUluUXOSeYCfeHChF7/NUZg0WiNKP1Goii81Zi4c//O4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=XC/aEY8l; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="XC/aEY8l" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 26B00C43394; Sun, 24 Mar 2024 22:49:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320594; bh=S5lSRSEl+8Ri8IPAHVMzY1VhWNuSPB/Hjn9uxUE1cn0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=XC/aEY8lSdrnpIP6cLq6i5HyxjezaskAUcdwH0QV2FJ8nu7sd1rkFLL3P9tafVVnn Vw4yDBiQJ7Bz51YuoMEWO8eHAioqqX3XmqRqlLzrVzhvmnMkAx40oDLKFDH+MoJS7h jzoYVMu/9rElf15lM5j7by4E2+G77SeiwZTt8Ilqy9jb5WpplbCR/8Uf9HjryolwKA BZ3UYIxO7AQf70iwsot/OXf8GBKFBy7dIo+JjfAhEXAvY8MPzkCtpEiQDeE9UwTwQd 8GPsFdmukaU0uwIUyIA55woGDJ/+I5u+7vTy1rBOvyOxfamS7INb5NJHgAwOKNCIVx EQYmmlVoFUTVQ== 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.7 155/713] selftests/bpf: Fix potential premature unload in bpf_testmod Date: Sun, 24 Mar 2024 18:38:01 -0400 Message-ID: <20240324224720.1345309-156-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 91907b321f913..e7c9e1c7fde04 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 @@ -544,6 +545,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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 570FF82D82; Sun, 24 Mar 2024 22:49: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=1711320595; cv=none; b=MJ9uwvQXqb622/JvR676ZPQ8gG/6flSFfjh5DaSjnBjdDLHb0O8j8aHBly5gCAzXMWyHoxiPDpNZoY/lzggPydtsgoWQ32FxoHxhe4FHNRz1QnMk4BoE2JIkU0aogqqPnzaTDBpFfCqWnHqRSwlz/PNpCijcRvTV88lZ/c08z+g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320595; c=relaxed/simple; bh=IGAPQ3cc2+PmQMYuwOXJr7pg+IhtAnoe76s99Qn4AZM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=iFBZFW0Ut5yG8tb0nwm3XRRqbg8//3kHhJzCfaBWLoTlW1/c5+Q40Q/HBKZNSrpa9K1dg+T+5CobTlIlxVN9UwTfpIf1BAsQnIDofIPIpcJvkAUenAUQRLuhJWsoHnVUvp1zWA5YvDfxJmioNBtOrwGHTJsSAVg75OEyqh9na/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=X7q/mr5m; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="X7q/mr5m" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5430AC43601; Sun, 24 Mar 2024 22:49:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320595; bh=IGAPQ3cc2+PmQMYuwOXJr7pg+IhtAnoe76s99Qn4AZM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=X7q/mr5mz+DquukSdEC4r4Yrdj9UUr0Z2/zTW+8wYj75QSJRjVh6JfPKt32r/nTPv na2qg/uENWGIjfmmNzL0743od9XeVFlf1Jo+PvWeOUEiX3x/fesYFmp9O93eNANIzW UzZ8wJ8RKpnsnBa4EUQeplQ3+xslg/Cwa52XKp/RTo8G1hpBe02RWmNcYXRQ6RtS9M SEgvZe636vhlFncHvmunIizaAfvgTmire9fqZ7kkomEn1hVWc562rLEGhFBWRFccou X7UIvxvX58xeAPVXrRteH3H7FdS+Ouu/9ba8aUBM7Iateqltt9Jwjj9QrZrSHUxz2R /4yZ4e2RwVHnw== 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.7 156/713] libbpf: Apply map_set_def_max_entries() for inner_maps on creation Date: Sun, 24 Mar 2024 18:38:02 -0400 Message-ID: <20240324224720.1345309-157-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 df1b550f7460a..ca83af916ccb0 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", @@ -5214,6 +5215,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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 811FD82D8C; Sun, 24 Mar 2024 22:49: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=1711320597; cv=none; b=sBReYwhFm2bQwwh5o38pDgMQy+6Y0SJCsX3yQKwz2a9FQJnxpZlwncOJ1k+W3lsVzhzV6anMDxillx7Qe+OJGeylaynY3srIxfYF9SrkdOqb8Z4CxFlkBM2LTkilunBtU/AyU1kNgrLyujXKcb4DpJNj4iF2Fd56SIpV42OySp4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320597; c=relaxed/simple; bh=WXJELdjmfhpY9E4BbpJkUyyeE92xfAoPZohF6gyjslc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=QVQ+CLVTUziHMH9etM9FJW127mQwBM1Dzw9PRoUHsyRJPcpxig+WFtKu2dqpMx4z/XS1x1EMKKJ+qzyLHJnKKkgVq8LrtlvL0c+dB+vYEwCLEE0Xz1PoWFfUWkIME4JK6zJqRzV+U0pS97JCbPol+lYGqH4MRuoZ7Xrrb6Qbik8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Pczxqz1K; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Pczxqz1K" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7CDF4C43394; Sun, 24 Mar 2024 22:49:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320596; bh=WXJELdjmfhpY9E4BbpJkUyyeE92xfAoPZohF6gyjslc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Pczxqz1Kf7i/2a1cFhn5kQhtK9X77ncWYYGfLrHxTkjteykakubpyTjybiSMla6aG PgqU8il4aVZUmlXX9OiFgEhOqOX3k5JOBKAhGmc3Y6rKFJU0FyLX9K3SYT9khPieTO 4UtKDbh6qdfom1Ovs9IZNUQvO5UYYd70oZOh8bkVVQcL/OT/bE3KivjS1jOWS6DQK3 btajftCJk6mIozaOgFfR7xhElSq2YyApMVnJgQcKFd7msQB81Sv05eSj5+VI6uEmUm w8tjEl39cyI+0LuCklWGulzw0lAIB84I+dt7r71ShZZkOSWDetdcInvdSl9h06EbvW LliO4ECQPKvCw== 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.7 157/713] selftest/bpf: Add map_in_maps with BPF_MAP_TYPE_PERF_EVENT_ARRAY values Date: Sun, 24 Mar 2024 18:38:03 -0400 Message-ID: <20240324224720.1345309-158-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- .../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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7D80182D8B; Sun, 24 Mar 2024 22:49: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=1711320597; cv=none; b=ACAx2E5wMTdWBRmU0/ikxIwp4xNy/Sg1CZjdwCIfhUH8Y3np/2lIHcsy4xVcu6YJA38yOuJZjvBltPXkQCC+H0VO0BeFoYBIMQ7ZV221I3Ximh6Q43QHIV1KKEkpNOLfiRbsHUS7BAbhRQ2hNz8RiRbEtePEVnLvtlQ8TSgsrjY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320597; c=relaxed/simple; bh=dXhu3Gxj9j/STkTusaqz4bh9YSL4l8LOfPOtBesofQE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=BFNrluHlEnaHvwF1TmF/B/IfgXWMRkf/xCzFNFp23NZgfjgj9PIXZ7cTZioXROCER5dQx6EHxyrzQJgvR/VforgDdNQuM31w8+zUxNSxtxdnt40wVoeyESRo/Rn+CuuaOna90iplDh00VgYhQwscxLp+/QEOXZcg/XjZ43KXkfk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=X7pa3we+; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="X7pa3we+" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A6E8FC433A6; Sun, 24 Mar 2024 22:49:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320597; bh=dXhu3Gxj9j/STkTusaqz4bh9YSL4l8LOfPOtBesofQE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=X7pa3we+AXGlM23N7t/7HOIxiVJjXiwFRn3llMPs3yB0GY2NaDv24A+onNe7m5QBf NPnTgTDoL3SrDXUEqq1ZBx1foich/0b4s8b377MjB8CYzUm3UtPJfeGcIraa8DrXlS 25YqX+wvudmJOJwXF2pym0PpW3JSJzr8D6cZgpK1fhmVSs65nxR4pMX5C3LLjJdxIM aAmv+yi5n4XSQQzC2lkHxp2AZsOm4eEnaS/+GOfqmKb2yroizfNOto1rXJXTcoV7jF rOWoJnuytCl9VUffgwgUf2fFXhXmbwPMynXFWu0JiBNQtgOw0KVVXNi36wduaMXrgf cYUg1N1CdkA5g== 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.7 158/713] wifi: ath12k: Fix issues in channel list update Date: Sun, 24 Mar 2024 18:38:04 -0400 Message-ID: <20240324224720.1345309-159-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 68c42ca44fcb5..d67494de44920 100644 --- a/drivers/net/wireless/ath/ath12k/core.h +++ b/drivers/net/wireless/ath/ath12k/core.h @@ -418,7 +418,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 b698e55a5b7bf..075ca1c34986b 100644 --- a/drivers/net/wireless/ath/ath12k/mac.c +++ b/drivers/net/wireless/ath/ath12k/mac.c @@ -7188,7 +7188,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 5c006256c82ad..fcb76f92a7dec 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6B66282D98; Sun, 24 Mar 2024 22:49: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=1711320599; cv=none; b=aXUEs4x5dxgTXb6eriXmoeH3Qu7QKrUd7d5pSaqObrJObXD+ORoVmHhQ230ncmFTD5HGfrDeKEpora+699v6OKUllb73ko20ecB5Fy/Kv2FhY4dkEwuAxHq6Vgs44NdOhmdOUb8c091uBk/axOshYkq0t0WeeHpitUHKrlLCMWQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320599; c=relaxed/simple; bh=qFpUQqMP2OvlrWkLC22tIXBrzZPa6exUEWIiFlsA8jY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=onhgAOPcgAYZirNMi8Y7EPFBYbIg065DeC2LMi+YSNjVNR78YNFaAVd85IKP1wcVZwvT8FGKS9fOCqLfc7ZIKGsjKcF2EgusVluW3MACHyBD+Bp+lL7pBTbBPEodmf4ITcReoVHkU/pSPh2QnwzXkSZUoIVdN1GWf6CYKrFXQ1s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=qtA4EXyT; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="qtA4EXyT" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A54ABC43394; Sun, 24 Mar 2024 22:49:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320598; bh=qFpUQqMP2OvlrWkLC22tIXBrzZPa6exUEWIiFlsA8jY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qtA4EXyTRFpYBiFxdUYgZdkAmQKtpUfTInGpAHSbs8mvnvdss6icLrb0dact7a094 QV0lZasU1BKA8JRJwLtsQZ/x/KIoWBoNSL1LLaJgYL2l7I8OkpRlQoG7j2kQmhatpF Po+GhUnBx1a63Nv7uZuwlYstufWQeRfawS3YdnjQFIy3QnOCSOjjxXrAZ/d+8tslMM ZLwVY/HVJODJHsxcesccKDQX4TLg3f7eFu/y2jnfGoX/yn+bG2RrDeBBugPsaqqOib nf7FQMl3bqqQLEg8FlvQPRSKE/c4xvrmvnaRRLzEZVskcWb21s1c9pN85mExh3QL8Q RVkq9v+xspQYA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Martin KaFai Lau , Andrii Nakryiko , Sasha Levin Subject: [PATCH 6.7 159/713] selftests/bpf: Fix the flaky tc_redirect_dtime test Date: Sun, 24 Mar 2024 18:38:05 -0400 Message-ID: <20240324224720.1345309-160-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 51C8D1D7900; Sun, 24 Mar 2024 22:49: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=1711320600; cv=none; b=VQR5Cy8nt1/qxoIIHjYbXxXVSgfF0/4NxjTpvjV+3opyCOtPg7sUfNx3il8wbioT7QvEKVDuqNb6P0c7LF5WEHHzkpY2HEdL/zzDipFFqSxaKf72Mr9y0VJt/d4X3oRpxmJw3brD/R6pZe/zt365AuiVwkQjt6XsRN9lT81OPpg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320600; c=relaxed/simple; bh=K757j1h2gj/8YT/wZT3TO9lwrI+Py+jNR2IhmZioBqg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mypN/sHa2xltggE4rysaMkJDmbc5P148IsWrJdSI2iybP7Roty5KwGBl0uNV01+JIn7UvOUl+CbyH+cOnvIqMKA8wiriC8ldEw+MquZQ+UNXYSPjSsM9wiu1srdONqtyWW3kOvdURuEw5KjmSxgjojAJRiAuKnwIFxY7XF3aNpQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=MZ5GhHTl; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="MZ5GhHTl" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8EB48C433F1; Sun, 24 Mar 2024 22:49:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320599; bh=K757j1h2gj/8YT/wZT3TO9lwrI+Py+jNR2IhmZioBqg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=MZ5GhHTlKNflZ6Uau2xiXLIjngMRH5FR52jLhnK8eB18XszB1KzTChAObXXuIZRSg PNnov9rVkcIYFw7etvShD0b4mXvTA5NyTNdtzf+vFLhSEKLmv1Z3PL8QsG6X+UEH1S TwqLz9xD/jDeyUmClWI6HCR6AZfV918K87WqNMb1GEGuiTt48IV1/LZIGWyRHck8Tj X84Z5NqSwadOVQ1aaoGeD+ipXkT7+KXoYgex0oiH2ZeIxo9fE2fPZKqrnKnZ/hZycu 1pgBi+rt0nmuDzm94Tdg2xO/7vF8D9W8DQ6L46PA6zr2xnFXIiWVJy6A+PVo/r/vYC 4JVrnS6zngwiA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Martin KaFai Lau , Andrii Nakryiko , Sasha Levin Subject: [PATCH 6.7 160/713] selftests/bpf: Wait for the netstamp_needed_key static key to be turned on Date: Sun, 24 Mar 2024 18:38:06 -0400 Message-ID: <20240324224720.1345309-161-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- .../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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 645061D7907; Sun, 24 Mar 2024 22:50: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=1711320601; cv=none; b=D/N8YmfDMXY6VmCL91nYuI84Vd8we1wGTbxE/jfZ6x68gO345fSd8k9OVBmSChk9QYN+gJtxC8jYddTr3Ph4VgFTQj9f18g3fZaJx6upGMvk+/jHxe4Kx0L6nR1IDkf7twvqJUkTA2nObrGZ/a51WbJAAAKpW2t4n6YNtH3xGQk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320601; c=relaxed/simple; bh=X7TKjqsL4zk+BSxoRctPiFstPwVin85Sm/10EgBHCfY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=r+fMurVoMby3mcGT9prq5nYp77rmR+vn0DI2EcHtThJq4v5HlD0lRxbq5YvCCOYiKGxYGSeWzd3fvZZ1P44PWpOoXxzX8/8PGEGTgzhrvktEkPye5HJ8XkpGUySXbkQ3I67/oHr4qhRQL1Ve5h8WOn1DspMbVhu/Esi0IVwH2Go= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=SWk8FhZk; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="SWk8FhZk" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 77358C433B2; Sun, 24 Mar 2024 22:49:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320600; bh=X7TKjqsL4zk+BSxoRctPiFstPwVin85Sm/10EgBHCfY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=SWk8FhZkzbTZZmMcEJ2fjrcuYconAvVyHZo5Y0dcFVnHEjPmJwaBdvDZxzkwX+RFo +aJ6Iy4QtmIJnTRMUNdTdYICnWI4S2wEpN/RJ+1/L3/n2UxShskv91NuhP7ZoraRvm 9RwYdvDdyt6Xt6oCr55LjAO0eUahGop8v9n+7incIplPZqpHym1AAUQoPrxaggvFzS oD84+jNsFI2RJftdORlGabQeEUgjKGj2hTjf5ygUyPWF3GfvqpAaGcfLinYSTbdD8m IBphZKE7uyHtmE4ou9+3qWlKhGxfjoS8YFaAX2QSwYuk6mb/SNd12txT/xzGFd9Cil N3Jqx/e25oNoA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Benjamin Berg , Ilan Peer , Miri Korenblit , Johannes Berg , Sasha Levin Subject: [PATCH 6.7 161/713] wifi: mac80211: use deflink and fix typo in link ID check Date: Sun, 24 Mar 2024 18:38:07 -0400 Message-ID: <20240324224720.1345309-162-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Berg [ Upstream commit e10322810ce0d0d4a5a319458c4e1e052c6fe9be ] This does not change anything effectively, but it is closer to what the code is trying to achieve here. i.e. select the link data if it is an MLD and fall back to using the deflink otherwise. Fixes: 0f99f0878350 ("wifi: mac80211: Print local link address during authe= ntication") Signed-off-by: Benjamin Berg Reviewed-by: Ilan Peer Signed-off-by: Miri Korenblit Link: https://msgid.link/20240111181514.4c4b1c40eb3c.I2771621dee328c6185365= 96b7e56232df42a79c8@changeid Signed-off-by: Johannes Berg Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- net/mac80211/mlme.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c index 241e615189244..6cfc07aaa1b6c 100644 --- a/net/mac80211/mlme.c +++ b/net/mac80211/mlme.c @@ -7502,10 +7502,10 @@ int ieee80211_mgd_auth(struct ieee80211_sub_if_data= *sdata, if (err) goto err_clear; =20 - if (req->link_id > 0) + if (req->link_id >=3D 0) link =3D sdata_dereference(sdata->link[req->link_id], sdata); else - link =3D sdata_dereference(sdata->link[0], sdata); + link =3D &sdata->deflink; =20 if (WARN_ON(!link)) { err =3D -ENOLINK; --=20 2.43.0 From nobody Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 668381D790B; Sun, 24 Mar 2024 22:50: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=1711320602; cv=none; b=Eq/GVnxfQys/DHvK1i2GrNkFhBlGY8ch756OMrLQrjKhCTMG54eXBJzjjlKWd/NFoUXMXiVrIkNGng25Fcjd5bOqfXFhCHNO5tOhdGsL4PEyXEfG+a42NK6KE3U8mPmlkJwC6JEpVXEzCTu0fakSpx8mOOfi346haIo/HA6xrVQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320602; c=relaxed/simple; bh=EPE3KJHALwKYBv9q4+tuusSD1a706QD3ySJFjaQeZ6U=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=EcVpTa0mljOh+VE3Sp3FzKCFWvayRqHH9mz/d7DemRRvqwCiLb4J5/rlybBYmfze/UKFCeeOwdCTVWgvNaUA4dNeQtYZ/VLzXooONZ2dr7ouzcQO0/cOk497/QwkQ08TiNPKdPvgFCdgRDu6zrYacxi71OmQ+qHZc+lezXOk7xE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=f/kuYKvE; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="f/kuYKvE" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8C442C43399; Sun, 24 Mar 2024 22:50:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320601; bh=EPE3KJHALwKYBv9q4+tuusSD1a706QD3ySJFjaQeZ6U=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=f/kuYKvEXkvmM2vjlkbEMt7CJh8wNVFQXwIluIRH8RLRVE3nEttulYHA/v2FjPTEM Mbv3bsXzCol1DW6RIqLvlNjPFL+BdqIlQbunF5lM7Ac/GWh5HXve8nQo47SoLPUcuq g3FBisK+MNcLMTnwVU3v1LIrL2sBnGXJRv6u1KyJrI3QXuruVilDlUPJwqJxzxITNH Z03u11QpIO8VrgO5k0TUky7+bWcPJDZgnwvDAlW4ejVgwP4vkt15nL967wQ6EsJol/ PnmIChrnkM5hZGimShCN4d66Vk1lGNB9jEQn9b3hZCI73EC37QS0l5lmy3XnA4C452 dLC/lzrSiH44Q== 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.7 162/713] wifi: iwlwifi: change link id in time event to s8 Date: Sun, 24 Mar 2024 18:38:08 -0400 Message-ID: <20240324224720.1345309-163-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 6c8ce23854b66db94d88e0957e531cb074806c16 ] Link ID in time event data is -1 when the time event is cleared. Change the type of the link ID in the time event data structure and in the affected function from unsigned to signed. Fixes: 135065837310 ("wifi: iwlwifi: support link_id in SESSION_PROTECTION = cmd") Signed-off-by: Miri Korenblit Reviewed-by: Gregory Greenman Link: https://msgid.link/20240123200528.50d4941f946c.Iea990b118c69bc3e1eb61= c1d134c9d470b3a17ac@changeid Signed-off-by: Johannes Berg Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- drivers/net/wireless/intel/iwlwifi/mvm/mvm.h | 2 +- drivers/net/wireless/intel/iwlwifi/mvm/time-event.c | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/mvm.h b/drivers/net/wir= eless/intel/iwlwifi/mvm/mvm.h index 3be67f0ff74f7..1e33de05d2e2c 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/mvm.h +++ b/drivers/net/wireless/intel/iwlwifi/mvm/mvm.h @@ -121,7 +121,7 @@ struct iwl_mvm_time_event_data { * if the te is in the time event list or not (when id =3D=3D TE_MAX) */ u32 id; - u8 link_id; + s8 link_id; }; =20 /* Power management */ diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/time-event.c b/drivers/= net/wireless/intel/iwlwifi/mvm/time-event.c index 2e653a417d626..98c64ae315e68 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/time-event.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/time-event.c @@ -692,7 +692,7 @@ void iwl_mvm_protect_session(struct iwl_mvm *mvm, /* Determine whether mac or link id should be used, and validate the link = id */ static int iwl_mvm_get_session_prot_id(struct iwl_mvm *mvm, struct ieee80211_vif *vif, - u32 link_id) + s8 link_id) { struct iwl_mvm_vif *mvmvif =3D iwl_mvm_vif_from_mac80211(vif); int ver =3D iwl_fw_lookup_cmd_ver(mvm->fw, @@ -716,7 +716,7 @@ static int iwl_mvm_get_session_prot_id(struct iwl_mvm *= mvm, =20 static void iwl_mvm_cancel_session_protection(struct iwl_mvm *mvm, struct ieee80211_vif *vif, - u32 id, u32 link_id) + u32 id, s8 link_id) { int mac_link_id =3D iwl_mvm_get_session_prot_id(mvm, vif, link_id); struct iwl_mvm_session_prot_cmd cmd =3D { @@ -745,7 +745,7 @@ static bool __iwl_mvm_remove_time_event(struct iwl_mvm = *mvm, struct ieee80211_vif *vif =3D te_data->vif; struct iwl_mvm_vif *mvmvif; enum nl80211_iftype iftype; - unsigned int link_id; + s8 link_id; =20 if (!vif) return false; @@ -1297,7 +1297,7 @@ void iwl_mvm_schedule_session_protection(struct iwl_m= vm *mvm, struct iwl_mvm_time_event_data *te_data =3D &mvmvif->time_event_data; const u16 notif[] =3D { WIDE_ID(MAC_CONF_GROUP, SESSION_PROTECTION_NOTIF)= }; struct iwl_notification_wait wait_notif; - int mac_link_id =3D iwl_mvm_get_session_prot_id(mvm, vif, link_id); + int mac_link_id =3D iwl_mvm_get_session_prot_id(mvm, vif, (s8)link_id); struct iwl_mvm_session_prot_cmd cmd =3D { .id_and_color =3D cpu_to_le32(mac_link_id), .action =3D cpu_to_le32(FW_CTXT_ACTION_ADD), --=20 2.43.0 From nobody Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 51AD11D790A; Sun, 24 Mar 2024 22:50: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=1711320602; cv=none; b=Kx3pjmczg4BJTWRYcxIyoDkLTUKixqUWinmqIdULJHxKgUxo4xy/axvtMi8DfTUOEf9xvwkmi0zCDTREo/FdHV7yzR/8il6qCjAPcDrVCF4x1z5ukqIcXGZo1c0vWNyRudAgzVPpoHk7l/2BhxaHo8SkrPUl1XSBFEbskT3H1rA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320602; c=relaxed/simple; bh=i/ETv3Z0+14MObVPjWUndDksu7lvCqc1LjL8w6W1XSQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=hU1VbFSBezBM2ZjOQzCVYVvyz9fCQGgdt2P9+uWEoN8uC6gd2f/YIKP7ICWSwEN36F5eVcsm8JjoWX/CIRwHb/aoOw5kE7J+UxD26UbTMI9zWcmjNbN0Jwpyw4Jt4hfsFBSsAdUY8wY/7jqN/YdVgS9wnuXZ1CwhB5itHKWYVp4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Iw/fi6sh; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Iw/fi6sh" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8BFFEC43390; Sun, 24 Mar 2024 22:50:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320602; bh=i/ETv3Z0+14MObVPjWUndDksu7lvCqc1LjL8w6W1XSQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Iw/fi6shBX+wHjW+PMmQAh1JmlXhfsrhc1uFES+Udtv3pzPZqXydoRLIbP3FUQdIc wYHypBzRD3iTnOVqqzxuFmmq0wA6sAMoDIAvnoh2UlYncRO+Dmke6ZRQp31sLawqfL a6J/4YCRJmzUyUmpOhyaOjzkhACThHNuRgV3GMWkA6x5wDhRUC2R/793NXc3YCBA1i INYxJ9GSxiXdLd1l0lcPcXwR87EWhM6MMghJ8X7rLL1pFzGfrIJBZekV+j9Ulfk6s+ fGIj0C6bOqrXtqHTiUVfMcC0Of7EklHQceng+HiKgPZIrGLJhaL7dm+3N+t+E97WnF icTXH3uWukPGg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Kuniyuki Iwashima , Jakub Kicinski , Sasha Levin Subject: [PATCH 6.7 163/713] af_unix: Annotate data-race of gc_in_progress in wait_for_unix_gc(). Date: Sun, 24 Mar 2024 18:38:09 -0400 Message-ID: <20240324224720.1345309-164-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 699211D7917; Sun, 24 Mar 2024 22:50: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=1711320604; cv=none; b=NkmQnsowV54LNvnvxEEEPVfVWZZzQCAJcpSK4oseFdhtsxP88sBaQEPdosAPHm2lyqjANsCcVpyo6uf3t6/DkiEusp7j+o490tYPfhOVWf6qUD7ORWZ4a3SMekr1fcfURfKp4TEUmo+bAy9xLSTro7BMpiUZDamTU3vj4SqVWsU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320604; c=relaxed/simple; bh=90XilqNwKsvj6KfNoaZh4D0UAY+EEfN938ceSpFwJeU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=LcuHFlVEfxddJn29sa6oSwYzHxNGowZ772xNMOvLgSxTY+1CqtHux/aJtLdEYy+4KL2b6l0SifrflH+ixEJGhFBVTr2Tt82VlwY16yg1sdWmh/fN5bxD7DEqNrPiA5metpeGPyRs6qijSjjegcnlmIbfHjR5uqYKR+7aEE/oEKk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=H7QMaUtJ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="H7QMaUtJ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 798B7C433A6; Sun, 24 Mar 2024 22:50:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320603; bh=90XilqNwKsvj6KfNoaZh4D0UAY+EEfN938ceSpFwJeU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=H7QMaUtJ7jRGEr4yVYnBve39E5pQWg17FliMGoxA4o7XIEPUF9NPH5x2SHY8rsYf9 Ke/HQltUWq8sntKWcrkOvGIF8hng9tjrfSDJ5rR2dMFv7I20rqPi/m2d386O8T4mhr pRSqlV0aSh0MAsIv/FVEr0B5eID8TYJc3PphMNq1EnVw5cDxn3RGTrM/6xmHYFnJng yjFT875Dnr3owccQ4vu69IlfKt2zYj5t4oI7iXPxifIFdrKN14S5As2CWRCscwE6p0 yw04jTUXk0OOlkUqF+WN0zxnTnByYOiqYmapiRj01JzfCG4n9nI5JNABTlIWKERAvC RUlko8LLqza0Q== 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.7 164/713] arm64: dts: qcom: sm8450: Add missing interconnects to serial Date: Sun, 24 Mar 2024 18:38:10 -0400 Message-ID: <20240324224720.1345309-165-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 f82480570d4b6..9d06fb0d4d1fd 100644 --- a/arch/arm64/boot/dts/qcom/sm8450.dtsi +++ b/arch/arm64/boot/dts/qcom/sm8450.dtsi @@ -1026,6 +1026,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 @@ -1418,6 +1424,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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6C0501D7918; Sun, 24 Mar 2024 22:50: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=1711320604; cv=none; b=lQeAIgkSVKelaO/n79fzTkfbQyhDgAfE80nQ/DQ2BL/yZTEIGAv4FLqHlzXuzzeotU+YoxCwf2MLFhZYDgMtiS33/Rl2zwZUHRGKcw3NyrJL5dYG5/SKi+Oxzv3O7Or1azAl5kaiq2+7K/S2/+8aMx4lSJQXsWeFUsxJGO7fzMw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320604; c=relaxed/simple; bh=8MlMsUXIAxi6EcUwJc1rCgwDpDQjngCF1q1kRo/oFOs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ADVl93y207ipuA2kSIGdQOClEb8N9kM9RpLMJwpT1CqbmIANyvba3uIZcTMVkcDbMHPwgBSqVZ+qdX9VkFRCYOJ70HX4p/FAOOPmP1pSIDWoikwKGSEKqPMU10kCxnEz7GR5eQxQRMEg02iHyWrK09knbRjNSEbkXlofPrMcf90= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=sDww2BRE; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="sDww2BRE" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8D582C43394; Sun, 24 Mar 2024 22:50:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320604; bh=8MlMsUXIAxi6EcUwJc1rCgwDpDQjngCF1q1kRo/oFOs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=sDww2BREgxb2ozVb/XZ4R/gf/170rUj0K9zm9fZUv7+ImXPBUtPFII5thrklfWBAV fs1Fdj7c/v54hgCFji6WZFjJLYrtQM5LANNtSloHTW4AUZBcEU3UR0YAmTnMUVdHwP FCGKaqGVsnAre+0yNYRUMZDn1sTnZ3CfY2aoAQ6OimvTcfmlGTpK+9QlaSYAh75nCD c4RzohHehnJjH2IJBdXI7fwboR/H92u46UeLJ3codrvJVisnXiyv/qFRyCdxkyI3bQ O9uM2d7FW+71jehf7DwcilGNjBM7Xo2KzurGXhoI+vJgSz7hb+jAuL9rfdVmltFOeq wxBNpJBE2NPZQ== 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.7 165/713] soc: qcom: socinfo: rename PM2250 to PM4125 Date: Sun, 24 Mar 2024 18:38:11 -0400 Message-ID: <20240324224720.1345309-166-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 51e05bec5bfce..9865964cf6dbf 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", [69] =3D "PM8550VS", 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6D5DB1D791C; Sun, 24 Mar 2024 22:50: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=1711320605; cv=none; b=RIoqTeDojwHvaXx8tE5Ou6lOu0OpkMDjV7CT+fI0CT0f7m/41T9gt1WeH119SCD5CXNVSzb5zKt8b5g8FhVr7CJz5fwcoOj7YOXTw4rf2KSSIDQvujVywiN3Yn4hetyh8QBQm+Jqh/xKE7jGkMt+QY/BIThzMSSuPewItLzEyH0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320605; c=relaxed/simple; bh=HZWqqmqbHkrcbXrUTxMgEXv6AXhAmJ7jFq9Fwj3RpIo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=tY0JLZhwFcheKZ+9m8cyF8FxQIrq35gCt6pobMf16QfdI8JyBe6KthvkT4zLRIj0MEAaQr/IYr/5RJzalJvqUjqQlEFuHRd56afQlrr80yc89bsIn8VPKOaGm2M3YOomynqLJ3xbmHSkz0vpJh2YQksIy63WEqScQJEQbGtsmFc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=SCf28Ahi; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="SCf28Ahi" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 91693C43399; Sun, 24 Mar 2024 22:50:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320605; bh=HZWqqmqbHkrcbXrUTxMgEXv6AXhAmJ7jFq9Fwj3RpIo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=SCf28Ahiru/aF2g2iv7aKw/ckneMpMyGKcNbHg/vO3HKY8M8qZernVvONyqp1bTNH LLzOWoGVZAYFDysUwqrUTfci+eXTICktHoyepF7OGhtC1evLUV+PiWKfr+8uxGzJKV zfQG8PlhlW2fXlJszTb7TNqCv4eHyIdvI/d4MK++Hfm0ecYU6r9PTO8sGMIunexhn+ 1qaSWnCROzLQQbs/gD0B9w7AJQnu7JPlOQLtxnF/s1p/fCrWIcI0cjJerytZq9Tvgy HknVlQ750w6J1zEBD5Ye/tcCN3Ae3tUYnzatU/aaVPUo8Ndv25IT/4kDmTrPbM6TYn mxg9myp7X8WDA== 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.7 166/713] arm64: dts: qcom: sdm845-oneplus-common: improve DAI node naming Date: Sun, 24 Mar 2024 18:38:12 -0400 Message-ID: <20240324224720.1345309-167-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 b523b5fff7022..13d7e088aa2e1 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1A3171D7922; Sun, 24 Mar 2024 22:50: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=1711320607; cv=none; b=KBqKG6LpkTvJFfpKGg+9KG8ygVIiMSkMlqaInSg8TO7cPJ4O+FKvqXL7ByuKEufGc7fOnEoaG+2dgiyB8Gqc0CHs6okhBsmkT0fXmhAR+NjPMLiLQgQC3FaX7H/xLs9iVNODR0cO1XIX5+yx6cvhkKEU4nAe+td+5S52NKBZgfg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320607; c=relaxed/simple; bh=2jaq6Nv6r4YCmGhbPVeZlY0UKTMbM3LoqcudLDvUkVM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=oq3j8HKYASx0DPr/03YM0D+iR/Pu8+Z46vzsLDauXVKS/Jp5XWo008H6TwVk5rQlYm3JBCeG6+yrUnAYzZkOMP/TAzvkOivNSMRMVb9ADW+hsbSNCMnMkGzydx3zTYJrFZjgqOQqc9ssKZgQlBfFZROqG4N3vF2VdOBKHCzhqXg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=qjnAp9JD; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="qjnAp9JD" Received: by smtp.kernel.org (Postfix) with ESMTPSA id DF49EC43390; Sun, 24 Mar 2024 22:50:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320606; bh=2jaq6Nv6r4YCmGhbPVeZlY0UKTMbM3LoqcudLDvUkVM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qjnAp9JDgZD801jxWiQDrmjaO5I0cOMZCwRqpkHx0uIsgk6eL/SeLVaMiNXtvVdBn gsZzOso4mq/IuIaFwajilz9pwRsj/VxvBMVRBiUZWaaxz5lSEqv4HN6HPFlHqhhQQp kohxwv2vEyS6g94UrvUtdxzNH3GOvKQ0rEiVhGi78kwIkxshSARuUDRHxpeTB9vFbv DBdfC2nXi92HErwXajyPy4D+UiMdTgbm55tuxrJY+FvzVuom6T3ayJVfXcT5nkTwbM 3AxYX101lnHTJJCNzRGFfzPoYbg7lI+48QkSnSkyP1vbxFZKXqN5D1SfC8RTfAyxl8 0PygE8CVUf6Kw== 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.7 167/713] cpufreq: mediatek-hw: Don't error out if supply is not found Date: Sun, 24 Mar 2024 18:38:13 -0400 Message-ID: <20240324224720.1345309-168-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D26C51D7929; Sun, 24 Mar 2024 22:50: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=1711320608; cv=none; b=DncIEXAJEfUoRbKZpapS/f2QJxvflkEymWkOqlDw/kkZTzElZGg2WMVkYo7IIdVdTdoSiRS9MKKNgwzFiETOR/wBMR+o2q3NefDY57p/x2DcQEYq52A+1bF5E0phIlQBp0JVpqWOX+2AiuPeZimZ+kxcQytEDAkbqtRSar8yrzs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320608; c=relaxed/simple; bh=OkXGC5MFg/57UAjfdYlyaez1Sc+KpouGnh0grG91cqo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=kEhfzyB2HeSvU27FIs5wqddTHrJpcVZKfW7a2A1xR+JIHaQWdLnQawuq7cBKmG6aPrY+6HDbjwcw4ZovGPlirjwyA6wYE70QMORoGvNrDLSIDLFtT7JT0ssGTSygdZL/WRf0+5qLc8UgwNYfYICvbHrwj9/jWUmDDSKhIxCeMQo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Yanuz5BU; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Yanuz5BU" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 00D00C433F1; Sun, 24 Mar 2024 22:50:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320607; bh=OkXGC5MFg/57UAjfdYlyaez1Sc+KpouGnh0grG91cqo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Yanuz5BUL5RAXzVyZ0VdTShUEhTUBhD1YvReOwLuVNqR/k1y9cQyaHCEkGqdq85x6 n2By8Wc4+Pdt68Y9jIewpI3MYf71BlaQ7P+075bEtH1caBvU6NvEI5o16HdX3jBz6u +KbfVPF+mexbWQH4ZCRpQf7L+p0plzNuBV4TY4o+qZl7z4wycZl9DIalaTUlddgqiJ u1ipbk3Ioz+QXgZUHXCzXR7aT8UJ6gxgQh76yy0hM9OHh5Dr0uq79eXPOCFPpCBSne tUsALgXW8nqtuE/SgJqULJrj24hSb5RiVAosr8wEbKOxtiejtjkde67v8MUTKyckw+ jPUznFJM+2iCQ== 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.7 168/713] libbpf: Fix faccessat() usage on Android Date: Sun, 24 Mar 2024 18:38:14 -0400 Message-ID: <20240324224720.1345309-169-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E288C1D7931; Sun, 24 Mar 2024 22:50: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=1711320610; cv=none; b=F9eVcVimAfEMwPKR93fhaQhRCYpfip9+whDNZzp50X9JcZF9MDxwSpFmyebHM9XZZYa3B1CxFve+ZtqiyYAigXr3aBv9utZqTHo55I+/7dBmMVOMW7scJZSww+zIpJ14g5QCoWCZAqhjaiIhby9WZjhNj59+yH6IAF6sOFEGcB0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320610; c=relaxed/simple; bh=iD2tP2w5qBXFxh/WQCe5efjp671Yj3yfU9cw0LsYFyI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=AuoZV5pVicYi1O8QFqRurUSjx47DdqgstYdsdtQoV9utuHLJw3FIG++7neS+ad5RNTx8fUCC6wBHVikHz1Ee0jfWJ6N7QTi5gpVa/LsSqOT7pLCZvIo2BEOxptvbpciwv8McbzBUyrlyjwHR8S+ZFzj6nAtzPkXC9mrHIrbBzSI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=bBtCzUPN; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="bBtCzUPN" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 01D01C433C7; Sun, 24 Mar 2024 22:50:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320608; bh=iD2tP2w5qBXFxh/WQCe5efjp671Yj3yfU9cw0LsYFyI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=bBtCzUPNYdneLOpN6ziQXnS3ocR7T6+g2PaVOgSEJUhvFgpWD80Qx8C4f3PiULLnQ zxThtLpDqcXuwt3PoyPyiziGcBF0wXxcQ5SF7TyURUPqiJ7MGjuRMz2j7fOiP0YBD+ HyZ4teVbTqWl+PP39kFyiJthMjYd7FSCSdCd1oMyvx0JsaRVFJPxDrsUNYjyPKetFZ IYBmC6heuQjELNNUed3ndr3K/nxLSlXdgmM0TIcVIyImsZBGnLfAbHo/T8uawooHH4 JSjtHGu2S239ogHEqOd82+/YswBaCgCtM28/S6qR410UnGtCTLHXjSym0JSyiv6pWe GYJ1xP/nrfpZA== 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.7 169/713] pmdomain: qcom: rpmhpd: Drop SA8540P gfx.lvl Date: Sun, 24 Mar 2024 18:38:15 -0400 Message-ID: <20240324224720.1345309-170-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 0f0943e3efe50..e4d5afab7b3b2 100644 --- a/drivers/pmdomain/qcom/rpmhpd.c +++ b/drivers/pmdomain/qcom/rpmhpd.c @@ -217,7 +217,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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 09FB71D793D; Sun, 24 Mar 2024 22:50: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=1711320611; cv=none; b=INxRn4GqxKLsvqtvyg41Pn8n+u/8k7mYlOk19QOLvtbljn+4IU2MuCJq8friBut/kxiUuyrCHspEaI5pKXMI3NuQfKmJU/jMTIc/kgAHKTW39+k51qGdUME2xSZmsHmJr/3nvE7H2J0TE3rhmkPHIlttgifQazpmx8DCR0+8osU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320611; c=relaxed/simple; bh=UcRpu7p1jKQyG+pfEXtk4kRecvA2V6BI+5dODNtRxC4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=eUCFAWbce6rk4CkmyYPjB9gd4amxRpnxhIUcMtYo0XheAI9ZzWiIF/kvMPR5WTfqNVRTVCZvitLH6xFz8KVic0CKaXOuIR+hJPgR29Qpdpklszt0AUq4MBqgl19pIptq7uUsQhl0TFrD9jk4CG6Jl9BjMN8O6+huMnEVNKGndH8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=u1yt5nKK; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="u1yt5nKK" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 14440C43390; Sun, 24 Mar 2024 22:50:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320609; bh=UcRpu7p1jKQyG+pfEXtk4kRecvA2V6BI+5dODNtRxC4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=u1yt5nKKcltx8qKOxuLCkkUPwU+5UKUlk+SS2jQwNK0LG2+jw5I6TOv47BkR0htMf m9ryvDV20sJDWLq46Q/cCefmBbGo9J/JCnDaQmQ5pau+NwHqXzq39ynJTPWomTvGu3 tfmx3b/RCLUA7AQRQdiPdjIOKAJbhkRgb8VuE/1ZCGjgjcDC9BSBa9QrgqXU2PZCzt NSDsKesf0Sgd7RvMaBcMYc4oxThzOzbZ8+zuRV2oeeYu7bR2IisAl+JwX2i7olJecc HlSP48P6toa8Kxu87w0uHGq0fv6QtwTngDiE5GLHwUDIhuxCoXCDPTh8ZO7h9HWRRO aru/0a2fhKmaw== 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.7 170/713] arm64: dts: qcom: sa8540p: Drop gfx.lvl as power-domain for gpucc Date: Sun, 24 Mar 2024 18:38:16 -0400 Message-ID: <20240324224720.1345309-171-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C87971D7939; Sun, 24 Mar 2024 22:50: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=1711320610; cv=none; b=YKEs/2CDkH/CYZspPB1Yc1FWKlvi9je+CfgWqbAUx+V5ghQtvrQs3MyDSp6CEv5KHuWkXUmZ9qY8J4AKThQq9jC7Vri6wlm/6Pn58D38bgbHcHVOSHOwpRqxLZICHWB79OjR5+xjRL7Xx7aFa+BNDzDuxMy4uAaeCyzYUr4SJp0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320610; c=relaxed/simple; bh=+4AiABqnksxNdiMVZMOXIxNcwiZbJbOVBDo6C4zJjWs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=afflv5InKsV7SPCRZN4vJjKYydtmmRMGzuTXt5tzkzELpoboOny2aUX+2y6BPPqcFAYeBm9jTW0ZImFjLpaWmL0g81tP4sJlMn0HSE2+Rr1syR4YbquFgG0nNqHRhxy8AdGz6Lj0M11+xKScWj0c330KhxYxKt9hRCTy3MCxywg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=RBvSimax; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="RBvSimax" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 29E42C433C7; Sun, 24 Mar 2024 22:50:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320610; bh=+4AiABqnksxNdiMVZMOXIxNcwiZbJbOVBDo6C4zJjWs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=RBvSimaxjM2oSpN317BUiLBVQcyA6d4/Ll6bKB2YbJCCVAglD+gRN5LSiVJyL383S dpgrzMbLnYXwsfYiV2MiPyA1717UcajMRcp2lM/HqqwXOj+PW0b+t90jbEiD1YlHR1 d/KizqbXqzJ2ie+0vcwZYUfhDhqu8VGEZgq3u/+UmqeWkyKbiko0vfIyh+22Swy6pY Vn4xmDICYDRG8koFwL8083+0s2ao5DLVJb4KBxegqgloVo48M43JNypOQ2LAHCM8hL xYIt9c5GkdzqzSKATkDCA+c46ez8aNcBvWQ2QAZ8tMa7nCQoQoKYGau+sA+fmBLr3U cyKuSiupGUtEg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Geert Uytterhoeven , Sasha Levin Subject: [PATCH 6.7 171/713] arm64: dts: renesas: r8a779g0: Restore sort order Date: Sun, 24 Mar 2024 18:38:17 -0400 Message-ID: <20240324224720.1345309-172-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:43 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E539B82D9F; Sun, 24 Mar 2024 22:50: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=1711320613; cv=none; b=Oey1wfh4hO82mEs6VGo7CvXRSEfQVcdTrNxWzVsd7ToYs7U85Lq/lQZo7bGoSMHofCyFT5vIZc6JtH9+0Gtud35mhHo3KFZAuuyaF3tUWIy/AddsMWTtkOTNQ0eCDsD9ZnMZNdNL9LuY5aF89VByfaZBu3vOZ7lbTdhEOqeqPzQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320613; c=relaxed/simple; bh=9Qq1iVEdw0G3vZVt9MiiXBeQOuukWCru2oMuL3av5NQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=W4N4LEFhV9ZwGCvjuLxPGgJ2DpjXPJQOtZLL3f2DtYqRq5J/B0sEmiTOG+J2utOn3dppadAWqrBT1EAFxjRVxEb/SVBgij4W2kiQnlFGvpvm2NvRGQ4U9YW6NoOnmy+tP8Df9900Ke1AWWhkiAPr/yNA1uC0hOlazpLfBzNVe0Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=t+ed9qYt; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="t+ed9qYt" Received: by smtp.kernel.org (Postfix) with ESMTPSA id EB230C43394; Sun, 24 Mar 2024 22:50:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320611; bh=9Qq1iVEdw0G3vZVt9MiiXBeQOuukWCru2oMuL3av5NQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=t+ed9qYt4x8gmmB42I/VcWjzOpyGLat5RUt3jXGlneEhfQHfoZqpQeG2qs6cZty81 ffN8F24ILeAhKB8z9nP14HgUS1dz3UxQFaaOXLYkwfGO+2nq7gwrpqU02clgnUJpOQ M5fDZkiTUfGqlSav5Uh1ms6HDwzpnHGL+CCDhi/MLlhU39h77CBaS1Xtrak9YE4PLi ls09PBz5IVsbFCa7/u2T2/re7uQelFOQnArQtr5T0AGfnJkLQiSP9OXqhPzdxofeek HmFO6byZ1NhS1BQOSCjEw45MQTXxB0cMAHv2hUe1E487Fy13ApxhP4GSCdrvb8+R3v TSTHtoqcoWOwA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Geert Uytterhoeven , Sasha Levin Subject: [PATCH 6.7 172/713] arm64: dts: renesas: r8a779g0: Add missing SCIF_CLK2 Date: Sun, 24 Mar 2024 18:38:18 -0400 Message-ID: <20240324224720.1345309-173-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7E33937145; Sun, 24 Mar 2024 22:50: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=1711320613; cv=none; b=N8wzW/NuNpTDcjN29c+0BiRwebWdyGXw5qG8Wr0I6QMe4b3CvjhdhI9CVHh50/bJ43lXq4kAcX98g6+wQ8DWP42iMtpaUjee8yhhM5fEsVGeTd6eybI24yjj8WyJAhdhtgg1QshYWrNuasUDeerUbDx8zkEZiOhRRL21ao6Gss0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320613; c=relaxed/simple; bh=jcSa7AED0sYNrjMzwm3P5thW7G1RPQj5kfgFF+4N0IY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=lT0viAUIYPHzeanht8aD79AWOw7bZP4SiG6DScKXxLnhAq6rslBfkC3t048GNFM63YpF8otpgHuHu1FmmIc0aKZPecde+saixB81q2zI+E2RPAsnAUotKy7bOidiNiEr/gdR6qHksKUT9/zxImKZWzodZtWz7bs1vmdYf/rIcV8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=YvAZFsps; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="YvAZFsps" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B9953C433C7; Sun, 24 Mar 2024 22:50:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320612; bh=jcSa7AED0sYNrjMzwm3P5thW7G1RPQj5kfgFF+4N0IY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=YvAZFspsLBjKBdokl414Gkjp38mGGDJeq4rfQSXkQz8tWcpHwZOxxIs5AafUtUIYV r+LP4RnDV9MP755EpiyaZ6lhBqm+2U8Hykfr9vsCatcXLun6NufG1TaKXYuuI1xvDZ KrZbNH+nRQCw0cq1fHtm7Dh6mQko7H9TjNXaBAUNgHfyAFPHXkSsQ692V1NLJZpyeS WD1z0BK/pL3kwOWtGk9O3sjgfylPkawIS3hgUBJImSVTI7xQc2zcYEPAuNRyTq/2sy atjQFdQ/FAzWTSGzuqokTA5i6AvZ0GgjWc2I/FcmFfYaPIy78hl386vRx8kPinyZEJ EkvLCnpfCRtJg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Manu Bretelle , Andrii Nakryiko , Sasha Levin Subject: [PATCH 6.7 173/713] selftests/bpf: Disable IPv6 for lwt_redirect test Date: Sun, 24 Mar 2024 18:38:19 -0400 Message-ID: <20240324224720.1345309-174-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 67384839EC; Sun, 24 Mar 2024 22:50: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=1711320614; cv=none; b=FKueekBddnsY6qaNaPKdimLOgud5Q1OPA1jUpijx5iVRBtaBmC3agtVzGeR+tJLXDoEwnrgngmHRXMB9bQKiVinDOyKVebXTrcnuHXpkdR3xUFmPuWzeBgl+mOdkCQRRk0l6ogPj1sJ0pUzZUlkF47v8Y+4sSFNUr0lfNcjl/3E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320614; c=relaxed/simple; bh=ze5NvR4EfcKhR0fNuwbdLlByKeSoQS9yq6vaY4x24bQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PHL/ajKFLFPCPlMANuJ8ZRa2a8ETPVdHoR/FSXm2Oy6d+t1+Zx+ND1URF446DgQ6PcQAWjhDw8I/AxrD8AIkjuacPC/PzF27jQRg1HIrDKWakTi6Az2r0zOVzunSEui8/+nJr3sWa80JUqLM7VRvkh13BPkf7/BpbZguHy9/B64= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=m2WtA+Fu; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="m2WtA+Fu" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A19BAC43390; Sun, 24 Mar 2024 22:50:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320613; bh=ze5NvR4EfcKhR0fNuwbdLlByKeSoQS9yq6vaY4x24bQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=m2WtA+Fuwp82tmvPLNnnu8g72bJQZejJWJuhGaIrf9a6Y8ZRmiJgap+cYOyxt4TbP ZHpk3HtmDfu2ZnJrsphuvs8ftsABJ8oy03n4lnhUm37idWHAIuJ1j8CwHnS3optNZG 0cBHYvRIuclwaPrYA33kO0TNl1B8s2aQEKgCJOMaFdm/DvxH2n3uaZlyWmWS5Stfe8 K1K0siG3ILxHv4ieIU3XPA74aU94pMkR4x/GPwtwB/m0F7JKJ2NnZXIMIsC0GuGyte cEhxXKoWtYNMMj+NtV7PmJvj7wyZSG27E/4RgroemiXDtb2VjHJ2NemPI0/qNUQ+1X 1+kUPjJd/AJgw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Frieder Schrempf , Shawn Guo , Sasha Levin Subject: [PATCH 6.7 174/713] arm64: dts: imx8mm-kontron: Disable pullups for I2C signals on OSM-S i.MX8MM Date: Sun, 24 Mar 2024 18:38:20 -0400 Message-ID: <20240324224720.1345309-175-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A7F08839F4; Sun, 24 Mar 2024 22:50: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=1711320615; cv=none; b=uip22V2ST9Syer/OwXLEqrdDbJ88Y7FoEO4NDMSQg2rMYW+D0ZrYftfmIUtRP+EaNiTib00HMVgxHk36/NafEMYJpopZoH/guUHh8HIF70GS+SgnyNnN5LSE996f4OCI59XVZuZ5BtNnh/8NNybm9cLQNzoRoNdd77lZlpo4xkU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320615; c=relaxed/simple; bh=5jaLuzVu03LfcgTNCeqDwZBUUHqQVrNeybRDDhk2+Y0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ccg085dFVXmplQQwIF4arnqXp1tmarLAgG/BvodOSeV9TxPAKDMHSa5nfzkcXiG9+RwHnLw5E+HndtLYNd+22MGwhCcp5rMbGWSxC++UWERvrrqAGmSqUNtPuBXWqOIY2yQOlsdOHep442TlwcPfT9mV18xpHFfug7DJ2np/2Cw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=PFGNyECk; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="PFGNyECk" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8BD4EC433A6; Sun, 24 Mar 2024 22:50:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320614; bh=5jaLuzVu03LfcgTNCeqDwZBUUHqQVrNeybRDDhk2+Y0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=PFGNyECkU6NIXS2EjoQ5dQAY49VepYYwqJMJUYX3toXqNUSuq4UEhyAVIJxhZzGiz icraJZyYaCiWtLS8j6Wk0QwnKp+4E07O5ubwWsFiAN6eA9E1VHn14eUyZ1ksmd4ipv GkHL/IdHrqo+QwWubpQEa3g/6NPIVPV1EmKfieN0Jg3h19TovTx8+BcylyrtM9Tlb+ ZQpcapJwVgi9ebWBK+9QzUy6nQmeqrhSn/nfJTBTlVsILn081aN2ZCYy1twxvc2wj4 t3aTRIdddgjmvPPWmN3Qxak/r+5L30BCH3wgcz3kGGn/+ghEzy9Jdc/vJoBQk55Bn7 KiEKl8mR5wlXQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Frieder Schrempf , Shawn Guo , Sasha Levin Subject: [PATCH 6.7 175/713] arm64: dts: imx8mm-kontron: Disable pullups for I2C signals on SL/BL i.MX8MM Date: Sun, 24 Mar 2024 18:38:21 -0400 Message-ID: <20240324224720.1345309-176-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7FA83839F2; Sun, 24 Mar 2024 22:50: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=1711320615; cv=none; b=cDgAyGN9n25T5P3asEhRdsyduxlaqG8kTPuJP34KeuXT8Up3Fuq6DBoy2iN+kF45VM2yNbWLun5wWExRlVeO0zX/5CtZ83Y1P8YLXzilv+VM6zizlp2pMuQAsM4Xpe6PB+Tt2Tc32Np376/xitDptJQ7ch32U/iLXavsivItZ7o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320615; c=relaxed/simple; bh=2diJNys690X5vuo8K0Z2rkLA90NikcwwPE7MwS9PceI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=fXqx92aXJiTxlTKUB/MOmGnBbMGar6sTqMvhpn/00knjym2SiDTgOQ5vpB49c6ytkUlxPMd6UobVoTySLxZQSbAiXSTh6paCRrgekGC0DgtKpzQZOBMDwSBNG4N8Q4SzAdCi3olc7B+eSkKMCwt3xe6PrHqkvzlt+lEbUbcpLX8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=PUPb73gb; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="PUPb73gb" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 70AEDC433F1; Sun, 24 Mar 2024 22:50:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320615; bh=2diJNys690X5vuo8K0Z2rkLA90NikcwwPE7MwS9PceI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=PUPb73gb79KzE5VYJmWZ32uAC4l6VVnxIhKCXrJpAIQBvdTV+cMZNcgB1cg3ii0eY vcFhBjk2f0P5m599s1HDWpzPNGpA5HQIkNaH8rV7Xqj1B9Hdenmt0fg4fywzPW97ON I+3Obe+OKwbNKJMocUefo99Zj8+JaoC8qfogCHanxk7xa2ByHgMS4lLCr0jP7e4qqe wwEuG6NbwajZJEjBSZp/08WlciUg9zWjusyeIY6k5g8ExTTMkJWKfZf9YrMmdG1L1a ZSwJbpN5MjbMmA/ODS6+LG7G0T1JMee4Z38NyhFX0R3Kjm+cidXa78yRJDFLD7KKuH RNTOVcXR1y8Sw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Frieder Schrempf , Shawn Guo , Sasha Levin Subject: [PATCH 6.7 176/713] arm64: dts: imx8mm-kontron: Disable pullups for onboard UART signals on BL OSM-S board Date: Sun, 24 Mar 2024 18:38:22 -0400 Message-ID: <20240324224720.1345309-177-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- .../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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6ED1A1CF8D7; Sun, 24 Mar 2024 22:50: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=1711320617; cv=none; b=cfZl8UtiO7SB9dBOwgFFtSnzNXy2me7snS7JQjhQ9pO0L+avpU1U0klQooNd8wPwm/deTFKiNZ2Tfyf/z2+camPclmzgeC8j8efwx1buuV1C8JX4kr9Zn5LBmMtQ+0AjVH7h32fRv9GzzMidFtH/DNbYTUk7nrqHNe7sjXxGpCw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320617; c=relaxed/simple; bh=37Zel5azHMMPsuJmvBbKgkaQSVhGNE8yCrKdKwCBDRk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=GDwHI/EPfzoZKKSzG3frr1beV/nQc0PDohF5wkDIPiYmxex9mKEjza4qEkmgOInrKHCF63wSpPx5PC0q8XZ0kL0ra3qK77aGReJTnMo+o4WtG506xq+BlGtzWGjLpr6dunoq51A2aIN7BDwCJyaxdIfZdPdAFmnF7ro3Ub1KQdE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=d/0gPNnN; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="d/0gPNnN" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A96DFC43394; Sun, 24 Mar 2024 22:50:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320616; bh=37Zel5azHMMPsuJmvBbKgkaQSVhGNE8yCrKdKwCBDRk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=d/0gPNnNv1+pM6qwV+JRoHcZPKA0UiuqKP7P+rTYeEHUv3OILFlle9al2AK5tEnms lBdTdaSmYUloGaN8Vy8f/9mLa9zY+H+8a9kxf8WwyC/prgKKbiXA3pwxYRK6x9KnOk 20EGBC8iEl7zAdYoOmBc3CEBILTd82X7R5sRPHPc8N1WrIDtFwJg6aosslfl/hDXx0 iXQl80OuaHY6IkhKHcBFSGs5Mh5skvFOF4J5JMr04GWFqatMDH3deHjULZLEF74yRc r4J2DtmcWJnROlI5geQrMbjfjEUa0DLy2t3e1s+pnEd2pe4RygSRVq6j3QQgJhwTQL Bj6xbVBlsiYAQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Frieder Schrempf , Shawn Guo , Sasha Levin Subject: [PATCH 6.7 177/713] arm64: dts: imx8mm-kontron: Disable pullups for onboard UART signals on BL board Date: Sun, 24 Mar 2024 18:38:23 -0400 Message-ID: <20240324224720.1345309-178-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- .../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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5295182D9D; Sun, 24 Mar 2024 22:50: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=1711320617; cv=none; b=VoHl0mOg1P2SQg4OVhjTWap+Z4qaOIPW/7nxp1OTyGnKdtciIJ1fvuP34Fvr4RXvelgAQJ+gkbGVgrOQjlGhz8FQuDdHSJRN3fwwaUlxAdGJHGHl8hsgmUy3c9Aiq22lsxrk+bzAUsyv7DH5FlHSwRoEndPILGqxA2HnuWDFfCE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320617; c=relaxed/simple; bh=C5+iWgv1WmZKo9V89Vlt5pXL8s+c771eDGwih5584Qk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Ud8Q0RyQ2biONdYImyZtcTYQtX2ULsPiIFZou6RxGUW4jsjTMlnvG2nQLKovFfhzUTMkW76hPfnw/vOpaa4D1kz0sBgd1/dGx6pPvaGORcSQTyYWHYsdlQ0K5VS/jIH6PZ8qXEgYpynGtLB/b6WnEkAUXJGgZzZzAZpfrmNxeuQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=df0x2crB; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="df0x2crB" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 90523C433F1; Sun, 24 Mar 2024 22:50:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320617; bh=C5+iWgv1WmZKo9V89Vlt5pXL8s+c771eDGwih5584Qk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=df0x2crBjfHqi68pJTaL0yoTTX/tShBPF8f2IGnMlR9slxKPct8FdTl7z21GA9L8o ERmvaug+wBWvKoJEEQkg8WN6e/pn7dRH2zJlxizSpkyvWhaEMXHzBg94edovW1qEqI 4rnJZySNl0Zd06d+O3ydXQ1USrI3JmTwamLbXZVp/M5UFbpXjt6sbBUMBqExwUuzh6 lF5RldGaZ5Df9ByT/s4NYruwr5YoEPqeJbvCiy0Kc3peLIX3WidGhIcNAf1opR7vRZ BiNZngJPoZqse5Z27olh/uvRiyPDLmspY1gvcfKn15JxMcz8OcApiULrxsRudxOQ/R b9h86GLCgGKkQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Frieder Schrempf , Shawn Guo , Sasha Levin Subject: [PATCH 6.7 178/713] arm64: dts: imx8mm-kontron: Disable pull resistors for SD card signals on BL OSM-S board Date: Sun, 24 Mar 2024 18:38:24 -0400 Message-ID: <20240324224720.1345309-179-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- .../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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7641C82D85; Sun, 24 Mar 2024 22:50: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=1711320618; cv=none; b=smY1uEVkcDnR/PnhIquBM+boDlPObvYgyLVq7+v2E9mSt5pBslecupcrWErsiayD0xZaCWFMOBOBVtA7DiKEokCaU8O38NZd7XCZHQGQh8bQICu60hocYB31dlhGPNFqf0IblUxxlm+eRwpM5MVdUEv1bcvQSuwY6E4K8emC+Eg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320618; c=relaxed/simple; bh=xPRqP6qMDypdxzrwhFJPn3DwXf9dhukUsTYwU4wACgE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=iQ8T/+DyYXp1H2vaqkxPOjpxdEDEoUYq5XaPysKth+lBvjo1LvGGTfhh3SDfP0wSP1xzkt5KFePu/qTbwfDKf1Rn/Q4Dv9tKXc0ob+rcst2AOwcK8yuXJYWIV79lPKGLiNCk2ERt6RfrTjg7/HN/RzaBAAEiZ/K2Z7TBFRpqny4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=SeQwloAp; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="SeQwloAp" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7788EC43390; Sun, 24 Mar 2024 22:50:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320618; bh=xPRqP6qMDypdxzrwhFJPn3DwXf9dhukUsTYwU4wACgE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=SeQwloApgFI8LRlMmOvFFdvbY69vzLZDvYMqZtmIwR4jlI6MIqjCbZIDHSyCeSXCm VUMQjjUBoler5bIFbKl9PzJ35XBxsk7wsmS/osqKPlF0VSgNwc0ndyrt/ViqLN1TH2 X20+ANOxRBWURYrTKWWgjhxCLhv3ReggEp3uBVx3pe8skQ/xY3aYzqz8dQG5F6DDoA RxGuNQhl6niK6/0M19xk49U5MxSNMD6Fphv0wbdXRNFaDIH5BlbHGS74IfSNOdMSRT HcymU7Rsm8hQ3i8SgOU6mjvaUe/yZ3nrxebjlY6t+TdK77DSJk8nZYNAcp8SqVYb/v eK2izxcW2HhYw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Frieder Schrempf , Shawn Guo , Sasha Levin Subject: [PATCH 6.7 179/713] arm64: dts: imx8mm-kontron: Disable pull resistors for SD card signals on BL board Date: Sun, 24 Mar 2024 18:38:25 -0400 Message-ID: <20240324224720.1345309-180-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- .../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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 269A0143861; Sun, 24 Mar 2024 22:50: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=1711320619; cv=none; b=KPLETmsr6UzbgDMt8tnljm3r72TVNBlNba/T6mtsYtPAvNH866s5Lwcp+4MLRpYttgoSxY2mKCovt9w7sQYrHKJpZhl8INLk7hZSAtNeXgwPh1l/XPDVuJDLz9x4/sggCNawP3wfuS0Yhq+KaH5TJuZOreFbBDoyVuw09IeBqlI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320619; c=relaxed/simple; bh=aMDo02VAK1zjVAZyROahyTo3LEtSa9UVeeqPFxBRTII=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=r+bpIxcxUTO45b1vb6mpRfSVUySXNCpR8m2yawAlaFsRoGY3RmEhh9e9kkT5nFULrOGqTBqmFa1yf04s8lR0uv317xXweAdxupmQepQIOO+55o1E/xM/3YrsByrfOnBCfqILsOYv8lNSq8Gb2DXlGP19HVQJCXXd0Zn/iDppTr4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=JuSPH9wG; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="JuSPH9wG" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 60607C433F1; Sun, 24 Mar 2024 22:50:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320619; bh=aMDo02VAK1zjVAZyROahyTo3LEtSa9UVeeqPFxBRTII=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=JuSPH9wGq1ioo/kItxiECVSiXBWf/dO0nzLCHTRSAjB6F0u6QcE8An7erD8GXv1QO ofOTd8o68MpKg2xEVmlc7tVFsXC2vep0rKFuAPNpiQpl0nGjlbaZTzClKg0AxP1J3h +i9FosGdpR88tD2JQeE01FcF/j41skylrLIGKqBOlG4FFieH2gyoH+l0gTGV7Yb+Re PulLGWxK2KhoxJyFsuD2EVevUsl2JPTW9VTKvUkujME4kx/dNqvEwXVQ0SPe+fyoXd msPIEwW2eR5aGT0YG9+GC9MWwydzoZL8SGZQsbsZtFaPzOLg0CM8XLaC/2P0FOTXvJ Ohc5psiXINCrQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Frieder Schrempf , Shawn Guo , Sasha Levin Subject: [PATCH 6.7 180/713] arm64: dts: imx8mm-kontron: Fix interrupt for RTC on OSM-S i.MX8MM module Date: Sun, 24 Mar 2024 18:38:26 -0400 Message-ID: <20240324224720.1345309-181-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 074C314386D; Sun, 24 Mar 2024 22:50: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=1711320621; cv=none; b=BMbnyYdPrw9OGX9IOrBNZ2+u5MG476lU7rWJL7F21e4QLfhw1ByjVVgVWY5zUCQB4wxdm/5/1iBtwdOSjy2GgOxdeql4AZ0OQ2fMAwCPay7s9x+0GkdfgaCBX1ZteZwrzLo3jPciLrejY9l8ideX8mmw7Zjbf2I38deNOIVoyMI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320621; c=relaxed/simple; bh=5wfng/s2DhfKcXbjgEZ62QFxd9CeNrVqaQKaNQoR5/4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=N4QdN/hTW304Uxw74E/zbQ1eB//sHe9BUKE3WhOLKfyelUzxTQ8ZlHzIfqXZ4bbaqy8VZH5OerOakwqF+DWaPWFMy7lSwXax2xJXL3RIL2F/UoUWk1OQInlHdsK1j5Rb3VSLiUEJvd2G5VH29GNehto3aaH/ap60Ca9wGHJ2vH8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=jAq8PvwY; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="jAq8PvwY" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 43601C43390; Sun, 24 Mar 2024 22:50:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320619; bh=5wfng/s2DhfKcXbjgEZ62QFxd9CeNrVqaQKaNQoR5/4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jAq8PvwY0GGXP/hnHqvGmEhfHFznaasG4B5/3jcA6uWjC/V9+z6YeEV8x93XzePe0 s10zu0TNfMNOozaGUoleBzymJ7nRbp9tLk19Qf6Xh5bqbwvffQoHpHGfClQxx3Asop nNdN4DHoHqwviIGUBNbgj2kc2zzZFmx0Tqu1DGaWghgbH8Vg8lQ53HysDedealcQJo Pv1CtsgdzV/hGMwA0UXCVzwJhGzR1K+f7f1ENl7EG6/rf60vzGT+2vgN0nVBfKMdc1 KYAhwyPFVQuo5ZMWdXQB+QBL4+Xy5zuaZdKXbYMtworndJucAMmuSS0tyvzPSpDC8V oZFyjGa3CQqvg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Frank Li , Shawn Guo , Sasha Levin Subject: [PATCH 6.7 181/713] arm64: dts: imx8qm: Align edma3 power-domains resources indentation Date: Sun, 24 Mar 2024 18:38:27 -0400 Message-ID: <20240324224720.1345309-182-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Frank Li [ Upstream commit 7edee2b297e5a4f805e5b945c0c0e6f4f8f719b5 ] <&pd IMX_SC_R_DMA_1_CH*> is now properly aligned with the previous line for improved code readability. Signed-off-by: Frank Li Signed-off-by: Shawn Guo Stable-dep-of: 5136ea6b109d ("arm64: dts: imx8qm: Correct edma3 power-domai= ns and interrupt numbers") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- arch/arm64/boot/dts/freescale/imx8qm-ss-dma.dtsi | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/arch/arm64/boot/dts/freescale/imx8qm-ss-dma.dtsi b/arch/arm64/= boot/dts/freescale/imx8qm-ss-dma.dtsi index 8439dd6b39353..13a3531873401 100644 --- a/arch/arm64/boot/dts/freescale/imx8qm-ss-dma.dtsi +++ b/arch/arm64/boot/dts/freescale/imx8qm-ss-dma.dtsi @@ -98,13 +98,13 @@ &edma2 { =20 &edma3 { power-domains =3D <&pd IMX_SC_R_DMA_1_CH0>, - <&pd IMX_SC_R_DMA_1_CH1>, - <&pd IMX_SC_R_DMA_1_CH2>, - <&pd IMX_SC_R_DMA_1_CH3>, - <&pd IMX_SC_R_DMA_1_CH4>, - <&pd IMX_SC_R_DMA_1_CH5>, - <&pd IMX_SC_R_DMA_1_CH6>, - <&pd IMX_SC_R_DMA_1_CH7>; + <&pd IMX_SC_R_DMA_1_CH1>, + <&pd IMX_SC_R_DMA_1_CH2>, + <&pd IMX_SC_R_DMA_1_CH3>, + <&pd IMX_SC_R_DMA_1_CH4>, + <&pd IMX_SC_R_DMA_1_CH5>, + <&pd IMX_SC_R_DMA_1_CH6>, + <&pd IMX_SC_R_DMA_1_CH7>; }; =20 &flexcan1 { --=20 2.43.0 From nobody Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E018514386E; Sun, 24 Mar 2024 22:50: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=1711320622; cv=none; b=F1HEwgP2fAmErjoBmnRWmU1Cj1fJyNuPwIphoHE1mdmpaRhegQYqs1xk8dDVFtjYk+RfMYbjxqM0tiqOX8e0ktiKqRin/EYYaGVu1Mi0rvdeg70EyLLD6EqDgoRQJ4+90RzfAUL85RkH/SfJjqfpeeaMiHznydnxoS8cycaimVQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320622; c=relaxed/simple; bh=GXTcAYX6lOI3PiRgWjbfvwwRmvviEhte5M/IeEcYe28=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=kjtr0deVXls/qahD9ccZjyezrMpy0KtNi1ZRPUVmarzlXXpLZgriVNxZjO2vmx74vgv4LUHA4Yvff7HTOGXVDJP0Qt8EFjL90O8mfWKB0ZQXBHx5URw/Qr9E1mQAtPYlFMFcXZjtzWuYIrWInPg0fTzZ+mXISgkNDGwx6GlicJA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Z4TW+guR; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Z4TW+guR" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 29897C433B2; Sun, 24 Mar 2024 22:50:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320620; bh=GXTcAYX6lOI3PiRgWjbfvwwRmvviEhte5M/IeEcYe28=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Z4TW+guReooib1HNBT0F2JZxM2KZFpXEGvbLrodNOX0A7m+DYJlKrkReL7GxFxHZ7 cyuRtu+vd70Pjbn8gGYzWfnPzkP/s5Nz3JBQ3LFprPpDFUg0XR/bumIEPGuFWWasBg tGV48VGrhck/oi4FWVUYWOB9D2HFckBs4UOr7aYZZpDwGXYnYH7gFjgo4l5pHLc+LN aapQwU1UeWEVbQHTmIFZ3jqlUrTc4qWZL+Z9CVp0qG/WjtwI+t2WMTMIpQ3o/ASO+T L+a/P4y5In/QufAfYhA5IAMm4AjWrGf868XFv2W33AlLUsRgJddBu2HoGjyU541LmU bnjXuWxNxNZcw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Frank Li , Shawn Guo , Sasha Levin Subject: [PATCH 6.7 182/713] arm64: dts: imx8qm: Correct edma3 power-domains and interrupt numbers Date: Sun, 24 Mar 2024 18:38:28 -0400 Message-ID: <20240324224720.1345309-183-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Frank Li [ Upstream commit 5136ea6b109de66b1327a3069f88ad8f5efb37b2 ] It is eDMA1 at QM, which have the same register with eDMA3 at qxp. The below commit fix panic problem. commit b37e75bddc35 ("arm64: dts: imx8qm: Add imx8qm's own pm to avoid pani= c during startup") This fixes the IRQ and DMA channel numbers. While QM eDMA1 technically has 32 channels, only 10 channels are likely used for I2C. The exact IRQ numbers for the remaining channels were unclear in the reference manual. Fixes: e4d7a330fb7a ("arm64: dts: imx8: add edma[0..3]") Signed-off-by: Frank Li Signed-off-by: Shawn Guo Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- .../arm64/boot/dts/freescale/imx8qm-ss-dma.dtsi | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/freescale/imx8qm-ss-dma.dtsi b/arch/arm64/= boot/dts/freescale/imx8qm-ss-dma.dtsi index 13a3531873401..459ba2b9b7f31 100644 --- a/arch/arm64/boot/dts/freescale/imx8qm-ss-dma.dtsi +++ b/arch/arm64/boot/dts/freescale/imx8qm-ss-dma.dtsi @@ -96,7 +96,20 @@ &edma2 { status =3D "okay"; }; =20 +/* It is eDMA1 in 8QM RM, but 8QXP it is eDMA3 */ &edma3 { + reg =3D <0x5a9f0000 0x210000>; + dma-channels =3D <10>; + interrupts =3D , + , + , + , + , + , + , + , + , + ; power-domains =3D <&pd IMX_SC_R_DMA_1_CH0>, <&pd IMX_SC_R_DMA_1_CH1>, <&pd IMX_SC_R_DMA_1_CH2>, @@ -104,7 +117,9 @@ &edma3 { <&pd IMX_SC_R_DMA_1_CH4>, <&pd IMX_SC_R_DMA_1_CH5>, <&pd IMX_SC_R_DMA_1_CH6>, - <&pd IMX_SC_R_DMA_1_CH7>; + <&pd IMX_SC_R_DMA_1_CH7>, + <&pd IMX_SC_R_DMA_1_CH8>, + <&pd IMX_SC_R_DMA_1_CH9>; }; =20 &flexcan1 { --=20 2.43.0 From nobody Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DE628143874; Sun, 24 Mar 2024 22:50: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=1711320623; cv=none; b=WBwQk5HaDHfM4q1AnZYYinFQy1XPZs08CQHgngtaopz90jM+Ksp96AL6CxMR1CoWkEsbJOn4N7WfJrOEg/fwJzVdI8QyN6LSWw/BIJkBLEETm3t/LTPGAGxcbs/x4/5ZTdulOTDzoHl66RroXgzYI/C9sL/Vws0qMn8y/8sIEiI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320623; c=relaxed/simple; bh=v7G71XpAS4tiF9hc66eXK5SwNfvpgF8Od1uEjij+cHg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=VY1P4GS56byhIu0OV5mArLnMIHGai2QJJa5B4+dQBFpoB+g9DpwpjzaW2nEfCge6RlhP16JmEl7M/e5ZGXYxyx9Q8npI6BoSV7isgG17wpX6crLT6XAl0gWGHTxQYp9jyZoWN3B+6BeDJ1iMP3cZBQAKtuF87fzO1o4899RjVY8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=RcXTrY3k; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="RcXTrY3k" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1058EC433F1; Sun, 24 Mar 2024 22:50:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320621; bh=v7G71XpAS4tiF9hc66eXK5SwNfvpgF8Od1uEjij+cHg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=RcXTrY3kfVFlpbB7mQ1y+tXPIlX3N0ZpqL4cmp+jDwdxO9/WMc9Jp/fG/gVcYPWi5 oKZOI/EW6v67Z2sBorCyYPO3qwngPNpS83S3Gn4fyNArQ37uiL6ydZKAW5GEkea1xJ F1oUGwRMA5rRF+d+0Wum0YRYn4GfshcWFBHXlJRlC0DVtDErnCKQxodnUpmZKQXoFR enNXLKVivCX6aeLRkxKyhFCmtgKssUxqV72+qBwv/Wi5e17qSDFFRiGRuSDbVm6gPZ sQ64se6xMrAOh36iR2DMfDyS5PRd7pzYCsEidABPvwGA7NU5/WXegcRf1U5QKb7Mr4 38uK9YvQ8YLJw== 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.7 183/713] libbpf: Add missing LIBBPF_API annotation to libbpf_set_memlock_rlim API Date: Sun, 24 Mar 2024 18:38:29 -0400 Message-ID: <20240324224720.1345309-184-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 d0f53772bdc02..dad7917903d19 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D8C72143878; Sun, 24 Mar 2024 22:50: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=1711320623; cv=none; b=hoaLo+eo+cV6j0+d3WB3bxdq0s9QqahH/lRBu7ycO60aptZjht07OGgfhbf3CIruB5l8W+s0xfEk0PnGj75LSisKIR6k6qQ4I+pGTB7j5BLF+XU8hRGt1SnqB8wPYWjrMyRNagskZ7pi3TmixJkG4YEd6HMEc8Mkl5PM89J5QIM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320623; c=relaxed/simple; bh=ivy/tPZD7wUwyR3JokvkZDSTjlMj0ftaD72isNloX0w=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=kgB9eT8oXThDO/SyBuqycUY4VQcQ6SItj5ojhF57uWbFAU+yJwNd1L6OgyE40O72OIlaH9NcMq5kogh4/o+6D0INaK80OHl+HTHxZggP2VxSh6cGrwR6F4IoQUYVlHZQKNMUoNSfrb20Jj++FC3kulmz01DlQFZeM8Ik10e7vMY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=RhCvZw++; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="RhCvZw++" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0CC0FC433C7; Sun, 24 Mar 2024 22:50:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320622; bh=ivy/tPZD7wUwyR3JokvkZDSTjlMj0ftaD72isNloX0w=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=RhCvZw++4ZAruO+S0+In9AryFmCSGXdnIzHI0msh2/JU5ityw3yat7FHl7dVdUT0O U+UrZRReLs34OfB3Lvb5wAQ22cdijwOSXSzUcXGy0V5qc0GBSAEoQ9W38VjvFztZSK odk8r7cSNi5H0jNEwlxcKXISc7PDp7VUk/Y7sAk05PP8gIWSlwjdSeuznQMsXzY+/T 31porXeCvpbkZuFc+F05go6W9n955SzDeUvZnxYYAr5+Pr5ulyXXmCXgDBYpMpAhO8 D8VNfoKciVWXUY5Cq9VpNWyuLb4X3dXSicAisT4honUeEknEJuFA475MSx9/EN+zt9 QLFHrmRQzWVMg== 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.7 184/713] wifi: ath9k: delay all of ath9k_wmi_event_tasklet() until init is complete Date: Sun, 24 Mar 2024 18:38:30 -0400 Message-ID: <20240324224720.1345309-185-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-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: Bagas Sanjaya --- 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 efcaeccb055aa..ce9c04e418b8d 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EB43414387C; Sun, 24 Mar 2024 22:50: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=1711320624; cv=none; b=I3nQnaldxsDvu0GF/V9Xo8ET/yGVEVPa2PXrwLV3LTBA/n9l2oHBMXlX6M9MoweCY/65APjlm8Um3q58gfDsIa8nmmmw49FFoR+6jMzl+AHK/KocGmdtNGh7lE0/Qz8D+JoubzMdPwtJntuQqBplnOe6utg25UYwb4R7OhA5cJQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320624; c=relaxed/simple; bh=7GM/pytsgj8kxhDRcFKWylMScpplQ4ixLOmw8qcrzZg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=untlGjpZxKY04XicNJqUZve2vEwvaDg0rVrh9MVBBuUJBm6hltrjb9kDYibJk+SjuiDmqfkJ4k6+khDLDHptoMeJqq/8Yn29BezFGhNrYWUu7seK2d1/AIDabhrFuLjXW5J5FlyxrsFJfzNF3Z9Gh8MpBXQEb3fVjS6w2zr55C4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=gCtFj62l; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="gCtFj62l" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 07CEEC43399; Sun, 24 Mar 2024 22:50:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320623; bh=7GM/pytsgj8kxhDRcFKWylMScpplQ4ixLOmw8qcrzZg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=gCtFj62laAj/V/Xoyjqu3BJrAydq3COSajbVZGsefEI0EBY0K/QINt2l5P/O1bx2g UENDtNVJLk03VdWRYdxot76Z58Ek/9c8t58sHwHexMV93YIOls7UhDf2ftOB4dkBf9 XqSGs+EF2R8Ft6f2GuoTtIAf8Wv4xDd2PxCCdNttwR8hS6nXT+zWrB37qNmwtUgYcp KEAwVPI9PyBC63b2OXoBfTxZMhAYwy7AoYYWfMKjlSkVHpPwxa214fMVhSUvviFPRF +Gk7SLhjkAzwr9UuuVNF3EpDJ0ArZlv6LLyk/xJRhRBJvJU8D/en+G2wk1A0Gin0UL eJa3F5hDc0gyw== 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.7 185/713] wifi: ath11k: change to move WMI_VDEV_PARAM_SET_HEMU_MODE before WMI_PEER_ASSOC_CMDID Date: Sun, 24 Mar 2024 18:38:31 -0400 Message-ID: <20240324224720.1345309-186-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 71c6dab1aedba..e09b21a82c20f 100644 --- a/drivers/net/wireless/ath/ath11k/mac.c +++ b/drivers/net/wireless/ath/ath11k/mac.c @@ -3026,7 +3026,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", @@ -3049,12 +3056,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DC0BD143885; Sun, 24 Mar 2024 22:50: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=1711320626; cv=none; b=XeuhT58kiK127+Dyhl2vuiDnvoJ3JH+h7e3TjOCHV73Dp9DYBOb+dxKmYEMiO4uVw7EML4T+cEgK69ZoQM4V3YgYjFRUnCHeW5rCyq1J8b2PDOZAKWsHNARXPAa83QvRmybf12ynn3rOjssV1QgG/eDSJjCxuW65/WyGjdPcGlU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320626; c=relaxed/simple; bh=m9HMIPpfAqglw03jHy82oj+nKsf9d6g9BerOlz36xXQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZTwY8n3e2R1iw7GErH2Ch8ySOPgqU3dr10eDn10/5i7uPqBV5G2zvz0plfZ5y5LwPJRe6Oe3+wyHurccnb98rLIdgU903lBvQyxa0W592J6LKMZ5+JYoukS+jQnqmmZxrxPoBV8CWGbH43X96MaBskxJGCjfVzShK22A4LHExdw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Kl/LND7P; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Kl/LND7P" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1E9B5C43390; Sun, 24 Mar 2024 22:50:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320624; bh=m9HMIPpfAqglw03jHy82oj+nKsf9d6g9BerOlz36xXQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Kl/LND7PyY95xPPGvSeT3Hw44VKX6SHevBzPzvA2FRrwBdw5GD5gxT3zsopbL9AQo RYL4avR8VI/524rcGsmEDlf7czXkXiruSeqXzn/La8WA8wfEf/y3NjQSw2mMHWWXb5 sZAZ8IsGHCu3SyxSzyrYySHC+xvyP8zs+JMayU8/duHHnq0iDJ8lznCm/f3uocckS1 MezBNbX2nKkcb44MXvPAv6K7gKQ0Z3MeKKmBYebwz4Uavty+Tc6YcTMEb1+BLfGpQy lkmaCcVdaz+4uXj5aUu1OXW8xVrgXzpav4Q6DBwrgo7i7v7hv6YTrAnW297mzNLh3k 5VIIpQnm0WyLA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jeff Johnson , Kalle Valo , Sasha Levin Subject: [PATCH 6.7 186/713] wifi: ath12k: Update Qualcomm Innovation Center, Inc. copyrights Date: Sun, 24 Mar 2024 18:38:32 -0400 Message-ID: <20240324224720.1345309-187-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 45d33279e665d..fe5a732ba9ec9 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 492ca6ce67140..62f9cdbb811c0 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 b896dfe66dad3..a489369d80687 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 f6afbd8196bf5..4f25eb9f77453 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 4095fd82b1b3f..c653ca1f59b22 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 b55cf33e37bd8..de60d988d8608 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 2d6427cf41a4d..d2622bfef9422 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 075ca1c34986b..54693e247cb31 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 59b4e8f5eee05..7d71ae1aba45e 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 39e640293cdc0..27eb38b2b1bd2 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 3006cd3fbe119..a6a5f9bcffbd6 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 f6e949c618d0a..77a132f6bbd1b 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 e20d6511d1ca0..e25bbaa125e83 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 fcb76f92a7dec..1dac8439802ad 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 35569f03042d3..d4a0776e10341 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 c4058abc516ee..55f20c446ca9c 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 0e5bf5ce8d4c3..11cc3005c0f98 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 288AD143886; Sun, 24 Mar 2024 22:50: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=1711320626; cv=none; b=XKLPsiAbz8UWWI+TStTZT/jS9ZQ+navJ0XahwLeJ/pqYEXcTimAOVev9SbTXbpPLbQc4LNgRXwkxvyR87ij38ubEraHK7eKcj4/crBftWs1o9FpJBfneuv0x/nXs6zDMwYkB347NaNlD29lyhEVunczRnKZgb88AB12UB8LRCe0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320626; c=relaxed/simple; bh=CCMTvASji0/stHiT5ImMEo2vqL9mPQDDspFCl9RXgnw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=M1FOLGB1P/iqEzYj2XlZ3kHqI32MHQjodDDyf0G4ZVBA6WD963rZYKYRNH9+B5UDtPtUhcEgBeHY7MabwP6WO4FKqLWVaZz2hQEpFjLK+Ietf6wl4/aDdbC/OiFSBACLuu804wM0QBsrT4dsFkoQtG0TA7jEo/oquic5caWmrlM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=e27uNjqe; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="e27uNjqe" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 05AF7C433F1; Sun, 24 Mar 2024 22:50:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320625; bh=CCMTvASji0/stHiT5ImMEo2vqL9mPQDDspFCl9RXgnw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=e27uNjqe4ue7Q7+ITKOAtj0soAoWV+CsvKAaPxbWl4PKeq5pm1edU400yxE4tEFrP Q9uSa9ICXMcMZbps6WC2f55kmfMchTE2aiByA4oFhW0E5u7h3P6AhriX4/Cwh1sg6l 0qijpGHMA9m4lKsknRTM3O4skNUJ//f1wWQVjy4ObaHHg9i5jhOvF6pYX0K+nUGZwP qYqxH3leZ5913OlJqcAh7ErQhWW/1Izq9IYHwpWU3BVsXw4zwRopqiQucwPucTIwo+ vznAJKude0NOqCWOcYQSh1eOPeEm5HTk5zrfhH9C0m7Bgl3ClQHgNTqzDV8u42Hsn4 YwUVTwi0U5aTg== 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.7 187/713] wifi: ath12k: fix fetching MCBC flag for QCN9274 Date: Sun, 24 Mar 2024 18:38:33 -0400 Message-ID: <20240324224720.1345309-188-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 a489369d80687..1bdab8604db94 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EBD02143894; Sun, 24 Mar 2024 22:50: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=1711320628; cv=none; b=aGBVXhrjH0hbzObvu7xqT1pEq+pf5yJh45TB14tzKQZVDkVvIIWA7wv2kV67gkeGHp7M22khlU4SqbUk5dfItN9nzuphRYMuH7txMSob1CmewJhSCDSA1pvWt0xoUQbIrgPlZNTSzXgxAaoOt/BUWrjoqSEB4WIlKS4LVVBUOFs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320628; c=relaxed/simple; bh=bTEChCyEJj/3Nl554eWTVKSB0lt5bi1igmaG3wMuy3k=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Fdx05Ws8J3Zlpl/Ehmx2HIIN7ax2D1iZKBal5YqYLS9HQE8SSc0f2x5fEvnp5WpMGuVoUSBPbddlnNmFK2Z3xPsWXcpox3hPpZlRP3Ek1p06zuY1HiDGOLCDblR3kezLL01Mcm5TpZr6a0nVen6/GVUfPoz98NXTCN/xahHGImQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=i53VxMAr; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="i53VxMAr" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0329FC433C7; Sun, 24 Mar 2024 22:50:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320626; bh=bTEChCyEJj/3Nl554eWTVKSB0lt5bi1igmaG3wMuy3k=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=i53VxMArkW//pPlDZqCDYMPuWFqKiIe0PmB0l9cTEsVQaJJeSSNyM9AfI8sdTtQVp oHSesWCtFPwgYyt9pW8QseeitxBZMukdeNLGHtQ76InBhqU1GLgE29/RYrSjiCuDHw bsPEouDreFntBU0gYzRjh3QPw9irt9oWUBZc6CQDHjHzAyZgribt+NVJxjljuflLFX 6Vbq/7AZNXioHJlrnpyEqrIYVCV4MCkUAbgT1EfwuP2shu+KGU2rVmt4UzjXpSHYsO yWXTTRkS70f7b36HeTsSLrcf9mpgJAdwV00ULKzQ+iDGg0dKuu6S7nclvYSsu6yvHH s5jS68HP8tPxQ== 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.7 188/713] wifi: iwlwifi: mvm: report beacon protection failures Date: Sun, 24 Mar 2024 18:38:34 -0400 Message-ID: <20240324224720.1345309-189-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 af15d470c69bd..7bf2a5947e5e9 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 01FA6143895; Sun, 24 Mar 2024 22:50: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=1711320628; cv=none; b=sbgM3SHlpD/xHDOgn2hJgOUVhoCd6NIXD8TXVxgnn7HQ7Lx63EctWvBAskLHskkagISu2h8AWXBSX48mB/7T6/qygwTsOxCS2yFPxNuLI6wCfKLdEX07FppBO5Z+1YjwZ1mEvZ3AM4mTt2I/GsC9G7GBsxQ45onC9JGpoa9gbFI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320628; c=relaxed/simple; bh=500iziS17KIhNZFZcgB27dUjXGxBm1jMdkgOk0BtKh0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=FZ+1lUhSlSLGgnF4F0DPnhsVmShTqzDqZKrg5GcbAHMAGwDPE8JeqTY5z7OM0lFxF75Ubm3FmYmGjgizjuybpTDu0xqjIm2l+y4PKQHlioUmqTGh2D2pgI5jzH53Itej0LcsN9VPQN1JSG+KUcFKt2XpaU8xMtL45ZpZjzO3RzI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=SZVo9yOC; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="SZVo9yOC" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1D7B5C43394; Sun, 24 Mar 2024 22:50:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320627; bh=500iziS17KIhNZFZcgB27dUjXGxBm1jMdkgOk0BtKh0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=SZVo9yOC8lOSPAGbQ4jzOWbOrRVPM5f+x8CMMfOQ/UlrZpH8iF2eyYuOVwR6os486 ZzRrR0KTt66N4cih/gm6wRQm37c4DEuSEq7L3EKMKTDTcCmDvgkXn8ie/kr6MG5uPh y4V8pj5YsnFkIhxLFjjsI7l4cOM/dAsbQFc7NVy/v6pfGlG5c6ukILgGPUbfs7IrjY w8hihTVwZLr+eocNhzWAYNZN/pWhKtXn1Rsn7Ytmi/zhYuh5BERqI7aoKloZe6/pMw PF9e6Stj73U8fzlva+XchLVFo1LgjzxhpQwpgWZHJnrJC0ZEGTEB0fQpktf9CLgVmX dWl5zrTfM8ZJw== 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.7 189/713] wifi: iwlwifi: dbg-tlv: ensure NUL termination Date: Sun, 24 Mar 2024 18:38:35 -0400 Message-ID: <20240324224720.1345309-190-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 9160d81a871ee..55d2ed13a9c09 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0131B14389B; Sun, 24 Mar 2024 22:50: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=1711320630; cv=none; b=k31Vq6bRZCPlwPcZOLL0w3E5xU7h1UsZX8VvJ341OLQVbK/P0M3IoJLxXOhGufkshi4rAqlFp5AGq5dmkc0GMMw4Y7HovEQNayMt+C5YNivTt9iq65/7WVciYlRsSIVfQY/5yHjJzZkgsyV3u64ri6ShYXba7JuIqSehvWoid0Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320630; c=relaxed/simple; bh=Q33wawuXrNE4Ttm2focUd5VKY7etrwROUKCZsilVbIM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=KC2YuybvcoyxhLUAlKMgEbiSb3x/08x8LCPmTk/FUnpNfHUBnBNTbdeAA0Cez/FYbNNiHI3YnhObfEumkojO+e7LqTV+jbrita04aUeX2NjetfAQ5VeTSbb/EUQtC3ghvhgupZhN6VsQjQJdRli/9DHuIRiwWGh8gIImY68HJGw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=GfVjYYf5; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="GfVjYYf5" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 21345C43390; Sun, 24 Mar 2024 22:50:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320628; bh=Q33wawuXrNE4Ttm2focUd5VKY7etrwROUKCZsilVbIM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=GfVjYYf5Q5SduJZqE0rNVcC5du009Xra7Q2ILQ5GIWyOLo/drhS1IEA9H1VlQG5sE LhgEiRdcUxz7oJ0nWIe3Yzpo9WXAm2VXHLdlUk/5gexoPaHTB4ZDtz5EQBLZWrv9Dq T9ky90agmboGbU53xxKyz9gGrCae8JgVjwaOKwIOcaFGg6C3Pf4YR6LBceqERIyAa7 nlWToPE9Q+eMgdwIuEjpWnRC0Q9ReQqIUESwRiYC/0iWxxISB4DYgvxTJVmxX5/DD7 BQun5VBCG2qWQ66uI4VRnAUv3Cw1uPrCKeFM1S1bHeUhQgGnVJ/3dYON3mFQxdySVc Yjiz+8rvVYtcw== 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.7 190/713] wifi: iwlwifi: acpi: fix WPFC reading Date: Sun, 24 Mar 2024 18:38:36 -0400 Message-ID: <20240324224720.1345309-191-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 dcc4810cb3247..f6ee5afb3320e 100644 --- a/drivers/net/wireless/intel/iwlwifi/fw/acpi.c +++ b/drivers/net/wireless/intel/iwlwifi/fw/acpi.c @@ -1296,7 +1296,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); @@ -1306,13 +1305,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 e9277f6f35821..39106ccb4b9b6 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DDD1E14389A; Sun, 24 Mar 2024 22:50: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=1711320630; cv=none; b=FWnwj2hZHO/KPFIjvSpPzQCBqEQAm+CS20sU99X5o4CcrYRbFOHucZObTXD8XvjiaNCvDBdqh9n2Hne/4hk2ztYrJHjvLzAwSqTc9ZANXA0gOcfbpXM8jitleF8I9ykEk+jj5kUNtZvB88BZCnp9ASGKKJu3MSP7w3HFp0NyJSg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320630; c=relaxed/simple; bh=7vxP6PLAGfDXn8ffRJn+H+EcA1AEGDOTmyoiPNJ0bEI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Bo+krp8rN4NIwSSM2/5rugVuuC7vg4YAsc32zjmIP0IP2n8pOvgcno9vwgA1Q+IwRf4bHuzHi/PrGSXzjUv1S9FmzPAbt98A1nlxDCv0eZUsB8yT2h2wbL+yTf4V0F+q41TZlZz9I6hZqJ8cEmDQFgKoCHv9ZP1sfiumxi8aZo8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=G/Mg5/h1; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="G/Mg5/h1" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 23D20C43394; Sun, 24 Mar 2024 22:50:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320629; bh=7vxP6PLAGfDXn8ffRJn+H+EcA1AEGDOTmyoiPNJ0bEI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=G/Mg5/h1OkTXGxUxIeV+83XWOWqCI9fnPs759UjRfp0oAgFaaIfVc/d3hmBp7iZMq dxg12SWzjVD1ZfF7EM5CSOKlhDzwnsQuZGMiuP1B/ucUdIiNjB4HCXrmEU4y+fslKw s4XWEh3dtr02jPcfgIymbJ2b1abTiRTXV90ym1F1Zc7fJthXnuRe7EZhnI4sGO3vcQ NequFCLNE7U+CLmjNbltmn6lmRFJFMgeF5+i4h+X4/12dr9V4RVeC87YM60s3W/Fii 5hHZNyxn9tpeOXgxl4/BGTE3kSn4T54TvNKrnM2yrPbN+upmHGCoxPsVRxupez30aq qQYyjQGqEYmvA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Johannes Berg , Miri Korenblit , Sasha Levin Subject: [PATCH 6.7 191/713] wifi: iwlwifi: mvm: initialize rates in FW earlier Date: Sun, 24 Mar 2024 18:38:37 -0400 Message-ID: <20240324224720.1345309-192-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 350dc6b8a3302..b87173bb61f24 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c @@ -3684,6 +3684,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D88D9143899; Sun, 24 Mar 2024 22:50: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=1711320630; cv=none; b=smmeKy3bQsHpklrrEp1RPsHQXw6gs2NpC6R7D9aU7qMSxY+vU3NrxRnZpLUi+Iamkt4obkfmrNXJvoSLcSqyZBpgyHhisK0cfi48IIAYjgonAcHNug8a1OApy2wDXYXB/3Y0VRmsi7mwxYJu1rkT8dWV3uS1kLB9x7loDTg2zU4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320630; c=relaxed/simple; bh=hqGZ4LC/p9yLhUx80JTHDn5iP1OAqL/6mwd8bLXnsaA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=cFxMSTk6DGbxR0BSoWAUVeWllyhQn2L4NLrFGhOPjIG2FZ8ImtUT1MTHDornnttpB7z5YrYI6UxrKCIypbXJDb1tWvl3HdwpFK2I01vQnOZb8XCcpjDjbQURpUwDQiCh/cOhZOo8s4LOpZGaACJ5SSfAgMruD9R3zXrI3kk20gM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=t4UYPiMp; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="t4UYPiMp" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0E2A9C433F1; Sun, 24 Mar 2024 22:50:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320630; bh=hqGZ4LC/p9yLhUx80JTHDn5iP1OAqL/6mwd8bLXnsaA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=t4UYPiMpqrR+vqc+iGkUrT0PYhu9kHFkNGZmBhYAUJj7N0c8+62rD38aP1IY/0NwA LhlzNYWLq2pEEvC9kisR69m3pP3nIzmwtiPUXhCcttAZ2KbhNGCcCOxaatZ9v5xd/k X03AX31uwgxYbbEeMD8D1NSmOi68clQPa5FA98vwokeploiN1Olh9NKiPFugQ7/pZv xsE2gn4GpLqjDBScK+9VogGsaS+U8rBvUySHocKpPCRw56NtkQhgY559ZWjcBwXBTf DWtjmGxSL1wNylQVRd3PaN6h33AMUYN27sGCmwUQGAtJiUiUxW0zSPeuleltnKIhNi rfKjd1Jw05q3w== 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.7 192/713] wifi: iwlwifi: fix EWRD table validity check Date: Sun, 24 Mar 2024 18:38:38 -0400 Message-ID: <20240324224720.1345309-193-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 f6ee5afb3320e..e161b44539069 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DA52E143896; Sun, 24 Mar 2024 22:50: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=1711320631; cv=none; b=bqlTCByMmzZgQt3CZv5EKQQfSt/F4jnN/mdHD0ijF+0HTArL8zE0FLTjpeCNlXqrZLfdAIKy9Gjwdzz+9/YAVaIPmDTwXsedFg2Zplc2xAfGk4jYgN9ea6DYSK3YT9E1UZQ3Xi32ujOUjf8HkTry6WJBd09fJ+7wJ43lHQKn26s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320631; c=relaxed/simple; bh=Gr8RHeqjQz3w4DuVn8wa+fzTUgznUlmVnLsF6Wg5gGM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mDk32RL8UktLfnDlmv5mATecr4elkjvVBk4iOBHyr4HQwSuAwNtx+6IoiNDIkhBQOFNjBvylNGzy8Or7Bhsotq8Bov8Jp2iCP4QG50SaCf7SldS0E8Ydsioc8MzSmIbQhL8aGeBZ5Yy/5PXC55Ykt6OL3fCWI7ZkgywqbgRbU1A= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=eXdGEi/3; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="eXdGEi/3" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 09B97C433C7; Sun, 24 Mar 2024 22:50:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320631; bh=Gr8RHeqjQz3w4DuVn8wa+fzTUgznUlmVnLsF6Wg5gGM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=eXdGEi/3Ie4T1liy/yozZTOzBUU91zQaeqqmVmhCSNChtFrl8EPhdbvgivXuljNx3 8DFLzGK2kL8wxxnHLH92gRRkc62kgmR+akccmO2LBtxWZRih+OsD5nGyznpPt+iUgl VERpS7kaqiXcGC1VFaKnWH4fuZg8S5PTlp1CaJRFuD2p/P+rD4Mv3bnfACLe5YYYGv dQk5xCv12nocSk+2mPcuj3reYzvzDDZosvyDR49H9SMoLcbwbvM2BSPdKoY+/309RK +K8A7PQQQohDBIuQdTBaotAaognqhWa6NHMDTcBe5jRvxsIIuxsFK7aCgc0c9kmY8V c8KY6a0MNp23w== 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.7 193/713] wifi: iwlwifi: mvm: d3: fix IPN byte order Date: Sun, 24 Mar 2024 18:38:39 -0400 Message-ID: <20240324224720.1345309-194-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 a640860ab7acd..626e9b94a6624 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/d3.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/d3.c @@ -2207,7 +2207,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; @@ -2219,7 +2222,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_convert_bigtk(struct iwl_wowlan_status_data *status, --=20 2.43.0 From nobody Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0615083A14; Sun, 24 Mar 2024 22:50: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=1711320633; cv=none; b=grberrzKoTw5cNsVYhxgstXHR0D0lGBbT5Ab/yW1lhnHi/6Pu6Lfx8bcSFNfPuwQOGeP6Bu7wE0blV0UDm4i8+Qf4grLNFtnl0p6Euv/8YheNFKxG5V+E1Wt9NIxvDYIZBHMeMNn0tSVEhjqbx7MCWHzkRKyyzePkY8l2/6T8/o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320633; c=relaxed/simple; bh=afXxZDuytKdo2b9kX8f74F3OLY83odqcQkTH0+MIdeY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=HE4Yh1VdTeK64StQ4EbN/y8t0f7/lueZyHR9c0kvu0HM7huIQRykRLYbeaJkbWxcT14cpXSngS9uty+lUC/9lNUGUbsyPmTwELZ1emnFs2WLohjctxQaWtI4hIzmnG29pilCKpBmJqAPCMnE04JmAmS1+3jAX3wF411fwcxZCEI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=rcCzmNJe; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="rcCzmNJe" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0AE6FC43390; Sun, 24 Mar 2024 22:50:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320632; bh=afXxZDuytKdo2b9kX8f74F3OLY83odqcQkTH0+MIdeY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=rcCzmNJeQSqGrXmOqica05m8Nr6S6aHWIC/G+oEXhRuQ56jD0aHiV55aa3XvkJLqC LzR8yj8XTpPS2b9GOAvK6nb5SdMuscjHuHgzUqwXWIczxVfxFHMuUBflzYJBlmoobt QetNKUu6maSnTOm9L75qORiVwFAlup3+uBz6XoSCbJmh/q/hdUkTMhPUhKrdjumaPU m40mOuTkeuHvEKsOcfQ2ExQffkaMSw2JSngfFz/NUiBjARxOq/o8Z1ZyxtABFOnENz aIlJD9/Ih30D2CdB1YGazU8yZ2J3SXYGdKUdbWNTnMY4fqrgAiKyoxWH7Eb/UcMGQY 6dtfP1OTWcO9A== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Johannes Berg , Mukesh Sisodiya , Gregory Greenman , Miri Korenblit , Sasha Levin Subject: [PATCH 6.7 194/713] wifi: iwlwifi: always have 'uats_enabled' Date: Sun, 24 Mar 2024 18:38:40 -0400 Message-ID: <20240324224720.1345309-195-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 f639602a58e7564dd091c7c0793f61042bad9bb6 ] We check this in code that'd be complicated to put under ifdef (CONFIG_ACPI), so just always have 'uats_enabled'. Fixes: 4a9bb5b4d949 ("wifi: iwlwifi: fw: Add support for UATS table in UHB") Signed-off-by: Johannes Berg Reviewed-by: Mukesh Sisodiya Reviewed-by: Gregory Greenman Signed-off-by: Miri Korenblit Link: https://msgid.link/20240129211905.bdc5fb20f00a.I902d801d79873c5c9cd51= cef8e8226e2acefe88d@changeid Signed-off-by: Johannes Berg Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- drivers/net/wireless/intel/iwlwifi/fw/runtime.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/wireless/intel/iwlwifi/fw/runtime.h b/drivers/net/= wireless/intel/iwlwifi/fw/runtime.h index 357727774db90..baabb8e321f8d 100644 --- a/drivers/net/wireless/intel/iwlwifi/fw/runtime.h +++ b/drivers/net/wireless/intel/iwlwifi/fw/runtime.h @@ -173,9 +173,9 @@ struct iwl_fw_runtime { struct iwl_sar_offset_mapping_cmd sgom_table; bool sgom_enabled; u8 reduced_power_flags; - bool uats_enabled; struct iwl_uats_table_cmd uats_table; #endif + bool uats_enabled; }; =20 void iwl_fw_runtime_init(struct iwl_fw_runtime *fwrt, struct iwl_trans *tr= ans, --=20 2.43.0 From nobody Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F07A783CA7; Sun, 24 Mar 2024 22:50: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=1711320635; cv=none; b=KGGmMLgGj3Rmb6GatisvWZYqQLgC0hat4oM/nz7j/hBg4FRSXTXDZbLanPghSNr3Egigml7tMgwTyp7UZQSGZLpiPtSmWeGRpFlXAMqTHhF9WEkpf44DZ3WB8UvYrVpiY0whYT1S3nIrHSdgES24MQoNSr4tQkcjwZwQLDoz94I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320635; c=relaxed/simple; bh=pVlmAalfx/qHJDARgi2MRdk28SfAdK+WoRh5Vt+pmI0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=GIhRtQj83Hy0wFYdFiN1hJiq7Wd2D8HbzMWV7qBQl4seWMn4wwIObWEFgY6pYgtgbafAESf2UBxTe460wyOZq2WmPus9Q7aDUdXlNG4S5GCVBL5p74HexGlajERRvYboxg8CN/Tbv841wb9EZuds0NMz+rKpTteOFzz2n6If9ws= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=TZzOum+v; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="TZzOum+v" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2116EC43399; Sun, 24 Mar 2024 22:50:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320633; bh=pVlmAalfx/qHJDARgi2MRdk28SfAdK+WoRh5Vt+pmI0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=TZzOum+v03MoPqPCAzrFyJaAA49erQEH6ZGMZS/y7O20FkIeP3V+lkhrYb1TjUJem ugBw7p0vTicVfZ0VZimfyETxRP6NB2NpXpKXHAKH53dUksc5a/4qQHV1hufjB0UY7h fFffrX3pLfF0rPCvw/K1WFCUotZ6t434GsM2wsQqCHechhdP58HDyio1/VoaZyCTqM 2cyPBjIsQTTXbCereeMXouuiSDONoZb8SckOTwBEG1MpDB9T3kCgQ0k/m8vVrzvcE+ zkTmompMrGq0+zq7JG+xM7bwfpIYEVhhyiPf39YeMhlGUZDWaoRi5igG4Enq6DHyLy B3uS6iS4a/ykA== 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.7 195/713] wifi: iwlwifi: mvm: fix the TLC command after ADD_STA Date: Sun, 24 Mar 2024 18:38:41 -0400 Message-ID: <20240324224720.1345309-196-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 b87173bb61f24..68c3d54f587cc 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c @@ -3795,13 +3795,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id ED09783CBC; Sun, 24 Mar 2024 22:50: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=1711320636; cv=none; b=UWJkI6XAyb1OfsBGDmGVY1ynBY5zaZG+DAdP4cXbrFh4cJyadS+vW5qBSB+K0wh261AYbME9GiptebpWEzSblqnDt4/nU0y2t6o3r2TNuYq4OZjDuhnDBLgHK7MYC0o78chrUDxpxx+2SzlciQiT6SZGMa/D4Og/BGaB2Ttw2AU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320636; c=relaxed/simple; bh=R5MgffQAqsovV9p+t6iCvXpyZJGJXls0j6QgS0aphW8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Tn/++8ovsSUjntQvnQg+jmmRC/HYWYAkpncU19KHv78p62d4wzN2pKY/6B57eE2JRALmYp9vnFUb9eeLDPbzEL6ktHpkpt+rEPpEylyNwYYJmuZbXMS/nz8+owF7xqu8tsouNveZgBBwJf1/URqT4Dk2k6Rrv598RPuQq4Y0dmY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=UnWeakQm; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="UnWeakQm" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1D953C43394; Sun, 24 Mar 2024 22:50:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320634; bh=R5MgffQAqsovV9p+t6iCvXpyZJGJXls0j6QgS0aphW8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=UnWeakQmmFuxvLh593vpxCZNb3Zjs8/j4AppQowLEyQSWvMOVh9LtFtOE7+EkAGPm w7BKHckTikNyATZFA+vbiNkltTC/CZKU0kCBYSORxZTp5zIrfBZt9wFSqRt9mNRs5r AwLtQls35XBz4EegkiuLi+6MyM44nai9meFYKuNKUngwZ5a1JJI23pXGvkzaFcANeE kzWPTgFGDH29pl4BbVZY8InGH/Bz29Znhd0izLN/or/119HDzM4KvoUtXmpWz98ttF TueE+z2tK9/OLStFOK++wmhuHYxTVigVqYRfVsT4zrXgl+IdgwALZRHW08ToEqXD5F 7948yv76tX5yg== 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.7 196/713] wifi: iwlwifi: read BIOS PNVM only for non-Intel SKU Date: Sun, 24 Mar 2024 18:38:42 -0400 Message-ID: <20240324224720.1345309-197-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0F75C83CD2; Sun, 24 Mar 2024 22:50: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=1711320636; cv=none; b=LngyMbpz3Hulb8fAE1zMLVvCuuutPjQsv+6iWgnbXJMrQNuNQuAhB+GjmUcqcdPL1s0Hdukw73dSAnvRXaFyidW0RTkSGax1nAIBwldO7GQ8SR9A3NJpZ0Xkl7NjpXjTSvNZNyHnPrxs40lFYbU9lWjAdZ93tXw7xr1XRAJi1TM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320636; c=relaxed/simple; bh=aJJzQQrpiTfZBv6U5QGeic3fSx+uw2bw3ZShTZrhi5o=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=J4ZdIFK/y7R6TFL1VlX9TcAB3W74zNNfcMUTn9xrdTcqnLGwHOcddqHgNS+lfGGq9VTMm01QOajEsT8c3szkT2oQhp1YH7Ck6aJ+/VA4gs1+KA2q8EnEf5/z8flSmGZj/ZqhKRBu1sfZQUQgOhQi2vEvLsVK7vt9vWooJ2xukOU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ACpBC8hQ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ACpBC8hQ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1B30EC433C7; Sun, 24 Mar 2024 22:50:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320635; bh=aJJzQQrpiTfZBv6U5QGeic3fSx+uw2bw3ZShTZrhi5o=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ACpBC8hQK1A43BXKzl1VFun/TB1XTaozESFsLxB6EV49hRf8rKOiS3r/U/rL1GCWT 6XRCRbAC98PlYRNr7EpcHyT2QnNZnOkfVFRvRVcywe5V+XmuLmCDG7CG5RTozx0hpl /UX+3XwlKDusfMQbunKKyN/m0GOwod0kKDavJu2ZS6bG4HJG8FC/R50D8LixVzQw+Y BZ4rNOpMdMpe+XWGtcTkxZ9NSqoyzsVPqIAQP5VWeUrxoCao1ogM8LWGmsCtYKMNTJ Urr8YIlyaB1St0zssd06YeksgMrLtw3FvSTT6W9mPckdcSBIH7qL9AvhI5RO8KrW5z z6e49GTsJQPBA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Martin Kaiser , Bartosz Golaszewski , Sasha Levin Subject: [PATCH 6.7 197/713] gpio: vf610: allow disabling the vf610 driver Date: Sun, 24 Mar 2024 18:38:43 -0400 Message-ID: <20240324224720.1345309-198-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- drivers/gpio/Kconfig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig index b3a133ed31ee5..41b51536bd867 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 292051D8BA0; Sun, 24 Mar 2024 22:50: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=1711320637; cv=none; b=TfBu2OGIWASp2Pnamfy5n2bb3iXJmkLIQHnDxomceSKpqepmFe6QX8zBW8kVJGe7Yt2lshGQ7etV4Q+LfTDOvW1vpF0JZ09nOUvGgn0FMJkNJc/D6TJ1hT6Q4RglONygg7ByZVMyFHzb6+cYBfFAjxjUM3yT5e9JwGa604CWKvg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320637; c=relaxed/simple; bh=Rk1Q+Aok+VkjPFU/uEYsGNr2WdeCIZyK5WHjnMJWslQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=SFjAxv1lVQX5f69g3sNM7KR0GwkLWQ52vT9Wi/K9zGs/ELF9314Xg25XxrGZyXVUrTGinweafa3/SfJADk7x0WPdoxyEswnh64YsaJxvnEXokoSAGysnxRnaRFktvk8EJ8adCWAJyu9bnTOg6dvNtNnf3DWuwVASmIuluHMaWds= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=O4/ZxaO8; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="O4/ZxaO8" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 48984C433F1; Sun, 24 Mar 2024 22:50:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320637; bh=Rk1Q+Aok+VkjPFU/uEYsGNr2WdeCIZyK5WHjnMJWslQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=O4/ZxaO8PMqliNl+7KLodkuLq1XbIWvKzXQZfRh8Ow67nbbY4EQj6dtoUhC0zh5tg c9cPNoHxdOADPutAcKqIJk/zs3RmF7xADoTTRW/LUQ7GS9Jvb+bu+4ID8NpgQtXHRJ yL+9eLCAhLP2vBghXO8jcWrlDe4NJAatriUUI6/S8Bar12orYV0FgTNUDc41FQO4j5 LIjDPyn5DFZeUZVk5YDNFfSXSB+hFCuOsRj1fTzuCbJsV5Dgn9pk8r482C+SKLZIvE 7xNU+z5tZulkiavoAsJW6Fki0RvzBLcqI+1RRkwUjIa4yP0YsO5kTQQWZhQB/LlQsF iDCbaufmFv8kQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Shung-Hsi Yu , Jiri Olsa , Martin KaFai Lau , Sasha Levin Subject: [PATCH 6.7 198/713] selftests/bpf: trace_helpers.c: do not use poisoned type Date: Sun, 24 Mar 2024 18:38:44 -0400 Message-ID: <20240324224720.1345309-199-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Shung-Hsi Yu [ Upstream commit a68b50f47bec8bd6a33b07b7e1562db2553981a7 ] After commit c698eaebdf47 ("selftests/bpf: trace_helpers.c: Optimize kallsyms cache") trace_helpers.c now includes libbpf_internal.h, and thus can no longer use the u32 type (among others) since they are poison in libbpf_internal.h. Replace u32 with __u32 to fix the following error when building trace_helpers.c on powerpc: error: attempt to use poisoned "u32" Fixes: c698eaebdf47 ("selftests/bpf: trace_helpers.c: Optimize kallsyms cac= he") Signed-off-by: Shung-Hsi Yu Acked-by: Jiri Olsa Link: https://lore.kernel.org/r/20240202095559.12900-1-shung-hsi.yu@suse.com Signed-off-by: Martin KaFai Lau Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- tools/testing/selftests/bpf/trace_helpers.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/testing/selftests/bpf/trace_helpers.c b/tools/testing/se= lftests/bpf/trace_helpers.c index 4faa898ff7fc4..27fd7ed3e4b0c 100644 --- a/tools/testing/selftests/bpf/trace_helpers.c +++ b/tools/testing/selftests/bpf/trace_helpers.c @@ -271,7 +271,7 @@ ssize_t get_uprobe_offset(const void *addr) * addi r2,r2,XXXX */ { - const u32 *insn =3D (const u32 *)(uintptr_t)addr; + const __u32 *insn =3D (const __u32 *)(uintptr_t)addr; =20 if ((((*insn & OP_RT_RA_MASK) =3D=3D ADDIS_R2_R12) || ((*insn & OP_RT_RA_MASK) =3D=3D LIS_R2)) && --=20 2.43.0 From nobody Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 120C083CB2; Sun, 24 Mar 2024 22:50: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=1711320639; cv=none; b=IEiJM1lcbCn+3GYwkUa1K9LFAy2DskJfj/4CzKFhqBJusztlooRZm0rQFlVFhF3I+v0Uvqpt0+Lr6N4We/prSLerzwsprSJ3vMX0BS7uetdIvIP8CubwKnypKx11aMJaGv8EpGaF97q4nbpDRm4LFOIlSRVliTPa9+zzfNxcbqc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320639; c=relaxed/simple; bh=49DnlI4xLg7fy52362vWUJfff/Ui3fQ8OkDoSAzHm0A=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MPyGyiCj600HQ6QvgxypPgWHdgstTIdSis/lHGzkUDaxwx1UpJf0/09k0rJWi82TXBcerWk49BQrepPblqg5ZEIhVYW2n54UF3nsQDIdjJ6yLCIckT48fA8a+g7nj2GGahtSXgfmPk+qwUV521P+7fl5/+PJpDqkis78+pUiHMQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=mwQxMktD; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="mwQxMktD" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4EC1CC43399; Sun, 24 Mar 2024 22:50:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320637; bh=49DnlI4xLg7fy52362vWUJfff/Ui3fQ8OkDoSAzHm0A=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=mwQxMktD6gvNq3Cfxc+nMmwGAkclGuOB5XSeYoRB/fsGyAQshejL87sVB8Cke+XlG PxeD1tHRQHmdi83dlKNC8vHEz1d/F/x3L4CYUAqsi+zWyHZs1A6NUCFdYNYuFWz6mt hySOR+4JoxC/AENcvmpZ392zhxhRajOfjkE7YJUArpQoS0RlLcH6iDOMXCbiKin2Mo +Q5+YVzzgMtIR0Zxd7+q+qVfwoOFX39miwWuB6hCFmbo1JeAvaWJRvg7J5YQRbfHj+ HrFdm0/ksFKc5L7ISisJSj9+0CIhWUSgElYq/o0wxIIoQOwRCOd0xIPakGoCRSr8Bj cCD189Wn9z2PA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Tim Harvey , Shawn Guo , Sasha Levin Subject: [PATCH 6.7 199/713] arm64: dts: imx8mm-venice-gw71xx: fix USB OTG VBUS Date: Sun, 24 Mar 2024 18:38:45 -0400 Message-ID: <20240324224720.1345309-200-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- .../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 6425773f68e0a..bbbaf2165ea28 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 */ @@ -144,9 +133,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 @@ -204,14 +194,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 @@ -234,4 +216,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 08CEB83A1F; Sun, 24 Mar 2024 22:50: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=1711320639; cv=none; b=ask6HEjn0TMSpetrrPJvnNyCxMboBkvKYSm3rsmy77g+cGgsk2f5+aAy3oapqydqFv0EyT3WUE/jbUy/ZVi1waKtp4udJsvMz3fqgE7QkcO6uGKD0PEyy8TDARymi/PbgrDiHBKg8qn8ijSbnNRbHYPhbJNrLr73ceNfCj1u4t4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320639; c=relaxed/simple; bh=LokX5o72x0ED+b2JNMAGsU0bHH90SPf3RnjM0uqF/ys=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=RpqcwtjFevHR4R9LDiQO4Zstzi2BWYjrjDRX9eXQou7dzs2G+NI13hwtagvxQ4ScI+JP6ImJyTaj2ADPT5PcIbX5T5NsP0KH48igwBerSDqpxu6LhwBNaWk2F4uBDYwe3nzqSSsTvh24iaolnEvj9wQ1luNMDUDeHwKAsyXul9U= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ehJkzSIt; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ehJkzSIt" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3722EC433C7; Sun, 24 Mar 2024 22:50:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320638; bh=LokX5o72x0ED+b2JNMAGsU0bHH90SPf3RnjM0uqF/ys=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ehJkzSIt3V3b4dXBUnMMSMdU7EsSG6SjHKkK7g7a8KkBjpli+JsdkyvY0dY6XyUo+ iocBQEDryV0rce1USQaiLTCmlJr8MsMxTj88BZ79NVDhCsqRa8m962+EN+FwmfA08d n0hP/6fP7XA5uTYFQWT5rogDlf8LyVTh3q2OoaZyTIJPGFe49kvqxsugNno3z6pPh5 mGx1scHc/RqtH0KiH3fo9r5ODyTQhVlD6dKwWK2iZoTiE8KOC+1Pi2aDSRJ4ZmBZvo hP0342OBCs8TMgsdj32f5xjwgZxzBvY/7faSmoE2IhCrljHCEr1Yl/BxOmbyk1++5Y zsbwMfxKobi8Q== 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.7 200/713] pwm: atmel-hlcdc: Fix clock imbalance related to suspend support Date: Sun, 24 Mar 2024 18:38:46 -0400 Message-ID: <20240324224720.1345309-201-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-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: Bagas Sanjaya --- 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 07920e0347575..584288d8c0503 100644 --- a/drivers/pwm/pwm-atmel-hlcdc.c +++ b/drivers/pwm/pwm-atmel-hlcdc.c @@ -186,7 +186,7 @@ static int atmel_hlcdc_pwm_suspend(struct device *dev) struct atmel_hlcdc_pwm *atmel =3D dev_get_drvdata(dev); =20 /* Keep the periph clock enabled if the PWM is still running. */ - if (pwm_is_enabled(&atmel->chip.pwms[0])) + if (!pwm_is_enabled(&atmel->chip.pwms[0])) clk_disable_unprepare(atmel->hlcdc->periph_clk); =20 return 0; --=20 2.43.0 From nobody Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EC08784047; Sun, 24 Mar 2024 22:50: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=1711320640; cv=none; b=gGHcfEvNYImP0BxpJiae8apxLkqHY/rZmMW/wZ7uUjI9hcrA/b05pMCBxmEtiJahiFQsUy9n/7jgKz/3X92aFmGuTp1NF30ZdCS45PJeNdqPliaQ+0diXdNmTo4PKx0KTb9iHH/NKnLga+XCNpcjshOJQjk/+W1CuYFIjYTbSVs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320640; c=relaxed/simple; bh=LvtZg5e0VQtOBT+DmVlIpjevxUc7VebV46SOEb3fPHw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=QLycyzcAHw2g+7HBhA2V1TqYkE1CFYFMBZZ2+VmvtkcJkzKLika3pC86tEyFjWiVXWeL/yA9BptKmT3edTxVyXh//xpQeUmaNv/sG55HggYWceJVQlP8Ak2FFzsp72wlaGq2Tbs3RfIK3DATGS3z5whTUHHb0u7PkAnyc0hTfIk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=c6rzQ1jR; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="c6rzQ1jR" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1EA7CC433B1; Sun, 24 Mar 2024 22:50:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320639; bh=LvtZg5e0VQtOBT+DmVlIpjevxUc7VebV46SOEb3fPHw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=c6rzQ1jR/j6Vu8Q+oh0JhB39hL4yDo1aSIY6nbM0kQ8x39AS3E8KH7LA8ndcsZaL0 jr//6Y5XWid0P5XjFTNjxAVMdKKinnM9ytLNwU1WyHeurmx5lfb5lrrXGwQorart63 xXrzIUmu7rJcDgw3LscaFi1o8Cd1B8EDgX3kpLOM6R00jS4UjxDrIRb1dhP6uhXE9k a8mXgDc2BCSw1Yxw6IjSc2vDGW6tOr5yRPE3b/GNnSD6XJANLw4eCATzevNArVXxdZ lG0oaM+PxHeaL/B8x+Mj3568TtlOYrdAAZRvx4lnv4i5KXrCDggD2LhmwLYIzdXyZN 218peJjY5qAJg== 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.7 201/713] net: blackhole_dev: fix build warning for ethh set but not used Date: Sun, 24 Mar 2024 18:38:47 -0400 Message-ID: <20240324224720.1345309-202-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 537C41D8BB6; Sun, 24 Mar 2024 22:50: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=1711320642; cv=none; b=GaETd+bLJ3vYYTPHUyENVvSB5cR720uYhu9SOmYxrrgA0Gpq9mA/tjw32b0Rw0LEfyVaVKykP4YeCy2jlxWBcAvDILVQYX+BlfkkzvQL8OpmmWbdWt0BHvA2VEyGUtuANPHspUqxWqCDJrBlyoN2nWuI2EleQOb2VDdbfupK4Z4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320642; c=relaxed/simple; bh=k7YMyN9XUWIVYZrAOUT9qbPDF7I17RHxw0+eDlMF5jg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=VWdRH5AVmZXkHrSu7FvrYVnJBubKNHna/fb7bEm+sprUORXb+0s9ohvrC2zbqRhmEYsKGxQSjjCNluQ9DzDVj20mWUEbmN8WJrAsaO/VYVf7K14Ft0QfB4xvXtCi6Al2cuQnJgfKCLxYpW8u+eomsySM4zHD4q8fpH57L63QGB4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Wcx6Sj2I; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Wcx6Sj2I" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1B6DAC433C7; Sun, 24 Mar 2024 22:50:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320640; bh=k7YMyN9XUWIVYZrAOUT9qbPDF7I17RHxw0+eDlMF5jg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Wcx6Sj2IW/HvBJkc6Rt01KJq+hD9x9jNxlSb8fvO34sA/hgrHmwvTANOevjpSPbFr jPjQSg/urYqN95uRTHgZs5tIECh5+QD8Ammh2M3tUzsczdnclFr1tH2xpgWe/j7i4E 6rXwj4dc1pyiqBRDfFarx1RMDB3z9t2r/d3iO5xdqNtoCfotRRnSrgXr8UyNAxduGC Weqqb4D6YPGjg3WRe+ruadnr9WSsJVfTlstXee3FB3Gw9BLln2/DNJodq7zRMSsTAH 6YNnevi7AEM263DlJooErCXOQ/QExIw4HmcxVFH/7dqhZM/fapYaf09BVzQBbsz6iU /Kro8kMO8116w== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Ravi Gunasekaran , Jai Luthra , Vignesh Raghavendra , Sasha Levin Subject: [PATCH 6.7 202/713] arm64: dts: ti: k3-am62p5-sk: Enable CPSW MDIO node Date: Sun, 24 Mar 2024 18:38:48 -0400 Message-ID: <20240324224720.1345309-203-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Ravi Gunasekaran [ Upstream commit 8839a9af397e803e0447a6b3e69fad54ed22d26d ] Enable the CPSW MDIO node, and link the pinctrl information to enable ethernet on SK-AM62P. Ethernet was unintentally broken on this board, even though these nodes were already present, as enabling them was missed in the original patch. Fixes: c00504ea42c0 ("arm64: dts: ti: k3-am62p5-sk: Updates for SK EVM") Signed-off-by: Ravi Gunasekaran Signed-off-by: Jai Luthra Link: https://lore.kernel.org/r/20240201-am62p_cpsw_mdio-v1-1-05f758300f6e@= ti.com Signed-off-by: Vignesh Raghavendra Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- arch/arm64/boot/dts/ti/k3-am62p5-sk.dts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts b/arch/arm64/boot/dts/= ti/k3-am62p5-sk.dts index f377eadef0c12..04e51934d24ca 100644 --- a/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts +++ b/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts @@ -445,6 +445,10 @@ &cpsw_port2 { }; =20 &cpsw3g_mdio { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&main_mdio1_pins_default>; + status =3D "okay"; + cpsw3g_phy0: ethernet-phy@0 { reg =3D <0>; ti,rx-internal-delay =3D ; --=20 2.43.0 From nobody Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E90231D8BB4; Sun, 24 Mar 2024 22:50: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=1711320642; cv=none; b=kO1Ulbpp+qZZ1mVpdorkHHJq14mm95Y98uKaTjQT2szQIcMiDzX2CUt1Xs0QZ3AHVAJEDDUDnQSaRK/K1cqdwuhOGmOP6rCcOiy7HGGYtmxYll/ksTlhFqUe8Ak/ZLs7y9oS5kFChG4x/u8WmMbWTxkxC7d8/Jem62V94Mjc4RQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320642; c=relaxed/simple; bh=uRQPRQbfvlKBilQqRImAjQMGdfGSTQ5pK9uohbD4dss=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=aWav/T4O2/rCx95Uq5fN3Vze+J5ftjowl3O0Hw/ncpdBHvJCwgmkPDZdIvTp4WPLl1v6Vw6rzusyeYzpRX4vRboIyYU9VOgVoK7HnlwRlgUeiIOmtWctJ5HnIAyNWwvOeX86NpZZ9EGZ8HcRV75PBCz4ud6ZTsueHKzcRCQT9Mg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=UvDMbvD5; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="UvDMbvD5" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1B62CC43394; Sun, 24 Mar 2024 22:50:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320641; bh=uRQPRQbfvlKBilQqRImAjQMGdfGSTQ5pK9uohbD4dss=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=UvDMbvD5D262khLZ8MufYr/WyEMS9QclciJM2dyMs+KgJ4d7X+KvgSr1TymH8v/Fd uohk4rppdvQPEOiSDV7HakwxJDUQgZFKnV5MPZ9FERUw+w6LEPO1ZT+bLl1XlV9sQ4 l4YYQgrMkyY3IUTsXLWI7PjSZj+8VY2qT1tYwR6FjeAM0oTBPeYCtJSk1xgOREsH/w UT3HJ7VcQiZhZCCCDKtPneROd7HBy7IWIPPDjg/f0/TFZ6huVCqwRlbEtAVh01jher StSVdpqOws9lL6t5bv/zRs1fsvzuCKYJcZ2ndMa/qDDdtFiW89LYnYWzcEbzq/WRHt wGKTJg2f5rACw== 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.7 203/713] arm64: dts: ti: k3-j721s2: Fix power domain for VTM node Date: Sun, 24 Mar 2024 18:38:49 -0400 Message-ID: <20240324224720.1345309-204-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 7254f3bd3634d..c9cf1dc04f7d9 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 --=20 2.43.0 From nobody Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E288A1D8BC0; Sun, 24 Mar 2024 22:50: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=1711320644; cv=none; b=UzqDi3T1yqXIDkFRg5CxZNzJCB5xk3GtVr7OwGz/6VCz8xxJACduShsxFWkWWYEE3SCDzEfuSR+ws2ysRqidZlBGLcS9t2rkaGcSXsOFa/36yW7iMHYNtzPSdkXJv7n2YMri4D8+W0sWKH7bqVsdpNYDE/DsmK0tXDJEvXgZYio= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320644; c=relaxed/simple; bh=4f1erUva8FFOMSrg8Cy7B/IPul9QQ0jPoIHd+IvGvak=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=AurF4XFnqsQHTA7q3M0/XHp0X0CyaSpskURwPf2/D/ySni3N8zLV5zcRosUSrxsoi1baZdwvGKylhgz5JCcBjEDBV0mTbEAzazbAT0kzyDNep0hJmhoXnFsqEI11aLcgmss6uYH+6zbDCrJPaSedA+SIFb5DNCbr80+J1z9MT9Q= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=JeLinGK2; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="JeLinGK2" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 16E70C43390; Sun, 24 Mar 2024 22:50:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320642; bh=4f1erUva8FFOMSrg8Cy7B/IPul9QQ0jPoIHd+IvGvak=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=JeLinGK2WElkcGqglxYidGKWe0AjYdaFAMN+RQ0zWSGxurDawA/8DmNyWFqaT6H1r CE125I2Ibh0m6rCwsTRxJ75RmcpWGyuyTgl+PgnQ1Szb7wVbzmRcmuqtHe3hYSIBAm f3G4O782GJJkjthqjL6P0d4+1sZGZ+E7ndt1sN54pJ2GcYmwYUqAYPrzh3O/BzVSiW nvqBhcJxH8SVkONq1tdGHMzo5xurTuTvV7siBtdJLAB0+LojXaG4FaTupIMyuiQAj3 j/4Ba5hxnQJKWGsOi2vZDA7aNKOeG1pu/DwquEaUSorVDNNdCnAtiE7BoKuyIl6bW5 mu4hehqyIlFbw== 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.7 204/713] arm64: dts: ti: k3-j784s4: Fix power domain for VTM node Date: Sun, 24 Mar 2024 18:38:50 -0400 Message-ID: <20240324224720.1345309-205-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 adb5ea6b97321..37fc48aae6945 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F3A1E1D8BC5; Sun, 24 Mar 2024 22:50: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=1711320645; cv=none; b=seFJyvjwDJNHxDV2gRndf0QkDzhxxjZUTyPNHFZFHaCM9bIqFBvYYwRtCn984scA8oVO71puMIUsxyPzikP0bXkymeE+g1jIYbUBDIS9EO7unizQGFVX6LToPhxxj7hDCVapkvmai7w83HWNFAJOddfSbZmDiaCG/CThNw1MUAc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320645; c=relaxed/simple; bh=IjhCCsBYDRk59ErJJBfFAuXUot+zVTutag8G8d+U7us=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=FREFJmCZgkedqTSfiEIgLfWjkXLIsfd/+LsgGvdkKTP4+m9Op6+RGLWY+7fs9zel5+s4T0D4cbigT19rvAsexlqgt2LwZ4/FIaCHEQf+wc6YYn6uUaWbKFPORh7G9oMG5Lisy+qpVnTYwYHrgKhQrGC96Lj9S+nxDAEZAA77MSs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=siSNM6HH; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="siSNM6HH" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 11B76C43394; Sun, 24 Mar 2024 22:50:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320643; bh=IjhCCsBYDRk59ErJJBfFAuXUot+zVTutag8G8d+U7us=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=siSNM6HH7GfMEnlGZoDqs5bdqH0Bp03UObkIHxQrkrmPxzgQbFhF7grLmsUTUjYqD mAb1nrbBwnMf+Evy1kCOuxU8T+hQPLUTN8qwi1MxVbapIHp6nc1yjhid3kV3qsh5XB N74n+NaguSQzFkdUWotCcIQrypyPyfgwG03Dkwg1QLqu7cxljtaKjrGwxWEZenmlZi DSCwMuH2taZPhGitSIS4EBGVW6QGXbh3krCanvusn3yRahaQrfCZn5BkCbRfIEc1h2 Dhs5fYbxS6Ehc2w+C/a8ZrR68VZNN6OW0UTrDhkur1Vykp66/3GjSdrmQmvE4/JkXl hz6fOpA/r4GIQ== 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.7 205/713] wifi: ath11k: initialize rx_mcs_80 and rx_mcs_160 before use Date: Sun, 24 Mar 2024 18:38:51 -0400 Message-ID: <20240324224720.1345309-206-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 e09b21a82c20f..1c4613b1bd225 100644 --- a/drivers/net/wireless/ath/ath11k/mac.c +++ b/drivers/net/wireless/ath/ath11k/mac.c @@ -2297,6 +2297,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; @@ -2308,6 +2310,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D843F1D8BBC; Sun, 24 Mar 2024 22:50: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=1711320645; cv=none; b=p+X2suZhtOP/UbAIV6YJO4WWGde6Vo3jtHopg3D3quypwoajsyUgsLgHkuJlE1cyU7krOgBZxlnqVZwrHoXMWO+1WQJJhVOVFZ2U3EtX9UgoC+M/zqltRUl/XM5Ekh8nATbohEyCFak5FddVmky1EpMmzyx8oA7EoK/PKf//iqw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320645; c=relaxed/simple; bh=RQrolhc/4neGjp94YqluMsQFQZd5V1OjoECo2SmYWsM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Gmjz5YCoywLd1/jFDnqJvtUDbk0Pd5JXB5c+3r+AxTlIw/u86aLjqBpgW1tZgLiOXE+dh6XHRi331CZ524HpV3g1jbYl/ictimJPqnLCaNQ/ItYF0BJZEptUkjPAsm2SPSKfXWVOuhLU+wXAVv21W23FlVSaZ+yTbqN+BU+BAZA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=LONUrSd7; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="LONUrSd7" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 23034C433C7; Sun, 24 Mar 2024 22:50:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320644; bh=RQrolhc/4neGjp94YqluMsQFQZd5V1OjoECo2SmYWsM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=LONUrSd7d6pPoqBDP/ig0MCnFCnPvu8hBf9jWMFzWHkn4FbhmxQqSgp6AhI/HS7Pr CgDGUiAYvk/qlsVv5Ry2L6hLXQuGpey/a25dv3vfMexjY9jBtRhYJGLBKBA1AADfVX t8zmNeHaoZ7A1gHbyyqtATCe+RxuYFxCdMXwgtLAccg2X3wMVOVLIe3KMKMkbJINF3 visNqmXLFlVGjgVPwaNzx5W1qsl1HT7yIBUOZeqPqeA96PHDMuVnKOm5Vu7rHSTy5t b7ZdOnSi7FqL/HgufA+X7+i7mPoQWr8kjh4PEdlayO2yiYOdfu0IOrTMeBdaqOwG3o 1yCQUIY62Amag== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Zhipeng Lu , Kalle Valo , Sasha Levin Subject: [PATCH 6.7 206/713] wifi: libertas: fix some memleaks in lbs_allocate_cmd_buffer() Date: Sun, 24 Mar 2024 18:38:52 -0400 Message-ID: <20240324224720.1345309-207-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 745BF1D8BD9; Sun, 24 Mar 2024 22:50: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=1711320647; cv=none; b=GIcio6Fh0zFM+9669nuMoIIJkVaN3vne9U9sxBB6q7FDTaCjA344YmkIik+Er3lBTLwRM+fNnM1i0LmAtsd+S+F9Wt2YA59iQ6vc6QawSsDBxb0myZW3Tn1Nc0S/mn2XrK0IyTgWh9/rdu771Rw6UEa2fFW85INcqHUjMNnLb+k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320647; c=relaxed/simple; bh=PRDR/PMenEpU2rk6usu6sYB/5zgkZIR5qd7nhUTXkT8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=XRpMrQoIJ6X1a1hCpE+L8DerGeM9fHzf36Eb4IETskUeNNOFdTAUlvPSDL5WLDdQz2zi9wST8kGQYSwdVTGgS1aF1xumsla5jkdBLOoktS81Vf9PMS+OmyOUtfT3fUIDeghOsiTYPZ7b3cost/10iEmeeTJEoqG189yy9KhN2M0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=MZ8Ix4Ze; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="MZ8Ix4Ze" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 05733C433F1; Sun, 24 Mar 2024 22:50:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320646; bh=PRDR/PMenEpU2rk6usu6sYB/5zgkZIR5qd7nhUTXkT8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=MZ8Ix4ZejDJ7xsE5Ja9Mjpx/vJwPvYZ2cibj8UV1AywsOjLSzBAM5F47RJwGG/biq NLv72ryyA8kwtBTOUmnH+RUpfJ5ryE/JU3MUzwxCxVWcVOrXgjonyzpeVgHHh10IGB RtI97+9EhqMvJqcKnFUu0KpgcvV9PidDIvEsAtg0I5NobQkLtZqkdY2w8wBPc4IMpg eINGrB1sstMGHNJ9xxsrGKFPYxBB8RoCocAC60FkpzovqEweuuuqU/UX3Tsbla3F8a cTWSgwHiEND6Fv/LqHSduSuSPvnIi0az+5ucBR/lZ6ZZHrnqP2wsxn6MBWK1thNmMp nNKR4/fbYr2tA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jayesh Choudhary , Nishanth Menon , Tomi Valkeinen , Aradhya Bhatia , Enric Balletbo i Serra , Vignesh Raghavendra , Sasha Levin Subject: [PATCH 6.7 207/713] arm64: dts: ti: k3-am69-sk: remove assigned-clock-parents for unused VP Date: Sun, 24 Mar 2024 18:38:53 -0400 Message-ID: <20240324224720.1345309-208-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Jayesh Choudhary [ Upstream commit cfdb4f7ffdb855c1a3d274dc7757e780dcbf2d55 ] VP2 and VP3 are unused video ports and VP3 share the same parent clock as VP1 causing issue with pixel clock setting for HDMI (VP1). The current DM firmware does not support changing parent clock if it is shared by another component. It returns 0 for the determine_rate query before causing set_rate to set the clock at default maximum of 1.8GHz which is a lot more than the maximum frequency videoports can support (600MHz) causing SYNC LOST issues. So remove the parent clocks for unused VPs to avoid conflict. Fixes: 6f8605fd7d11 ("arm64: dts: ti: k3-am69-sk: Add DP and HDMI support") Reported-by: Nishanth Menon Signed-off-by: Jayesh Choudhary Reviewed-by: Tomi Valkeinen Reviewed-by: Aradhya Bhatia Tested-by: Enric Balletbo i Serra Link: https://lore.kernel.org/r/20240201142308.4954-1-j-choudhary@ti.com Signed-off-by: Vignesh Raghavendra Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- arch/arm64/boot/dts/ti/k3-am69-sk.dts | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/arch/arm64/boot/dts/ti/k3-am69-sk.dts b/arch/arm64/boot/dts/ti= /k3-am69-sk.dts index 9868c7049bfb9..fafa09d6dcc64 100644 --- a/arch/arm64/boot/dts/ti/k3-am69-sk.dts +++ b/arch/arm64/boot/dts/ti/k3-am69-sk.dts @@ -824,13 +824,9 @@ &dss { pinctrl-names =3D "default"; pinctrl-0 =3D <&dss_vout0_pins_default>; assigned-clocks =3D <&k3_clks 218 2>, - <&k3_clks 218 5>, - <&k3_clks 218 14>, - <&k3_clks 218 18>; + <&k3_clks 218 5>; assigned-clock-parents =3D <&k3_clks 218 3>, - <&k3_clks 218 7>, - <&k3_clks 218 16>, - <&k3_clks 218 22>; + <&k3_clks 218 7>; }; =20 &serdes_wiz4 { --=20 2.43.0 From nobody Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 37A373DB97; Sun, 24 Mar 2024 22:50: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=1711320648; cv=none; b=fugrPfQJHNsG67IrT+qtmwRYiAt5NHs1IqxpCOMeqHGEgJUDMIfeg7Rowts6rLBcFRjEt737gGK9IeGIWo3+yZY91GVmujqOXAbiEKhD4f3INlxs7oEDFrZFeD+3OXOQdgbb9L2snhFSNpvrEJ1MmDLP7Wuj9gBmyIocguaay0M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320648; c=relaxed/simple; bh=rG5XrogOSq/XWBkIgCSJ3+HmAxbP/ixfn56h6FYIyuQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=XA1UBpZvWUsuNpR4F7joWqDzdITk144op6yqceVv8hR2aKLu78rJSukzE+0nAuGBPaO8a6DioQkyxdPlQvuKyLCoFcXLuV0rHGVOwldyj980V1SpUtzUvNyLFSfNpCpz5yBThIyd6JVCEFNaHYZisBf9ND0ZnN04hjyVM0f3DGI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=GNFPoKDn; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="GNFPoKDn" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 45C45C433C7; Sun, 24 Mar 2024 22:50:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320647; bh=rG5XrogOSq/XWBkIgCSJ3+HmAxbP/ixfn56h6FYIyuQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=GNFPoKDnbu9Za2iU0xg+Pv2A57Cw5aotcfvAC6P49T+4qQIouKtxDYMm7hb6NYPhZ sWgzZ6u9mtMwAl464uE6ex3PQZBTu+AkK3dU9MzWklXsaWuy6H8/QcHW66TEy8JxxE mWoGC0fEeyt7n9F5Ol0UxJ0gYZDKFPlem4iYbDE94qcwm5Dbg55QyQey08orRskv21 d0TmS0OZOrNly1w2t4GUduBAXxxCXFUknBkijqDz+KmjYY2pWSAXEEQ/yyWT+k2QHI J71X1E/uIflq7urQXlR/9Ak2pXOe7nvCmZQfm6gtICAzNyCPuBdL2P0E97/0b3Pw+s Gs6wO5Dl7/Gvw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Vaishnav Achath , Jayesh Choudhary , Nishanth Menon , Vignesh Raghavendra , Sasha Levin Subject: [PATCH 6.7 208/713] arm64: dts: ti: k3-am62p-mcu/wakeup: Disable MCU and wakeup R5FSS nodes Date: Sun, 24 Mar 2024 18:38:54 -0400 Message-ID: <20240324224720.1345309-209-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Vaishnav Achath [ Upstream commit dfc90e5f1a0fe0f8124521bc1911e38aa6cd9118 ] K3 Remoteproc R5 driver requires reserved memory carveouts and mailbox configuration to instantiate the cores successfully. Since this is a board level dependency, keep the R5 subsytem disabled at SoC dtsi, otherwise it results in probe errors like below during AM62P SK boot: r5fss@79000000: reserved memory init failed, ret =3D -22 r5fss@79000000: k3_r5_cluster_rproc_init failed, ret =3D -22 r5fss@78000000: reserved memory init failed, ret =3D -22 r5fss@78000000: k3_r5_cluster_rproc_init failed, ret =3D -22 Fixes: b5080c7c1f7e ("arm64: dts: ti: k3-am62p: Add nodes for more IPs") Signed-off-by: Vaishnav Achath Reviewed-by: Jayesh Choudhary Reviewed-by: Nishanth Menon Link: https://lore.kernel.org/r/20240121134017.374992-1-vaishnav.a@ti.com Signed-off-by: Vignesh Raghavendra Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- arch/arm64/boot/dts/ti/k3-am62p-mcu.dtsi | 2 ++ arch/arm64/boot/dts/ti/k3-am62p-wakeup.dtsi | 1 + 2 files changed, 3 insertions(+) diff --git a/arch/arm64/boot/dts/ti/k3-am62p-mcu.dtsi b/arch/arm64/boot/dts= /ti/k3-am62p-mcu.dtsi index c4b0b91d70cf3..14eb9ba836d32 100644 --- a/arch/arm64/boot/dts/ti/k3-am62p-mcu.dtsi +++ b/arch/arm64/boot/dts/ti/k3-am62p-mcu.dtsi @@ -187,6 +187,8 @@ mcu_r5fss0: r5fss@79000000 { ranges =3D <0x79000000 0x00 0x79000000 0x8000>, <0x79020000 0x00 0x79020000 0x8000>; power-domains =3D <&k3_pds 7 TI_SCI_PD_EXCLUSIVE>; + status =3D "disabled"; + mcu_r5fss0_core0: r5f@79000000 { compatible =3D "ti,am62-r5f"; reg =3D <0x79000000 0x00008000>, diff --git a/arch/arm64/boot/dts/ti/k3-am62p-wakeup.dtsi b/arch/arm64/boot/= dts/ti/k3-am62p-wakeup.dtsi index 19f42b39394ee..10a7059b2d9b5 100644 --- a/arch/arm64/boot/dts/ti/k3-am62p-wakeup.dtsi +++ b/arch/arm64/boot/dts/ti/k3-am62p-wakeup.dtsi @@ -78,6 +78,7 @@ wkup_r5fss0: r5fss@78000000 { ranges =3D <0x78000000 0x00 0x78000000 0x8000>, <0x78100000 0x00 0x78100000 0x8000>; power-domains =3D <&k3_pds 119 TI_SCI_PD_EXCLUSIVE>; + status =3D "disabled"; =20 wkup_r5fss0_core0: r5f@78000000 { compatible =3D "ti,am62-r5f"; --=20 2.43.0 From nobody Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1E2301D8BDD; Sun, 24 Mar 2024 22:50: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=1711320648; cv=none; b=pQNjz+Mm6FdZFLl9g6wIysNxIUfFdHIsmi6KJzCBvoHgBOSL0bdhynvBO5Axb0IbGD5kyi3kojvWCIBuqrj1awDEVbRQo5tu3Jqkv/wtEV0bt8DRF7WVGOOZ+cTr0lvIPG81enngHAwf2NEvcElBXX/QyQ//RGX69Atp1W/nbto= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320648; c=relaxed/simple; bh=Un5M0+Yy9i5pV1czleybjGf4TKM5KEaVe8OK7vHagJE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=s2m4Gu4CQZMm0GtDKO9+DREwCMDZlYaMJWK+6cPe101f5YzdxsAscvgGOjIeXMrNVN2KWa4IcLU/dBOyFN5XCVCGTVu+Aox+kNZWDthArUrvxX69eJjS09JxWAecae9KpvIrg64NM0Vg8VqanwWRzYdoT4hmQKeUH1GrJjhyX54= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=nQIdKa6q; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="nQIdKa6q" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5A21DC43399; Sun, 24 Mar 2024 22:50:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320648; bh=Un5M0+Yy9i5pV1czleybjGf4TKM5KEaVe8OK7vHagJE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nQIdKa6qbb9D9Z6cuiaOcm463tqU2T0fk0dIcL8s4GfD4kUZa2BKOkOeq06qcOmZ7 NBKFQDjK+ekMSil8piXrpY4Uq3Epc45DRZhAh92Ihd0QUQFyGd6XsGXDVo4gkjjiB0 baFRU9a82I83OnJIfn1PXFpgiP8YFK5gtAEtVwzrZGUw5cwH8V3uvVkmy9bRU3G4UK KWVKPuh1Y306SnkaKvLTX+mdlIvWNVotV+N22RNmPHm0n+fEOUxyCGO/dq6ivJ0L20 0gxakiYJhJN/KcISfl68mLhsDjh9hpBH/9LeKWqBCL/o6P3h9G5rTCdammXY2LNn+G YuXS/OdhAu+8A== 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.7 209/713] libbpf: Use OPTS_SET() macro in bpf_xdp_query() Date: Sun, 24 Mar 2024 18:38:55 -0400 Message-ID: <20240324224720.1345309-210-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1E01B84FAA; Sun, 24 Mar 2024 22:50: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=1711320650; cv=none; b=ECj8HbSh4TQONsRtY6LIzNghdiVe4qpYnocHlLC+72rcUZs/b/7lfR6y0KiNkWk4IZ/fZiBH98TJKkSqykRUGi+lEJsvhgKGOgQkoRGatBKWEMJ/a/WKgaL2EYeCK8tzaVJDD+NnWXxyq6xfb/nytSbXl2aGnI2mPgsPtjoa1ME= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320650; c=relaxed/simple; bh=X8VLIvZrwN5fBir6rvd0OfOk45Gpo7bw7ybhXi54sp0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=hc+wRUvIKGByPyk94IPhNhcKY94Pf4XNwFpOx4SBANsbk5jdwc77CYpT8aoMIPeQQmPGKkkNRr0OHUYrLobECTeitsAtvk72Din/Jd9SNHjbgyzeTlUNjTsTtMOC55XmF3qnmEZLvxHUQHq7sL9zlwsHfKoxML8KZzEPjsTVLew= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=PsVSvJ33; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="PsVSvJ33" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 40484C433A6; Sun, 24 Mar 2024 22:50:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320649; bh=X8VLIvZrwN5fBir6rvd0OfOk45Gpo7bw7ybhXi54sp0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=PsVSvJ33VNn/j0B9/hemAdGjUkWjsFNlEq27O4Uz9g1vduREE/lVk5hmaknXHkgkl UQoX9sfmuH+sztqxoby6b1b8n9M8AVwykf+2xlV1VfE//sklbS7Wh779EHLnzMvvPP BG3lSwM3kU+EPX5N0c5KI+lGnXZmEMy9vGYSQO8i/6jYKCheF01gTNzmDDMKS+3Ynl JFA6UC9bk+3n0KygjLbO/UzwiQ/fvjzHA+UCr1XqRqnUojo3IJabbLRe2Og2Z6t9ek CHc+2fsS+zC1kCR+bW4CE1ak+iiTpEkl4LMFHztUBtEKUrpEJ8vIEgiUw59tK9UxEN DwYWXdtMiYJ5w== 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.7 210/713] wifi: wfx: fix memory leak when starting AP Date: Sun, 24 Mar 2024 18:38:56 -0400 Message-ID: <20240324224720.1345309-211-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-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: Bagas Sanjaya --- 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 537caf9d914a7..bb4446b88c12b 100644 --- a/drivers/net/wireless/silabs/wfx/sta.c +++ b/drivers/net/wireless/silabs/wfx/sta.c @@ -344,6 +344,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)) @@ -352,22 +353,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 03E3284FD4; Sun, 24 Mar 2024 22:50: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=1711320651; cv=none; b=Ln3tY9C0EfrVeFaQ86zPnxSmTyF+om7aMnhmyY9AHqA7gvVipFmg9QjuKBQbUy+D1+ui8CKC0PWpBCswe6WF0/R9jcn2RQGhcIl0/cD75zCZXBTIu32vKUCifPrPEq5GB6gery450Hjq3VYsi0rhlk9gPQv5qFNJYgPbL/Ppl4I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320651; c=relaxed/simple; bh=q69T249oz4TUVyDuuR/k4gG1ZeYB9y42/66AP1+cKL4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ozYlBpIcFsEeRtNyocI8/QVYHaDIPQjVrnXaeey7ZnwImJ/2CL14StA/nnIZzlBvET/4o+xcLb7eoOpoCghcNtlGzoSEigcy8BxFJCQUVqwtkg2Ix0EHDYQI3f3S5JocY1J8r2MlwOiFydbL3WOoINxzq06CU903+docMeLcPvQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=AdRUGeNv; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="AdRUGeNv" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 40B52C433F1; Sun, 24 Mar 2024 22:50:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320649; bh=q69T249oz4TUVyDuuR/k4gG1ZeYB9y42/66AP1+cKL4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=AdRUGeNvlus6Qt54Yt0rdrxl41ygW7Usa94ojsmCoVp/hsE/hqC9/RjLsK1ni44RH BwW+3+8VsAIWx+iGswRO/dwe5yj5LBpVzFYfW6K/TERItTcT0H+wI59dUMaS85Atgt UxDo20CCgQmBP/WIzqyk2gNxGLQvvpyZfp01UM0YVP0xD9BfrVDOyG5R0f6CFk/udu 4TI1QT1zwlmEmNA1QS2KGU5PpKFocbM/zm7BCSprB8EMMLiAcDU/iQ1rnXLUGCdS+d eRNzagz3ylYF+uKAkeRhkdo11gUMkBksmUHhCamMJiu0vXeNe2m9RkPhMtX3wfiidc u9LAVwKDYlZVQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Dmitry Baryshkov , Bjorn Andersson , Sasha Levin Subject: [PATCH 6.7 211/713] arm64: dts: qcom: msm8998: switch USB QMP PHY to new style of bindings Date: Sun, 24 Mar 2024 18:38:57 -0400 Message-ID: <20240324224720.1345309-212-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 ebc5ba1b369e9..7dd0d4ce25ef4 100644 --- a/arch/arm64/boot/dts/qcom/msm8998.dtsi +++ b/arch/arm64/boot/dts/qcom/msm8998.dtsi @@ -2157,7 +2157,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>; @@ -2166,33 +2166,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2DA1584FDB; Sun, 24 Mar 2024 22:50: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=1711320652; cv=none; b=icegSfaoZC/T7O7zgJ+s+4fJemAHVKzvU7hingCDkRYRHS4L6r+QwIHCo568faHd5brvxQq8vEnpiFbklDcW5QkrzwgtJRgG7+U6Kq6HNgLe4klnt/VxClI11LCJnFfSsfifT1y9bJqpWE4mf7XBKosEZ4342jUvEmwO2EQlmO0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320652; c=relaxed/simple; bh=ME0ojuQ7AJEJ0fypMbut5+DeBUymaln3FXqHO0SHC54=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=V/gPN4cuJrFKTsvDTrCmXlHyUJ12R0nqmy7JbaYv+tt3b6WprU35Qw+z9oEcWrzNj5AhjMYNP/Qg2aXBQrwuQqnl5stYDOH65U0OXFO2Xl6++/4NrxW7B2lMRFGe8kqpRdYiMwdyy0VHt3QPzzdeDdPO1WGbOeSMz5DsqbNymEo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Avumo8Pg; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Avumo8Pg" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 237AFC433C7; Sun, 24 Mar 2024 22:50:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320650; bh=ME0ojuQ7AJEJ0fypMbut5+DeBUymaln3FXqHO0SHC54=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Avumo8PgaudLUyucO+IfUSk7pr224nv+G/MsJr0JQshmL4K9FJHJZ8+ArcqGEYMXq z0Sbe/BE9cmh1wGK+Ad+GWyuJzJLkYpEx33f3ADYqgOO9DyjNA2pc5ZGfdF/FStdsG N02B7TEo0WnTSexq501w5yB9dVGbTnWbFgjxcEu1nfnhsXzt/NG4eu/wER9TXxvZOz 8Va4O7g4bogddA9WeAzMIMZ2jTq2+BdqqRovPnpdotlxflNWW1pnvKguF/FKl20aVJ /LcPK6A5E5huJjnXbt4lvcbm92xZnZtG1GcVIEGQzD3OGVUBbrTpSKUkVYOUwk2NJh 8TsOnmY71nFFQ== 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.7 212/713] arm64: dts: qcom: msm8998: declare VLS CLAMP register for USB3 PHY Date: Sun, 24 Mar 2024 18:38:58 -0400 Message-ID: <20240324224720.1345309-213-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 7dd0d4ce25ef4..610ffd0f9e18e 100644 --- a/arch/arm64/boot/dts/qcom/msm8998.dtsi +++ b/arch/arm64/boot/dts/qcom/msm8998.dtsi @@ -1082,6 +1082,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>; @@ -2185,6 +2190,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 10D1A1442E3; Sun, 24 Mar 2024 22:50: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=1711320653; cv=none; b=lhlEOqcu5BoyyWgoUIFzeTzDLGy724cDlhetBbMq+UTkdXQvdbAX3DKIKOAO/1VOfG314KLyDUfukMImwSF7pfrNT22kPOkTWQwnhixH5/ZeqXisJSglJBl72McbyDpD7HHqNRQG6ZuZYu6MJUcz11wfyW1075sSpZVHMDPEu8M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320653; c=relaxed/simple; bh=t+7Oww8cat4ZZ/+r8pnzUTQJ7RVy2StCPb/afBg1f/U=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Kq5XnCYwPGL4UHR1hQFSOtK0DpwHdKmI8w9XUeGcbH3YQXv5ZjC203TESsZSH7PfNTd0nOYL35Na8pc9pTxi/FWr5Bta61j/iHjPkCJ4KraZpeK5xwLYMRGbcVak210JsbEF3u+dKyCJkJTJRUJEkZnbDG0Qs9i3tz4k7OAD/Dg= 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/gbohhz; arc=none smtp.client-ip=10.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/gbohhz" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 37DC2C433F1; Sun, 24 Mar 2024 22:50:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320651; bh=t+7Oww8cat4ZZ/+r8pnzUTQJ7RVy2StCPb/afBg1f/U=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=R/gbohhzQt5RC4hF/WTsm8xWMwv6oZoONX/QBhVBaYF7+1fYdFlTGOL4Bs/hen5Cv cdp4PkNBdsUo5K1MW1sV6dpTxwdY85w6bxp7IVtGLsimXSqxHXqLex6LWh0hraZmqW QruO3juU4MEfj/diReSFFwGRX7z+atoHbKCFfUbz1imVtT+iJxuE117+AepsMAcFUR JmC3T0EflU/le1JKob0bLkYhde5Xw7mngPyEjsaaEx8UVwA4kXzeyvb/E2jyQgyASK 69ZlSR4XpdXX2xB+U7ZqRHainGgN+PAx4cIJPdqP8J0ATnQ1n2deQyhFPb4lyGILXX yCB1A7LiSw3TQ== 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.7 213/713] arm64: dts: qcom: qcm2290: declare VLS CLAMP register for USB3 PHY Date: Sun, 24 Mar 2024 18:38:59 -0400 Message-ID: <20240324224720.1345309-214-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 094B11442E2; Sun, 24 Mar 2024 22:50: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=1711320653; cv=none; b=SY5KLG9StxC+bmC9UjVo8N+BBajyQmawpkq1SkACmwoYRmWJW43cQPFEETAfJ6F7bRCyVRU4/wHxJTnxPiWRxMqXOn2dJo5BDjsWv6nd5iCDIDtmwa8ftfIpGxDESYFhIHpY8KB1MLUcjmB4jr73hdsWiaf/rnuzTdt+qXhxWQo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320653; c=relaxed/simple; bh=ihf/gRh8V3eyFigSVCgEiwUDfiQkJZ0pUrLWekgm6JU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=BHfoWwd75X/lZP9XvYmbACbusKJ/LzNh/B2IFLEwCPF/Pjmz9BcKeJonSFkOkcb4eXXLSoVm7nz1VcFLgi6TDzuj28ttP3KVF6gJ6UAIq9J4DbyRIGKwjF8/8olVTmyX4g2jkn9gnhk8m320hlVhGT5o2Plqi4vNYkq4RnxsIDo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=j94uLUFx; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="j94uLUFx" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 32916C433A6; Sun, 24 Mar 2024 22:50:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320652; bh=ihf/gRh8V3eyFigSVCgEiwUDfiQkJZ0pUrLWekgm6JU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=j94uLUFx7UZ8WM2aGhtqx/RiqBr4g1ZT4fNc7jigbxiqbE+4OJgFN3Yqs0P0BMYkI zeqENmYJ2nz9iKhy2qiBpOfPxxo5EPQmcMWtuaL53L2RisgKNSLJ3L9CmPoYeIZIe2 w3bIak2gNBkthbBAyAYMdqXpc+Mm7Z2/RZJMG2DAtWAx0REVQ9BOm+gjLe2VlZr7aI 5iBxZoYfo91brAEIW5kaLvTiJQipWlErFJtcrbDhVKU3jKc/9hiyAWac5G3XP8JJDG rOEfgKcMdB3JNWQOeW4Nykl44+MzH5/4gngz5r6TLQeONHidNoadSD6aI+c5vUJF0t /hEJazw0gc0ew== 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.7 214/713] arm64: dts: qcom: sm6115: declare VLS CLAMP register for USB3 PHY Date: Sun, 24 Mar 2024 18:39:00 -0400 Message-ID: <20240324224720.1345309-215-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 05A701442E6; Sun, 24 Mar 2024 22:50: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=1711320654; cv=none; b=jBxReacfLbIDrhecdPuWn6LG/kZ8aVk4kCXOTAezVHxIILa7AHkfKgoKF2kkLuxJt1Lz/LWooU8uNInyhonEWxn/09ZBk/ctif40tRlykIrpEQLDMM1A80jBJUeU3vsohDSlBYEl60GclpQqG6HLgU6L+E4C6Jx+asPvzGeVRmI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320654; c=relaxed/simple; bh=PHIqATS6bo6NV3wlkFnksqK/ycv/FqII4kw6233kAUc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=IpIOXirBG7lanqutSUuojUs+P26/7aNWPBXeIBNQOSioObQ19wAjAJGPoGMS1AkBnAesQWPPLsPNzSKdp36KpCBAIS05wQc5b/1JfWhSEzdlGoTN9aar81ievymEtp7jhpjL/v+7uDN0yFNzyHliR0BMQttFRt8H0Qj+EmK9ZY8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ePWeB+A1; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ePWeB+A1" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2EC15C43390; Sun, 24 Mar 2024 22:50:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320653; bh=PHIqATS6bo6NV3wlkFnksqK/ycv/FqII4kw6233kAUc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ePWeB+A1fFnDdMcgw5SHVhV3Wpt+/5Un4u0XpnhrSiCZ6ikM2QfSRaw78pRYnWRep Wj7XVJhFrRXtZ+YLDiGHmNBcE6dqtzDBFo8/SlOXRQNbZxM7xJEXMMDmPmVfNqsmBO ijdMnPxKy3elhDOA26Hf4jGqwkPp8jkvqZ00tra8TbQ9l2t4mCHyJR8o/6C9N29agf AIMy144Dvev2OcLiQBnNx5nCutvQo3RtVoz47qdQtqpy4o3UDmOqvbijv6rlGNffAB 7WhAOTZyzbXl7s1EoCmTo78z84NPAOHwGpXQ3kyy1rDA0xoZWCjgE978AvEKAKO0ib e44qxoyfesV2Q== 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.7 215/713] wifi: ath12k: fix incorrect logic of calculating vdev_stats_id Date: Sun, 24 Mar 2024 18:39:01 -0400 Message-ID: <20240324224720.1345309-216-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 54693e247cb31..237fb8e7cfa46 100644 --- a/drivers/net/wireless/ath/ath12k/mac.c +++ b/drivers/net/wireless/ath/ath12k/mac.c @@ -5261,7 +5261,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EA1101442EB; Sun, 24 Mar 2024 22:50: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=1711320655; cv=none; b=UOuOu4CXTx42CKxsitBhu77D8yO8gIQEMYGKklkvt4d2T53wK2NuolHnTtWcRVMrd8jIdlT06Kwq3JAyrRFeAThWye1liMUYxMYxEzTqvWBH1t0Ur4w8VXnin2VsNhHrA5w+V3jq1PZLqWSAZws85zs2llFsnh7YO5O9ePKwv80= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320655; c=relaxed/simple; bh=JOG+YyezGeMBbIJgXZ49Ud5Nd6CLwHeZEpDp+srOCHU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=I0A07v3wP5KLauowT8Y0jtNEe9zo3Ifb2iPbu4fCgyTAyu84F/pm0vayDMU1c3AC1ycOnl/KDrJ0CXW1fahULAlNW/2S14kyW5yJku+MRrwBNosbYfIWQ3Mf0fu7cs+PW7IqZYP1c9IkXDS/PQc9b3hIBpOOr1UNstwsRH0RVsM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=BWE4GZOx; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="BWE4GZOx" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2A483C433C7; Sun, 24 Mar 2024 22:50:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320654; bh=JOG+YyezGeMBbIJgXZ49Ud5Nd6CLwHeZEpDp+srOCHU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=BWE4GZOx6WTEAEEV8kcL2230572qJgtCagwjQ5JdsTQOJe7Av3NXe7miQzToLfY5V Nqay4XLFyuC+706rYqBWYKOBgB0lLWjPDZBsbDsmrrHh9fin8MluVveXN53Al9rkvF ky5wDiDP6uwHhMi/QLnph+wb6Ie2wmFxU0QIoF74HBdMNunxRJTtRSUqJUtkwnPYcx 9Yp6DDiqKp+8jby51wRPNcr6M37ZXTc0WWtBqQd2Sof5hixt/BycjiJGxWmdcsi4Xc vsJveL/fBrGF/pPc7FktG5fet3U/0Ug0XvFw3n9+LWGhnoaXpAoFfPaz0fZfWKGY2O dgT58dT0C7NNA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: John Ogness , Petr Mladek , Sasha Levin Subject: [PATCH 6.7 216/713] printk: nbcon: Relocate 32bit seq macros Date: Sun, 24 Mar 2024 18:39:02 -0400 Message-ID: <20240324224720.1345309-217-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Ogness [ Upstream commit 5b73e706f00f3553e1a4efbb31951ce9fe18f2dc ] The macros __seq_to_nbcon_seq() and __nbcon_seq_to_seq() are used to provide support for atomic handling of sequence numbers on 32bit systems. Until now this was only used by nbcon.c, which is why they were located in nbcon.c and include nbcon in the name. In a follow-up commit this functionality is also needed by printk_ringbuffer. Rather than duplicating the functionality, relocate the macros to printk_ringbuffer.h. Also, since the macros will be no longer nbcon-specific, rename them to __u64seq_to_ulseq() and __ulseq_to_u64seq(). This does not result in any functional change. Signed-off-by: John Ogness Reviewed-by: Petr Mladek Link: https://lore.kernel.org/r/20240207134103.1357162-2-john.ogness@linutr= onix.de Signed-off-by: Petr Mladek Stable-dep-of: 5f72e52ba959 ("printk: ringbuffer: Do not skip non-finalized= records with prb_next_seq()") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- kernel/printk/nbcon.c | 41 +++---------------------------- kernel/printk/printk_ringbuffer.h | 33 +++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 37 deletions(-) diff --git a/kernel/printk/nbcon.c b/kernel/printk/nbcon.c index b96077152f49d..c8093bcc01fe6 100644 --- a/kernel/printk/nbcon.c +++ b/kernel/printk/nbcon.c @@ -140,39 +140,6 @@ static inline bool nbcon_state_try_cmpxchg(struct cons= ole *con, struct nbcon_sta return atomic_try_cmpxchg(&ACCESS_PRIVATE(con, nbcon_state), &cur->atom, = new->atom); } =20 -#ifdef CONFIG_64BIT - -#define __seq_to_nbcon_seq(seq) (seq) -#define __nbcon_seq_to_seq(seq) (seq) - -#else /* CONFIG_64BIT */ - -#define __seq_to_nbcon_seq(seq) ((u32)seq) - -static inline u64 __nbcon_seq_to_seq(u32 nbcon_seq) -{ - u64 seq; - u64 rb_next_seq; - - /* - * The provided sequence is only the lower 32 bits of the ringbuffer - * sequence. It needs to be expanded to 64bit. Get the next sequence - * number from the ringbuffer and fold it. - * - * Having a 32bit representation in the console is sufficient. - * If a console ever gets more than 2^31 records behind - * the ringbuffer then this is the least of the problems. - * - * Also the access to the ring buffer is always safe. - */ - rb_next_seq =3D prb_next_seq(prb); - seq =3D rb_next_seq - ((u32)rb_next_seq - nbcon_seq); - - return seq; -} - -#endif /* CONFIG_64BIT */ - /** * nbcon_seq_read - Read the current console sequence * @con: Console to read the sequence of @@ -183,7 +150,7 @@ u64 nbcon_seq_read(struct console *con) { unsigned long nbcon_seq =3D atomic_long_read(&ACCESS_PRIVATE(con, nbcon_s= eq)); =20 - return __nbcon_seq_to_seq(nbcon_seq); + return __ulseq_to_u64seq(prb, nbcon_seq); } =20 /** @@ -204,7 +171,7 @@ void nbcon_seq_force(struct console *con, u64 seq) */ u64 valid_seq =3D max_t(u64, seq, prb_first_valid_seq(prb)); =20 - atomic_long_set(&ACCESS_PRIVATE(con, nbcon_seq), __seq_to_nbcon_seq(valid= _seq)); + atomic_long_set(&ACCESS_PRIVATE(con, nbcon_seq), __u64seq_to_ulseq(valid_= seq)); =20 /* Clear con->seq since nbcon consoles use con->nbcon_seq instead. */ con->seq =3D 0; @@ -223,11 +190,11 @@ void nbcon_seq_force(struct console *con, u64 seq) */ static void nbcon_seq_try_update(struct nbcon_context *ctxt, u64 new_seq) { - unsigned long nbcon_seq =3D __seq_to_nbcon_seq(ctxt->seq); + unsigned long nbcon_seq =3D __u64seq_to_ulseq(ctxt->seq); struct console *con =3D ctxt->console; =20 if (atomic_long_try_cmpxchg(&ACCESS_PRIVATE(con, nbcon_seq), &nbcon_seq, - __seq_to_nbcon_seq(new_seq))) { + __u64seq_to_ulseq(new_seq))) { ctxt->seq =3D new_seq; } else { ctxt->seq =3D nbcon_seq_read(con); diff --git a/kernel/printk/printk_ringbuffer.h b/kernel/printk/printk_ringb= uffer.h index 18cd25e489b89..b82a96dc2ea2b 100644 --- a/kernel/printk/printk_ringbuffer.h +++ b/kernel/printk/printk_ringbuffer.h @@ -381,4 +381,37 @@ bool prb_read_valid_info(struct printk_ringbuffer *rb,= u64 seq, u64 prb_first_valid_seq(struct printk_ringbuffer *rb); u64 prb_next_seq(struct printk_ringbuffer *rb); =20 +#ifdef CONFIG_64BIT + +#define __u64seq_to_ulseq(u64seq) (u64seq) +#define __ulseq_to_u64seq(rb, ulseq) (ulseq) + +#else /* CONFIG_64BIT */ + +#define __u64seq_to_ulseq(u64seq) ((u32)u64seq) + +static inline u64 __ulseq_to_u64seq(struct printk_ringbuffer *rb, u32 ulse= q) +{ + u64 seq; + u64 rb_next_seq; + + /* + * The provided sequence is only the lower 32 bits of the ringbuffer + * sequence. It needs to be expanded to 64bit. Get the next sequence + * number from the ringbuffer and fold it. + * + * Having a 32bit representation in the console is sufficient. + * If a console ever gets more than 2^31 records behind + * the ringbuffer then this is the least of the problems. + * + * Also the access to the ring buffer is always safe. + */ + rb_next_seq =3D prb_next_seq(rb); + seq =3D rb_next_seq - ((u32)rb_next_seq - ulseq); + + return seq; +} + +#endif /* CONFIG_64BIT */ + #endif /* _KERNEL_PRINTK_RINGBUFFER_H */ --=20 2.43.0 From nobody Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C82B71442F4; Sun, 24 Mar 2024 22:50: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=1711320656; cv=none; b=AbXSSLZ6k0coho2KWUNUiEaLCmGEgMDbgHC6wpy+QQ+NCB9Exehe2Vi3vmQfu9NHZUUHmdeeXOWo+rNfeX6PV3sOYo4aACxG1/vg0O/tWDTzayRd2N0bhC534ikI2pj3UM+S0st4Mg4MjSgQX87pDNiXLBScEMXezE+c+PR58ps= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320656; c=relaxed/simple; bh=8DZF5T2Zt/1RDnSa62/ypRFyPp+OyJ7ZkonbZFS7G8Q=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=T7RYobBYk/X/J53Q54Kk6OfxO8qjP77Wx4UoZx408XVRmiJ5XydU1TGfBqM3yUaI++HVSRfoLrycDOZsHntDk/lB/2MS3Kn698bSaSwfjMyCmpg44+Jad9Ez4bOhSPXPp2gKzWb3iGZ5K+/nHC2W/b3mkroUz87AyWHtNuwmOMo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=dKLxhcSf; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="dKLxhcSf" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0EC1DC43394; Sun, 24 Mar 2024 22:50:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320655; bh=8DZF5T2Zt/1RDnSa62/ypRFyPp+OyJ7ZkonbZFS7G8Q=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=dKLxhcSfphv4iUvqRaNjCyDb+2yhsQVyN1jO16+K2uxYHgW2bxyygvP6OfcYvmxj9 Qpgg8WzWuJ8nIyymmxhPcLA+l1veDTzfJZCw5jO62EJ/x+XiDXMYk9gTTJB98Epndl o0JkAX801IvGyDy7Lj6DPEOqV4sWgwa0HDfguhs4OitMBmakw/poieWvprA9/OkiMN imAD+IEIx7JxCOKX57dNm8wkZiu9zafrd2HpN9UoA1pmfCKxu1mhr/fbD3yhwJfsrM Lseq0VyRX4JW4imzsU4lgQXkHn4gcmeYOZGCnZE8sX7KcqaG6914ckM/z0QXtBq36y svk8S+TB/2+nw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: John Ogness , Petr Mladek , Sasha Levin Subject: [PATCH 6.7 217/713] printk: ringbuffer: Do not skip non-finalized records with prb_next_seq() Date: Sun, 24 Mar 2024 18:39:03 -0400 Message-ID: <20240324224720.1345309-218-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Ogness [ Upstream commit 5f72e52ba959e50680b8d83599da1368cd7a6ee2 ] Commit f244b4dc53e5 ("printk: ringbuffer: Improve prb_next_seq() performance") introduced an optimization for prb_next_seq() by using best-effort to track recently finalized records. However, the order of finalization does not necessarily match the order of the records. The optimization changed prb_next_seq() to return inconsistent results, possibly yielding sequence numbers that are not available to readers because they are preceded by non-finalized records or they are not yet visible to the reader CPU. Rather than simply best-effort tracking recently finalized records, force the committing writer to read records and increment the last "contiguous block" of finalized records. In order to do this, the sequence number instead of ID must be stored because ID's cannot be directly compared. A new memory barrier pair is introduced to guarantee that a reader can always read the records up until the sequence number returned by prb_next_seq() (unless the records have since been overwritten in the ringbuffer). This restores the original functionality of prb_next_seq() while also keeping the optimization. For 32bit systems, only the lower 32 bits of the sequence number are stored. When reading the value, it is expanded to the full 64bit sequence number using the 32bit seq macros, which fold in the value returned by prb_first_seq(). Fixes: f244b4dc53e5 ("printk: ringbuffer: Improve prb_next_seq() performanc= e") Signed-off-by: John Ogness Reviewed-by: Petr Mladek Link: https://lore.kernel.org/r/20240207134103.1357162-5-john.ogness@linutr= onix.de Signed-off-by: Petr Mladek Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- kernel/printk/printk_ringbuffer.c | 164 +++++++++++++++++++++++------- kernel/printk/printk_ringbuffer.h | 4 +- 2 files changed, 127 insertions(+), 41 deletions(-) diff --git a/kernel/printk/printk_ringbuffer.c b/kernel/printk/printk_ringb= uffer.c index fde338606ce83..4ce1826dc9426 100644 --- a/kernel/printk/printk_ringbuffer.c +++ b/kernel/printk/printk_ringbuffer.c @@ -6,6 +6,7 @@ #include #include #include "printk_ringbuffer.h" +#include "internal.h" =20 /** * DOC: printk_ringbuffer overview @@ -303,6 +304,9 @@ * * desc_push_tail:B / desc_reserve:D * set descriptor reusable (state), then push descriptor tail (id) + * + * desc_update_last_finalized:A / desc_last_finalized_seq:A + * store finalized record, then set new highest finalized sequence num= ber */ =20 #define DATA_SIZE(data_ring) _DATA_SIZE((data_ring)->size_bits) @@ -1441,20 +1445,118 @@ bool prb_reserve_in_last(struct prb_reserved_entry= *e, struct printk_ringbuffer return false; } =20 +/* + * @last_finalized_seq value guarantees that all records up to and includi= ng + * this sequence number are finalized and can be read. The only exception = are + * too old records which have already been overwritten. + * + * It is also guaranteed that @last_finalized_seq only increases. + * + * Be aware that finalized records following non-finalized records are not + * reported because they are not yet available to the reader. For example, + * a new record stored via printk() will not be available to a printer if + * it follows a record that has not been finalized yet. However, once that + * non-finalized record becomes finalized, @last_finalized_seq will be + * appropriately updated and the full set of finalized records will be + * available to the printer. And since each printk() caller will either + * directly print or trigger deferred printing of all available unprinted + * records, all printk() messages will get printed. + */ +static u64 desc_last_finalized_seq(struct printk_ringbuffer *rb) +{ + struct prb_desc_ring *desc_ring =3D &rb->desc_ring; + unsigned long ulseq; + + /* + * Guarantee the sequence number is loaded before loading the + * associated record in order to guarantee that the record can be + * seen by this CPU. This pairs with desc_update_last_finalized:A. + */ + ulseq =3D atomic_long_read_acquire(&desc_ring->last_finalized_seq + ); /* LMM(desc_last_finalized_seq:A) */ + + return __ulseq_to_u64seq(rb, ulseq); +} + +static bool _prb_read_valid(struct printk_ringbuffer *rb, u64 *seq, + struct printk_record *r, unsigned int *line_count); + +/* + * Check if there are records directly following @last_finalized_seq that = are + * finalized. If so, update @last_finalized_seq to the latest of these + * records. It is not allowed to skip over records that are not yet finali= zed. + */ +static void desc_update_last_finalized(struct printk_ringbuffer *rb) +{ + struct prb_desc_ring *desc_ring =3D &rb->desc_ring; + u64 old_seq =3D desc_last_finalized_seq(rb); + unsigned long oldval; + unsigned long newval; + u64 finalized_seq; + u64 try_seq; + +try_again: + finalized_seq =3D old_seq; + try_seq =3D finalized_seq + 1; + + /* Try to find later finalized records. */ + while (_prb_read_valid(rb, &try_seq, NULL, NULL)) { + finalized_seq =3D try_seq; + try_seq++; + } + + /* No update needed if no later finalized record was found. */ + if (finalized_seq =3D=3D old_seq) + return; + + oldval =3D __u64seq_to_ulseq(old_seq); + newval =3D __u64seq_to_ulseq(finalized_seq); + + /* + * Set the sequence number of a later finalized record that has been + * seen. + * + * Guarantee the record data is visible to other CPUs before storing + * its sequence number. This pairs with desc_last_finalized_seq:A. + * + * Memory barrier involvement: + * + * If desc_last_finalized_seq:A reads from + * desc_update_last_finalized:A, then desc_read:A reads from + * _prb_commit:B. + * + * Relies on: + * + * RELEASE from _prb_commit:B to desc_update_last_finalized:A + * matching + * ACQUIRE from desc_last_finalized_seq:A to desc_read:A + * + * Note: _prb_commit:B and desc_update_last_finalized:A can be + * different CPUs. However, the desc_update_last_finalized:A + * CPU (which performs the release) must have previously seen + * _prb_commit:B. + */ + if (!atomic_long_try_cmpxchg_release(&desc_ring->last_finalized_seq, + &oldval, newval)) { /* LMM(desc_update_last_finalized:A) */ + old_seq =3D __ulseq_to_u64seq(rb, oldval); + goto try_again; + } +} + /* * Attempt to finalize a specified descriptor. If this fails, the descript= or * is either already final or it will finalize itself when the writer comm= its. */ -static void desc_make_final(struct prb_desc_ring *desc_ring, unsigned long= id) +static void desc_make_final(struct printk_ringbuffer *rb, unsigned long id) { + struct prb_desc_ring *desc_ring =3D &rb->desc_ring; unsigned long prev_state_val =3D DESC_SV(id, desc_committed); struct prb_desc *d =3D to_desc(desc_ring, id); =20 - atomic_long_cmpxchg_relaxed(&d->state_var, prev_state_val, - DESC_SV(id, desc_finalized)); /* LMM(desc_make_final:A) */ - - /* Best effort to remember the last finalized @id. */ - atomic_long_set(&desc_ring->last_finalized_id, id); + if (atomic_long_try_cmpxchg_relaxed(&d->state_var, &prev_state_val, + DESC_SV(id, desc_finalized))) { /* LMM(desc_make_final:A) */ + desc_update_last_finalized(rb); + } } =20 /** @@ -1550,7 +1652,7 @@ bool prb_reserve(struct prb_reserved_entry *e, struct= printk_ringbuffer *rb, * readers. (For seq=3D=3D0 there is no previous descriptor.) */ if (info->seq > 0) - desc_make_final(desc_ring, DESC_ID(id - 1)); + desc_make_final(rb, DESC_ID(id - 1)); =20 r->text_buf =3D data_alloc(rb, r->text_buf_size, &d->text_blk_lpos, id); /* If text data allocation fails, a data-less record is committed. */ @@ -1643,7 +1745,7 @@ void prb_commit(struct prb_reserved_entry *e) */ head_id =3D atomic_long_read(&desc_ring->head_id); /* LMM(prb_commit:A) */ if (head_id !=3D e->id) - desc_make_final(desc_ring, e->id); + desc_make_final(e->rb, e->id); } =20 /** @@ -1663,12 +1765,9 @@ void prb_commit(struct prb_reserved_entry *e) */ void prb_final_commit(struct prb_reserved_entry *e) { - struct prb_desc_ring *desc_ring =3D &e->rb->desc_ring; - _prb_commit(e, desc_finalized); =20 - /* Best effort to remember the last finalized @id. */ - atomic_long_set(&desc_ring->last_finalized_id, e->id); + desc_update_last_finalized(e->rb); } =20 /* @@ -2008,7 +2107,9 @@ u64 prb_first_valid_seq(struct printk_ringbuffer *rb) * newest sequence number available to readers will be. * * This provides readers a sequence number to jump to if all currently - * available records should be skipped. + * available records should be skipped. It is guaranteed that all records + * previous to the returned value have been finalized and are (or were) + * available to the reader. * * Context: Any context. * Return: The sequence number of the next newest (not yet available) reco= rd @@ -2016,34 +2117,19 @@ u64 prb_first_valid_seq(struct printk_ringbuffer *r= b) */ u64 prb_next_seq(struct printk_ringbuffer *rb) { - struct prb_desc_ring *desc_ring =3D &rb->desc_ring; - enum desc_state d_state; - unsigned long id; u64 seq; =20 - /* Check if the cached @id still points to a valid @seq. */ - id =3D atomic_long_read(&desc_ring->last_finalized_id); - d_state =3D desc_read(desc_ring, id, NULL, &seq, NULL); + seq =3D desc_last_finalized_seq(rb); =20 - if (d_state =3D=3D desc_finalized || d_state =3D=3D desc_reusable) { - /* - * Begin searching after the last finalized record. - * - * On 0, the search must begin at 0 because of hack#2 - * of the bootstrapping phase it is not known if a - * record at index 0 exists. - */ - if (seq !=3D 0) - seq++; - } else { - /* - * The information about the last finalized sequence number - * has gone. It should happen only when there is a flood of - * new messages and the ringbuffer is rapidly recycled. - * Give up and start from the beginning. - */ - seq =3D 0; - } + /* + * Begin searching after the last finalized record. + * + * On 0, the search must begin at 0 because of hack#2 + * of the bootstrapping phase it is not known if a + * record at index 0 exists. + */ + if (seq !=3D 0) + seq++; =20 /* * The information about the last finalized @seq might be inaccurate. @@ -2085,7 +2171,7 @@ void prb_init(struct printk_ringbuffer *rb, rb->desc_ring.infos =3D infos; atomic_long_set(&rb->desc_ring.head_id, DESC0_ID(descbits)); atomic_long_set(&rb->desc_ring.tail_id, DESC0_ID(descbits)); - atomic_long_set(&rb->desc_ring.last_finalized_id, DESC0_ID(descbits)); + atomic_long_set(&rb->desc_ring.last_finalized_seq, 0); =20 rb->text_data_ring.size_bits =3D textbits; rb->text_data_ring.data =3D text_buf; diff --git a/kernel/printk/printk_ringbuffer.h b/kernel/printk/printk_ringb= uffer.h index b82a96dc2ea2b..70457916d577d 100644 --- a/kernel/printk/printk_ringbuffer.h +++ b/kernel/printk/printk_ringbuffer.h @@ -75,7 +75,7 @@ struct prb_desc_ring { struct printk_info *infos; atomic_long_t head_id; atomic_long_t tail_id; - atomic_long_t last_finalized_id; + atomic_long_t last_finalized_seq; }; =20 /* @@ -259,7 +259,7 @@ static struct printk_ringbuffer name =3D { \ .infos =3D &_##name##_infos[0], \ .head_id =3D ATOMIC_INIT(DESC0_ID(descbits)), \ .tail_id =3D ATOMIC_INIT(DESC0_ID(descbits)), \ - .last_finalized_id =3D ATOMIC_INIT(DESC0_ID(descbits)), \ + .last_finalized_seq =3D ATOMIC_INIT(0), \ }, \ .text_data_ring =3D { \ .size_bits =3D (avgtextbits) + (descbits), \ --=20 2.43.0 From nobody Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id ADCDF1442F8; Sun, 24 Mar 2024 22:50: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=1711320657; cv=none; b=izaA5YWbxzyl4tkdiZ7anp9cbOQqp0lte4s0A0r1TFrKG+1VoddgSLcDWFFW1siClx6RXEVbw0RTvxhw2JXNFtj+IrnQthOCUnTy6l73ogiPhXIToWG7vmpvUbvIHNLkwgz8E2saaPZzK76xMCazQvypPEX1I/+o3p07pUZnUtU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320657; c=relaxed/simple; bh=Hb/NsZOhMbQg490AAjzJrWojSX3thYXJ3sqhmuaCxWw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=CbOrmQwF+QSCDRf8PMEPK2NVt8O4DrSgbRtplVW8yQkdjpDcTs0GLCfsvAXyjHFfBeBmGCkjdRxowNp7r0Y8h0Xm1/8xf+fsVZR40LveI9u7PdHvGyvXwJp9iSpHMRu2wKCouLk+i5dQj8+KkfS+Vn2/Jd0/n/3KONdC68qmZZ0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=nzDiNy2M; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="nzDiNy2M" Received: by smtp.kernel.org (Postfix) with ESMTPSA id EA69EC43390; Sun, 24 Mar 2024 22:50:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320656; bh=Hb/NsZOhMbQg490AAjzJrWojSX3thYXJ3sqhmuaCxWw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nzDiNy2Mjr3CwR3gqzzNfp2MFbgNdx/Q9TY3H/I8l5uTrdkqXojWMZfTp55k8w5Pw uFwK2pDo8UFQr5jL8SEe9IdD15iScxjRHchRbv5iduIDRBJ7MoE7LckSBS/QQsCTWE bCgsrqHruXDCVhJ5mfhi2REqIeUTGQQ8yG8SUd95u6ylS5Gr/OoVpNE+6QDTMA4h99 j5eS4mOzej7PeC0Peeq/2OiO0/AkgcnXmpw7+nY5mp1YDBUtY/hHwe5aWal0diflgr WyI4/1gZcxmeohQbB1BYBsevwDjB+8/DSEh5jYj7PvoGDTBzdFjZ6w0OWR58f+v4pK pLRkquxFVwjXA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: John Ogness , Petr Mladek , Sasha Levin Subject: [PATCH 6.7 218/713] printk: Wait for all reserved records with pr_flush() Date: Sun, 24 Mar 2024 18:39:04 -0400 Message-ID: <20240324224720.1345309-219-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Ogness [ Upstream commit ac7d7844c64d15603daa3e905a311ddcfbb4bc91 ] Currently pr_flush() will only wait for records that were available to readers at the time of the call (using prb_next_seq()). But there may be more records (non-finalized) that have following finalized records. pr_flush() should wait for these to print as well. Particularly because any trailing finalized records may be the messages that the calling context wants to ensure are printed. Add a new ringbuffer function prb_next_reserve_seq() to return the sequence number following the most recently reserved record. This guarantees that pr_flush() will wait until all current printk() messages (completed or in progress) have been printed. Fixes: 3b604ca81202 ("printk: add pr_flush()") Signed-off-by: John Ogness Reviewed-by: Petr Mladek Link: https://lore.kernel.org/r/20240207134103.1357162-10-john.ogness@linut= ronix.de Signed-off-by: Petr Mladek Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- kernel/printk/printk.c | 2 +- kernel/printk/printk_ringbuffer.c | 105 ++++++++++++++++++++++++++++++ kernel/printk/printk_ringbuffer.h | 1 + 3 files changed, 107 insertions(+), 1 deletion(-) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c index f2444b581e16c..d9420207282ac 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -3761,7 +3761,7 @@ static bool __pr_flush(struct console *con, int timeo= ut_ms, bool reset_on_progre =20 might_sleep(); =20 - seq =3D prb_next_seq(prb); + seq =3D prb_next_reserve_seq(prb); =20 /* Flush the consoles so that records up to @seq are printed. */ console_lock(); diff --git a/kernel/printk/printk_ringbuffer.c b/kernel/printk/printk_ringb= uffer.c index 4ce1826dc9426..d152b6bd35c9a 100644 --- a/kernel/printk/printk_ringbuffer.c +++ b/kernel/printk/printk_ringbuffer.c @@ -1974,6 +1974,111 @@ static u64 prb_first_seq(struct printk_ringbuffer *= rb) return seq; } =20 +/** + * prb_next_reserve_seq() - Get the sequence number after the most recently + * reserved record. + * + * @rb: The ringbuffer to get the sequence number from. + * + * This is the public function available to readers to see what sequence + * number will be assigned to the next reserved record. + * + * Note that depending on the situation, this value can be equal to or + * higher than the sequence number returned by prb_next_seq(). + * + * Context: Any context. + * Return: The sequence number that will be assigned to the next record + * reserved. + */ +u64 prb_next_reserve_seq(struct printk_ringbuffer *rb) +{ + struct prb_desc_ring *desc_ring =3D &rb->desc_ring; + unsigned long last_finalized_id; + atomic_long_t *state_var; + u64 last_finalized_seq; + unsigned long head_id; + struct prb_desc desc; + unsigned long diff; + struct prb_desc *d; + int err; + + /* + * It may not be possible to read a sequence number for @head_id. + * So the ID of @last_finailzed_seq is used to calculate what the + * sequence number of @head_id will be. + */ + +try_again: + last_finalized_seq =3D desc_last_finalized_seq(rb); + + /* + * @head_id is loaded after @last_finalized_seq to ensure that + * it points to the record with @last_finalized_seq or newer. + * + * Memory barrier involvement: + * + * If desc_last_finalized_seq:A reads from + * desc_update_last_finalized:A, then + * prb_next_reserve_seq:A reads from desc_reserve:D. + * + * Relies on: + * + * RELEASE from desc_reserve:D to desc_update_last_finalized:A + * matching + * ACQUIRE from desc_last_finalized_seq:A to prb_next_reserve_seq:A + * + * Note: desc_reserve:D and desc_update_last_finalized:A can be + * different CPUs. However, the desc_update_last_finalized:A CPU + * (which performs the release) must have previously seen + * desc_read:C, which implies desc_reserve:D can be seen. + */ + head_id =3D atomic_long_read(&desc_ring->head_id); /* LMM(prb_next_reserv= e_seq:A) */ + + d =3D to_desc(desc_ring, last_finalized_seq); + state_var =3D &d->state_var; + + /* Extract the ID, used to specify the descriptor to read. */ + last_finalized_id =3D DESC_ID(atomic_long_read(state_var)); + + /* Ensure @last_finalized_id is correct. */ + err =3D desc_read_finalized_seq(desc_ring, last_finalized_id, last_finali= zed_seq, &desc); + + if (err =3D=3D -EINVAL) { + if (last_finalized_seq =3D=3D 0) { + /* + * No record has been finalized or even reserved yet. + * + * The @head_id is initialized such that the first + * increment will yield the first record (seq=3D0). + * Handle it separately to avoid a negative @diff + * below. + */ + if (head_id =3D=3D DESC0_ID(desc_ring->count_bits)) + return 0; + + /* + * One or more descriptors are already reserved. Use + * the descriptor ID of the first one (@seq=3D0) for + * the @diff below. + */ + last_finalized_id =3D DESC0_ID(desc_ring->count_bits) + 1; + } else { + /* Record must have been overwritten. Try again. */ + goto try_again; + } + } + + /* Diff of known descriptor IDs to compute related sequence numbers. */ + diff =3D head_id - last_finalized_id; + + /* + * @head_id points to the most recently reserved record, but this + * function returns the sequence number that will be assigned to the + * next (not yet reserved) record. Thus +1 is needed. + */ + return (last_finalized_seq + diff + 1); +} + /* * Non-blocking read of a record. Updates @seq to the last finalized record * (which may have no data available). diff --git a/kernel/printk/printk_ringbuffer.h b/kernel/printk/printk_ringb= uffer.h index 70457916d577d..5aebe97bd4afc 100644 --- a/kernel/printk/printk_ringbuffer.h +++ b/kernel/printk/printk_ringbuffer.h @@ -380,6 +380,7 @@ bool prb_read_valid_info(struct printk_ringbuffer *rb, = u64 seq, =20 u64 prb_first_valid_seq(struct printk_ringbuffer *rb); u64 prb_next_seq(struct printk_ringbuffer *rb); +u64 prb_next_reserve_seq(struct printk_ringbuffer *rb); =20 #ifdef CONFIG_64BIT =20 --=20 2.43.0 From nobody Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 95C9A1442F7; Sun, 24 Mar 2024 22:50: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=1711320657; cv=none; b=slYdNtkZu05BM4Ii+VphTQVkt9PaylzntQzDqnhXjAD/RStFm5UXuFwaZMOwAdUKHmbbDdPyGDTYp+II8sfaARGuLbpw4WSkD+IfX0A59vONqDN27+40K7y8SDA/Ry0eUtjPX4lgLKxAI9qDOxl01qy+YuDYic/JqsOlHcaWWDE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320657; c=relaxed/simple; bh=weL9bKStwrCWZ03fP6/Vywm6N8qOPfvGjjZrxMDFsZM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=e/gDzC1XnrfEmObpTZW0QY8qu2Ygud5TlKngrs95Bzo5lMwWEXK9O6/Ri4IZLmbhRe1Ruig/tuvDj1zk0aHUSXRhF6xO8FrZEykIK+11Hfq2ptJvhDAZVg4irffGvx/iUa3LKx29sd/S8CALiaBPPFWcwbFnaYXwbU5VaxwXILQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=XLkkDB18; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="XLkkDB18" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D0CE6C433F1; Sun, 24 Mar 2024 22:50:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320657; bh=weL9bKStwrCWZ03fP6/Vywm6N8qOPfvGjjZrxMDFsZM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=XLkkDB18rD9KqXBpk6dFU7jEFe/bCXNvPCGo5f9Ml+NUEOVnDvH6n3WhYFqtooQ24 ZucsrfRj0z7zE6US2WuNyBDbPB0e506PqsGwAL3GDAdmdtNr5wusUilOGT7guBkhdM yLM+F3B5TxUXJR7u8Oa6V7WBjLh+3k7JvoebiNC++hiQ55flJ13hcPV6ovvWRtpEdW +lEt6kMFlj1CuX6BXVZV8P6fboE52FGjN19FUFoTsz5qcdBDxZFWI3qpbWkF96o0aY XiVhS8YqxOtrI6zsBA+H57u0iPxiBm4LS3bAKOwji2ZUdbox5kXyDEtqr4lq+fc5Ng wTh9ZFl+U12ww== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: John Ogness , Petr Mladek , Sasha Levin Subject: [PATCH 6.7 219/713] printk: Add this_cpu_in_panic() Date: Sun, 24 Mar 2024 18:39:05 -0400 Message-ID: <20240324224720.1345309-220-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Ogness [ Upstream commit 36652d0f3bf34899e82d31a5fa9e2bdd02fd6381 ] There is already panic_in_progress() and other_cpu_in_panic(), but checking if the current CPU is the panic CPU must still be open coded. Add this_cpu_in_panic() to complete the set. Signed-off-by: John Ogness Reviewed-by: Petr Mladek Link: https://lore.kernel.org/r/20240207134103.1357162-8-john.ogness@linutr= onix.de Signed-off-by: Petr Mladek Stable-dep-of: b1c4c67a5e90 ("printk: ringbuffer: Skip non-finalized record= s in panic") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- kernel/printk/internal.h | 1 + kernel/printk/printk.c | 43 +++++++++++++++++++++------------------- 2 files changed, 24 insertions(+), 20 deletions(-) diff --git a/kernel/printk/internal.h b/kernel/printk/internal.h index 6c2afee5ef620..ac2d9750e5f81 100644 --- a/kernel/printk/internal.h +++ b/kernel/printk/internal.h @@ -130,6 +130,7 @@ struct printk_message { }; =20 bool other_cpu_in_panic(void); +bool this_cpu_in_panic(void); bool printk_get_next_message(struct printk_message *pmsg, u64 seq, bool is_extended, bool may_supress); =20 diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c index d9420207282ac..b7e50f8438df3 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -347,6 +347,29 @@ static bool panic_in_progress(void) return unlikely(atomic_read(&panic_cpu) !=3D PANIC_CPU_INVALID); } =20 +/* Return true if a panic is in progress on the current CPU. */ +bool this_cpu_in_panic(void) +{ + /* + * We can use raw_smp_processor_id() here because it is impossible for + * the task to be migrated to the panic_cpu, or away from it. If + * panic_cpu has already been set, and we're not currently executing on + * that CPU, then we never will be. + */ + return unlikely(atomic_read(&panic_cpu) =3D=3D raw_smp_processor_id()); +} + +/* + * Return true if a panic is in progress on a remote CPU. + * + * On true, the local CPU should immediately release any printing resources + * that may be needed by the panic CPU. + */ +bool other_cpu_in_panic(void) +{ + return (panic_in_progress() && !this_cpu_in_panic()); +} + /* * This is used for debugging the mess that is the VT code by * keeping track if we have the console semaphore held. It's @@ -2601,26 +2624,6 @@ static int console_cpu_notify(unsigned int cpu) return 0; } =20 -/* - * Return true if a panic is in progress on a remote CPU. - * - * On true, the local CPU should immediately release any printing resources - * that may be needed by the panic CPU. - */ -bool other_cpu_in_panic(void) -{ - if (!panic_in_progress()) - return false; - - /* - * We can use raw_smp_processor_id() here because it is impossible for - * the task to be migrated to the panic_cpu, or away from it. If - * panic_cpu has already been set, and we're not currently executing on - * that CPU, then we never will be. - */ - return atomic_read(&panic_cpu) !=3D raw_smp_processor_id(); -} - /** * console_lock - block the console subsystem from printing * --=20 2.43.0 From nobody Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7D77C144302; Sun, 24 Mar 2024 22:50: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=1711320659; cv=none; b=b+yJpSlSGml/z8PCmE/TcW5BDeoxLTVyN5jJa0fQX/olAYc33Hd9bFLLdQBwMbPDmbPu075jPL7JdZaFROCxDHt1gsfcAD2b+hKJkwDLJGoTbAoQJCCBPbp4TyHy+AN7Uo0VN6uEo3MuFa8EghS/ZUHNfcsVhfug5csuy3uokl8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320659; c=relaxed/simple; bh=55Nb6Gl3zSs4ji63PyDfoyTChWWBkNx9WldkUmv7yW4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=nXOqaz6FofSj0SJp9q6a2kTtz1Zv5oXUAajiykEhAWs4kdfGKAr48uPoxP76DQ2gDvBvouYOqF3KPODNJrswUEfdFIvE25iP1siUUHV7XrITdgQEvcXWi6dZsz4X6TLP27G+7cZ+w50Bwg+VpMsbCHENjXySz8yGPlIROxuSosU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=eM9OK/+o; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="eM9OK/+o" Received: by smtp.kernel.org (Postfix) with ESMTPSA id BC47BC433C7; Sun, 24 Mar 2024 22:50:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320658; bh=55Nb6Gl3zSs4ji63PyDfoyTChWWBkNx9WldkUmv7yW4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=eM9OK/+obYvCW2JBVbKiodywKdLvq8jjYsSksvRg9ioNs6zglMOKmrdXlvCsmtJbj 7zD9MzGjuZuDpQW+aP7TiTyZ+a/vOvP9aNXywstdwwMgAdXy4pa8DPi5xkGxbT2vna ZPCn5uliffHSvLKbDdiw5VT9Gr0fUvCme7HMDnevVHpfHuywkqSVepGIosqWcZvTb6 lc1+FCfjpAGPbhCtiESjQlXK9YW1APrG0UOd9J4TKDJfPto43zffHeCmoBNiqK2iEb ThA6b68CpbJ3aQYLJxbD6tAK5WZwcbpTNF97qmh3V03wWLqIDIcSP5z2SR8bpWDik3 nSP1YX0aGVbKA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: John Ogness , Petr Mladek , Sasha Levin Subject: [PATCH 6.7 220/713] printk: ringbuffer: Cleanup reader terminology Date: Sun, 24 Mar 2024 18:39:06 -0400 Message-ID: <20240324224720.1345309-221-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Ogness [ Upstream commit 584528d621459d1a5c31da7a591218ad3bb96d6c ] With the lockless ringbuffer, it is allowed that multiple CPUs/contexts write simultaneously into the buffer. This creates an ambiguity as some writers will finalize sooner. The documentation for the prb_read functions is not clear as it refers to "not yet written" and "no data available". Clarify the return values and language to be in terms of the reader: records available for reading. Signed-off-by: John Ogness Reviewed-by: Petr Mladek Link: https://lore.kernel.org/r/20240207134103.1357162-9-john.ogness@linutr= onix.de Signed-off-by: Petr Mladek Stable-dep-of: b1c4c67a5e90 ("printk: ringbuffer: Skip non-finalized record= s in panic") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- kernel/printk/printk_ringbuffer.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/kernel/printk/printk_ringbuffer.c b/kernel/printk/printk_ringb= uffer.c index d152b6bd35c9a..97ec25d227976 100644 --- a/kernel/printk/printk_ringbuffer.c +++ b/kernel/printk/printk_ringbuffer.c @@ -2080,11 +2080,13 @@ u64 prb_next_reserve_seq(struct printk_ringbuffer *= rb) } =20 /* - * Non-blocking read of a record. Updates @seq to the last finalized record - * (which may have no data available). + * Non-blocking read of a record. * - * See the description of prb_read_valid() and prb_read_valid_info() - * for details. + * On success @seq is updated to the record that was read and (if provided) + * @r and @line_count will contain the read/calculated data. + * + * On failure @seq is updated to a record that is not yet available to the + * reader, but it will be the next record available to the reader. */ static bool _prb_read_valid(struct printk_ringbuffer *rb, u64 *seq, struct printk_record *r, unsigned int *line_count) @@ -2103,7 +2105,7 @@ static bool _prb_read_valid(struct printk_ringbuffer = *rb, u64 *seq, *seq =3D tail_seq; =20 } else if (err =3D=3D -ENOENT) { - /* Record exists, but no data available. Skip. */ + /* Record exists, but the data was lost. Skip. */ (*seq)++; =20 } else { @@ -2136,7 +2138,7 @@ static bool _prb_read_valid(struct printk_ringbuffer = *rb, u64 *seq, * On success, the reader must check r->info.seq to see which record was * actually read. This allows the reader to detect dropped records. * - * Failure means @seq refers to a not yet written record. + * Failure means @seq refers to a record not yet available to the reader. */ bool prb_read_valid(struct printk_ringbuffer *rb, u64 seq, struct printk_record *r) @@ -2166,7 +2168,7 @@ bool prb_read_valid(struct printk_ringbuffer *rb, u64= seq, * On success, the reader must check info->seq to see which record meta da= ta * was actually read. This allows the reader to detect dropped records. * - * Failure means @seq refers to a not yet written record. + * Failure means @seq refers to a record not yet available to the reader. */ bool prb_read_valid_info(struct printk_ringbuffer *rb, u64 seq, struct printk_info *info, unsigned int *line_count) --=20 2.43.0 From nobody Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6162114430E; Sun, 24 Mar 2024 22:50: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=1711320660; cv=none; b=umTaGDmE/5ZKNWPlLTfoPJM9PjBPAn0CARuXbc/zX3Iz4C0tgDO9qT+gXUocRShQ1XTaKbzBjMORZOn/E2jh2U2AWdnT/7I77OnUR7mkOk605g1es7GhfEQnhIhiRorAHOQJgWNrZ27ifaWWfEaulRIZuXuEqYtB6nQ5FmqJCMw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320660; c=relaxed/simple; bh=RN/Gjmnw+EceYASHDrod4BrDl4PiVcldLWDVe0b9138=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=g/9UsjaYPuvJFWz1M5NJYtEtgJL3fYva87iEHTdjCOBrDfhfwL0lH5oqnwOOUwWTnwG6pVZ8/++XjVX2jYPbyWVNY0f3tF+Nv/ZKYOHmsjiHnAvZwOKe47w7hbjXNjtNtou387ri1OkmcnoP9RS2QVIZX0Nsqyi7nxYuLHEmHHw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=IXe9vofX; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="IXe9vofX" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A3EA7C433F1; Sun, 24 Mar 2024 22:50:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320659; bh=RN/Gjmnw+EceYASHDrod4BrDl4PiVcldLWDVe0b9138=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=IXe9vofXqNG3pBqxy3jcDMPibKXY/VKf4JotUeK4jrpG1ZxZSN8B3N6qTmf13jKyi JHWr4N85OliICnRLTHz2kSg7ihHQj0zTLJu1nqMSARyOLKVF9zuGealaaWLvvqVDaH 2ZztYYIvA5i/9Q0hzlzQ2OR3HFQ5DyhtFfqaXhCLB3GmO9N9TYUC356RJTvwK/V9KL EAY2pRrcZgLMvKizYOmF6zoifvFgmiN9ZwVrfEzfE3Piyi3iWD31wtOgUembSluS5c W3nnyBD7uz6DvuuykhJfChnz4deZs0LmVZlwifFy3FWg3qXCNFCRsyr6BCi0fRo1R2 Yq0oOunGtOjAA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: John Ogness , Petr Mladek , Sasha Levin Subject: [PATCH 6.7 221/713] printk: ringbuffer: Skip non-finalized records in panic Date: Sun, 24 Mar 2024 18:39:07 -0400 Message-ID: <20240324224720.1345309-222-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 Ogness [ Upstream commit b1c4c67a5e90db8fbdb5b5504fe16e17b564cca8 ] Normally a reader will stop once reaching a non-finalized record. However, when a panic happens, writers from other CPUs (or an interrupted context on the panic CPU) may have been writing a record and were unable to finalize it. The panic CPU will reserve/commit/finalize its panic records, but these will be located after the non-finalized records. This results in panic() not flushing the panic messages. Extend _prb_read_valid() to skip over non-finalized records if on the panic CPU. Fixes: 896fbe20b4e2 ("printk: use the lockless ringbuffer") Signed-off-by: John Ogness Reviewed-by: Petr Mladek Link: https://lore.kernel.org/r/20240207134103.1357162-11-john.ogness@linut= ronix.de Signed-off-by: Petr Mladek Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- kernel/printk/printk_ringbuffer.c | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/kernel/printk/printk_ringbuffer.c b/kernel/printk/printk_ringb= uffer.c index 97ec25d227976..3d98232902cfd 100644 --- a/kernel/printk/printk_ringbuffer.c +++ b/kernel/printk/printk_ringbuffer.c @@ -2087,6 +2087,10 @@ u64 prb_next_reserve_seq(struct printk_ringbuffer *r= b) * * On failure @seq is updated to a record that is not yet available to the * reader, but it will be the next record available to the reader. + * + * Note: When the current CPU is in panic, this function will skip over any + * non-existent/non-finalized records in order to allow the panic CPU + * to print any and all records that have been finalized. */ static bool _prb_read_valid(struct printk_ringbuffer *rb, u64 *seq, struct printk_record *r, unsigned int *line_count) @@ -2109,8 +2113,28 @@ static bool _prb_read_valid(struct printk_ringbuffer= *rb, u64 *seq, (*seq)++; =20 } else { - /* Non-existent/non-finalized record. Must stop. */ - return false; + /* + * Non-existent/non-finalized record. Must stop. + * + * For panic situations it cannot be expected that + * non-finalized records will become finalized. But + * there may be other finalized records beyond that + * need to be printed for a panic situation. If this + * is the panic CPU, skip this + * non-existent/non-finalized record unless it is + * at or beyond the head, in which case it is not + * possible to continue. + * + * Note that new messages printed on panic CPU are + * finalized when we are here. The only exception + * might be the last message without trailing newline. + * But it would have the sequence number returned + * by "prb_next_reserve_seq() - 1". + */ + if (this_cpu_in_panic() && ((*seq + 1) < prb_next_reserve_seq(rb))) + (*seq)++; + else + return false; } } =20 --=20 2.43.0 From nobody Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 445D8144314; Sun, 24 Mar 2024 22:51: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=1711320661; cv=none; b=H1Xpj8idjDv7dRwLygQ1u98DEoDZ6MaFdTpMfzqxhbbReCj/An6jNL7mTbkbCUyh4Hxg0zkZbYjOlgup/ZagoJjnDobJoA/0NTqkValEZeqNOLyFJmbyn+uxYg46wrj1I8hfdPcxAGdIvDuzqPC3zCnHTKcxEwGcfDeTcMsT55w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320661; c=relaxed/simple; bh=Jb7k3GoU6Ve+LODOIYdKGbcfDg48IkkmThzdS/zf9lE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=CF/WMfW4R06xa5bWnJq+fGUfVSMHka8yQk+HKyZtFiCgZ2lmAAR8Uz+8VtBr6Fp1gw6vkSR6qPxAFD2kbC114DBiT4iGvLqC+83+alSn8Tp5wJ2Uz8FCJdwq78CQiu3aSmEysPIToP00lwN9pLghJ7y+7evi+STOxQzPu1GGF+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=gfdX2r4s; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="gfdX2r4s" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 86A85C43390; Sun, 24 Mar 2024 22:50:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320660; bh=Jb7k3GoU6Ve+LODOIYdKGbcfDg48IkkmThzdS/zf9lE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=gfdX2r4sRIPAv7qjLC5GhlU7McK1g4FfG79i4PJtapCsscneeE4L1z/hZh7cyEnOi Rqx3mpkaHjmhqCfTEMimczR98d4bXTbAIBGchv3kZlzzcgoCBB21xLUIh5/YaU5aVn WPt3uXhSOm8GOEA/KXWulpWuFRrC3/ttQ9gk0FZ7FAuIgmwCUg9EN5qtUtJQ27ccbL q363AgkzEXqCjj1QfZLYGSpW87lc+GKpV53FcEHbSdLA98bvy5DkcG8oppeN0FQjAW /4LFcRPx48RJ0fyq17EEQfdr+30eRiwg26Jqv3saI4alDBptWScZEKG1MrZYce7y1s mC4bf1nmWZYAw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Petr Mladek , John Ogness , Sasha Levin Subject: [PATCH 6.7 222/713] printk: Disable passing console lock owner completely during panic() Date: Sun, 24 Mar 2024 18:39:08 -0400 Message-ID: <20240324224720.1345309-223-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya ---- ---- 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 b7e50f8438df3..72f6a564e832f 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -1869,10 +1869,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_); } @@ -1897,6 +1910,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 12904144312; Sun, 24 Mar 2024 22:51: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=1711320661; cv=none; b=bTo+3VZhGwrvLBbvKL3dujk3N1ddXKUzFPb8oUznreyJ3F/vUw/TirK+PFoPFMOnfZGuLpPnScc0GgQgopoDT+cj4MOfAs/aIR7Lc3cYb2A7VVA4hknbKQg7/NAJ1zxEphaeKjurM26A3O+z7pl6cqF7689YDhJjjuuyLbpt5wg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320661; c=relaxed/simple; bh=mpRsqp7HLYd8NsSfz98OwcTH6gubGY+4gDkzwWb31n0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=N10rLCvNEDFH+PbRsttPDnda97Ef17TfbwpOvjxfYpk8vbOnLAoZ2Z4nHaBTwzhsB47yT+Rr03ge1eSJZS6pAJocBInDdFu9Iefobpddww+6rkiN/r0jQpR7nU7mzdK7T2LpMVcmP/QMdqy6nIaD+EOL+2h/ih0D9Nb4u4Ek/BE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ehmytc8g; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ehmytc8g" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 66CFAC433C7; Sun, 24 Mar 2024 22:51:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320660; bh=mpRsqp7HLYd8NsSfz98OwcTH6gubGY+4gDkzwWb31n0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ehmytc8gT45kxEGbJtQO/vISRk4kWwZWG7Uo0l7ARYHSnWzIKOGLw+pb2wLq0F7My W/LIhYfGiH6cpI2fiAkEAZz1CKhfemdpsFthU2hCB53FxYxY9Y9KXUYCsqIT/zKPNb 1U2//+kx7ktuEkZY/3dn2LAZk1wVjQK4sDJ+lHsKy3LY9kL1GHAgvtcPU4CQVgNaZg rqM4gqNviUaoIsLAxSGNyVnUDqdacl4J6xv2G6Cy2LRPScGCr8xIZN+84QBaBxOF5T zCgh7lxKCZHc5YBHp/X6oR8KYI6FtHGHnyft10YkEVXPheOB8wppzoMpxA4VrN+Cvx 8tez9cFIbSVYA== 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.7 223/713] pwm: sti: Fix capture for st,pwm-num-chan < st,capture-num-chan Date: Sun, 24 Mar 2024 18:39:09 -0400 Message-ID: <20240324224720.1345309-224-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-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: Bagas Sanjaya --- 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 dc92cea31cd07..d885b30a147dc 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 @@ -646,7 +655,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0D6B114430B; Sun, 24 Mar 2024 22:51: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=1711320662; cv=none; b=btRuP9ABgZKZNQT70H81pPPlW23RLp57VSpfUGh35k08ZeExZPDG2lW5nTK9sPCbr4DwtrqTvVAnvOli08UvXQmvw1Gc7OnywvV4+r6kPT1IWcHSYb38Omdi7RaUp/xzLWv6phIst8Y/0tgEr+0F1JPQdnhhOkvjI98Njrg0VQU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320662; c=relaxed/simple; bh=lrV3hF7pREKUALqHJGjU2QWD2BAkZOc4EaJoGgQ0cV0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=sHYSPV4M+/cNQJyBfr1B50lP41faZPgygg2B94ITa2VQsnzMS3qWLxlS+5E3u/dPW5tcLa6Oj95SubKgt4VdI7FQl0y/bcl6LnWsvPpW5jv7/yD6UoB+81M8j0B8Jxk/9wOq6g0pVb2Ycqv5b/QKQmRhKfIeN0grOY+sCfMIEpU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=sWYV6E38; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="sWYV6E38" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 36147C433F1; Sun, 24 Mar 2024 22:51:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320661; bh=lrV3hF7pREKUALqHJGjU2QWD2BAkZOc4EaJoGgQ0cV0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=sWYV6E38Xy9iUH+8TAS4RPTp0w4W0+Ooz/tTLnc+huR6Ns1eS5YYEKuVQpTBwPUJz XjzmZFLActV0J0IpAwaBIWU39kKel334zWFq3v3EGPrzfRilzdr4u4JrX0waByHLLd rrx9Q2lbjcdgVnRkWYoNtrwrhCXmDF9aT9XIstVvtxkgl0nQ6/wo9UK4Ui6aEaoJEp oOxWJPxxjWDkA31Zp/b8s8G8h5iUEQysELd1Y1BCzGgLvPQ6qIBr5Kl+ILZEYGHzQL s0rFzH3LHcY7Nw1/+S5ZieF0RPjWnB7d0OO4zLIHvzieVqTrzUiOYxGCavu83jOyx5 bBbX/p5VIfRWQ== 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.7 224/713] tools/resolve_btfids: Refactor set sorting with types from btf_ids.h Date: Sun, 24 Mar 2024 18:39:10 -0400 Message-ID: <20240324224720.1345309-225-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EC50082867; Sun, 24 Mar 2024 22:51: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=1711320664; cv=none; b=SxVEZjdADQjGigfU83Ltp8zSpOyfsU7j81csa3/J/KV+777+THF8zQseL2gP+KXSZTKHw56pXy/6xcrql0zy3mRKOlX08yfxeJSdaSLx3A6ccW7EZ6O4GvQlIKg9AsQ8A2QwxYXnE/CYRceUVA61MzHBmdz6LBJxQKxjvLYccbo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320664; c=relaxed/simple; bh=uZTzWKQcsPV7yMNUkAApk1NzfA6xdSEQZjBPmeeK1cY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mN9+TIXbly7ZsRO6TtqcOTYa8FRjv1Oi4elqLW2K5ce6gaTH7c94p1gWkUKkoWcwC8gEOpz/akZYw6JS7PWTsbpSU0Cyh+khqlsbbOrcpxX+QCJaMX/XuXRBw+Ny47bZFm6P/EFAVu1aHFeTCG35LtpFF55mm2d3h1FFus0Q6tY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ibulD/4o; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ibulD/4o" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3067CC433C7; Sun, 24 Mar 2024 22:51:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320662; bh=uZTzWKQcsPV7yMNUkAApk1NzfA6xdSEQZjBPmeeK1cY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ibulD/4oGediT0PXeXJ3QzmbKiaSVSQSBXlr2EgUkYZUwtDYCZvvibrslrBXqLgD5 uc+T2yQY5/JgpKsMveN6kTuY3kSPG562gHzuHGz/jchNnu5BA+FcyIA8f0Ha89OW0X dcOY9rf6ujp3AH0EAhCtWHx5MpG8r5A3O9At1H4ySVQzjM7kqWh07nrUIgFgWPTmVF DlkMzAJSRbbduuOFJY6tGcp7mnm6GGakarMng/EfPHkl3CFhlQS5/fgqFNGq+X4b3K 0ifePd7PAeqSTIympk2Dtzqz/Oqw8wuyMGIDX1Lz9Gnk5fL5mdymkBTAcqU6CWDZsF vojQlKOpodBiw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Viktor Malik , Andrii Nakryiko , Sasha Levin Subject: [PATCH 6.7 225/713] tools/resolve_btfids: Fix cross-compilation to non-host endianness Date: Sun, 24 Mar 2024 18:39:11 -0400 Message-ID: <20240324224720.1345309-226-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EC2043E48E; Sun, 24 Mar 2024 22:51: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=1711320664; cv=none; b=i9rJqh5kzvLsTWnoXH48CDUrZkEpCF66H2OskgQY5wzSv54Ep+vVd11tzTDLfpD6v6oFWOM/zsPBL+pbwJNVLHJfsZ0QFHQCfIX+kcGsnxLvCTTWd7d5wIi0/lm0qCBRElpyKX9aQMMzkJW7CLXFuxCiZDsdySMr8P1QgUS9uuE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320664; c=relaxed/simple; bh=1PGCOGFGQekBR5Mt3AhH2f54nkQPkDJdQWf0hZtQN5M=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=kuyKQasMkMQw9rdNxyJxgGmCN62CAmaz/dExjt73ha069aGK6z1n3GYsPiXlZq39ibD4F5h3ZAiEmGDKcRbo7kwqykBCPiwUk5f+ov26t5tYvf6HmWcK1ZEsEyf72SJE0QBI/vBr60OgEjs0bNbWu9/xvmVLizUQWqCbUBixOUE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=SUWF+Tor; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="SUWF+Tor" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 19627C4166A; Sun, 24 Mar 2024 22:51:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320663; bh=1PGCOGFGQekBR5Mt3AhH2f54nkQPkDJdQWf0hZtQN5M=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=SUWF+TorbshlAeGV/s7d/Wx1jPp6yHr9kd3aoabxqSdzKIzfN1vupRj2EPgm6h2r6 0w08ZuZczopFRaOQ0Xrq2xTNW7rJdShlToAg/RIQXTBkD1syZzRH6lqQc/A1YLKOTM gVg3UzAkY/tEg6eovN/c9foevjOzsbemb5M6TymPh1h3XmhfE3nFFLfkI0f+vVAkU8 UGuKruHOk7rohcJcyaZznWOKCWsZ4meIWkZbZdxXPwxPB4TGkOBiAv1lDadMXnWEDR RcOtj9XmeiCG20qwG3SFqnAU60QsIXx8iG/5SOp167DtV38vFfCw6kDcOUZ4EZoBqh RwIo5OeZM13iw== 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.7 226/713] wifi: iwlwifi: support EHT for WH Date: Sun, 24 Mar 2024 18:39:12 -0400 Message-ID: <20240324224720.1345309-227-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 678c4a071869f..d85cadd8e16cb 100644 --- a/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c +++ b/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c @@ -2090,7 +2090,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CF42614431A; Sun, 24 Mar 2024 22:51: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=1711320664; cv=none; b=UAlamrzPUCxcY1qD29NJkskNmuI6btFoBXSWPeozdC89yTKJUwnAtia8XVF4/tBUez9edUYAm4yQ1/aKoQiJUOKyqPwAlZNN2/G6C6NwUVsh/3G/9V5c4OJVU+Bp5N2yjNLSx7xcDZncWnjNXTZ1dLvxjthj0Cy34IpUH2Wi73E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320664; c=relaxed/simple; bh=2q6oHfjoHzX8gP5qDR5Um+xcUNC7XmVJXbcW1TFzcOM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=DyrzWMofztJ1E0AfGYoCO2oJXvVTljKlK/GSgK98XlOjrSGK0JLeyx62JXlGz2F4kj5ZPNWNnhn+riRfFIftlGwtJGyYS+lCs/c001ymQ5gwLqvte9L2jIh8aWTqsNItf2WD6x336SU/1BzW1MC+bYN4w6RTE+14bGf1BzzE6bU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=YQY4wiRm; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="YQY4wiRm" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 16537C43394; Sun, 24 Mar 2024 22:51:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320664; bh=2q6oHfjoHzX8gP5qDR5Um+xcUNC7XmVJXbcW1TFzcOM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=YQY4wiRmVMqfjIPKGNg4ALH0wX9nb77esHWI32Hnu363IqmKwUU77OVB2PQYsbF2G 8k1URSekz9V8H9nyFrxOK66TnkkohBkgcyy+9SIL9sdXfQ5YvCv86VtvfjhAiaKh17 Ofl6gnbXtf5Wm39JqiSmGJbvb/iOqm4CJOlJl/lSUmHIvA5zaNpRTKGDBRH4Ik7Xij SyYXnh7Sv/DDk5G6TFz49hhACijb9tVunZhTZNAAWcdc9vfVM87TwRVJEFO+hWv90C TC4Xszia87tg9eJ/aQC03dlfhoZHzFZOwPVO8ka/8WF+MWJffcbaOiV6KDxt/L56Go S1pJtpVAZO2eQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Miri Korenblit , Johannes Berg , Sasha Levin Subject: [PATCH 6.7 227/713] wifi: iwlwifi: properly check if link is active Date: Sun, 24 Mar 2024 18:39:13 -0400 Message-ID: <20240324224720.1345309-228-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 556c7cd721b5262579ba1710c3b4e7ffdb5573ac ] Before sending SESSION PROTECTION cmd the driver verifies that the link for which the cmd is going to be sent is active. The existing code is checking it only for MLD vifs, but also the deflink (in non-MLD vifs) needs to be active in order the have a session protection for it. Fix this by checking if the link is active also for non-MLD vifs Fixes: 135065837310 ("wifi: iwlwifi: support link_id in SESSION_PROTECTION = cmd") Signed-off-by: Miri Korenblit Reviewed-by: Johannes Berg Link: https://msgid.link/20240205211151.c61820f14ca6.Ibbe0f848f3e71f64313d2= 1642650b6e4bfbe4b39@changeid Signed-off-by: Johannes Berg Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- drivers/net/wireless/intel/iwlwifi/mvm/time-event.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/time-event.c b/drivers/= net/wireless/intel/iwlwifi/mvm/time-event.c index 98c64ae315e68..da00ef6e4fbcf 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/time-event.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/time-event.c @@ -706,8 +706,7 @@ static int iwl_mvm_get_session_prot_id(struct iwl_mvm *= mvm, "Invalid link ID for session protection: %u\n", link_id)) return -EINVAL; =20 - if (WARN(ieee80211_vif_is_mld(vif) && - !(vif->active_links & BIT(link_id)), + if (WARN(!mvmvif->link[link_id]->active, "Session Protection on an inactive link: %u\n", link_id)) return -EINVAL; =20 --=20 2.43.0 From nobody Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AFB5F8527B; Sun, 24 Mar 2024 22:51: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=1711320665; cv=none; b=UK6f8lodqhgiAjZcEatiNXfHxmsdAM/Es7qZcDEI4sHUGj9S4RAkMtRoeK3Gkft5ke5a/YhcQrN/bvjKbxiZZW9sbJAKzAdIizu2v4Hl5WKsfPIvxEilSualdqKje+KThbXkjLpTifEuxfhF5znZ+t5JDPhKIp2q4ixlbIQl/PI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320665; c=relaxed/simple; bh=lzVnQlyO7tR3vPso14hf/vGA5Oj0nELSAcGLnpQb/UU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=M2Ar7RB8TUwqysSRURKC4uzbs8G73QXwF0cP7qXsUsYnIL+MaVtkuUgYTE5R6beH7wBwpJcboBtI96PVR9yLLFtgBv+graBUDHrS5TTTssCUwr3AvVmuUGWOnqwQAkLh/I4ErZEPH2pkVAfSYfaKNLzZIExDVxjO9EUMBv52ITg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=BbVaYrrJ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="BbVaYrrJ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id F0B13C433C7; Sun, 24 Mar 2024 22:51:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320665; bh=lzVnQlyO7tR3vPso14hf/vGA5Oj0nELSAcGLnpQb/UU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=BbVaYrrJbN/6frJmUzVpxcnPr/sc7G0i/FTDT8Ln9LUte+QZnwS2lETbDzbs9ivh5 cj3U6ntXJExiKXz9Ot8CgD52xZ7+KbYyTciexVn3IBopIGUO5DMh0rXVNqyHlncf67 mYy0dGSkWic1lHmgjceUFNIEB/eKsXnLSex7i/R/6guyii2cNcvxjf2nHMO6GO5Wm9 GicViLQv5ZzPm6y1gW38vosiL+o/aLv/oE0V7G7i/f/QBbT0HpN6cdxBkaZDJSusn9 5H4EvtnE0Uus/N/iriVRzkl5Wfyctm2NGKGFbZqe7EkCZmwW0JT86crZ7kSx/2J62g 9tqR3C+06g9EA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Johannes Berg , Miri Korenblit , Sasha Levin Subject: [PATCH 6.7 228/713] wifi: iwlwifi: mvm: fix erroneous queue index mask Date: Sun, 24 Mar 2024 18:39:14 -0400 Message-ID: <20240324224720.1345309-229-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 461f26d9214e4..930742e75c02a 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 */ @@ -1636,12 +1636,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A7B6685279; Sun, 24 Mar 2024 22:51: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=1711320667; cv=none; b=fejY1QwvbtFe0O2WDrEWFdkfq+6WiYnroWTfDsuk6TR4Wu3WIEdCET7QQDqgyj7Uz4FpQBCinO6KEaBVVBt5MlcbnENnWWziuqzuP3TipQrRKyD6QohpHYf+2x0Zsu1CWnQOsGsIavYQ+ehYjmRU6RQcigHdHz40LePJu8a/Ctg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320667; c=relaxed/simple; bh=qBDDt3UEpEEh1v+s/AaZiH9vTDwgz70LlK5QGjZqtYk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=k2Pr7RFtu+/jdcJp1PGqlN3w/XftgMIPxghbKKOMn2yuOu5HgsV0q0ezNyJ7FMIAnSdxKdw20ezkvf88FsU3rrlukthJfNTtyZSwnSMFE4K64GMW0xddAvePVlgROxNj7CQUAtNv4AftN6cDJOh5LRNgdFN1hrLrbMD3WwyLV4c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=PiFxs/Pp; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="PiFxs/Pp" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D3F80C433F1; Sun, 24 Mar 2024 22:51:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320666; bh=qBDDt3UEpEEh1v+s/AaZiH9vTDwgz70LlK5QGjZqtYk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=PiFxs/PpL1rxV15WRXiS0kF1w9PL7sDoBHZVDojtXyDr8WBo5lB24L8FD88yZUKq0 p0juc95Pk32EdiVF5X4+/c1U9cqf19GFfoEQmROGN2UZgUkIepGf9S4BfFuy6N/ANG dBOOddIBvHCfmHKLPk53AxR8jcaqdRQ+Mt2EPcgikDtUM3A9aD0cJzT3zzuQHYxOkg yOj4sAJ0xpeR0D7NGpWRyd9S51q/f7YbS2HGqrZ1jpcWhRuqpfbXa6mkcTq37+bgaY C4j0g8BUXycf2I/X+/6I4uFkn1av42idiia6qCkERpcy3izmtCmtqSAWR5uZjcrhh4 SgB+NtgXuDaCQ== 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.7 229/713] wifi: iwlwifi: mvm: don't set the MFP flag for the GTK Date: Sun, 24 Mar 2024 18:39:15 -0400 Message-ID: <20240324224720.1345309-230-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- .../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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8F0BE8562D; Sun, 24 Mar 2024 22:51: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=1711320668; cv=none; b=iQLk6andfOMdXgISgEg93Ipoccru7WRlfbfTzhcV/qSipcbMFN/uZLc5BG58/eG18kr+NoTUF3K0slP/wy8h+03dn+T1XGc7MkBu3c1QiQv1QS2V0o7EZxT2mB7gI+x09+WfI+i9bv8YBFKeKfGqFnE+aivdVSRl6PqFtprYP7Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320668; c=relaxed/simple; bh=CbQovSnh/dktStb/N3qtE47FhWbJduvRic0p8lPpiL4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=URL1UkjysjxeB/FlFFHq9lnDZHwxLCwet/2B0f5biUQTNUhov4v/LSOQgiQ7Omi+/b+tfQ5slr2H9jzpfJ1q4LYoymFEnIKVmx3WoetQUO9O7Nxm3rDKkEkn759hTx12XhVb6mDOPIx+F42o5oIWCXpHxLaueWTy9zuCp1o4TzM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=bbliT4kx; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="bbliT4kx" Received: by smtp.kernel.org (Postfix) with ESMTPSA id CCAA7C433C7; Sun, 24 Mar 2024 22:51:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320667; bh=CbQovSnh/dktStb/N3qtE47FhWbJduvRic0p8lPpiL4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=bbliT4kxIxD9FH8NR6dKQiUcdvjQYY7zg0PE4UF7P0REIoumleuFy0Mtj7L3cvIrj TJznvPgKLLsnwLKs6zCASKVyBfWtZdk2bHfYlvDP6pMu8mD05zqUc10+El7Eiz6OPd fItVfobIdOQIpucFUoMbMtN0kYlJMqkg8EhfIAeaRUhi6M9DFjVvRGvoeaJrS3+lnd 0ycDNQLE2iUPG24ZQ33sHzq6YTVak7MZA8z7oJL0OI911knQp3RqL4QVdeaYENAv07 mO01MwomI//94uFn8V9+dOUSqA4q2ITltLZSH0fhK6G6OWPLwpNrX91SMBGjgFAM8j BBZLUlJJLkKzg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Johannes Berg , Miri Korenblit , Sasha Levin Subject: [PATCH 6.7 230/713] wifi: iwlwifi: mvm: don't set replay counters to 0xff Date: Sun, 24 Mar 2024 18:39:16 -0400 Message-ID: <20240324224720.1345309-231-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 626e9b94a6624..d99a712e7f44d 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8BA0F1D449E; Sun, 24 Mar 2024 22:51: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=1711320669; cv=none; b=sRyj2ymmrqGxog0BIWdw/DxaLKDRiYKxAe3vnnjR1bnAl+AGPjs/TNjQy0qH0l3rUxZqkKJCwc4hlZFqYruPptporPJwwuVd7mgmMNKWnf5JMBttWIIbHKBZxru/FHON2SLZZQF9CoKzggex5Xz/nQXUds6XIYQTCgmhCPuWujE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320669; c=relaxed/simple; bh=Zo8E7sPDfcA+uBjrOSgy9Ane8vCACYqLqX3xklvIW4c=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=uOm4Qc5rBplKhRbJv+zSLtNcP0pmtquDV7tsoSUwIwO9A65HC4Wo1CZCywD/RDm62/EZlF0E9IC1N8+7c0Qo6Z1D425LJZ2fAdGaLVvM9nyYFpD0XzOUXgY7bdC9hZWp8M2Q+yN09ap3irtuaVvv3IrEDvZSVTgmMmGRc0SD7Q8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=k+XTHiCT; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="k+XTHiCT" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B399DC43390; Sun, 24 Mar 2024 22:51:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320668; bh=Zo8E7sPDfcA+uBjrOSgy9Ane8vCACYqLqX3xklvIW4c=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=k+XTHiCTVXCDOfyIs3RNYZMerjkIb0lWEB05emnzOLouIdlqWWTrW2ShRyq9SKtSu SOB1Hbr/xwWOU3rxAcdV2u2RHnOz8GNxtHSgTmgbndTUvwZ4JYGk19h/D7jnRXTvBh REpECxfkX/VgPuTZgFmJSN6K7LheSrHfEaidxz/9VIvSeWSl6qTexhHhd/BfUdhqSN ZlUrn5sxOXU5fNDuWDbLsrMFS0P2Jnm9UUKjsvshDTe31T+KVjfQAnxxSI+pnCvp6+ 1KVH5vn/gPybvuB8xw3RXbh+6RetE34AHUxH09zbJyx+HdWpNoPHStY/m3QEsw2bdS KkzlKiAOfhHxQ== 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.7 231/713] s390/pai: fix attr_event_free upper limit for pai device drivers Date: Sun, 24 Mar 2024 18:39:17 -0400 Message-ID: <20240324224720.1345309-232-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 39a91b00438a7..fc2dff1e4f796 100644 --- a/arch/s390/kernel/perf_pai_crypto.c +++ b/arch/s390/kernel/perf_pai_crypto.c @@ -715,7 +715,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 e7013a2e89605..32b467c300603 100644 --- a/arch/s390/kernel/perf_pai_ext.c +++ b/arch/s390/kernel/perf_pai_ext.c @@ -604,7 +604,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8A1B314387E; Sun, 24 Mar 2024 22:51: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=1711320669; cv=none; b=ir+nqaxChBljtBvSOLkt0llLjLyYsc+ctdgOxrdWbwgBHyYJRWtmQJYrtIkC/jO9n9WC6Zhh4AolTqJPJ/JlJ8Z8dLbiPD7JPv2vpBsztqMtsOy2hvWB6oCC/Q7l3ivIOC9yeWKl3/wIFPNsvrsGeIrCSADooBOv+ePvOtRXJNc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320669; c=relaxed/simple; bh=D+nadqxwlJrpxWU98ynFUoEvId/9NZQwyj9q4BxpIUA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=P4e2z7mIiUjEMZOe8HqGDIPKkke54cbfgpjadecyyiIZUw3EzZtGRj6V70AAuo8hPprNufNyrgTjy7STe7q2Cp2JDzjjewy32UJvj4b3IXSM+fbhbE+D+RjqqCPtRdhTfLb6RrbTL20dtzrf2UvKx+ts054O83zDkkklksYNQQc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=A6j0PA5u; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="A6j0PA5u" Received: by smtp.kernel.org (Postfix) with ESMTPSA id AF659C433C7; Sun, 24 Mar 2024 22:51:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320669; bh=D+nadqxwlJrpxWU98ynFUoEvId/9NZQwyj9q4BxpIUA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=A6j0PA5umaUbgdyqPU4vHgrBjEf4mJSktaInLgQHGZcCrc32Caf5CWkXUg71zBV+B +Ay1c4FomIjxDCoeQsdHrFhpmLoPDG34jePUYVkvi+HYmtqPOKtmzaNVoviRGemxPb DEJzVo0ZAE4/AiqsO2zDJHVbJQKLcwA9aHaIiTkmy5zd7ac4kSu1LE5oW0Fl2eys6f bk/ONZFHLjT5L0RYL9oUyS1EldZTfZAVEnlf02rykSJRjrFycypqeOV238rzBC0YNn H+rbn7WEjq1b0aOVSCuPnKlCTwANZMDfBxjtaCzatx4uLkpy2vIgKFqWWmHHVyib0C hZ4T3x/xN4pCg== 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.7 232/713] s390/vdso: drop '-fPIC' from LDFLAGS Date: Sun, 24 Mar 2024 18:39:18 -0400 Message-ID: <20240324224720.1345309-233-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 caec7db6f9668..b12a274cbb473 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 e3c9085f8fa72..caa4ebff8a193 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 73B1E1DA141; Sun, 24 Mar 2024 22:51: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=1711320671; cv=none; b=imH2iRcAOoscZbwWeE4OzQ8qoIGUGcbUrZ11lcMbEOmW6lDNPlBOQ/5tlUCs9Cphx4V/RwVbSJZzdldPb4KJ4pu1mreCEbTZcWSd+g1KS1CUz2g/rhSy6PND+LidiUgc0Tr1L0Ii3rLMHMJJdY7rFuODxBDH3G39jj1JI6qfVUo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320671; c=relaxed/simple; bh=of02US8bUUeHmltBhwO0q0jgCHO9nnXXigQFqbU83BU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Y/tcxlBDh2Y+raXvTUeUeaNgMFXW4u+0oTjYWxEdO84Y6fLF+RdQC/fFwKEU3HNd6TXaICD7ke4EF4ObAbJpl5VdVm8sx5KNy8kj3UjwXMszPXVZe0eYHady/hu/dQHe+14izF2SWu/xrKyVVG+siGfgNh/ZRZZoq355WroeqNM= 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/n3ljvA; arc=none smtp.client-ip=10.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/n3ljvA" Received: by smtp.kernel.org (Postfix) with ESMTPSA id AFF36C433F1; Sun, 24 Mar 2024 22:51:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320670; bh=of02US8bUUeHmltBhwO0q0jgCHO9nnXXigQFqbU83BU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=R/n3ljvABtYRz0ze8zFqIHVQm9T/Do+MoG2uJhBbSxgyH5hWoAD0GgRWE+HSrOeKg oIvOoe79UzVWBMqXxxfTweD5tzMT40IBd3LEHgT5L45HvVQ0HJcA3D8Ncxj2FZlNS3 /GHQMQF7VvPzxEE7n7gD+3bqi5P3L8c1fQaVd3lnwWsOiZeTfDKu8JJxWrHanxRdTe DSNmehPYwczhdD492ZD87NX1KYam2R6qChgHxrh4EuaOnOyINOO+ri88C/RhV48sjA GBWGlVbs61XEdsuVgfApXTgHByJWRsBJcQwsE3dspsqvdkKnSM6y49XieqQ+L9Kpvi OAi7drf71BhUQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Petr Machata , Paolo Abeni , Sasha Levin Subject: [PATCH 6.7 233/713] selftests: forwarding: Add missing config entries Date: Sun, 24 Mar 2024 18:39:19 -0400 Message-ID: <20240324224720.1345309-234-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7622C1DA14B; Sun, 24 Mar 2024 22:51: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=1711320672; cv=none; b=i5H8AtXAIKi5L5qlHqH9psOFv4wbHs8h2gfNkL/o4qsPebHIp6m2CxrUQKKC/ryeZOnzESmJfJKDOwud0ak4gG1XcvpuU95mMO4e4FSyunaJ3zutjcJFGrPe8D0q+U0e523iOPr+lDRwY9Y7ByBNWHanAceQEU239UrSZKQq5ck= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320672; c=relaxed/simple; bh=PixZTdAIXb+apt1+3VrFpubrgiRaiLYdNla0aHXf+/Q=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=EURAH6kIKEarO07pYi+BT+63t0UHi9H4h2Gxz4cVhNz9eOKdSr9c2bzJDaYpnf98muGbVnXoWmqgpFVeSrKd4fztGd5UNVLROxXMcUcYGuEtiT0Eshj+shzja1p8E9SwNtCGC4eZnn1NbI+BhdeJYgna7M+zzqVun1dzuWj/vPQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=tiFGIXcE; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="tiFGIXcE" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 99AEEC433C7; Sun, 24 Mar 2024 22:51:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320671; bh=PixZTdAIXb+apt1+3VrFpubrgiRaiLYdNla0aHXf+/Q=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=tiFGIXcEE76B2RYEH4rM3usAbm/fbBJoL3Xcn7Uj9+gHIgCHPxBisJPOhP1qQpNcw mS9hAfcllMq+BpLDgOhOnzXOMtrHi3dYq3yesg5KKVyds/3Zv61nD75aoBRJmLJTvE mQDuiYp4MtdNuxUS1oFaZXOSJ7Mf1XHuMj6UTe2PTGZW4hL6STXPf+sCwNe2aD4ZFJ yvMkxQ07Ldz+K6xB3fp94iFgKTH7ELm9ylUV0JIeCtOJtFLFsIKWu+b/6lKxnht/kl HWgawzvssseAA+qPtLM61jaajUEhG2TJMMa6hu5On6VuN06PdJ6XybMRv+XrTIhfmf MXrK6L77TpjAQ== 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.7 234/713] selftests: forwarding: Add missing multicast routing config entries Date: Sun, 24 Mar 2024 18:39:20 -0400 Message-ID: <20240324224720.1345309-235-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B52081DA158; Sun, 24 Mar 2024 22:51: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=1711320673; cv=none; b=tpnkP6iAJIcTrcfucNmmhkJxxDD72Rnu1Fsqm8BI9wNmwW3pNZVn+hpvA49J2Rsgul3vT/hrTj0PjH3Nug3MF4ilk6F1YqojzGy6Y/7GE6A3VTNIOcrtNuxH/Qsgi+TZmVBWFzEgjMRcbQ9CdjTybtU8PkHzKr2DlN8u9G59czo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320673; c=relaxed/simple; bh=ATExb8dnzR1+3OF1sfOlEjOUy1xTMLsnkXvdaxfAZEA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZF/KdfMOkDgAgFUoHkG3SBnQVo+vjvLnlG9HjiNO/d2657XoFIU9jUMrhhsceDGEegTA187fzg7dHRx9qS2DkbMkKa9APTyEDgYoDm4LoWSxzea27kwqPojHw5CJQdWYZBSnTgivSwJHn09Q1e0JMtj0WZ2ULyqwu0kQ5dJKCVA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Ya//cRAj; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Ya//cRAj" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 97D57C43390; Sun, 24 Mar 2024 22:51:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320672; bh=ATExb8dnzR1+3OF1sfOlEjOUy1xTMLsnkXvdaxfAZEA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Ya//cRAjyJZMrnClddYLGZA0OdD1wRGnJRzSUJvoV6xe9tPoeK8I5ww39sxjbQekr TQ5jfFDmbLsZ3Jk694m9gkN+tLVMki5hK4qzj6aLnSRGUyseM5wuLOJ0tzNm5o3I2u 4li8eOiLCw85TPyKdskxIzEsg++47EZbVy/UX/K4FRYcKhoRNqbxeJ3SiCYSYr/dDj iXferKxtOEe7hRDdGFycEiq62hqgsaZamWV2GVZy6kwT2dkE4505OH3hddLD/1Pu40 vxPFqhu6xk1GUSsD+gSFpJHezacE3ZH+AY8neA1Fs+cZBHnB3lArwUQu4iVcaHWV1V iCeNBX1yW2X7A== 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.7 235/713] ipv6: mcast: remove one synchronize_net() barrier in ipv6_mc_down() Date: Sun, 24 Mar 2024 18:39:21 -0400 Message-ID: <20240324224720.1345309-236-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- net/ipv6/mcast.c | 1 - 1 file changed, 1 deletion(-) diff --git a/net/ipv6/mcast.c b/net/ipv6/mcast.c index bc6e0a0bad3c1..76ee1615ff2a0 100644 --- a/net/ipv6/mcast.c +++ b/net/ipv6/mcast.c @@ -2719,7 +2719,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EE43F1DA146; Sun, 24 Mar 2024 22:51: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=1711320674; cv=none; b=PTlhFlbwvJ4jNMvErUEusTBRXI36R/mWkXUoQOavXM3drgkqnaBd6RRiYU1uZBRn4yS6Qc353SLPtULCr3aCyayC2xutsRupvFOCBTMh2FJT6ImSEPHMgQ1NeGp49fMuSRf/yR14/rBqsokySIxWDrId5u9aZYALgD1cND9nl7s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320674; c=relaxed/simple; bh=bkw6LBBKWHcbBc7OOt+mwhf3IPxZONDWRPDU6cL3dME=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Uw5fSg8wkibgXit7mPHKwFBVTJLo6BQs7Z5DN4OzNWd225BShaqc6gbHVx2YsZmoAwyLajpFm43QX4++2JD5kQyX1BUE6H9iG0eUZnXQRY56u8x7Eun23PJS6WTgeFZJYnI+8A+hDL94+tJGKw8HH0qWfojH4oSi208j3pkuOPY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=MgrBVCsN; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="MgrBVCsN" Received: by smtp.kernel.org (Postfix) with ESMTPSA id DFD61C433C7; Sun, 24 Mar 2024 22:51:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320673; bh=bkw6LBBKWHcbBc7OOt+mwhf3IPxZONDWRPDU6cL3dME=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=MgrBVCsNQedCLI575Y0x5K3YQC6NO1RWCHaKfjimcuZDlJYDPAz50ktWBpXmccPIf /c93nCo3D3GCJg9f1VHBmIW+ePSUAixUoVS95KhU5NiNr28yvrMyuPlZYInimDCGG9 jpaAys2dJjrxUdl248WjhlaEuaCz7mB7tPqdHowhLNsW6b2iafhgdbI7xCkJiIDCZ3 reB+nSOGNGA9IAlHy8X1FoI2GS71KT7Y563QYo/IjTgtBfsTFb2Tz8vfHrY8DojCPz ryhFwZ887vGiYQMdGWOnwnP2C+8dypIYC1UUDsoYoSVn17PchvpI3YgPsZj4vMQcVX BF9e+V6qX3FeQ== 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.7 236/713] arm64: dts: mt8183: Move CrosEC base detection node to kukui-based DTs Date: Sun, 24 Mar 2024 18:39:22 -0400 Message-ID: <20240324224720.1345309-237-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-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: Bagas Sanjaya --- 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 7881a27be0297..49a1c3ccb0041 100644 --- a/arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi +++ b/arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi @@ -935,10 +935,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 14DAF1DA15D; Sun, 24 Mar 2024 22:51: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=1711320675; cv=none; b=ns/Lc1enj/i/Oc02cXI5gvFeahSmAPShojrib4iUxFu3ZaNYZ8Ng5lFGuL7c2X2hMvczZSkymWhrkwB7THXECs0auR47STOq1NAfFRSqJkU+o32QtS58EjKy4IkPVy4WqVuwOhUhIno4E8Ge8I5BPLmL1/K2LOAUS1wvVU28vrE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320675; c=relaxed/simple; bh=A5zfCys77iQwcQNBaFkrV0ST82y1Y9bXQsEUU83makM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=d1D/akBVrkV2pjy3SuHVElROg/ZbeilvJYuiawBP25VmoXsxMDSi2dS9fbSRZoA68nlWMN0wWp3dhiduonj7TKZnxgp+mJCd2OMb2MkxW7+6LS/f3tzFwAjU1kooOGSmhsO+Xakdw3vBOud0ffks2ThKtXCoYabMOQ0SevfJ5jY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=HK2/S+NH; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="HK2/S+NH" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2130FC43399; Sun, 24 Mar 2024 22:51:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320674; bh=A5zfCys77iQwcQNBaFkrV0ST82y1Y9bXQsEUU83makM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=HK2/S+NHrCOt3yQPAgkLu8RcT2stot7t/rtEcXGj0qYkHuk2VPYrZxiaDAmHJY1Tv R+LYHGES9O4BbuOMbDfGI22t7J/UqgYiTadRACNVxCYuV4Wpgvddn4JTgrM3LwjNwz s4BBJ00tN3GebiD/6g7pSEfOVyR4qtoAEXNVX8p9mwXgm0YzIlAFCeNHoIOWcnB6PW b73AKIF7VdIBP6nlM/UxPlioVTIWpgYGFGMhPoiVRgn5xU1XmkYqtAWT97IGlVMb3u WOcGW8caG0UqPgOCiwyZBRnPXZfpaisHoASvm9vYswNMfL1I9m1tVuL7FJtixB+waK aTc13iUgUP7dQ== 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.7 237/713] arm64: dts: mediatek: mt7986: fix reference to PWM in fan node Date: Sun, 24 Mar 2024 18:39:23 -0400 Message-ID: <20240324224720.1345309-238-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 27C571DA171; Sun, 24 Mar 2024 22:51: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=1711320677; cv=none; b=aah1juztXzNofFE/qmo5tCdmG+TXcZTnlw5pGw/N5pqqj9M4Ce0o7DlkA5BU3geR2Owg8HXynoVA/XkoNaK5p2GBOznP4h6XOAxqhOIPjn2epXfkt7ayTGSq3Wh47M5AV5lgU9ZQYRD3hfMd9JzuQ0IIrOsz7ggTlbjwkz/6oK8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320677; c=relaxed/simple; bh=/Cgj1l+Rb/KLXPOO1028JhYLxPr473Y7ZEhHjRqRylU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=fCf8SE6//8d509BylWjKZ6AV3egYuV7uUfLZReTSn+mZXCKCDwJOn9iBtuJqYMGsmkDEcbUMyk8wIq+Fgrar1Z1f3PVoOx6pOWH0sjcrA3BJswGIfISre85hhy6icLRYlmuuWFVJEQssHhMQA8DqRSxLHo8SXzV8G7QMTM/9IQ4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=RTgAYiIy; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="RTgAYiIy" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 32A07C43394; Sun, 24 Mar 2024 22:51:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320676; bh=/Cgj1l+Rb/KLXPOO1028JhYLxPr473Y7ZEhHjRqRylU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=RTgAYiIyeQF3NDDfQUSNifpXilATzYewvpEUxElx56HrfeehQAMk5sC8ASWa9MoLH KtjC47h2gorwjmbnldRDBjYCilx1D1upnEfBBgtDcECC3sYLn6tNfGiOSqdji5PUq0 mIwWHSHA5KKSrWediGU/oO1VDYWY1g2NCrmw+U/k8DDL/fRVQJsnalxKwTMJwjqYek edFVLmrfoMicDaWc2wITHs8u+S/RBYltOmUf+D/JMC5jyiZELND0tMj8ioiD4neSyk GL+VuFfF9mZkScvbk85MfcG0wL7TH9Ao4Q/WzA+z+1gM2vcHRhu4V8XcmRgTyEKsug HMuD4fucA50wg== 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.7 238/713] arm64: dts: mediatek: mt7986: drop crypto's unneeded/invalid clock name Date: Sun, 24 Mar 2024 18:39:24 -0400 Message-ID: <20240324224720.1345309-239-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 199DA1DA15E; Sun, 24 Mar 2024 22:51: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=1711320678; cv=none; b=HKUdGgiu8KdPw3LCN6xXW4XjN60CoqcWbQo35mUZr1yKaq0I2fYMBUsn6+l1v7qVJ0lJIqf0NlHT1j3wCM5VHMKbj5cYJAZPGOXp+CNfwwuf/VzJ6gcaj63Fan4j41l+ulJZ0FUXSTOg9P5S6d93qfg4RO+2y/JWREcX2Llb4NA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320678; 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=cVrDVtnUmMRx4Fr9V4p3Z9/yRxl6gfO/ZBEeKck/UFia/YMoH+VC7KYRhCilrBQz9WuLmw5ZNHybrkLiCAjfAw7UPfZe0YFNw5z3eM2ERgkFMKRzaGV004J5hvKAJTzbhP11L4dTi+K+FIB2bhDEWZmR9OcUxnbA8i/00IH+5KQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=i0Wx3fBT; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="i0Wx3fBT" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 44449C433F1; Sun, 24 Mar 2024 22:51:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320677; bh=dX+p9aq8ZTnlef2Gmg+V8hnuIMD3+xTYM25f1+TPgKM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=i0Wx3fBTubs4l3w6cbaS8FLb15ItrD5wZJ6wL4tYcaRU3nrRKJL6aWoQ3varAHBkn mddtYmS/ZGdx8EX072nQ+k1H0Gh8Mny7mlHy/5eS4LmCK4Nobs9AWXZRVbvHuBL4QB Jt+GWKyjzSWKEa7qPoLISmUDtPVMNwMKkkKFXF1WdBX9RHGet6tv5JE7brHtIMzE1I knnv9psJUjcPsq1HROfQ1UzMJ7UTYO4gBKER92JuYSGT1hSEtmtTQE25oHVFhnhpF6 HwSmE3lE6kuIlEW73KgBQU7aeVUbJuSCUi0eSq3GUpFXUwMNHjYPEeykOUtkpuDXKe WFIbi0+AFRSWg== 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.7 239/713] arm64: dts: mediatek: mt7986: fix SPI bus width properties Date: Sun, 24 Mar 2024 18:39:25 -0400 Message-ID: <20240324224720.1345309-240-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 17E758625F; Sun, 24 Mar 2024 22:51: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=1711320679; cv=none; b=WAspMu2R2sPX89FwY0gfS73dJjVthfzINW3vgbv7KpfD6AS/aT5UWDDws/BVemhvn0ELAKvwPyKtQ8IrWEOkr2T7ESjsR1PhqhR8tZiHZq3+s9oe2VqVmgAQkHdvseTSfREbfkw4omd25VxA1IdjH8B+CrUvjKvGDZF3WHvRBbI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320679; c=relaxed/simple; bh=6IAXt7kg0mXsg5guh9sUHvOjMA33teZAxvgBy5cfGJY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=bNqg2V9qfPNv5G3nD1neaxdj40R398im0UKQAfIVJIje8ucuy+BtewxM7jZ6PDzM/2tIFydsVL2UC5lPVaTj3HECEh/jiQG9V6aqy76zEOQbtSPY7zRVlBEGiUaIEMrm6WlDM0s6YfL2Gx6x5L+ob0gwDNDccvgdsJjfJ8yzUp8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=j3hn51Qf; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="j3hn51Qf" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3D5C2C433C7; Sun, 24 Mar 2024 22:51:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320678; bh=6IAXt7kg0mXsg5guh9sUHvOjMA33teZAxvgBy5cfGJY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=j3hn51Qfo+yztoqJKFj2MBZgtLy9/O42hTDMJlXYvG7innPdKirZPVPVq0ScF9DRC C9KRXlM0iI5u7PzL5iYfAEaXjnuMDWOEKD2S6RocXxvxAhaju72erIFLaGG8f7Jq3C n2n2hyxCZMrWsqVlaXJw8Fwu6gwQWqTtSS7DIv+uKBRRCRBF9Ahc7287nbR0Su9YhS WrckfKyKLl+IMPQSvpMp2jUem3FLF2OJbxgmcmWQyPrUmceY7Dp596grvuQFh94V1/ y7Tr17RalplBykXLVfP8hzB4TT9EXqINQ0X8TSGxRZ4114oZIDC7A9wtSi0T5el6n4 RMwhgseBU9yVg== 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.7 240/713] arm64: dts: mediatek: mt7986: fix SPI nodename Date: Sun, 24 Mar 2024 18:39:26 -0400 Message-ID: <20240324224720.1345309-241-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2C4EF86276; Sun, 24 Mar 2024 22:51: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=1711320680; cv=none; b=hFsA8DZzmZ+F0dXh8XzYARQIzI6wecOpQZE85Wrb3Heq8mBQVPOCvlfnM26wKlg1sLdvem9DA/fthLNOKP+Oa0L4hrHuM3q1kPj+rWVQCfYnrmsGxBcExjA8oINRNqnM7VLipDR3rk0Ev0BRmC8BAi7fEUfERI9Llq71Wx2u3zE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320680; c=relaxed/simple; bh=JZ9hjUv65VKWnCNf16bYhhk7KizDvVvRGq96t8SMwzs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=qTi0f5RovxP6UMmOdqAZeyjR3dSb5RVE/ub5e0YnuOGTo+Ph/SYa3iecARHN1hxxUNYMbAtq0ZkfGYW/PcW2JrL8r9s0X3CVWTcexxQnP7UnoRIJNpN4Ai12L/NYMPU9KDdjbJXhjdUS+RaQCHTfVxDPYPv7AGb/jkEFfosHrpI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=f5s/2GKu; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="f5s/2GKu" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3A15EC43399; Sun, 24 Mar 2024 22:51:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320679; bh=JZ9hjUv65VKWnCNf16bYhhk7KizDvVvRGq96t8SMwzs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=f5s/2GKuPrhg20fFVueR/7w/BQr/PX2+QYDdnIWLO9AIVmUjpaEEIU9Qqf+OjQp7Z OqQDD/6Ark7CYbN+qEbVYEE/2MF0cje1ukUVaY6cma7WRPUeE9wDqz5vuopKDIvwrn 0aHLyXUGP82ztBFkcprTkJed7vQUgVW6/6mhwU0iiW0kgNy4whuHdBebBqjRAxCh2o CfZ+0PeJOz048CRsLCo2KNpvdBlXb+3I1LwTNUMZXn3xGLtSIvOoWb2ST3jUVe3SIn ASzUJiI1Mafg/1dCbeeNUgIlUvQhvJsyz0cD4YKPyPZk1MiOU/38y3Zv68cJUw9zpE sNBN8rXkCq3/Q== 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.7 241/713] arm64: dts: mediatek: mt7986: drop "#clock-cells" from PWM Date: Sun, 24 Mar 2024 18:39:27 -0400 Message-ID: <20240324224720.1345309-242-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3DFD21D5F92; Sun, 24 Mar 2024 22:51: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=1711320681; cv=none; b=U8iwsjES+fM4EH2K3sspP6mNDJnvdmx/x/AWTK9E4qIA7CbR057OeYF4hr+XkaJl+rlK9nU4WSGbiQkrUMnzsnzCrftz9zdJdWKlQkSIkhClUbDoKyTo12qOjg7fbaYTH4m16fE4DFF8Mw+UVx0xppd1T564mpWLrkCRyWXbUtQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320681; c=relaxed/simple; bh=/qCNevVVEggzTf1GpDuuZorY4cKNTJEWoKSpqvi5tJ4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=RqUpoyjoLqt60F2ejt8BoKcLmktQMiwHA7oT//dz4VdEZNJ7/hfxt1au+yyWubDOQpNc3BQYAe5JA2of4s4tWb1PIIR7h6HLEj5cyQz3ZxHbJYd0OG5WlJ++jdBvkIsqq53dty6Nly5y+HGoW3/IOZhP4p/E6d1AHeKJX8uu+Eo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=HGfmGUl4; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="HGfmGUl4" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 506C5C433C7; Sun, 24 Mar 2024 22:51:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320680; bh=/qCNevVVEggzTf1GpDuuZorY4cKNTJEWoKSpqvi5tJ4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=HGfmGUl4UVzCnbw4jo/XAeGfJddGx8+VFVH8D0Tziak2HP6u3B2CHifx/h60u9wJb Wqd1uCFTCTary1D41sy4qCWcvEU8LvjYDLXPOyfDuNkQcdNbfywMcmK9mmQqwSGd8U 1YHd0ltIrai2uooR7eC7VjwNWRvgGrgbMlBURhv/hudJ3LQGgWlTJzsnCGw/4mbhG+ +5De5JFxYS3JcQdkUX3pjUnwMj8iNKyeNiYPle0Q98GZiz8i/idM/WxRHGYN5EIIKB Ze7/rczj3ZPOZUDJl0sZdRg4MuEAvEjWiOgIQ7WbBe91ajsyvBQ4DmdoZ7MGg7unvL kuKOlk8eUWSHg== 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.7 242/713] arm64: dts: mediatek: mt7986: add "#reset-cells" to infracfg Date: Sun, 24 Mar 2024 18:39:28 -0400 Message-ID: <20240324224720.1345309-243-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 26FC183A0F; Sun, 24 Mar 2024 22:51: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=1711320681; cv=none; b=Ke4re570QFovH7GHqckwwBY2IzvnItRPbn6RtNlAyuaUeyFGlQ7AcduYSIVCxwg8vk8qA8dFkMDz2gUDTd4y01FLXEnM6uiC9+37TUwysgMDbo7oUEE2Ng/Wcxaeq+adSf64mfVhKyeDaNiRc3kujN/BQkFZKvHieOVHWI1cNkM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320681; c=relaxed/simple; bh=IjHC0V4+anwKE2BZI9ry5DDuywEgK6RvlKzFG4fZZOE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=AYZF1HnHLW2u+BpoZETqjxvciO8uM2WdSC6bODaQPtzvRctfZ8nKAqghRKTJ7OipySwtTC+yFgifnEmpO08wZAPv3vjsietJjHkLmFwwZL4We6716uSk8LAvxQTbzcXiOPGki/qLOYZ9wVIQYHM4uSU1TfBe35d1qpQkeQjNYhE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=j3iNP/wk; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="j3iNP/wk" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 63214C433F1; Sun, 24 Mar 2024 22:51:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320681; bh=IjHC0V4+anwKE2BZI9ry5DDuywEgK6RvlKzFG4fZZOE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=j3iNP/wkCoYgA4vkg++jxe/WmFLNGNhX/Uf4ihqLIxqC1OLrf+9HGieITrrAJe1Rk M78UPeBw0TF0hCcX38pnCTEAui3u/Yj/aAs041WvlQfkfnQc0gsTnf8XupIFaFT6e4 2jq/ixB/k9unaU8+s+ziGfEHRz5jb0TEZ415n83VfPue6zrkjoUVGAkJbRYtzqph3z xU6d/+lBghqAh+qcmNDpHmYImsUWKNvfbermqGH/i5lfqbDQP9oWAYFV+TTfWUTV9F eHRiZUpAyEahjoieLXRtz7QWG+o/nwzAgMUhoDuCLJjBqjtegnMLkBwBOcb5oPHzj/ GZiYff8FQTqbw== 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.7 243/713] arm64: dts: mediatek: mt8192-asurada: Remove CrosEC base detection node Date: Sun, 24 Mar 2024 18:39:29 -0400 Message-ID: <20240324224720.1345309-244-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-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: Bagas Sanjaya --- 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 f2281250ac35d..02ce05bc151ae 100644 --- a/arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi +++ b/arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi @@ -1336,10 +1336,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0F63C144D07; Sun, 24 Mar 2024 22:51: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=1711320682; cv=none; b=Up9yA2zDgO2u5ezK3hCvw0UQw5ycP6vww1zuoabe+Mjb2wf6I3jsjluJ5VjsVOmQ0iR9AgOoYt4oRF9syEz+bi95/YVlRfEyVnTy0JviH4wfgXvzkEgLQhgwcwZesNsVDE6N+8qc2W97HwdaGJBKJ/HHFy4hubfA0YGJ68jZboI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320682; c=relaxed/simple; bh=rrG1Xn02Ri/2nGX05CFu2/ro9ZQohjCcGnRg+Ua058Y=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=soe/oxMk3x87pTRn6arCkgdPk4IDn/OTxfoPmUCPfCSxFiLmfv+5+nw6sKkp968X5m5rPBWYevEyy2E4bI3wqBW+0zevQHI2Y/swuULO6/jHhzTFjPFf74WXdNGGq84ihWB8aPVX/mKlxxfF8448BnlTtdf2jJouy79YGfdc8k0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=MuSZ1+/d; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="MuSZ1+/d" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4BBEAC43399; Sun, 24 Mar 2024 22:51:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320681; bh=rrG1Xn02Ri/2nGX05CFu2/ro9ZQohjCcGnRg+Ua058Y=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=MuSZ1+/dUv4h0tdnzF25Jjfb9THgO690SuAJhiasY3vgw2ZiXkDFsZXOsv2twHEFz EWlzy57L/y0kiDHVJ15TBiN60yvWdYHz2YZeBXsidZbL3umN4xCtPGrEfaWAiFRvYJ fGVGtCLp2SQZs3B9C2WFxyLTXDrbIXgRfpZ8gPVfI8nVKdxIW6cwlJNhX+Tytdi5kD nIGsj5wtmYJfnhA4Z+1kAoE81k44qwNOWVLgZdP1xJis83GqxNLc8Vq/OctWLRKaGZ Ov8Wg2uSy5uNingYS3XR5vi/MHj1zCsFAV3wGZrJdq/Q17uVitpeLGfr7ttSQqjIaB iUYTiCfgZNGJg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Eugen Hristev , AngeloGioacchino Del Regno , Sasha Levin Subject: [PATCH 6.7 244/713] arm64: dts: mediatek: mt8192: fix vencoder clock name Date: Sun, 24 Mar 2024 18:39:30 -0400 Message-ID: <20240324224720.1345309-245-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id ED0A3144D1D; Sun, 24 Mar 2024 22:51: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=1711320684; cv=none; b=h0tpbLAYtW7s/Q7HrQjc6SuoP2cALHx07iRyTCn6pfE1N4ZDRbjFQDUN5Q/lAQ/4Q/BzaZWsK6W6cJqV/sv//eaGIKxdVfwSCUSxl3N7L38KsxNJANcyPOMJnxRyvTWvWvbRIEW1dutjXqtCctQetOhn1qbDBVrVhddL1dxb6hs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320684; c=relaxed/simple; bh=O9eze3/Xwc/ji+cKXEagCMTc8AL45Jdq9HEYPVII6WA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=n7GfDn4dPzkzI2X5ZSJ1NmmPSIRzpXenqhn7vV761FIuuKEzV/zBBbq3W96jbxnZIEjes9VmoHkMG47bIFehgdTtz8/jBLFdinlGayQjiDI38QDAO7EWQIy0M8GUDAtmP9OnmeHvCSzEqyiptkGtVhH0LpWCp+BFp8EWFUANQQo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=M4iFyx/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="M4iFyx/Z" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 32910C433F1; Sun, 24 Mar 2024 22:51:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320682; bh=O9eze3/Xwc/ji+cKXEagCMTc8AL45Jdq9HEYPVII6WA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=M4iFyx/Zlr1mVldDPKiKryPXK6jUAWlltE+b/mlB2qFRO+tWytp2Y5D4d/8kIrkjc YN9DxDmEvkWPmpzpG82FwrQonLxfEOL22apWaxkvnZX/1dis4HDmTkfH2VxZGWNgma TsP/sv/Cmr5Ck/ToHhZkVTvXNYI+zOF1TUQsHbqKOWaqsA6dyJSbEG9hH1uh8TB70T 9ZdJNfjRxGLpxLvdYRoRd9Y4JHvR76HaDapaiSMzWO4iWJWAK5kKPyJQ+lCHLT5Ysk pASKKAOQPEMboHg07yGi4eiF1/MCh6MB1//SkvjtIuwWQ55PDTX5XoFqAHl09H9bS/ d13ha+naHfiTw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Eugen Hristev , AngeloGioacchino Del Regno , Sasha Levin Subject: [PATCH 6.7 245/713] arm64: dts: mediatek: mt8186: fix VENC power domain clocks Date: Sun, 24 Mar 2024 18:39:31 -0400 Message-ID: <20240324224720.1345309-246-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0172E144D1F; Sun, 24 Mar 2024 22:51: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=1711320684; cv=none; b=AfdVGiXHxLKZB3I2B3rcQPISKBqprold2pV41MDnIx4uhCN2yOEtHD5R6nsG4AnLfjHJdKpzF17PKzFbmtTh8t34mPnj7gKNrKWhtpotNT4IKgf9CkebCZo9cHQ89Z8WwTyUaGrPPGKTLIyIAlGH0s48e3rN13DMPnLiiALr2oA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320684; c=relaxed/simple; bh=xxrcHK3u9+N9bxYZFwHB6zkQtYX/lIuKUvyAgZsqUQs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=FtSPs0z8MDdPbXwIhCu3tezXJospLMQWByPUJ1FddyYZQexhjPhH7uK0mcqIehCA3ZqSJ1bA48D4d4SVqmqbdmvXs3NjioFEnGWTbAbduGMq65QQdrSRT1ev38H/WLZJs5aex26cWXlrb7+n9V5nOvVA7HFW2DDR5hRVVi4nQng= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=VqqfrSvl; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="VqqfrSvl" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 22540C43390; Sun, 24 Mar 2024 22:51:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320683; bh=xxrcHK3u9+N9bxYZFwHB6zkQtYX/lIuKUvyAgZsqUQs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=VqqfrSvl48C5+kLT4lYUqmBwoKrG+6LY/VOULt/NLuENB8SHQsaUrlzLqrtUHjFGd wR5RyCd/xfZaOLTfdMYAugB2r81v/1Dp3ndkvuZ7o0AcaXgIGR14+GuBZp4tHTvk29 ufTt4ZUymlarS7B4G3X+9I6+0rPbyEAHT9AAwdtIHjn7OZdoTJOvpj2FK5Zrf+vrmU tzkA3wkShx+bfyO7mMXtcsy3E0A+JwKy8mb+il+ZIhBhvLzDiVr3+Kh8ICrQoNUDwH bg5IxlRIJQOzPopPnu7g4m1uBKZt0DScHsDW6WczzEwWyRTjoKyQDZgDSloVa5z8N/ PmzVd1mAYIpZQ== 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.7 246/713] arm64: dts: mediatek: mt7622: add missing "device_type" to memory nodes Date: Sun, 24 Mar 2024 18:39:32 -0400 Message-ID: <20240324224720.1345309-247-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-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: Bagas Sanjaya --- 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 c46682150e502..26cb3268ccbaa 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 2dc1bdc74e212..5c26021fc4cf1 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 11F84144D27; Sun, 24 Mar 2024 22:51: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=1711320685; cv=none; b=W2tdxrZgCvSvWsRMheuow7Jh0SBpCvz09ewwIjVKpKq02xK/4/JMr8ac0yDDHk/zaTvYC1Ew1YC0agkPMeq12lgzOm7K1vBoeg6ZUyyJXvkBapInkKY5KGKA6wg1LzzdBmKQ5xERDzTAY29auhSdwV2i3P/dcy4qrznsIAiK4vQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320685; c=relaxed/simple; bh=z9jUFiSp3MUg0mH6coUgrT0+E54jL2MUqfmnswH9CjU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=aUPH+VDhFYoyrWoUdR+NY4y0esLmH1lb0zbD1oNz3wFI/fDazzsH12u760MYeR39oe8ShWQIPn76wej0u8yPCe9pvJMgCS3+vIjcvBC9ySNBFJEQ6FVF68+wr0NhzHO5lCIujIjv9wnkajfl13n0cnK6IXw97FcieQx0+OP3Tic= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=S81hY8g5; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="S81hY8g5" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1D991C43141; Sun, 24 Mar 2024 22:51:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320684; bh=z9jUFiSp3MUg0mH6coUgrT0+E54jL2MUqfmnswH9CjU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=S81hY8g5OQ1Nw/ZK8Dcit3jLd9Zo5OaYiqVrbVZWvi8gOJl21Ko8DXoIOVGhVWBas qP108h/MtK0ZVjbCyC41PWWIGszdTc2g225PeD55LYKzPO5x3D0qM6ZbACoEVn0Gam tW9aSCvXq64cb9W13FHWVJ6S8sFkBGIVE/KeVTPM6Z2BaVR32wDA8rErSaH+VVgeVB fH0Vyi2pB7qi4BfYO8CuDtcNyaX3q0LN17AoI6rjKUEXxHJnPPtAu6j1oxdbHYwB9V HwEKHPMzmxevj7PoAtViudvmjaLuGzUn9eNsqShzbEc7Iy50BnsfPcJKFRehxsS8zC vn5ov24NisslQ== 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.7 247/713] can: m_can: Start/Cancel polling timer together with interrupts Date: Sun, 24 Mar 2024 18:39:33 -0400 Message-ID: <20240324224720.1345309-248-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0EA44144D31; Sun, 24 Mar 2024 22:51: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=1711320687; cv=none; b=SK2QSiyGUnDVJtvEk7LA4KQeVxplSAyi92AxRAXlN1wntBSOB7jY7Zv1a3i6RFASKQ6KG3k0ywgh9gN21ONohSXswgvXETcPBHIT7Gd2GCzRbfm1UlmIxI6D5rThnJ7BUFQbEkcxWrZ9f81lRN+vMrnfZ9Q9Ykq82tQRPOw1W/c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320687; c=relaxed/simple; bh=SSr5RFektTQL/EnOjOh7JFgVsHETDVqB8XLdmop9QhU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=LvT6Gya/wJjFZFVefwqnYQT5+glyVEXMhO9q6NhOyTIxN7yzHiTlhXI5EgGIc/rYaYqoAmsttNW83Gxlc95GEhAGRUcf6S3iaIzLjCwwP3/LInln45Mm6P/mKbp8DCfNth64Oc1uGnRpBQuLYTnFU5BrLxC9ZDIaNgEjN0xSCpo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=qEl9XP9s; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="qEl9XP9s" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 35DECC43390; Sun, 24 Mar 2024 22:51:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320685; bh=SSr5RFektTQL/EnOjOh7JFgVsHETDVqB8XLdmop9QhU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qEl9XP9stM1Ol89iGzDCS2hza65er+VwqMOjBMiuT8omHuijnlpKNar/8QC3kQ9dA c9p6fzAo3pM/JQb9MbVkGzKDSYOk9TgUBOnW7EGCXLX7NNEgyvHLt6D327FxE65pI0 qqNr9RgNrtOBZlVPSfZLsOZnCyiNHrrBleN0E20JHQ8dhM/NPcHBtFGH6ANlYJLpgG J+N0LRvcRP1ci/Cxfa1NTXM3Vpp+e/64+hvRP1AOvYsmuQhWaSwQ2Z0eCS6gsV5JbT /Jbcf2Zwcq5A47ZsrsD4r9raG9XG7CSh1Pn4mjndHpfKcegMoHBnCEqYMaNoV8RYMB KokydEyFfFOmw== 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.7 248/713] wifi: iwlwifi: mvm: Fix the listener MAC filter flags Date: Sun, 24 Mar 2024 18:39:34 -0400 Message-ID: <20240324224720.1345309-249-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 150C7144D33; Sun, 24 Mar 2024 22:51: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=1711320687; cv=none; b=rh0HRwc3fjrZP0WtyZ0BauLVOevEN6JYnbh32K5VLjQZMUZe8vaq571OBX0AU+pJL1lpebNbgQjsRV0nLDpEwC/dCeJ0BRF9njW1Cha02vyM/EXGu8Mb6rZNpwXP9T209Zl3uoPW2yn3E/EwxzsSfXFBo7QVzQqCDhSP18VhGv8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320687; c=relaxed/simple; bh=0lwUrRExluHks6ybPWjrs9YUurAMcTJFMoLDlXpgg5U=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MPACVjaRoC2QcZFJ9PQ24vrjctM2BHobLOyNUxjlFejseP3mcirfaQrmgYbXLeeS8IPLFXw/jKfM2ap07kjwGWECNG0BsTk2y0DEqIJTmfwdiodbj4kBPWKqAll+mtV1acALc5wzNs3WAntOJNbbMNB2Jn3nxxsu9OWPz7dBvic= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=hVVek/cb; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="hVVek/cb" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 36ED9C433F1; Sun, 24 Mar 2024 22:51:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320686; bh=0lwUrRExluHks6ybPWjrs9YUurAMcTJFMoLDlXpgg5U=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=hVVek/cbBI58eEWvaAYEt2YGgF/bwjtqcg22UBVsKsLBfzLK97i3RvPzFhAigFT13 Cs7xEJ9kwjMTdh0vNIGJIeGDFgpjCpVFtDNAdDYKH+21m+FiU6nj3t9NpvQhntoAf7 AZOy+hHgVrFs3qWRWiSqtytYlJE+BPu45Xot5PEy9KBdbbozMWFFabVmltbN/hztsA 7T4wucVeHEv2wudamrGyTW2TZcc1lwQ2kBwR7MPmwFkbJxoiUswGTxCEQL0SIdRzTb G/aTQTjLnETrcMSq4aTGqBrYVw7mSoC0ZePnGrJpbL6RzzmLpi18va2BLYAiIGFviF 9EcTMjzz9Rp5w== 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.7 249/713] bpf: Mark bpf_spin_{lock,unlock}() helpers with notrace correctly Date: Sun, 24 Mar 2024 18:39:35 -0400 Message-ID: <20240324224720.1345309-250-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 a4953fafc8cb8..02e043bd93b1a 100644 --- a/include/linux/filter.h +++ b/include/linux/filter.h @@ -547,24 +547,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 ce4729ef1ad2d..b912d055a8470 100644 --- a/kernel/bpf/helpers.c +++ b/kernel/bpf/helpers.c @@ -334,7 +334,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; @@ -357,7 +357,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F06F6144D39; Sun, 24 Mar 2024 22:51: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=1711320688; cv=none; b=fR1oRe3T+aFs9Eaaxt9GfGx4SFRVeGtrk3VxPvKvdcfHtPSyWB4EpOJmy1cL9fJvZxaqukFFDZk70vK1c3s9ORkTTKZAbrql2c4yQvCYDGjWxlxVegn2RE260KdeCRyvVAGwAydNXWggt1yqHy3EyfvQhQRKrdWL6q4qJrx0P0s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320688; c=relaxed/simple; bh=isTZTY2eL+mHyIWUYTdw55y79VDbuWALPvivaY3weT8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=X0hRt/S9cAwIvT0/fqRS+YX0J4nkRM6kKNBKzh9Xxo2q7Hf5pUl9xw9O5iDZXtbI5vgVbZmrxwiqVI5xOxVmvu/Ml+dO03PxZp7IIle40eGiMraswKe7mRUL+sOpE8hL5/L1LZpSg0+LngdfBMfUqvNMndgz/w51o2ysii438ZI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Kn4yMWVZ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Kn4yMWVZ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 37FF8C43390; Sun, 24 Mar 2024 22:51:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320687; bh=isTZTY2eL+mHyIWUYTdw55y79VDbuWALPvivaY3weT8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Kn4yMWVZaB1Idi1FDj520tWdKMZWqgnkqMTtWYRt+mI9R9fN8F+6KnoRY4d2/2QCN /OYg/fjNhmhedtFkRn1+JC3BgZYn4PSWcxQ6pPWgQqMBiCskZfzmP+9M2T5Wi0AY++ rCfgwF2y9bqE2vP6ajsaEouiDETwuoInYahkND8iuUGlQF5CaSThshEq2xBJlCMEVt Qb7UiUH+eONEpe/RtKnk5OiTKh4+J+1Of+sj4QPiD9blg7dIZgfm1VGRzZRrVlrMJ9 LWHBNDJr6ORVL8pv4jmyi75XU5qGUJhlm5lasxLdb36ty8aVs+a9YxDm/O9UjcibVU FWZVCbl7lXOHQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Andrii Nakryiko , Alexei Starovoitov , Sasha Levin Subject: [PATCH 6.7 250/713] bpf: don't infer PTR_TO_CTX for programs with unnamed context type Date: Sun, 24 Mar 2024 18:39:36 -0400 Message-ID: <20240324224720.1345309-251-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 15d71d2986d3a..a17da40f65d31 100644 --- a/kernel/bpf/btf.c +++ b/kernel/bpf/btf.c @@ -5665,6 +5665,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EC4FA86638; Sun, 24 Mar 2024 22:51: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=1711320690; cv=none; b=uh/+U9MYEZ/bS9+sjRuDCirV5VHkyY7/fpPZCXsp/ulTFGjnSucUkr/goC/OOwWKFJPWeRkzdSAEdNMR+aYZa8Dihgjymiv8AJGlIxTQUx46iLxocNqrRHF0ggQDn0HGfNNanQGTwbHjJDvvtH4w+CAslNjbZHnBPmP57mw6Qbs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320690; c=relaxed/simple; bh=WGTDycXs3pSFgOQuZXxQtwm6ivvARn299Bk7dfwWqhk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=exWOvxYEMB7u+lBLB0Bx0L43yXEohaW1stdd++1pqMzAKYbT7GA+pwIlEAOCthU2mTOt7KrSfM5HCEEtzM+OjlF1LqZzpYak8rMyEvWgQFWRMmeDaLHbIRNY+OBvCReVizZlcsmSC3NretF2647SVDC0Otgh0Ao70Ngn8tYdPLg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=DUEYLvam; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="DUEYLvam" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2291FC43390; Sun, 24 Mar 2024 22:51:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320688; bh=WGTDycXs3pSFgOQuZXxQtwm6ivvARn299Bk7dfwWqhk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=DUEYLvamyr6XSI+EObRqCiQjO3NxpQVSSrYAYAT/t5F+NiOs8R9YEv189EC4qfJeH MaeuIyFCAWRupRms501UQKoUf+VV+SJa5BmvnCbMlKCXdjkehslb/BvNmu4H3TWKy8 hviQYs7HDSr+mWfKazx3cTEWaivbA+fyMmSADO2PMbS6gSQ2uxLVdVAF8+RVhUyB8O eM4oreBX9GiuIafeeM0vnCusM/mA76ITTtDvIYPcjW5BHl3vu+8Iio7U6krYAbE/de DO/P+KsUTk9BVNGi6Y3R4fQ579UgkbXU/iALFrsI7pCOebLNtW411+bsDIXDuV9Gs+ /xbQjRg18oOuA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Konrad Dybcio , Bjorn Andersson , Sasha Levin Subject: [PATCH 6.7 251/713] arm64: dts: qcom: sdm845: Use the Low Power Island CX/MX for SLPI Date: Sun, 24 Mar 2024 18:39:37 -0400 Message-ID: <20240324224720.1345309-252-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 9e594d21ecd80..88ed543de81bf 100644 --- a/arch/arm64/boot/dts/qcom/sdm845.dtsi +++ b/arch/arm64/boot/dts/qcom/sdm845.dtsi @@ -3353,8 +3353,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F32311DB405; Sun, 24 Mar 2024 22:51: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=1711320691; cv=none; b=RrpmZWc6YtoxWXcdvTqZljVV12njTEOqun+UwCO9TUrDVNrEfn6HExb/WZ6ZvST59Y6pr0/ykpR1OzvtvA1O4uVpjS+b8RM5OgzGASHlLRZqnM/1AHZ+53LVEwA8JlhghbNWQfzg8gsiAte/LTFbp/qApfvOEpel6BC2qrhf2Ro= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320691; c=relaxed/simple; bh=Zx9oHE9XflvjybKHTXCi5dRQLTOXPeicehCdr9wDNqo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=WEn281eFERMoqqi+9z51WzYmnGL45DodcNXtKCbGJqyeIAWgwSTQtFLEIAnu20ZHxSNMQudwLcpC/TGZVObZFugw569FGE4Ed04tvcH7oN6rLyQE3IZWf4eYhKaBqt112jj/VmvX/yE6UzOSbyN0p87I3UoGWSs06qc7d9W+BNo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=iZuCcwUm; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="iZuCcwUm" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0B209C43394; Sun, 24 Mar 2024 22:51:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320689; bh=Zx9oHE9XflvjybKHTXCi5dRQLTOXPeicehCdr9wDNqo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=iZuCcwUm4oVE57e1eBtFxcMuMTW7/hcK9RmPOZLtJ4h8ySCHlsCNIrSDOnYL2YhMl +T+Vvfq910/hgR1lHew2HPKm2wUDT7JemaM8nHDsWjVpcVzb/8fIcPanuORwmPcCtJ QyNHwuEM9DL4MOUcuChOMFRz9sQdINL/dHkilrus/PR7z4nzKdC5kU81qQMTZqfiva EeHs33YxVMGE1WDPpWdiwoyai2R5iXTi/xBIxaGZ+QCF0nuaFZ67Qt7Srt4hTMwNf4 FM7UHDnhgmyLLEeX/onMKPS2pCDba0jBfq2uQKKfBLX7b6EYzvuCX6VlhHr457xrko IEoXeAXK3lOLw== 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.7 252/713] soc: qcom: llcc: Check return value on Broadcast_OR reg read Date: Sun, 24 Mar 2024 18:39:38 -0400 Message-ID: <20240324224720.1345309-253-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 57d47dcf11b92..1b7e921d45a11 100644 --- a/drivers/soc/qcom/llcc-qcom.c +++ b/drivers/soc/qcom/llcc-qcom.c @@ -766,6 +766,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 199B91DB412; Sun, 24 Mar 2024 22:51: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=1711320692; cv=none; b=qGCh8xN/8nq8B6Rzgz3//cT5aAiJo/7NfMFhvtnjsowU059h4R0I+sZ8idmnzRUqmAY9LyVvc1tdrD+XlwG0ymsA715Poh69xes1kPa+zsqLpNUW9pzaBxi9TvOlYL5fcEh/SdBmb0/mhw+sR1rgFuk83ELXw9cWZEsdOh3pxVo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320692; c=relaxed/simple; bh=bcI9wS3VFYaaH9yiTWy3phxmoJ2vvyOCNAo5/8GBxgA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=d7QTnmykbEpeIx3g2r4V+tOpTEHcNFk02L1HsgDUnAUBa1qfeKr/tjGxoyFrZiQ2LVNM4vt4bEux2J0j2Eeay4fC9aVGjOMmGT9YkYN0Zk7Y3no4r0Ndmb8e+HGFNzh5rKluEH/tPFx2T8kIwIPmDEaZBcKdEPLU3K76MG+fHHQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=qjZEowzU; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="qjZEowzU" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2249FC433F1; Sun, 24 Mar 2024 22:51:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320691; bh=bcI9wS3VFYaaH9yiTWy3phxmoJ2vvyOCNAo5/8GBxgA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qjZEowzUoRzK1rN+1UCKiVL2mKbzY0AYwkvDUOgJGnwSB0BpKNNukauTRsN2vXu6V ZGk1CDFBpSMftwyAF1jWyh+jJ67+VvORg5gja5rEFMkSzhz+pDoQ9RXCIPRIagmsBQ SucG1GbFOletbpmsccMdlPRIlbUO9+VRLAQZkSirJ21efU32iO9U0YxDbRDtb5ckCq pV4ZnPxP/XbtzE2XUUn2PytVhwIYWCay9kHvEvhShnvx0DoVrsLXpH9ilRyeJqWBLX 6jhpRve6t2ICZd1Q7xBknYxvfqC6//wzmuAziVwdNBFodm4caoKgpjuxGbzKe6UB7E 7e6F6JaxUVJKw== 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.7 253/713] ARM: dts: qcom: msm8974: correct qfprom node size Date: Sun, 24 Mar 2024 18:39:39 -0400 Message-ID: <20240324224720.1345309-254-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 0bc2e66d15b15..f41cc4b4b518b 100644 --- a/arch/arm/boot/dts/qcom/qcom-msm8974.dtsi +++ b/arch/arm/boot/dts/qcom/qcom-msm8974.dtsi @@ -1226,7 +1226,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F2AB21DB41B; Sun, 24 Mar 2024 22:51: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=1711320693; cv=none; b=j3fDNFiqtOEcXXROlm7JGbxCwhRyFxTrVAtLGi8iofBmhxZhPKCvjoiP/mXcqZqRE77apI+shRgtwtJl6qp04uxo/2zhNe+MizAchWDKBDbf5ITgEc2vw+c1d/l4m006iJNK5cI7Qfnn4kOKY9qVu0H+y6s+bdypHjpfYLfaqIQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320693; c=relaxed/simple; bh=0BWxCl2nFw/sJ7Q83TuBcBmbqeMeajlBN2JcRS5sjwQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=N7soQANKdAsMb8aC81nKrh4Xaf7BJ7kLVyLoF9e4snCVVUUsi+jVAs/rbea05ZCYrc8TX7eXNAjrqYjF6dvwMdLKShY/lRgEXZga6hsJvUuuChrMtvVRBPRCjG0xKs2Q6mk8vYo23EWOUME96CvocLODgSItf+OqpNBe1+cqvhU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=jkVqgrpP; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="jkVqgrpP" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3ABF8C43394; Sun, 24 Mar 2024 22:51:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320691; bh=0BWxCl2nFw/sJ7Q83TuBcBmbqeMeajlBN2JcRS5sjwQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jkVqgrpP3nQlejnpDVN+ZEr7xa3kxBtpP2XiPFaAq3i/CyvSZLCJXFONsYfuhdCXi r27vMRb7bPlX/gJJT7UkEatAt/yf2XGpssDnd2t4z0/5mCpS24JMvujOTiTsVE2kJH 4qMRhdR3hdRthxQ1it0zasvNyzMq1xjUmyNAF1Eak1pNDs/DtndfYrkoEfjcLexXZT tDbeAyMqBpk2D+nbbNCUJMPy80FCZVjHQmngPwxFii0obRBieYAAV43sAOaII3wS5m pl9Z8uPxg5L9FER+xpFHYYFI45NBdsENkmRCghMiG09QhRS3mJwZZlxZRUGPput/yJ iCZBbANIeOW0Q== 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.7 254/713] arm64: dts: mediatek: mt8186: Add missing clocks to ssusb power domains Date: Sun, 24 Mar 2024 18:39:40 -0400 Message-ID: <20240324224720.1345309-255-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D0B681DB41F; Sun, 24 Mar 2024 22:51: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=1711320693; cv=none; b=pOr3ig7XbUo1RjtSqcS/rexh3+ABqfgNjsD6gz94LI8hZuvR66jqnFp/1XeA70OuD3VTGzR+el5FdAcDeVo9+2oVfMMV2JA51Q7WrRfOe7su/ElkigEyOOu6Qa8tKJwEkz4/D15TZQW6ulr/DNilL7xE+vZZnz2mPxh5PQIgwqA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320693; c=relaxed/simple; bh=8AaEs2Sq3uwPfjgBGNCVId+9i+0GuIBA1mhuf3MjHLg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=nNM0ZB6DV42UGgNJMwP2GXYIhJidd1rhIiz3brXk/pl28kuJATwxHFtHgPloTxzmBKEpi2XECO2EzZGq1DDb9akxXs4xN7ZhMfWCCq5eNstUhF3HgjTXWSguerne8HQKmbPjvOxycGX++5e8Z0aarXJ0IZQw6hUw6vxlOxt3T4I= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Q5EFysCH; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Q5EFysCH" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1C898C433C7; Sun, 24 Mar 2024 22:51:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320692; bh=8AaEs2Sq3uwPfjgBGNCVId+9i+0GuIBA1mhuf3MjHLg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Q5EFysCH7wticDpK2X8H3gHlTJdAXgEBI/3r3eB8VMGcVTpvirU32FDruqJdvktUp 93rclCPrkQiaa55/LaO5M3rWfeHwt+TG5ZC8uCOJnQ39HpZ2bspnHlweW+27GJkvRV DfoR9e8jE2xLonGHiDc9sHbpIP5LLHWrUYqZW1IH/c72jpUwF2mWHe/8AiDjfcDTxM r/8N8fcrDCWe5p9wC54M3HTEULuoCwE2SrZQYz8cxS/CJyMR3qzXGfwR48nIQvPc7c 9z0f6F67b5MRn4Q5SND8kK+nCxM+M+BB4z9EEgoWThtGloNyFt+LVBBLo7/H5vOPfI WN+eI1UH0A3ng== 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.7 255/713] arm64: dts: mediatek: mt8186: Add missing xhci clock to usb controllers Date: Sun, 24 Mar 2024 18:39:41 -0400 Message-ID: <20240324224720.1345309-256-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CE4631DB429; Sun, 24 Mar 2024 22:51: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=1711320694; cv=none; b=II5MIYMvASq5fnoA7OPU7X03bnxWjdEMCO6bQWAT5+zI+HP+jEq7VcqsM7ETTTooOmdn1GucH0vOQ4dwU9Y5frjuJk9jgiyIHbobU2dZVfWmCw3cXQOgfxneBmpXqq6XkEjvCa9J/3fuifgk/r6WOGYXa9JhdL9eMB3nZ2YZNYo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320694; c=relaxed/simple; bh=e4NVZsD3oUex1Q/qH+ecWwZcdZS8RG9y9dWVkrUXMGo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=scB9IZ68RIxHi4UdNmPxtmN+AoM7q0mU01rjKgZllNsG1mRJus2pfsqFbTepQDkoQxA+eUDWCmwuNhFbf1qI3Vyg764Ag4KrtZ0opPHRxALqtb4IQQ38MPPhWcixgJKJuAS4bmrrEw3oyh7Rv0bGUwtBM31PYsfoFYgD5xVzxHk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Tc2FlOOJ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Tc2FlOOJ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 016F6C43399; Sun, 24 Mar 2024 22:51:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320693; bh=e4NVZsD3oUex1Q/qH+ecWwZcdZS8RG9y9dWVkrUXMGo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Tc2FlOOJPm6lLiBkR8VNPzXt+sn5jl0kuERLzwJEaDPiXvw3cZIDkKGRTbQLNsA7w xg++sUyfhXxBCFL6oFdP11moEE7ONwSxBfuh4SHKo9eg3RQ43IXFOW6Tx8JFzJp+25 GCaxVmIUhNxQeJfIuxpGYxrX6+2IJmbvIVpY5BpatZxk5Asvy7TKbbipX7y8C8CrEz g7AGFtVLJsua5ZinFBdv6v+2u53j6Eh5wBijLK9p1TD0GTl6NmbGgwn/By/vs1gwmf 7D3mPpshlXxEI3qo6U/5B1u/0RfYCWv5FV8bQsMR9ROX7tN5/ZcbKE7f6Czjm/n/U9 Idbd+mbSjj+Kw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Roger Quadros , Aradhya Bhatia , Vignesh Raghavendra , Sasha Levin Subject: [PATCH 6.7 256/713] arm64: dts: ti: am65x: Fix dtbs_install for Rocktech OLDI overlay Date: Sun, 24 Mar 2024 18:39:42 -0400 Message-ID: <20240324224720.1345309-257-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Roger Quadros [ Upstream commit 8ada14cafc5e185c668198617cd1ab4f1d8d325a ] Add the overlay dtbo file to a Makefile target so it can be picked by the dtbs_install command. Fixes: b8690ed3d1d1 ("arm64: dts: ti: am65x: Add Rocktech OLDI panel DT ove= rlay") Signed-off-by: Roger Quadros Reviewed-by: Aradhya Bhatia Link: https://lore.kernel.org/r/20240208-for-v6-9-am65-overlays-2-0-v2-1-70= bae3e91597@kernel.org Signed-off-by: Vignesh Raghavendra Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- arch/arm64/boot/dts/ti/Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm64/boot/dts/ti/Makefile b/arch/arm64/boot/dts/ti/Makef= ile index 77a347f9f47d5..c1513f0fa47fd 100644 --- a/arch/arm64/boot/dts/ti/Makefile +++ b/arch/arm64/boot/dts/ti/Makefile @@ -57,6 +57,7 @@ dtb-$(CONFIG_ARCH_K3) +=3D k3-am654-base-board.dtb dtb-$(CONFIG_ARCH_K3) +=3D k3-am654-gp-evm.dtb dtb-$(CONFIG_ARCH_K3) +=3D k3-am654-evm.dtb dtb-$(CONFIG_ARCH_K3) +=3D k3-am654-idk.dtb +dtb-$(CONFIG_ARCH_K3) +=3D k3-am654-base-board-rocktech-rk101-panel.dtbo =20 # Boards with J7200 SoC k3-j7200-evm-dtbs :=3D k3-j7200-common-proc-board.dtb k3-j7200-evm-quad-po= rt-eth-exp.dtbo --=20 2.43.0 From nobody Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B32C21DB433; Sun, 24 Mar 2024 22:51: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=1711320695; cv=none; b=QcQz2NXO1cjodRvZUABTA7D6fCLQIug39xbvCucjf7edCHacc/CF6PBx6D6xFXEbkfq5Xjyz4qGNYumpFWGhPzf+AEcds8cHtChQ+90CE3p+ZCzccWj9mydouUeYDZ7Xdz2m9LnCQhIlTU+dLFTO+C3VxpRtXuTmPAoUDroGmLg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320695; c=relaxed/simple; bh=qkyyFxehdzwxsIPB2u6hGwdn4DIIGZjJoaAfpK7eZzw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=hOI3dg072nNhJeEbanpChJq64E5bt7Vray8HNLanoqMdZD7ZfJ1tOy0nM7vHN5XQ8UU88ZjHkItU79I69i7DQ32GQTmFO5wfN0RUbDFsmMrzPqHfeKFrIxzoED8AG3d+CAsT4nt64kDCQTHhtXe3qNG6v/VsTfZkQJJ7JyxPKVM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=jPqIlV6n; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="jPqIlV6n" Received: by smtp.kernel.org (Postfix) with ESMTPSA id F376DC433C7; Sun, 24 Mar 2024 22:51:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320694; bh=qkyyFxehdzwxsIPB2u6hGwdn4DIIGZjJoaAfpK7eZzw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jPqIlV6nghXaUugnqln/psEauIr6Q0NUoPfJsw7dVIv7/HM3YLDSseFWscUltV3Bp uvlL0ujkLThFhs7iQ7sOnJQA7Oj8COhHt1VDfh0JNsY3DAo7T2G62tPILg+citkDET o3DnRlsYXo0KEq4aaVuTt5LpjyZ/ekpKEGjGCeCsFDDznB/QiwP4Upeg3MXo7oDNLv yIgHRqbioqLhzPiQcLeoEm6yHWcCwNJs/yEr/AvWfskwG1nLVZZL882xbxlZ58Vzv7 JB2qM6GecSjeZV4ggrbb3hSHEmGuLmcs7BKvaRNtOUTwYps2XwLVeMgM8F7r2LB6ko 5W8Pe3LOFf4MQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Arnd Bergmann , Viresh Kumar , Sasha Levin Subject: [PATCH 6.7 257/713] cpufreq: qcom-hw: add CONFIG_COMMON_CLK dependency Date: Sun, 24 Mar 2024 18:39:43 -0400 Message-ID: <20240324224720.1345309-258-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- drivers/cpufreq/Kconfig.arm | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/cpufreq/Kconfig.arm b/drivers/cpufreq/Kconfig.arm index f911606897b8d..a0ebad77666e3 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E384086643; Sun, 24 Mar 2024 22:51: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=1711320697; cv=none; b=NmSFQd5TJkeC1//duzawaiqWBJfFcz4dw3WMmCwYQpRulvr0xehBneaV3fixhLs6Xg62hu44s7P0NJ9AteS+Enqixn0rQxdHffdVLsJL5Tgh14pCnWHX9misaSSz0u6J2+NmjETY8A+E2i6Exm7k+0QWmQz7MEaxGzj9TAC2fQU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320697; c=relaxed/simple; bh=+STQmlQVcgaJ20OUWSp7ksyGurUx2PuiWjhaE85GcoU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=S5LUPDRD2mEvbJmlSObTx2CzgU0ixt56BeC87mHOkQgQjiNQpJtJDJyzuFvSOpI0mTdG/19Jwg3RoxyOGCrYZb2J7lQOcL8YAwAXiyuXFV27nOOz/hSIaVpwkhXAY94a7PVqdq+751vZc1F+g2VdzNIEieK4CUCmSWsOX9TGYmQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Dt4Fja1x; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Dt4Fja1x" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1589BC43390; Sun, 24 Mar 2024 22:51:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320695; bh=+STQmlQVcgaJ20OUWSp7ksyGurUx2PuiWjhaE85GcoU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Dt4Fja1x4eTmxgw5jd7mBAy+uGIhKeCxd1ZVuTDiiz8SUqCuw+QaJ+SKb3gs0dw1z x+LoteTLgJkwP9aZnFXP793lETDvZyfhA11q6wte9XA2b5++Hhbvd1IVcqrgMtjDCn ye4aojH87r9FG2d8iVAC5jSZpEHnDIEGyFxlO2tmrYY8gLeYhgacRH875pE8BE+5Aw vxmkrnYYyAwyBVP/JUxWe0vVsZMG3fT5vfe+JPRlvylEmAFKwwxLPljNvu4XrXe53V 9lOXIoGMy+10uQRrciJCBTxg7wLy2CpHssoQvzVtXY8/WzNR8F64wlZtbcKgEF2h+E ppKuBLdB4y8uA== 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.7 258/713] wifi: wilc1000: prevent use-after-free on vif when cleaning up all interfaces Date: Sun, 24 Mar 2024 18:39:44 -0400 Message-ID: <20240324224720.1345309-259-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-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: Bagas Sanjaya --- .../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 d6602ced44f50..87fce5f41803d 100644 --- a/drivers/net/wireless/microchip/wilc1000/netdev.c +++ b/drivers/net/wireless/microchip/wilc1000/netdev.c @@ -890,8 +890,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; @@ -901,32 +900,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0653686655; Sun, 24 Mar 2024 22:51: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=1711320698; cv=none; b=rrzMyjGSR70wujVuEDuP6iqTSUJoSEUmvhhZgVdjeV2NDa98fUt9VHC8MIqKp2pNezbifTP7UF0SXCK+Jm2D9PeyvLiZErU+mUKCGAJwPUvWK5HIuFJLLX2O2eSJtfPJtYlfJPBv1MuVXfWKi/hmn2pK20+Cv5x4s7FsIEZQUOk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320698; c=relaxed/simple; bh=eZSo9kCBaG2IU8ylLywZO1b09ydCwcFYWeesUj1vWRM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Gijc6htwH+VyBw6xDGinHpa/xUd/0Nd3c6IxUNDDLP7ofiPCpi7fkfSzbLmwxenxisLqQ/I4tLGe3VnajC3865FVZA/9uDDytIYh9PUn17VRDhS5wwAwNhnGbCDMRyIQ3tahhvmeSzEVhSTEl6awQF8BTtgARkgV9165Zhrkr8I= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=GEkGP4LW; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="GEkGP4LW" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 14FF8C433F1; Sun, 24 Mar 2024 22:51:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320696; bh=eZSo9kCBaG2IU8ylLywZO1b09ydCwcFYWeesUj1vWRM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=GEkGP4LW6kj1wYlB7R8TWH6P9xP/NJwdaXLwaItNUW8Hs0ht6aY+h4Do48kI7V0R3 OSzHUp2okU5+IJivDVSsjCRMe9YBpRwH9JLfqywpXDUJTfXEcDdnt2WrrrD0NHOsmn Yj2SFWXEkgYDDu/Isz1vvBXznNd4igqkY/qcyyPXDPYIpUKJF9aBdX4E5rDZk68e14 0QXN3yTG4wi7gNRo+Su1iovRhp7NRqOxZWlUMmp6V2PBu3vTClrAA35ekK/6MkvK6/ XOfmUGo9rY4Q3LedSG7pOG1CDGQk/UwNnSn7P1bhSCVD10iZCA/YPUJBPCCua0/zSW d/Ezh4t1YsTjg== 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.7 259/713] arm64: dts: ti: k3-am62-main: disable usb lpm Date: Sun, 24 Mar 2024 18:39:45 -0400 Message-ID: <20240324224720.1345309-260-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 e5c64c86d1d5a..c1ace4a376d17 100644 --- a/arch/arm64/boot/dts/ti/k3-am62-main.dtsi +++ b/arch/arm64/boot/dts/ti/k3-am62-main.dtsi @@ -623,6 +623,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 @@ -646,6 +648,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E72D81DBF22; Sun, 24 Mar 2024 22:51: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=1711320699; cv=none; b=mL5Z9lPXPOkrZQiUoJEPlSYBxxpQvYLBTdawZjdVIxRAmSmLQmk4cYvl7oBdrOWSX0o932Y3vckck/Bvk9SYQ0fDVJlGw3nIMxUgwARh5roLnXUQ17dzr83lvlnV7ZabYBdYt0d/qZDFvT80HgWCXym70O6eswXaaDs8On1bgBo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320699; c=relaxed/simple; bh=nfu/1bifCRzhzUwuYeSYF4B5jVHi/FobrLmXrxCk7CI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=L3LY/C7Z3kJ2GZ/X3jIKHBOVFmiY8936saMXnzFQZBA3zSy3IjZ7ZKSZ70+wfUuaT+crhgTECXlB0OVlYqsCZcEMr7y/NyEE6+Bl40bgUdG3BwvANFRyLRbkawkttt6oMfZq5ul1l85NZOqgys/6evH9x4wdfANVCVzU0i1a+4U= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Q5oB42x5; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Q5oB42x5" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2D2C0C43394; Sun, 24 Mar 2024 22:51:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320697; bh=nfu/1bifCRzhzUwuYeSYF4B5jVHi/FobrLmXrxCk7CI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Q5oB42x5tlrFsL0sBMVcF9A3TNoKJzBPTeR4d/3J5ZpFwF6WEx6UoCsqT1UXZHJNo ZvEjnqtTJ/Gsv2SNftfOYxGy12yHrq1wwz+UkHtJgEWH+ZdYZTGUjPEhMcKXTXKhSA I5syQ4KqsBii3VpVoVyPtMKpf6sZOY/zL/ZY1W87VlwTOPaIGiXpCukpVGUI8fiPRM KhgfPT0ZKLR2NDVhXwN/gwjO9r3TW+VEmlsjmNzis689FeXn44yAsfCB+0+pDzQp6N F8Y9NxzzREPKT6zSrGrAiPfklgeba4Bf96b4fTQJW9s6f8LsldrTwNzY3S61fZGH/Y chHMYpfgD9pPA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Armin Wolf , "Rafael J . Wysocki" , Sasha Levin Subject: [PATCH 6.7 260/713] ACPI: processor_idle: Fix memory leak in acpi_processor_power_exit() Date: Sun, 24 Mar 2024 18:39:46 -0400 Message-ID: <20240324224720.1345309-261-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E94B11DBF23; Sun, 24 Mar 2024 22:51: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=1711320699; cv=none; b=gyT0QsSMFxixL/+kwx0k6KlOVZfbeAb1svhRWDozXCOb+lbASQ4Gw7v7Ko1GuNtp/CAtbdwvyA+U1wJWHkM7bbwCI7kVK6n1Rk3eX4QIwHV25SSJQ2wUld+U7h2Y0YNqhpwBwjoGnqjC9W18Yuhts++FdhtN1j8Ep3bu2rZrhto= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320699; c=relaxed/simple; bh=4FNTlPBsr7Z7V1+dAD2XdYCPyICn4BPhFJMGPZUBfg0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=enI5jkRLK/OqjP/aPWc6MfuXli9/7Or3CiFFI+uddVKoSIVVxFIS4tmsEw2ea1vSxyjofWddqKfZtzg5pFECqBAtmQQ4zxOdGcVj03pFfhD6tQFcY4SHOkU5Nm1mIYapBwvxUb3H0rG79zNuxhUl3N5VqSohq8MGWE4PGEYWzCQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=AqJup6m5; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="AqJup6m5" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1642DC433C7; Sun, 24 Mar 2024 22:51:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320698; bh=4FNTlPBsr7Z7V1+dAD2XdYCPyICn4BPhFJMGPZUBfg0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=AqJup6m58Ixi5CfHBPcumCk7KGD36qnUeIHlHEj/2vT0fxvDZH10s1kYh8M7Cri55 /HegPtTOXLp023k0KmI02K+niMkB4BK4tJDZG2zkr+zdzkfEptEMmrq+aG3tjxtOHx L81JHz4ZHZ19wYCRKuHQbmBIXTGQR3uNQ7+ZkIzpvimLVoQYdGvmOnlap1Sj7NwE38 yF87l5VJaUFatlx69MVWCvSsnGuEt4jLszj3fj5mLsXO3Mv4AQCH0v/V0vhBX7vRqe QDXUOscxOdSzl1h7iq2Gcjo8G+aO2rh0S4DWb+J4jfu3uem9ErFCDJnL336X5MGCmC 9fMnK0QZ+fWuw== 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.7 261/713] bus: tegra-aconnect: Update dependency to ARCH_TEGRA Date: Sun, 24 Mar 2024 18:39:47 -0400 Message-ID: <20240324224720.1345309-262-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- drivers/bus/Kconfig | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/bus/Kconfig b/drivers/bus/Kconfig index e6742998f372c..d5e7fa9173a16 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E8A3D1DBF3A; Sun, 24 Mar 2024 22:51: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=1711320701; cv=none; b=LwMFCDHDj3O6n5c7KTieE6g5Rv6OCVKIsHPyyNwxulOcNJXf7JStUHKEQ+Pw4HmCSBDH5JwiVnzx78tm5wkZ+DEoXTimnH1s69M7AeJEdMxvR8kC/ObOXTs07P4IgYy58Nku5wVEc64lff87vAUhHidMNaZ3TezwGYAoZffC8FA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320701; c=relaxed/simple; bh=Zb0MMyK9GPqZrc9DkGXJxkLXDfwEcBT5Gn5m/Ks8+fw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZeLdqyfVo3NRHPCuyq3bFT/ZZ1oeRxJEcGrBupZBw55ZdtogDh7/LrAoQiQCn0r+ENvCcrsAE6nl4NLvislI2RUcPDl+L7T5iglJBd9ObKPAXZShPQDGAW4ZedwdIrKtahYXD1ZGfYgPaR1PIItm8BvSBd7zXDNlGJpYxrHpoWM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=RBmvrhY9; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="RBmvrhY9" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1AAFCC43330; Sun, 24 Mar 2024 22:51:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320699; bh=Zb0MMyK9GPqZrc9DkGXJxkLXDfwEcBT5Gn5m/Ks8+fw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=RBmvrhY93cvZNbznUtpB7zQUvptFnmHpEcDeDY3Wq6qniPMsoY4FUckOaryZPOCa2 ScuP0/e4efgsOgOZYSPxgSbVQ8tgvAJ+kDPqR2XWDd7Y91sGc5Q9q85U7cEkxSv/zT 77Xr2TL96ahOz9+X4Sf4zLI3v9ieNfvTash+kVXaipdexDCEH/GvSjBcK8RRDN7JG2 nspyGDImbFzU0k7WAQV7MhFdFR2+a1ocPw0ZHAelr3UHyNhe2/yri1T+/EUjdak2ee E/sXXlXF15ZyX3dZIwJonYh76twfQcxtlo9mhZFS043qIQGVkUmsjEIL73ERoMSRJi LlN/8M9/XcNCw== 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.7 262/713] iommu/amd: Mark interrupt as managed Date: Sun, 24 Mar 2024 18:39:48 -0400 Message-ID: <20240324224720.1345309-263-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 64bcf3df37ee5..7f65f3ecb231e 100644 --- a/drivers/iommu/amd/init.c +++ b/drivers/iommu/amd/init.c @@ -2068,6 +2068,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EDC411DBF41; Sun, 24 Mar 2024 22:51: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=1711320702; cv=none; b=D1eEa4fb8hQaP8ryEvfeCrhZGmMP1O4CRQF5khcAh97QWxcQcxNlRulBEph0zYpczDUCWamORMXjcjt7+Kn2F9NA6MfdCMm6RWtmddk77X/ok63DgKEUw/c5LouQDvLKwIjorrBhfNZq64IfYZj9gOKhii2yTCm093k1vef2XsI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320702; c=relaxed/simple; bh=nt4DweudXrWSOOYE0nV/wX2peusxuk3T7M9VaEFEUOQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=bwbE6SAKuUXp7ham5+UOy6mg7Qt1v5IGyzHo0041d1iPi9d2cHldjfe6Crr5dHDxIUm6lG1FHJNfzbw/8VfQQUhf1cYx1d3Ne+/n/Ih1LCo1jShMaNQmoCAzHyu8Uktd5JwyjCYB5Rhq/IuiHMXfMG3Y6tt2RutPvfRoE4lapNc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=T2gaEc5N; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="T2gaEc5N" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1B8DEC43390; Sun, 24 Mar 2024 22:51:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320700; bh=nt4DweudXrWSOOYE0nV/wX2peusxuk3T7M9VaEFEUOQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=T2gaEc5N4zrMfO+KHrW2v10rBZ73LKecBCBGJy6iHV+Ck4ktSJ/nI9TTlWEFbbT1N 2XCnLbNfzR2nhHK+0W7Pe2krNqNqwLvAl/zx+yptMlBzqdr5r1imA50ZNm8E52cDrJ qW2Oq/pwk4p8UPksj7OukWYJGPbloRA8wI1PR/LLgu7WzzdVZvhJ4c75xhi5HSQkpy s+/uFq3TQJiwuNQ4cGlA3vpnQdY+avkI2rR8Q3gXBVTN6ff6TtfJOaTrAmyCnHKqnQ v55v73JJuv87lxGuUGAFnyDqlcDRfrmdOeoMoTOwyeLvN0RPx/63Qm/B+I+umzSDHL dhK9H3+ktzg3Q== 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.7 263/713] wifi: brcmsmac: avoid function pointer casts Date: Sun, 24 Mar 2024 18:39:49 -0400 Message-ID: <20240324224720.1345309-264-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- .../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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id ECCA01DBF4C; Sun, 24 Mar 2024 22:51: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=1711320703; cv=none; b=CW06je/JgAKcNCFjwZMXQP7gznA8zOXftmoHxUpsXSjxTunBB/mXwFyZRooCe6dZLfCiXUpQeKB6y73324ie9Qb63yrix0Em2HFUI0LBliQunEA6t8rW2tTeYNbaeETbPft0w4mGQ8UPZO5fGoM1s805DctN3Ed5R3DLlY8mjwI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320703; c=relaxed/simple; bh=aFO4d3waUVIdp56vRLYvX2gEdfvS8SByBmZjjBuvnb0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=jE/42wXEexWI+XraqfGAcz55Rm6DrmNvJA6ZSzzOKfzKEBkjI63MpwAiFZzRdCwicLJQG9nNPti/ifprtiDwiW7tAGqbB+GQ1yEXapKBgRFKNF47yiJHdVNGKbED7pjMvJBEe+VkBvoShVZmI8ZCkywI5D6qMJ3E+oL+wOTrzQE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=rinmN9dk; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="rinmN9dk" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1A8E9C433F1; Sun, 24 Mar 2024 22:51:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320701; bh=aFO4d3waUVIdp56vRLYvX2gEdfvS8SByBmZjjBuvnb0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=rinmN9dk/Eb9Ih23ktdsj8tj9XN5Xpc6xO6uHuugVDyIHJ17mmoJW1ERWGXIi/afw WgB6TT4CYE5Tadgs3pZsjLMu8CcKLFylGnvSV1mY7GycrHn+/s6kPU45O15wVRPatK NSCAZ6F2PPsW7aiYdWhYuvg2o7fQFSsQTavZ3ajqL2wHLe8tslR2avjbQapzhpFEPE Re2zbecK800Zuneanh7R2QZ8D7QhUGrpmwLiU5GRCjSySjW1b2RnHUmSFAruS6Sd/7 AGhc3k0ZveAdIgJ9sxPpx9ZTXSPen5bkOL62EL2luRTmUUES98E7ygJyB5/JtsAYr9 7y3lV/Z2fWUhw== 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.7 264/713] arm64: dts: qcom: sdm845-db845c: correct PCIe wake-gpios Date: Sun, 24 Mar 2024 18:39:50 -0400 Message-ID: <20240324224720.1345309-265-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 29B741DBF50; Sun, 24 Mar 2024 22:51: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=1711320703; cv=none; b=IkN6ulAHuJHEptN/DBKwkonESrzU25OLJcoTHxzsSMEvioxM4gO+dgY2PTOFg531VE2OaAk5I/A/fB1Z8gnp/Z7PgIxZORjffJU9/CMpKs+u05NZa1v9nI+9Y3Ef7HDOO3z+LRkOBxAu97nQ20P+BJNNkMcGFR8csZS+qhH+vH8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320703; c=relaxed/simple; bh=RzyK29TSRnSYZCzvmT+yLQqJFtYVbESIkYx4+PpbUT0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=BFo/3VPwaQl0A+eNep6vimlvTmaH8V4fruXbrldlCjYPiRI9PEFGq9n8qPluFPb2YM1mpIMG1167Vj7TlHS+ZFT3QCSmhL4PYcNlSXVGxQGMHE9Yi7DtFg44AcZ2oz9Vw1mdNkKtkM0v7WOQDgYAFXSRXVOu73Jyxifu2Ew0zL8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=nBKBIElQ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="nBKBIElQ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1BCF7C433C7; Sun, 24 Mar 2024 22:51:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320703; bh=RzyK29TSRnSYZCzvmT+yLQqJFtYVbESIkYx4+PpbUT0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nBKBIElQyOCyJWb8l+sTb7AyZiWUyiUDH0Ij9CPISxweJEkXBujOBb11Ba3DqhpM0 lAu3jsibvwS20dOgv2a9/6iQAg1gRmX+mzOc/ZU71PZxeDmdeMEUHla3Px4Mw4k4gT FYwOYP+xl34hXx4hDjnbT77ubQmjASZKuyo+WVcOs94ytkTw2VuBrSusGl2d4FDYSa /2k/4OI614mpu340PWhsSpr99+R0npTp87Ue+iuq9urgVKkayfgPIsGmXIZ1M60LCy sm5E4jRiZSBBmi1TAnDF2rD+wewxqTXR8FCqlsKyP+S+GBhzwVU1kunXo6QBSQI9e5 6/Yf6kc+xboYg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Krzysztof Kozlowski , Bjorn Andersson , Sasha Levin Subject: [PATCH 6.7 265/713] arm64: dts: qcom: sm8150: use 'gpios' suffix for PCI GPIOs Date: Sun, 24 Mar 2024 18:39:51 -0400 Message-ID: <20240324224720.1345309-266-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 3221478663ac6..a662f09fdbe19 100644 --- a/arch/arm64/boot/dts/qcom/sm8150.dtsi +++ b/arch/arm64/boot/dts/qcom/sm8150.dtsi @@ -1878,7 +1878,7 @@ pcie0: pci@1c00000 { phys =3D <&pcie0_phy>; 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"; @@ -1972,7 +1972,7 @@ pcie1: pci@1c08000 { phys =3D <&pcie1_phy>; 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3AD121DBF5F; Sun, 24 Mar 2024 22:51: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=1711320705; cv=none; b=clpeIK3DcUOSHg+sXm8Px0zGgZhGtbKBX8/xsv4re/1snk6y5HLJbJ8brZcMsKUb3SILCJpoE/ZH54dRb++Wxu38uOiVhoQvD7LXZuvB4IketvoE7qrByE5LxePd+ZKbdHfIMlySBMq/BoSbB9op5djgiTodSPSik7RTSaJMP/k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320705; c=relaxed/simple; bh=98j6jLoLgdzCjoiivLq8/nnY3kT0E7I8/IbXH8EktOE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=XocehRnZxS1NEAPSE7PoyjEEU3NwdWmbDhNa91N/8sXAoAgOktTuanof7B/S3PySans7DZpGAv+TIUcbHnk3Wdg3V68sQX4g9T67AYFBTmYbQMzC6NPGd02LmQn5ILms1APeag335Tkqd5BWPUGCDqsxLt9JGucQj0UvygApM5A= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=YbudiNPf; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="YbudiNPf" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5E246C433F1; Sun, 24 Mar 2024 22:51:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320704; bh=98j6jLoLgdzCjoiivLq8/nnY3kT0E7I8/IbXH8EktOE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=YbudiNPfYKbowusO9sTJIcMpxM+6s2D0IWoE88DejySLspnxK3IP3KELrZFlusjwd NlPZAe66ei+6kpltWe3V4pmHXLpC/De7t7UjjgidPEYLJs/nNCr+DInc6y9YRedydA 9wQNYm1ocbtRK+npEE1/vK1nVjegjgiKeziaUCd9IbBZdv/0K+CRs5nspia+6L/2gD gxc+7vIklCs7/6d0QdS32CPVFQ5UXrUHroeyZdABueEaLxYePpiPvJYUT1JCT/4rd/ eFDAvJ6ESUA9puS69gJoousIwlxlZ/clU2d0KudZecCBXE9jLyW6qM0S6+IQdr1kmS ZkRgqy3XznpXQ== 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.7 266/713] arm64: dts: qcom: sm8150: correct PCIe wake-gpios Date: Sun, 24 Mar 2024 18:39:52 -0400 Message-ID: <20240324224720.1345309-267-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 a662f09fdbe19..2678eac1ec794 100644 --- a/arch/arm64/boot/dts/qcom/sm8150.dtsi +++ b/arch/arm64/boot/dts/qcom/sm8150.dtsi @@ -1879,7 +1879,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 222B186AD0; Sun, 24 Mar 2024 22:51: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=1711320706; cv=none; b=Mq0srs3zuUmGgnuHrU6cE9I1TgjnoBr++3KSXKYS7tur950vGcG/4CaIQqJ/Dm7K7IItR2LMx/SbIRqigPqjKssOyvVb3rtjDSS0eoOGxA7UaswD86V5dPkrYtmVcfFc6V9H5CDBQAeE6oEzI1W354Cj6b2ylQavPTSCUPD62T4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320706; c=relaxed/simple; bh=OC6s1nGnzvG27cdhEV9v+152Ge649GD6EUnGf7Ba9Jc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=dPKtxHZWOrRjxNNYfB/V4FHCSSkPDJZRGkq188OWydI+1QKLIvKEMTeggjqIVkUa9nEDSlxAcT+QqDMiexLVyXwcV8GJ8bw/l1SOjgiN+sEKVpbr677K1DFPtlalQzWfomSMj6u8RVf7jJRK5ZgxuK++HJH9iM68NHrKe7Ajdxw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=d+5NUZsE; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="d+5NUZsE" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5D987C433C7; Sun, 24 Mar 2024 22:51:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320705; bh=OC6s1nGnzvG27cdhEV9v+152Ge649GD6EUnGf7Ba9Jc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=d+5NUZsELkUpUeje0JT2uO037NFH6IaR6UE/3QjRV13CQn8hos38U+J3KQ90QzNDp HxFhIsPv5Eg0ACu8kPLFfjsjgNIPUiR6X5gAmtKIItDB6mUy/PtzWgJpDioH3SqDi0 px+MGKX3rh1e5MkYRHHg8L4b2Ar6rDCM3wvg+eXLQVIlM0iUvlcTG5k7Ginq59qoNC J57kOOic/p7v9T8Owsf5MEVQ+dOZo4yRuk6wixoVDfD1YJwV/UHuoarVhRzmMseg6r ZjB7cD2aWHTWLgd8f889yiccbQTVp6ynniyGpGJOEPlF+tbZgKLYJxITrddE5bjzIK 7MDKF6DyD2kmg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Daniel Lezcano , "Rafael J . Wysocki" , Sasha Levin Subject: [PATCH 6.7 267/713] powercap: dtpm_cpu: Fix error check against freq_qos_add_request() Date: Sun, 24 Mar 2024 18:39:53 -0400 Message-ID: <20240324224720.1345309-268-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 245B01D5F97; Sun, 24 Mar 2024 22:51: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=1711320707; cv=none; b=h54CcJEi/up2NZw4puERdybctxKsopl4mG6bkrPNzdKlgwWcRMZxaUACp82XZOnALNZiT3ml4WGb28NhVDZp7I8Z7lxFZkaeTdef41uRmcPDcopmirlns32td9uz+XeRv825WdiqJiOmwcpTXgChzPTQHsLWzVb9Qp7sRYfnjvY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320707; c=relaxed/simple; bh=/W3KWWGDJM94lmVHEzMgu1o4ztowe19RrmIKAEZrIHs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=NQO4Xbae2+pbAtZWNBxquWh9w5f8be5azvf9B6JUzwd7kbdU7fKTw16vQxFlHwohDBHTE3r5gGIv6NUNkPHGm5INJ3vnATycux+KwggFpU3X+WvhZ7qn035Y5sN5h5m39HmIXbKio4F8OA8I8YhitioXCPAllBDZ7ZQDmx44o2U= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=COuN7xny; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="COuN7xny" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 49633C43399; Sun, 24 Mar 2024 22:51:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320706; bh=/W3KWWGDJM94lmVHEzMgu1o4ztowe19RrmIKAEZrIHs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=COuN7xnyZCXOtPyh8BFc83EK0anUNRfIujtMrl350hd2NM7K9Ijq1YE5Qqp1H8cWH LNhWjujZ+uRcSrhStxbObpHavb30EI3S72IC2s42CU8GoFoBkPpfgL2F4rbkZG7d+1 8frI+Y45sFxd/dz1pCXgeuZMsm/ttbO6vWaK5ruf7RhjCZf38lef6fSpiU6u0Qv1Ju EjTHiO/Oonj+IOlXEuZ7OKFF4SVh647uv7Wn7tLmrM12pqxUgcowPCyOM/JdX+Atn0 EMkp4zhu+OZim2cWbkGA4N+S3z0vmNXBnPQSU+skPjYvI6aeDu3Aa0MFFH+VhCdco4 c4v6dDIHvH2QQ== 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.7 268/713] net: ena: Remove ena_select_queue Date: Sun, 24 Mar 2024 18:39:54 -0400 Message-ID: <20240324224720.1345309-269-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 c44c44e26ddfe..4fa27c9a33974 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 13C151DC7E1; Sun, 24 Mar 2024 22:51: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=1711320708; cv=none; b=XXUedLfU19EW2UihBo+51u0WfzkWYaMPXaQmvLyB9Vj0tUwcOk4TStU8Cj2BP0tWH9WXq8bsejWePP+fvPe+fDUdzDh/2wIGOy3Glc0itfzNexX5GSnZNfPWmGSf/4ODuEAmSuyNSzYioCjFP76GDu7NnPiDJakFlGqLfCD9bqo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320708; c=relaxed/simple; bh=b3EGla1ceGQDu3kI0qNL7DjBL1cafs8iz7Jsl5WCx38=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Jx7phthA/+qtAmZdmTiEqYVAB+aEK3PC/6kUvo/bwLLwfAv9+ETrlzGh1UBbujBjFEGDz6IXlIErxY5XqA88pjA2K5VDPaPY890t8ppeO/FRdkk1Qd5qcDbhDeT+bvYX8wyU4peNfxZq2VadjFie3T4OkYMRLfM7tNc2EIq0t8U= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=U124BHBx; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="U124BHBx" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4B1F1C433F1; Sun, 24 Mar 2024 22:51:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320706; bh=b3EGla1ceGQDu3kI0qNL7DjBL1cafs8iz7Jsl5WCx38=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=U124BHBxrspiNow0F5WVpFTlhzyfVVbmgzoh+109Ew+YOV9TJzO6kNLFo7kLT4oVe fiwyPJzHnf0a833MHLiZpIZktoQYCPJBbK5kGvbTleYitzSmqwMmZYiBUDLsJzGjb4 tZ0kjxT5sq21cfgiKqtLWiW4gQ6ha+ZFx13dXZbW/2zIlPl6Ev1gcvdbAhQ+Ja87jr Gl58cpuRJX2Z+z1wSDMdMggugrcvC/rIkT1cRfGEcmsiCk9frCI9XzlotDyGsNpDpt X23qNn1cIwcgEbotJ0c52yJQmWQ0Q+3pkKI6N23XTRcBxz4sMV5OG8FG6w+AYvYvBo i1o9Sku7TfNCg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Bhavya Kapoor , Vignesh Raghavendra , Sasha Levin Subject: [PATCH 6.7 269/713] arm64: dts: ti: k3-j7200-common-proc-board: Modify Pinmux for wkup_uart0 and mcu_uart0 Date: Sun, 24 Mar 2024 18:39:55 -0400 Message-ID: <20240324224720.1345309-270-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- .../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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E9DCA1DC7EC; Sun, 24 Mar 2024 22:51: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=1711320709; cv=none; b=EMJpJgctmgiOrbU0e4e3J0Lq297J7Hf3sDN1rPZNTlisjAEhJVnEP2OcxLf4rCfTIe3plgjON5Pu+2IynOh6fL8Dr68Go4OLjKNxanpMoYnnsYjcWHJd4y4kBdysAf084Kp7LamaOfXBiNaf/cytQ2Yh7xKmSR8Suzkl8AHm8IE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320709; c=relaxed/simple; bh=UhipjQvNWfeeujAdzDwbZqGmfdqnpiMVNNRI02gZzEk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=V3eLt9G1aVj+oZXM0zbnFqspDX4yLrAh7CGQCSgTyWkPMUqoOg9b8ttiZBEjGsckXurxKuew6vXCB9H3Cof4o18D2yBaJO35tTyTBKD4IPEgDbGatwiB4mPZtQaOVaSB8+Z+4b+W9bsSYpy8RinkfCLeLgeFzQcwxWgleFs6LOU= 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+JugOsH; arc=none smtp.client-ip=10.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+JugOsH" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3556CC43394; Sun, 24 Mar 2024 22:51:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320707; bh=UhipjQvNWfeeujAdzDwbZqGmfdqnpiMVNNRI02gZzEk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=h+JugOsHZSBBm0ul4FsuBPdHyim+QHmGzcWGmFhS83j5yt+ubxUiw5OmHKpsLVYaH DaG+2+yEEocULoANM7+KgsZkQVz+8CtsVO1FWDMh5sRmZhV/rnG5IakqqjROMQKOzL fpS3lcr10XAPqzu2n+Pht2BZ18yO3FXbRSu74Fo5j4WJthDZA1eMZLGKsxH0DGok7+ kd5cqGThDewW2JiD8QRYhv6JiEglAMTXntCbGLwEq8y72CFWik/sUPkPPi3mBx6/Fp Iu+yrCKKAlXACpcyFr5A1d3q7X2i5GTzOZOZK0XLytfGqEz5U7h2rs4CXrBOlOeIKf 3yyyktqspoFvQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Bhavya Kapoor , Vignesh Raghavendra , Sasha Levin Subject: [PATCH 6.7 270/713] arm64: dts: ti: k3-j7200-common-proc-board: Remove clock-frequency from mcu_uart0 Date: Sun, 24 Mar 2024 18:39:56 -0400 Message-ID: <20240324224720.1345309-271-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D36721DC7F4; Sun, 24 Mar 2024 22:51: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=1711320709; cv=none; b=Ys6tYZShNeenKDz3jdbxyBcSZvfyxXiCzKLm+a25O9oxy5Mfl304lTX70zADAD+s1UNqLdfRwRAkJUqSPNmvVyANrOjg8dggmmHh4+8DtHuR6oqcKzHHPdqyGz0O+9NnKLDJiNTZWiJaObVW/oTe6Ll7QFI7L20+ijegIr6S3sY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320709; c=relaxed/simple; bh=9fBJTe87mI9XM2IpLXAQVydlYYvMSHSgDaCK0LeAZws=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=rkRIn25/oljcpuA4x5LrCZ6f64tDIXjQxSciPIonn04CJXuRBgu8bJVBJEioMTZ63eqhUvVrxxGT5jhiB6TP3iOv0J+TWhw478AKt0Gr9IQzXe8enpxRvKkvweYntI6UEvq2bnDGQWlBWynq3fp6Ct2bCKmxcX2d7u9qeY2gRV4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ADosB36i; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ADosB36i" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1DCF7C433C7; Sun, 24 Mar 2024 22:51:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320708; bh=9fBJTe87mI9XM2IpLXAQVydlYYvMSHSgDaCK0LeAZws=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ADosB36ibC2F7xYy8+knOAGsR9pnBZN4fH9FSXb/0U7Wi2SroucO/lJxFN9RgsIgb 4Mwtm+4Vi2BcWJIYMAyI7a1Ust+b89CgdUmh/UoWzY2aA+eklUmwC3Tdxc1UVSTtqg v58oaRmV3y4WvHOXnf7GJ0X6MygqTlnjyLdRXt2Dz7+J/Y2g92ys4DbwzMkr9Y16lO Vy9x/mbCkNRspPbhJFrN4bz4Yet3oqOKH4jnVn30dFIT3xi79sVUvH5NHvv3tQAHrH sZRyXEY/Q+RCj3UslFyjzMK1x6Y9vVm76F64K4vYlY7tvXUvKzpwL2wbDxkbBv+KVB IxTf5iJKoPezw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Bhavya Kapoor , Vignesh Raghavendra , Sasha Levin Subject: [PATCH 6.7 271/713] arm64: dts: ti: k3-j721s2-common-proc-board: Remove Pinmux for CTS and RTS in wkup_uart0 Date: Sun, 24 Mar 2024 18:39:57 -0400 Message-ID: <20240324224720.1345309-272-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B90821DC7F9; Sun, 24 Mar 2024 22:51: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=1711320710; cv=none; b=V4+1suzYFMbOYHvFtXPYKVMjRdxIhQR9OYv075KLKWKMJhUuXGZDb5SN2g91qBeJN3cb+aeMqipeKLJB/E4NvyZgtXwxQQ5Brar1SiKOrJ+Y/337p8uF/TByjrKr+81GqM1fK1zwpgNoIsfsLBYVFW9+aoyqP2/WPFGzUGKLF1M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320710; c=relaxed/simple; bh=mwIH3PjBjugu5fGqYB7lKPMckfOdZeCQHALgGAMrEnM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=nk5lAEiSdMZVy8M/mB0I1/w4q6HwiXFPyBNNR5pxppEDJg+K0NJxdnEhHPpwIn4z8daHmECipfe3lxzP/JAU+FoW07vAx4VMEA5Kwl2T9q+FD3GcraMLUnhkGJBSq7rGANqx4kqPfV5XrDNdJ7sbW3cc74JeGNq13bKXBDpDHBE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=a4bgoAaR; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="a4bgoAaR" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0683FC43399; Sun, 24 Mar 2024 22:51:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320709; bh=mwIH3PjBjugu5fGqYB7lKPMckfOdZeCQHALgGAMrEnM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=a4bgoAaRXrMy2T+8lKklWcCeWWBTzr6lrwiZm+tE4SkKflc0iop3aO1NSWWvubA+c hYcygPpkPC8wFzttW+nR/Lk2FypBy99pNlugEf+x+uQhamMmoite2cELMS8QTBuAup FmP9ci9frucV9dN9fNbNqXXBdFu+nUKIEsCvsjFtDAgsqtVqJalLUnZnPX/qeQ31H8 1yQLpJasB4WDRv46EtSUnI7F0nNf3sZSS7HbKm38ht3ug65BH/Z+vFfDQS/5n4a23M SVT8dN8wGtIzUCQWkAYtyVwKUSdbFLhzlORm4hlJVsoiOP83lF8i/ydJaAxFilPoIV zINhHtH+vYpgg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Bhavya Kapoor , Vignesh Raghavendra , Sasha Levin Subject: [PATCH 6.7 272/713] arm64: dts: ti: k3-j784s4-evm: Remove Pinmux for CTS and RTS in wkup_uart0 Date: Sun, 24 Mar 2024 18:39:58 -0400 Message-ID: <20240324224720.1345309-273-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 f1f4c8634ab69..50210700fdc8e 100644 --- a/arch/arm64/boot/dts/ti/k3-j784s4-evm.dts +++ b/arch/arm64/boot/dts/ti/k3-j784s4-evm.dts @@ -331,8 +331,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A14CC1DC7ED; Sun, 24 Mar 2024 22:51: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=1711320710; cv=none; b=lEqLJnrg3SY8brhQ1sKMlgDNSv7CabSTEopDTspWAc1XTTS+qs17W31AbnfX1brFZ0+aAl16WR/TOmTEoduYpFaSta4e8m7J6y04j+2r9V4PqugYnCH4O3q1OUCa+ezC22HJ2CwC57o6dTj2tP9lZ3c7X2h657U+q45+XbcTupQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320710; c=relaxed/simple; bh=TFfAVrGD8nWkaGmaO0qqtQoMlM7QoySNF8X+9tFaBkY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=rVHTNqyyfMzlPcMqruG+m/VI+TJfv6UO9qBCdogM+ephaQS2jmOowE96dwAPNJARMulIG1a9m0R18xcqpNQnD/x7/6GS0Vx4wVlqlYBgSKlw/ORoW0iYyiONpSP/7NO6kt8Hf86SJi8jthgVjoPYmUDpRJQEt0C5+1LErNYtNXc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=vFQWRf7Z; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="vFQWRf7Z" Received: by smtp.kernel.org (Postfix) with ESMTPSA id DFD14C43390; Sun, 24 Mar 2024 22:51:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320710; bh=TFfAVrGD8nWkaGmaO0qqtQoMlM7QoySNF8X+9tFaBkY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=vFQWRf7Zt3Slm/gNhYjT5rtGvEne3+8eveDwPNmYROb9D5lp6EAJw5CNNlFumpU1k mUZ2wbVRkie8EqykCw7s6YtkeL2ZiUvgkcarONgiilWtgx/wLCq8wIKqRuSv0fVDZD bXF49Chp9gIfQvVpjGDhUdrprSPqlNRTXjr+iPC5bJnPZc43TNR+LqUOGM69iRczII UGN94deKByT29hgoOYW4rKmekUdqDUnXcdU4epPBYcnq/awHRMJAsQUbWJzWKtZmBF /Gxn3BT2GSBpvdsB87q5sOXhsSe26OmbhYLX/cv2W8bvSPRsuG21nBPELWVqhJET5e HpiU8Qy3UUbBQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Andrew Davis , Nishanth Menon , Sasha Levin Subject: [PATCH 6.7 273/713] arm64: dts: ti: k3-am64: Enable SDHCI nodes at the board level Date: Sun, 24 Mar 2024 18:39:59 -0400 Message-ID: <20240324224720.1345309-274-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 0be642bc1b86d..c3300c36fdbcb 100644 --- a/arch/arm64/boot/dts/ti/k3-am64-main.dtsi +++ b/arch/arm64/boot/dts/ti/k3-am64-main.dtsi @@ -623,6 +623,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 { @@ -641,6 +642,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 f87f09d83c956..b8f844f667afc 100644 --- a/arch/arm64/boot/dts/ti/k3-am64-phycore-som.dtsi +++ b/arch/arm64/boot/dts/ti/k3-am64-phycore-som.dtsi @@ -211,6 +211,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 4dba18941015d..256606be56fef 100644 --- a/arch/arm64/boot/dts/ti/k3-am642-evm.dts +++ b/arch/arm64/boot/dts/ti/k3-am642-evm.dts @@ -487,17 +487,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 d95d80076a427..55102d35cecc1 100644 --- a/arch/arm64/boot/dts/ti/k3-am642-tqma64xxl-mbax4xxl.dts +++ b/arch/arm64/boot/dts/ti/k3-am642-tqma64xxl-mbax4xxl.dts @@ -425,7 +425,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 d82d4a98306a7..6c785eff7d2ff 100644 --- a/arch/arm64/boot/dts/ti/k3-am642-tqma64xxl.dtsi +++ b/arch/arm64/boot/dts/ti/k3-am642-tqma64xxl.dtsi @@ -219,6 +219,7 @@ partitions { }; =20 &sdhci0 { + status =3D "okay"; non-removable; disable-wp; no-sdio; --=20 2.43.0 From nobody Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A09EC86AE7; Sun, 24 Mar 2024 22:51: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=1711320712; cv=none; b=fKSqebyry34AM5KdgldlUCzySHJKtO3oM848PzQAqzcopwQ0w/y9+s1RecZvsZ3QS9VrmE1D4xUWLLv7ChJy6Khk+D0oaB5TbgMzlkDGaVV8lyRzVAPdG374r7YVHzBfJOwUm5pJPDj35P/PWR4dmvQZfwYKAo1Ay1uyUJiOLtw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320712; c=relaxed/simple; bh=PbpkDc8dLHMQIvOluxNUHwM9KODFcmsFc6mIGPXsU6s=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MqI2yGYtHrUbFIpGCxwRdtCBCmrg5dbGDddjO24ovyETuWEYwuf+FU5YqNJFB0zPNwUwOq6VKEGnTk27gh8g8hu4bQr+Vns7aoVEGDf4+Z+61TfATFBx9jN7lXjauxmdVJEi9bTXNkx4QFb0daIs7+69KK+pIeuIhhTKbrY7b0Q= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=uy5fPtQJ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="uy5fPtQJ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id C7EFBC43394; Sun, 24 Mar 2024 22:51:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320711; bh=PbpkDc8dLHMQIvOluxNUHwM9KODFcmsFc6mIGPXsU6s=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=uy5fPtQJZ9mYW4QXhIm0NyCv8uTepDew5ZaGGfWDMcUzhCMsuJBp+V0hWlMCCr6BZ FPStoh05asbw5JY4XuqgFGybR84QufMMLQ3TelJsl17rQkMDakV7XnxE+UyHtLNpP3 TJU9taLuBBCvWq5NSRQ/twIpPlXyzidxuHuTc9ONJKbCjs4n7Y39SMYbQABtbSZi81 64TahnByG9JoriqGYwb1898I1SuIm0zSSeJqYx5En9lto6nykfknJGGSgEuyZT35aN K4FsOJYBLmbkJ+f9tuYmlzWvjWoA2WnzBXl5AAi8DGm2HrGV/g8wj9vSO01H2F46JI tDr7qMaIAzLjQ== 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.7 274/713] arm64: dts: ti: k3-am64-main: Fix ITAP/OTAP values for MMC Date: Sun, 24 Mar 2024 18:40:00 -0400 Message-ID: <20240324224720.1345309-275-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 c3300c36fdbcb..45042216e5b89 100644 --- a/arch/arm64/boot/dts/ti/k3-am64-main.dtsi +++ b/arch/arm64/boot/dts/ti/k3-am64-main.dtsi @@ -623,6 +623,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 @@ -635,12 +638,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A5EAC86AE9; Sun, 24 Mar 2024 22:51: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=1711320712; cv=none; b=XHJmDkjyVuJIg92rUcYqwzxz9ycOeQAtlNM52ywgL3FaZ9SeVLqt3H8b66M+nIVrHizAdxSWVAWEm7g3WMubgrkDgyAHaSDs7WFDNbkfLj8UGLZT20bg6VuecPiCT+u8nfT+oS5wGph31deOq+Msg80Z7jyHdIIGWlPm+asC6zM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320712; c=relaxed/simple; bh=NWPrkaaaSy9kKYxmurUP9GafqEG7VJh8Z50d+eN03o8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZrULZkaBP/hI2HLgt7hWy2TezJGTArBQWSo743SJWbzv0o7Lks0DysUoSrygIXkkvL8V1DwauL5iQ8Ie+tG1j3LmU3IGUEm0opF/13SsmB60+GqD7oY0WP2HXWXwtHG1gBbUxDqCYYqNNTn2gWgkha82SC4Qlt2Cda5Bwu92fw4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=rB9LzNIu; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="rB9LzNIu" Received: by smtp.kernel.org (Postfix) with ESMTPSA id C4168C433C7; Sun, 24 Mar 2024 22:51:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320712; bh=NWPrkaaaSy9kKYxmurUP9GafqEG7VJh8Z50d+eN03o8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=rB9LzNIuGdl4fYSbkx7xXO1Y+kXqaWfx1FwIQPe6dLxL/OUl5T3Gl4hoY3h2fXeAE D1TP5PnePu9DJLbYpeLlF1MAjAOnnaUi4j1KefqNq4yshh5IOwa13JV3VTyEbyOQ0D xOiIr9mIIwBLyDpJjgZWCsMdlIDzcz6JCx33Q5zTJHWrrQCNUSRxYiQ+kwV3saWeO1 EzBtpj8ZqtQDwu4K+Pko103t3SGvEYtu9RRvgeFssQb7GKESVHewIX5mwxhA/dslXR vuta00/eRj6L6KWHzLbt3XpmynBcv8xy7XyA2a7zS/n5L2W6kwlTYLU2cvap1nDT9C xeSCYhWTO/ZCg== 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.7 275/713] arm64: dts: mt8195-cherry-tomato: change watchdog reset boot flow Date: Sun, 24 Mar 2024 18:40:01 -0400 Message-ID: <20240324224720.1345309-276-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AFDB41DC80A; Sun, 24 Mar 2024 22:51: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=1711320713; cv=none; b=JEecrSD45ta59mS7Vb0zT3QmXYON2C+vFpP0JBMRGtGjztTllEjfuR+oxBgP/XsbOZSp082alGySnLKzzNhpsPdwy7ubMnqXXJMBsHG9ro+hbUzq74io9nMadqOYuhwia6Ntbx9rOwhSr6lsvGq/IBtuCqtkCwMixbuLgyk4cY4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320713; c=relaxed/simple; bh=xZCKW/24TgRh7+E7gd9pRTBVZMgGEG5kgKUeClJxXso=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=lDGCZDh3k2b+2gXNHPTp9RoJLaXncFzUy6h7WRPZc02twMmPJ6C6obpIJt2dkXfyh69banrP3Tvnr14PEaOx/GQmlbRN4P3Fl9pijWmWBnAExmVvOAnqyF4Dxbv8k+3RkIYKXSq7SHFIBlrLiDhDCwuFXw1/Cf/DcrzzyvwYSZE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=e0hgrQBi; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="e0hgrQBi" Received: by smtp.kernel.org (Postfix) with ESMTPSA id C048BC43390; Sun, 24 Mar 2024 22:51:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320713; bh=xZCKW/24TgRh7+E7gd9pRTBVZMgGEG5kgKUeClJxXso=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=e0hgrQBid+jtvjw5b2DWQwPxOoIm9lzptNIv29HyG/vvJC7gKtg2496X0GUeabKe4 IvVnPDeSb1rUx+BI3yDdbWOP05CYY/8akcyzbrE/ALBIpDIUuNxv4HuLyYP8tiukTE q0lBa0Zm8AcOdIL2iYF2EsKswii7ShgOYZ9uJYa4N5buVY2LY84acRrgexeiJJmj4H VVOfmTlszyK5IugKGTLRbG9ihpTNE0izEs9h2v0dYspRa7l1iQT2Pk8Uo3foZwkZs1 P+6gt+mN7sLr8Vm3CfgEYz5bwMfAW51yEr4QNHy28Z1OoHreM+kVSjBwujtoLJOEP1 cxTGzmrduW5Ew== 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.7 276/713] arm64: dts: ti: Add common1 register space for AM65x SoC Date: Sun, 24 Mar 2024 18:40:02 -0400 Message-ID: <20240324224720.1345309-277-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 29048d6577cf6..fa2304a7cb1ec 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CEC2D1DC81D; Sun, 24 Mar 2024 22:51: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=1711320715; cv=none; b=N1ZxrRhU/IYZu9wnw16RvallDNm7jMctwpEI/D+X/Ed7kybYGSx6CyO4rn21uEZOMMPUFn3ePEH+I0y1hEDf1+PW1EHQoRvhCv19NeX8u4GBEGtXi5+RSP50PVr/3fnCHpO/bPZqY9BuPrfz9l3xD6vxNCRBLOsa1Vg/q+atqmg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320715; c=relaxed/simple; bh=VhGrNDsi/hSAF7zLn+fZKZbQpK32uQKZn69jSk9m1gs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=oTvIFzNONaZRBiERHWWcQTNvG5nxfnUCE0GMeM8PI/uMorSMyZGAcPX9wq37V/F8c0NV0zcF0qZrwTM7dLp3S1fhM6Sic0JTWDHn088yOyDwF90INbDpXdyt1B3u+au/0WBRWk2P9siqf+BYnhnd7PBP/bkuQcgspvo0dj0nYsM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ZZaNT7Oy; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ZZaNT7Oy" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D96D0C43399; Sun, 24 Mar 2024 22:51:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320714; bh=VhGrNDsi/hSAF7zLn+fZKZbQpK32uQKZn69jSk9m1gs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ZZaNT7Oy1NN+w+TFfBwl6NuhovXEcoh3sDeEMDGkv2h1HY1iGaFvvPf7NOjKXshA5 RAjQRaGOT+aS0jpKulH4qZ2najcoyBNCGkMFbVe16xKfvjIkdyf6JYLMN68y+UqZkW eS87g1TDEuWv7KhG49XWbX8gLWNGu7wwJxmBM8R53NDra1NfDv7ipTDRPDhk3uGoH3 JmBtc+1cvkxjCrJWJCtMp9aRSqN9EQam7SCvNu5vsPIT8lEqKll03v7yJE+VY5cJK8 GF43xZV3PmpflPyO5YbZmnVq1GKmVwX74SIppl5O2qaWaLUI9O+qhtGJAKWgep9+A2 HOLMWvOmMA5Wg== 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.7 277/713] arm64: dts: ti: Add common1 register space for AM62x SoC Date: Sun, 24 Mar 2024 18:40:03 -0400 Message-ID: <20240324224720.1345309-278-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 c1ace4a376d17..2f318c5287581 100644 --- a/arch/arm64/boot/dts/ti/k3-am62-main.dtsi +++ b/arch/arm64/boot/dts/ti/k3-am62-main.dtsi @@ -757,9 +757,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C770B839F7; Sun, 24 Mar 2024 22:51: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=1711320716; cv=none; b=PHhQDEUKR4s4A6mzR6NyqLn9wiKHW1nIUPxId7wbEg32T7eeQzIf9EkygW2FDI7mN2Jl98qvyIjss93KmyPRmrqRyGqabNGGGMridd2XGVxHT3Y+fhDMSfelLMQg4Xx78tZqQwkyOTfqHzsUBY+hOpk0f92QUjt1WC3tljYaJvI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320716; c=relaxed/simple; bh=1lwHRMfdeOG67Fs2sEkZD3y3XqkdjZSm0N3AdDXg11g=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=eCmoDzaJl0cgHbAUQ1zsZ3+JIwe3cv3DxBfTRLpiyrAq6HXlE12CoeDYO+QCFfJAD++yWGwvFUFEXFK4cgkPD3dyHWila61MLzuMvcF/W9/BTMg4BaBg+cvWzicB5Dd5C0XWCb/VjsTE5+dU9DKs8Z1LwvMBMFPLevxSSRFg9xQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ecXLIwA8; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ecXLIwA8" Received: by smtp.kernel.org (Postfix) with ESMTPSA id EF3A9C433F1; Sun, 24 Mar 2024 22:51:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320715; bh=1lwHRMfdeOG67Fs2sEkZD3y3XqkdjZSm0N3AdDXg11g=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ecXLIwA8HoH5Q0VxSKW8x1jIEQyJ9SYFgYLL9AHrvDXZdTv/sDmkPfnB7LPYCSaHh rYFTkutoh7eWSXOW0sXTZrXbgcE+8l1Yw3Xsd0JUcL/5+zafgtHcL3ZacUZ0zGqygz sIaPxuCftzPlzSix1gnKGKbscd882fQO6CHPOJ2ZpNnqwliq1AQ7/Ld/0ns24TCO5B KKctiWKkHhhmD1/h2c0S7NK8A4KibDAvn2KDAmi5up95BWWEHsdmvY5Rgnf3FUJHTY 2gIRrbNVhxC99YNjrbHCZlEaXLYyMD2Hih5kLD+L4LsN6Th4ejjnYAn7N4LgGEdmIu yW+tvY0gBZHeQ== 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.7 278/713] firmware: arm_scmi: Fix double free in SMC transport cleanup path Date: Sun, 24 Mar 2024 18:40:04 -0400 Message-ID: <20240324224720.1345309-279-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 7611e9665038d..39936e1dd30e9 100644 --- a/drivers/firmware/arm_scmi/smc.c +++ b/drivers/firmware/arm_scmi/smc.c @@ -214,6 +214,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 147AD1D6846; Sun, 24 Mar 2024 22:51: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=1711320718; cv=none; b=VKO+gvv+Wtw4Y8R+Be9zUQQ2PH/2LpzqD5jhpwJ0TzW0qhwWpSChdYYvNUQj8H7GVVFcCm7aVb96v06D8+7WQATWl89B4Y0ug6OTgCft8GZeqxBVgTNm1LjDZh44a6PoNDtvoie2jk56FvxOQ9/Tcuqg7vjzLeS9/Ag8VyFRfII= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320718; c=relaxed/simple; bh=hqBbDuRgdmrUloL1U9utTYvFeiQt+JTbYKGUkQT9D1M=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=kpFG43VJkKwK1NzeYeQ5H8906vbVW61gRu8f3iuWFy1ggxPPSrjOInf3TkeL6LZiAhg+ZJkuLqVrU50S7HzkgUd5YB4sSS/W3XmA/JmhGvvtI3tHidOi8jy0rfizJ1Jw9HfBBZFl7YxglbqvxsPSag5mtOQZnP+dAN/kpYRykPU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=MdsTiaFq; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="MdsTiaFq" Received: by smtp.kernel.org (Postfix) with ESMTPSA id ED501C43390; Sun, 24 Mar 2024 22:51:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320716; bh=hqBbDuRgdmrUloL1U9utTYvFeiQt+JTbYKGUkQT9D1M=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=MdsTiaFq/MG+8VZHzdsiVzOoJ71Xyq/m3yybuQYDTkyjXf4YqOpfatz4T/KO9oaPj /3WJSYsCrlzLKLy0j9XXJ3Fn0Xs+R0pdYnFs6B9fG2IhSKK3AF2C/xHknOHjtk5pOZ x4I2q+IsinEt0vxE1+S9i+ZOmz2R1/wRg6UXIBg+v0AkUbGVdaCtEvlUtZxyN4pNtA x0kydkATKuyYy8hW+7wMG2jBco8iQR0/Xn3jnWgtZ8BGOmUEgSkcQrc1bu1aQkQUeF C5U3RUeHKx+s9xUZiUzg4AiwuEpsfgyxm8VtZBZEUSLAPUHpYdVPKF0Wz0HBnMfjqW lnrfRf/+H5ruQ== 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.7 279/713] arm64: dts: ti: k3-am62p: Fix memory ranges for DMSS Date: Sun, 24 Mar 2024 18:40:05 -0400 Message-ID: <20240324224720.1345309-280-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 84ffe7b9dcaf3..4f22b5d9fb9f0 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 306B41D6850; Sun, 24 Mar 2024 22:51: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=1711320719; cv=none; b=rykb2vB3WzbWuKBPfhxa+AX+YXAB+dV5DuedUHR25itT3TQMpvAYvaWy85cgUDeDCvkCRQcpY7fPJ80zTeUzUMnJX2+Uj91ZiCfVjZPzPX+3FZWN17QoU0XUKk3vRfcLeW3v2s7C7nEK83rMEtgaq3KUCE7LwcjxsYAjY8eGNGw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320719; 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=ilPU06a030cS6i5byxIWwBPaR1wJMcGvfR9vAHoG8/OPbf31619e/COsX5Mm0gb6UfMdryTTrNr6Hz/9zdruu+y001cpErBdx1PaLmDi0yi54ypVUEITvZ9pIPB+ny3wOKA4A+IsZvzTVHRVRaol8OicmWH9NFBGL8CstURiGnA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ZadyfjM/; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ZadyfjM/" Received: by smtp.kernel.org (Postfix) with ESMTPSA id EA9E9C43394; Sun, 24 Mar 2024 22:51:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320717; bh=IIAH9R+wJulgFrXMraygEhGyRL+cuXpt2/Ip4olD4X8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ZadyfjM/b0fd4VhwgEW9IfUZCkhOnu1RTYdjYYdSp7GtLezDhajyeHYPEuquyTvCS m9PCwYX6hq/w9i5P+ofUW76EhE5lsrQ3aAs9RK7spfOTK3zKwDIppMxJ4rFNlZbxe7 WsOc3o49VK956s06LmgvSI1kwmRMBW0ssOTeWO7egpceVfpEPDbLlfs67V7HiIvEmO SMZZNY+1xSAUAWSTERXABLpH9Uwe4O4MCRBCm651S3yaPHAHTmOMaKmKkhmfy/rM9u cPyCxRQ6ID3Nqg4nbgwp80CAzM4bHGlpHMbTzTxc0GAH+Vr+BYO1/EQkwdk89TC3qF dm0qTAjXXGmDQ== 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.7 280/713] wifi: wilc1000: revert reset line logic flip Date: Sun, 24 Mar 2024 18:40:06 -0400 Message-ID: <20240324224720.1345309-281-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BF2231D6855; Sun, 24 Mar 2024 22:51: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=1711320719; cv=none; b=glYPAjgx+5iDqzz40xca/imiLcg4cmVUaASLn/V10G722Sjg2m1xEdTz7VC3SzFTqzU+8I+EnUgvPFpOAui9D9Cz8S08PyHERkydPgJJxBFqg4cI0X5jIP61bJsDwrvnPl4avfeffXKZu6M2HmeiEmHogMuSGegzcRhxKThvSUY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320719; c=relaxed/simple; bh=YKVcdpL5+OrlaJ4q8k+EUbtblJGBjMh/yaBxJ7pH7dk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=khyi3vsr73j27Qy5y6F5rYCXJnTWt1RMzwJRZJ1Ke+GoPzv1tgl8NHA68tgzyrR9+76pammFBApj6CIYomYskzgErNPD92wH3nTOefrtoZCShewtLMfpKMqEo/A95Kt1xwh7UC0MoEU8ppKIYEKVLIoaA1g6RfKa3mQtIiTpPLA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=byMzNYNn; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="byMzNYNn" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 09277C433A6; Sun, 24 Mar 2024 22:51:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320718; bh=YKVcdpL5+OrlaJ4q8k+EUbtblJGBjMh/yaBxJ7pH7dk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=byMzNYNny8a9422ENTyhBNNQ6TopQIBMcqrNzoakznLMzsBavyQpQWBF3hHueQ+N/ jd7EchcS6Mh1kIflLNTIkDmRHbTNVSnXn0vnxEzcT4R7uMeGX8LOw5gGBWIcjiMV5b NTm8I69NDO8LOoy+k22zO6Ex66b0SvcjiguLUxSHjERDFt6go2VEH+4DA0EMrS5YTt q8+IIN0s0m0wK2TypIHeH2u2EYjVMfOQEeNZMFyrjQW6qOd2e4biP2112WNUrCSv9j +mTgHwJDzmybuxiUEHiZZgVadV4AbmvxmHE7zXByvTiqC6p347phCgPg1qnFvJTqyB jebBjLHvKOK1g== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Geert Uytterhoeven , Linus Walleij , Sasha Levin Subject: [PATCH 6.7 281/713] ARM: dts: arm: realview: Fix development chip ROM compatible value Date: Sun, 24 Mar 2024 18:40:07 -0400 Message-ID: <20240324224720.1345309-282-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A735B1D6862; Sun, 24 Mar 2024 22:51: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=1711320720; cv=none; b=VNbrpyNXwkQWAAe1sWR8/Az/4AN9skhQJMUvn7IQUXFx4bYvufaXxErUPnStf2sz/vwCHVk+5mfG5t1u7gzfHe00e/1yszyFCouVowB0gONt9kvxFtwYekowBIdvGiSMpSBfGBp8wq/oBglWIe0PIVquCrQUezBvU3HzciqZCaM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320720; c=relaxed/simple; bh=FqGypTOb490W/ywG+V8ao7/xpZ8vZxNiO43DA4jiXGk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=f4T6iC09b3KrR8xcWtYxYCYADspVCPPMusy0vOOnbIFJM+4mjk0jbRGcrFYQ4J1JILOuIOx/lXGCwJmwObTmuWTPl2/X2RSv7m7SVE2gTJ83sIpYM89nQ8OqgOulAUpup5Pod3BuotuXq80YctDyAaKuf4P8XiAyEm89UBteRrM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=tN/F9ML+; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="tN/F9ML+" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E3EFBC433F1; Sun, 24 Mar 2024 22:51:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320719; bh=FqGypTOb490W/ywG+V8ao7/xpZ8vZxNiO43DA4jiXGk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=tN/F9ML+nPBPrptGP+VKQWOv8kj2/qdM3C1zahK8PxAeY2gJ+EZxIC+Sm/GxEhbKb TxDh9hpgCv0MlMBfqHWcOR20MKnpPqaQh2OdYXz87whQydnQgXOpR9Oovz/7JiSe4o SS/n1KQM1drQ0FIdTOOUKsLtCDSPz8IPNR7z91uXQbUociIEXVMPFLLGsh0j8NyUPK 3MiS+bd6HyX6Bw5b8Vy2AFWLm8iLS5hdBxqXOzwRbs3SznrzbW4EBNuGIHxPUNZri4 dAqauwB049TEyhch/Le+ntBFIOaadnLuK0NS/bS+V6MXAmHzMUGAyGUpLvW77Zm25e AyOBS+ezrY/xg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jon Hunter , Krzysztof Kozlowski , Sasha Levin Subject: [PATCH 6.7 282/713] memory: tegra: Correct DLA client names Date: Sun, 24 Mar 2024 18:40:08 -0400 Message-ID: <20240324224720.1345309-283-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 abff87f917cb4..b8a7af2d36c11 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 { @@ -699,7 +699,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 { @@ -709,7 +709,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 { @@ -719,7 +719,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 { @@ -729,7 +729,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 { @@ -917,7 +917,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8DD171D6854; Sun, 24 Mar 2024 22:52: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=1711320721; cv=none; b=t3LmfBDlLp1Jb12AdpOeVEle/v+3YvyAEfacNCAAbvc36XRUAav466pnJB/4scaDqFU7RP/ha63B+vLF/TpUqfpIy/2F2kEJ4QQarhmwnzArFhtoRj7SHoyy1NcmiLaT/mJbNiSzKuuAfb8gNdm6GqLWxQ/ubfAbi5KlQakxvBs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320721; c=relaxed/simple; bh=yM+lvq+E4qsRmSZJeOX0H2d21XeXzg/bB/kuYKF4gAg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=WoZcY7OUvg4lp+DTs/ijZL+3VkhFrtyddIMMiL55e1QW9o2v3xhsQ2GliFT4d4wOdXkyHr6Bth5W2l6/hLYIJZY+pAdYpciwNohtM6Cc7FBNe0nmHkkPaU37onkLnEPDku9pTi2/7Ttf4Pn9M3YzKkcpqcoxtX31qeM37cBVk4I= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=jpCtw0ks; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="jpCtw0ks" Received: by smtp.kernel.org (Postfix) with ESMTPSA id CF5CDC43390; Sun, 24 Mar 2024 22:51:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320720; bh=yM+lvq+E4qsRmSZJeOX0H2d21XeXzg/bB/kuYKF4gAg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jpCtw0ksEDSNj5smJLtKCuEtR6nMGLCxof5oeYFaHxUjqlqMiROA/DHiZHojViboe B4YSHgDvytD/ytAGmRONyHg6a0LeNJvu3Y1OAFnrO/CDs0Te8tJUiC90KEFub219HS R9TLUM6f8Ar/Qa84kLKH0gurjqucVXoIYzU0XNErnnUNepM1egK9ij1vewGNwY+W+k c4kq9nVMG7fOCNYramSk2+aRYqvJEwiOQNIT73vTtGs/Y4dUsAXirK8VKY/iJi/wxq ZgxxZA2fKJZFuKYkCuEWbRr3uJ9FlXOuKZEE+Sib3zLSY+v2Nkw5OA/M0KjcGrbBat EH1/IbobLrOlQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Ming Yen Hsieh , Felix Fietkau , Sasha Levin Subject: [PATCH 6.7 283/713] wifi: mt76: mt7925: fix connect to 80211b mode fail in 2Ghz band Date: Sun, 24 Mar 2024 18:40:09 -0400 Message-ID: <20240324224720.1345309-284-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 479146078a21ff2015cdd4e0467cba0559911915 ] Driver should setting correct phy mode to firmware when in legacy mode. Fixes: c948b5da6bbe ("wifi: mt76: mt7925: add Mediatek Wi-Fi7 driver for mt= 7925 chips") Signed-off-by: Ming Yen Hsieh Signed-off-by: Felix Fietkau Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- drivers/net/wireless/mediatek/mt76/mt7925/mcu.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/drivers/net/wireless/mediatek/mt76/mt7925/mcu.c b/drivers/net/= wireless/mediatek/mt76/mt7925/mcu.c index 9c0e397537acf..2e52f9281ab73 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7925/mcu.c +++ b/drivers/net/wireless/mediatek/mt76/mt7925/mcu.c @@ -1460,12 +1460,10 @@ mt7925_mcu_sta_phy_tlv(struct sk_buff *skb, struct tlv *tlv; u8 af =3D 0, mm =3D 0; =20 - if (!sta->deflink.ht_cap.ht_supported && !sta->deflink.he_6ghz_capa.capa) - return; - tlv =3D mt76_connac_mcu_add_tlv(skb, STA_REC_PHY, sizeof(*phy)); phy =3D (struct sta_rec_phy *)tlv; phy->phy_type =3D mt76_connac_get_phy_mode_v2(mvif->phy->mt76, vif, chand= ef->chan->band, sta); + phy->basic_rate =3D cpu_to_le16((u16)vif->bss_conf.basic_rates); if (sta->deflink.ht_cap.ht_supported) { af =3D sta->deflink.ht_cap.ampdu_factor; mm =3D sta->deflink.ht_cap.ampdu_density; --=20 2.43.0 From nobody Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8A6721D6876; Sun, 24 Mar 2024 22:52: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=1711320722; cv=none; b=SnHO1xYFuplcaRI5R9Fv0g/+x8JnY6x3DAfY0w1olObTG58i+ZEc/2VShs+x3ZiLrVk99ZTekAwE16X7HGKnsbxzPi5eFUW7MXBXR3SNrQ2QMZFf5GXoYyatS52uZ6x2KU68YwHWOpaDmYi04sPYpaS0KZl6U8E+i7UJy1wPmBU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320722; c=relaxed/simple; bh=YMYZNvF0jZMf4DHcoOVtR7Ccv6UoAkuvPU9LYI4p8Sc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ALysDLGvLOrzJ0pSuhNoyzq3QsZiqsuUX1CaBY5P20oOVa1E0BtER5hP8toJmXfrpVV4lZEvSFmj3j4so4+cGLYtx621ChyMjfGXrP+Am00iCQLO9tsEuOkFUHpWoDLa+Ba3TkM3SoOXDLQZjjjk9aGnxrHI5lHhhaErfvvm8/0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=KSBikyfy; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="KSBikyfy" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B46D1C43399; Sun, 24 Mar 2024 22:52:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320721; bh=YMYZNvF0jZMf4DHcoOVtR7Ccv6UoAkuvPU9LYI4p8Sc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=KSBikyfypj9nz8siHa/ZWJOxlb94XciChCmxycq9Wg0dnDanHFsmwve33Jo8NC/A8 ODFoJn7ZNQx3NJV2194mUMrzgMJVUvl+cAFHhL73p1+9l1Y+qwEFNCbJDu3nIcOHv9 FDzbqwZJfWmSzKsFfhnpuInhN3Qk8xnZQJwxto/x5aGHS6DkipnlYbPA5up8ORt3gK Szp8yDn8Fk4INJ0vuQCdEeHsETBIkwY2VdDwaROLivTeXjOkpkoZpBcAVmtcvJ8Hww 8+6MgZguYIbhT7G32MEIo/ttz3spbKEHPgz94Cz4hvm52eDy+QeE2CbAweZzP7sKvJ C2gWV0x4MUSSA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: "rong.yan" , Ming Yen Hsieh , Felix Fietkau , Sasha Levin Subject: [PATCH 6.7 284/713] wifi: mt76: mt7925: fix SAP no beacon issue in 5Ghz and 6Ghz band Date: Sun, 24 Mar 2024 18:40:10 -0400 Message-ID: <20240324224720.1345309-285-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: "rong.yan" [ Upstream commit 243cecc857735344473ea33a713cd5c2ec1fe347 ] Driver should configure basic rate and phy mode for SAP mode. Fixes: c948b5da6bbe ("wifi: mt76: mt7925: add Mediatek Wi-Fi7 driver for mt= 7925 chips") Signed-off-by: rong.yan Signed-off-by: Ming Yen Hsieh Signed-off-by: Felix Fietkau Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- .../net/wireless/mediatek/mt76/mt76_connac_mcu.h | 3 +++ drivers/net/wireless/mediatek/mt76/mt7925/mcu.c | 13 ++++++++++--- drivers/net/wireless/mediatek/mt76/mt7925/mcu.h | 3 ++- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.h b/drivers= /net/wireless/mediatek/mt76/mt76_connac_mcu.h index 0563b1b22f485..c2241b068635f 100644 --- a/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.h +++ b/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.h @@ -925,6 +925,9 @@ enum { PHY_TYPE_INDEX_NUM }; =20 +#define HR_DSSS_ERP_BASIC_RATE GENMASK(3, 0) +#define OFDM_BASIC_RATE (BIT(6) | BIT(8) | BIT(10)) + #define PHY_TYPE_BIT_HR_DSSS BIT(PHY_TYPE_HR_DSSS_INDEX) #define PHY_TYPE_BIT_ERP BIT(PHY_TYPE_ERP_INDEX) #define PHY_TYPE_BIT_OFDM BIT(PHY_TYPE_OFDM_INDEX) diff --git a/drivers/net/wireless/mediatek/mt76/mt7925/mcu.c b/drivers/net/= wireless/mediatek/mt76/mt7925/mcu.c index 2e52f9281ab73..322198b20c0d3 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7925/mcu.c +++ b/drivers/net/wireless/mediatek/mt76/mt7925/mcu.c @@ -2047,9 +2047,9 @@ mt7925_mcu_bss_basic_tlv(struct sk_buff *skb, struct cfg80211_chan_def *chandef =3D ctx ? &ctx->def : &phy->chandef; enum nl80211_band band =3D chandef->chan->band; struct mt76_connac_bss_basic_tlv *basic_req; - u8 idx, basic_phy; struct tlv *tlv; int conn_type; + u8 idx; =20 tlv =3D mt76_connac_mcu_add_tlv(skb, UNI_BSS_INFO_BASIC, sizeof(*basic_re= q)); basic_req =3D (struct mt76_connac_bss_basic_tlv *)tlv; @@ -2060,8 +2060,10 @@ mt7925_mcu_bss_basic_tlv(struct sk_buff *skb, =20 basic_req->phymode_ext =3D mt7925_get_phy_mode_ext(phy, vif, band, sta); =20 - basic_phy =3D mt76_connac_get_phy_mode_v2(phy, vif, band, sta); - basic_req->nonht_basic_phy =3D cpu_to_le16(basic_phy); + if (band =3D=3D NL80211_BAND_2GHZ) + basic_req->nonht_basic_phy =3D cpu_to_le16(PHY_TYPE_ERP_INDEX); + else + basic_req->nonht_basic_phy =3D cpu_to_le16(PHY_TYPE_OFDM_INDEX); =20 memcpy(basic_req->bssid, vif->bss_conf.bssid, ETH_ALEN); basic_req->phymode =3D mt76_connac_get_phy_mode(phy, vif, band, sta); @@ -2165,6 +2167,11 @@ mt7925_mcu_bss_bmc_tlv(struct sk_buff *skb, struct m= t792x_phy *phy, =20 bmc =3D (struct bss_rate_tlv *)tlv; =20 + if (band =3D=3D NL80211_BAND_2GHZ) + bmc->basic_rate =3D cpu_to_le16(HR_DSSS_ERP_BASIC_RATE); + else + bmc->basic_rate =3D cpu_to_le16(OFDM_BASIC_RATE); + bmc->short_preamble =3D (band =3D=3D NL80211_BAND_2GHZ); bmc->bc_fixed_rate =3D idx; bmc->mc_fixed_rate =3D idx; diff --git a/drivers/net/wireless/mediatek/mt76/mt7925/mcu.h b/drivers/net/= wireless/mediatek/mt76/mt7925/mcu.h index 3c41e21303b1f..0218fd2a0eb01 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7925/mcu.h +++ b/drivers/net/wireless/mediatek/mt76/mt7925/mcu.h @@ -334,7 +334,8 @@ struct bss_req_hdr { struct bss_rate_tlv { __le16 tag; __le16 len; - u8 __rsv1[4]; + u8 __rsv1[2]; + __le16 basic_rate; __le16 bc_trans; __le16 mc_trans; u8 short_preamble; --=20 2.43.0 From nobody Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 89AD086AEE; Sun, 24 Mar 2024 22:52: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=1711320723; cv=none; b=qKOl4+Ej7E14/dcJq3YewyMi/gOHxmy+weHV/HzCginCdYlWPlm+t2sw6ZH9E6Yog5drbE+zj7RNywJNwB6KV4Ta/iLLol3JknuT67GE6jPahoY6kpe07K1NMGgqKwXkgtRE8ITtcEiTxo+j17CHEg6NRruVlTlRTVUO9dtGvsY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320723; c=relaxed/simple; bh=hOu54R0CvjRNb00hBid0gj+TQQnq3KD9I1H5Vd8dGLg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=FOi+gWHO9Br2PUv6PlAZjFxjvy+63Pbzyrn+hPgTJA1pjRAcaubLxCvL8nIMEe2f2DsmC8WLMpHdaq/OvV2xSrGwWNLXBsZd6gkheOnWYwVWIKhWzpX4eVZmg9QV4YGu6R9HAUc7zfxgUh87dEPoPpRabq5sL+iXLQ4fJgZxC7s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=fNblo+vR; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="fNblo+vR" Received: by smtp.kernel.org (Postfix) with ESMTPSA id AF8CFC433C7; Sun, 24 Mar 2024 22:52:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320722; bh=hOu54R0CvjRNb00hBid0gj+TQQnq3KD9I1H5Vd8dGLg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=fNblo+vRE7ajKnkS8LD9HzhyP/AZuA3tEiLzrKmsFH9fnCa9Ubiaw7OP2HZgK1+3t yQu+rmCnlsBkeYdsYaioFEUtGiLF3JzdUTTYBZ0T27Ph8HTjTdOzVSCENyr2HrPE7H /XQ7vuch54UchbE3K0YCKal6FBdVS0eo5qrh4xGMXsMM9Ck3TworJ7XfyDbuM9gduK /Nry2gXigg+qXGyFpkOWp9fHBSbtk4jb38NYmoMubhEPEZ4AtlfiiOmn84UocxmopM KIfrpB8O6jTf+cMEQktjWQsAnFYkaD6VPnWW+Vcq4TMDbkHJipEGV9ffzYzR1K0IV4 3EwRebPqDEtHA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Hao Zhang , Ming Yen Hsieh , Felix Fietkau , Sasha Levin Subject: [PATCH 6.7 285/713] wifi: mt76: mt7925: fix mcu query command fail Date: Sun, 24 Mar 2024 18:40:11 -0400 Message-ID: <20240324224720.1345309-286-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Hao Zhang [ Upstream commit 2f475cb63eb304bdbb58c9b07b0547ca6c343012 ] Apply query command type properly to make the chip send the response back. Otherwise, we may see the command timeout in driver side. Fixes: c948b5da6bbe ("wifi: mt76: mt7925: add Mediatek Wi-Fi7 driver for mt= 7925 chips") Signed-off-by: Hao Zhang Signed-off-by: Ming Yen Hsieh Signed-off-by: Felix Fietkau Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- drivers/net/wireless/mediatek/mt76/mt7925/mcu.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/net/wireless/mediatek/mt76/mt7925/mcu.c b/drivers/net/= wireless/mediatek/mt76/mt7925/mcu.c index 322198b20c0d3..8474b6d215dc3 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7925/mcu.c +++ b/drivers/net/wireless/mediatek/mt76/mt7925/mcu.c @@ -2850,12 +2850,16 @@ int mt7925_mcu_fill_message(struct mt76_dev *mdev, = struct sk_buff *skb, if (cmd & __MCU_CMD_FIELD_UNI) { uni_txd =3D (struct mt76_connac2_mcu_uni_txd *)txd; uni_txd->len =3D cpu_to_le16(skb->len - sizeof(uni_txd->txd)); - uni_txd->option =3D MCU_CMD_UNI_EXT_ACK; uni_txd->cid =3D cpu_to_le16(mcu_cmd); uni_txd->s2d_index =3D MCU_S2D_H2N; uni_txd->pkt_type =3D MCU_PKT_ID; uni_txd->seq =3D seq; =20 + if (cmd & __MCU_CMD_FIELD_QUERY) + uni_txd->option =3D MCU_CMD_UNI_QUERY_ACK; + else + uni_txd->option =3D MCU_CMD_UNI_EXT_ACK; + goto exit; } =20 --=20 2.43.0 From nobody Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 70C53126F1D; Sun, 24 Mar 2024 22:52: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=1711320724; cv=none; b=LHvhAYvJsLCkP0LnLOgBWyo+47cUBz6pWnRpfbBxiLVMzWdxhbkD9VCzKBgynakJFTKjRiQAx9U3X+ba1nuB6Rd+QcA9ECyMMuVg2f5A1twy3dVwsIMb7UthzDE2ZFoCXP7GHs0zDEne+seecDGAmE0qHUkl4njToV6Oy7Rrqio= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320724; c=relaxed/simple; bh=Hi662W5k7dEdKM5NinxtbD2nAiYb2fccj97q+xO9/VU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=sQbXD9kjyp7JpD5r0h2lRBU5RWSn5ybuaplT+tl0j+Tm1Kvm6nGFtGskS1K4/sO6BHqahL+6bH6KHtPbGShRa+iDPC7uOvgjjJJNF4rS4Mlnann1CGrIE/o6cB7sFZe0UenHb8N069SGxpPecm7r/o3Sesx1OU92eaepTwL4hsU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Rb7kMcQS; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Rb7kMcQS" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B0BC1C43390; Sun, 24 Mar 2024 22:52:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320723; bh=Hi662W5k7dEdKM5NinxtbD2nAiYb2fccj97q+xO9/VU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Rb7kMcQSQUa8MDYFRz/aykKR1UfYCNLhyoz363PFPL8BOKh9JjS5KiGYlTV+SFutx UGJC7kqCT/LjaJwFXYH4mGV0cTJDOznFcahRKGHuEYObXCL6QiN8gpb25YrtYdokf1 eO5SKAqr0uq09pQm3QMFc2JXw5Wr0v3qzADsbfuWlMguxxemd6yMj5c0qO7uDr99t9 W7Lrxplh0iUBB9a01Yk1fmyDNQNGv2sGV3r3n2GI3LnaA2iarh981bXNceF2VDcxYy js8NQqjBHEElWMCM0WfRZBmDSENRhdLC/yKnhGA2rfjpn5H2+XJqRNKBW3DLE3Uink qW68n+6ed+YTQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Ming Yen Hsieh , Felix Fietkau , Sasha Levin Subject: [PATCH 6.7 286/713] wifi: mt76: mt7925: fix wmm queue mapping Date: Sun, 24 Mar 2024 18:40:12 -0400 Message-ID: <20240324224720.1345309-287-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 9d89edb576e385267f40193bd3776157101a504a ] Firmware uses access class index (ACI) for wmm parameters update, so convert mac80211 queue to ACI in mt7925_conf_tx(). Fixes: c948b5da6bbe ("wifi: mt76: mt7925: add Mediatek Wi-Fi7 driver for mt= 7925 chips") Signed-off-by: Ming Yen Hsieh Signed-off-by: Felix Fietkau Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- .../net/wireless/mediatek/mt76/mt7925/main.c | 21 ++++++++++++++++++- .../net/wireless/mediatek/mt76/mt7925/mcu.c | 2 +- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/mediatek/mt76/mt7925/main.c b/drivers/net= /wireless/mediatek/mt76/mt7925/main.c index aa918b9b0469f..b6aa792e5511f 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7925/main.c +++ b/drivers/net/wireless/mediatek/mt76/mt7925/main.c @@ -1274,6 +1274,25 @@ mt7925_channel_switch_beacon(struct ieee80211_hw *hw, mt792x_mutex_release(dev); } =20 +static int +mt7925_conf_tx(struct ieee80211_hw *hw, struct ieee80211_vif *vif, + unsigned int link_id, u16 queue, + const struct ieee80211_tx_queue_params *params) +{ + struct mt792x_vif *mvif =3D (struct mt792x_vif *)vif->drv_priv; + static const u8 mq_to_aci[] =3D { + [IEEE80211_AC_VO] =3D 3, + [IEEE80211_AC_VI] =3D 2, + [IEEE80211_AC_BE] =3D 0, + [IEEE80211_AC_BK] =3D 1, + }; + + /* firmware uses access class index */ + mvif->queue_params[mq_to_aci[queue]] =3D *params; + + return 0; +} + static int mt7925_start_ap(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_bss_conf *link_conf) @@ -1397,7 +1416,7 @@ const struct ieee80211_ops mt7925_ops =3D { .add_interface =3D mt7925_add_interface, .remove_interface =3D mt792x_remove_interface, .config =3D mt7925_config, - .conf_tx =3D mt792x_conf_tx, + .conf_tx =3D mt7925_conf_tx, .configure_filter =3D mt7925_configure_filter, .bss_info_changed =3D mt7925_bss_info_changed, .start_ap =3D mt7925_start_ap, diff --git a/drivers/net/wireless/mediatek/mt76/mt7925/mcu.c b/drivers/net/= wireless/mediatek/mt76/mt7925/mcu.c index 8474b6d215dc3..b21fe015a701b 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7925/mcu.c +++ b/drivers/net/wireless/mediatek/mt76/mt7925/mcu.c @@ -895,7 +895,7 @@ int mt7925_mcu_set_tx(struct mt792x_dev *dev, struct ie= ee80211_vif *vif) =20 e =3D (struct edca *)tlv; e->set =3D WMM_PARAM_SET; - e->queue =3D ac + mvif->mt76.wmm_idx * MT76_CONNAC_MAX_WMM_SETS; + e->queue =3D ac; e->aifs =3D q->aifs; e->txop =3D cpu_to_le16(q->txop); =20 --=20 2.43.0 From nobody Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 873991DD2A3; Sun, 24 Mar 2024 22:52: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=1711320725; cv=none; b=Ui/7xwZ1CTmCXjZmprK+LpYwnteArOT6s9zpffR4lyp8kDE8oe5IOLL3LNE39LOOp81AW4ApeDl/lGQLpSUw3oYbawYzSO70PtuKJ/G58YelHw8loyzttFct6jLSxzUtMppLTNr2YAzqe5pwzmQh5zzapXs63isD2l/Ltjt7NKE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320725; c=relaxed/simple; bh=Oh+4jfDgnatDgtHnJwMl1kYlxhW04OFzI/P3BLozgdM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=sqZq7bRRB9L1L4mdLC4NPb2uOkE0DIRPjJzddIfqDkMFznbMOFggYaTc9utMq3VH/LOa6o0wEGAZoVJgnIe0p/ouOJzCSGKytkzdcDpsAiEbut5daojKOOKLjEdY+Vbmzud1+1H8JX3OpN5euOgEgzUaf2gAhZQwcH6rI25tF2I= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=VV8RfCOt; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="VV8RfCOt" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 96E82C433F1; Sun, 24 Mar 2024 22:52:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320724; bh=Oh+4jfDgnatDgtHnJwMl1kYlxhW04OFzI/P3BLozgdM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=VV8RfCOtPu8MDH1QVjKWSaW2sX7Pqm98nErGeTlzyugDo23vJhRIBokGF/2Gugq8y u9e7R1mdyTmngQLZi9ckPfHlV/AWgAtqotOUxowl/2nYqQn0+aiIrOvLGevrwksvRQ d80ENak9isIQnJo25FaonDjlJkK378PQYEoeDlOgJ9n2q+JNsXvWc1tIcpdc9UpxNO rjJQMT+yweCljqbtW5Pz9dNMqEjuZL9JXTjV7WGFIMCZczJ8wT42dPgYn2Q0zH4Yi7 AhRNvWbjqdzLOdHYDzVGk3z3J2MLZckpdPTYWPUBJFE3GyywbtiyM40iHhbHFX/Rbi McwxH3cFWczyg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Allen Ye , Rudra Shahi , Shayne Chen , Felix Fietkau , Sasha Levin Subject: [PATCH 6.7 287/713] wifi: mt76: connac: add beacon protection support for mt7996 Date: Sun, 24 Mar 2024 18:40:13 -0400 Message-ID: <20240324224720.1345309-288-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Allen Ye [ Upstream commit eb80e02b2c03141460749d3800126e2cdb674c9e ] Implement beacon protection feature for mt7996 chipsets, and also do some cleanup on the set key routine. Co-developed-by: Rudra Shahi Signed-off-by: Rudra Shahi Signed-off-by: Allen Ye Signed-off-by: Shayne Chen Signed-off-by: Felix Fietkau Stable-dep-of: 47916693ec7c ("wifi: mt76: mt7925: fix WoW failed in encrypt= ed mode") Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- .../wireless/mediatek/mt76/mt76_connac_mcu.h | 24 +++ .../net/wireless/mediatek/mt76/mt7996/main.c | 12 +- .../net/wireless/mediatek/mt76/mt7996/mcu.c | 139 +++++++++++++----- .../net/wireless/mediatek/mt76/mt7996/mcu.h | 17 +++ .../wireless/mediatek/mt76/mt7996/mt7996.h | 3 +- 5 files changed, 153 insertions(+), 42 deletions(-) diff --git a/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.h b/drivers= /net/wireless/mediatek/mt76/mt76_connac_mcu.h index c2241b068635f..cc6cdbc664290 100644 --- a/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.h +++ b/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.h @@ -416,6 +416,14 @@ struct sta_rec_he_6g_capa { u8 rsv[2]; } __packed; =20 +struct sta_rec_pn_info { + __le16 tag; + __le16 len; + u8 pn[6]; + u8 tsc_type; + u8 rsv; +} __packed; + struct sec_key { u8 cipher_id; u8 cipher_len; @@ -768,6 +776,7 @@ struct wtbl_raw { sizeof(struct sta_rec_sec) + \ sizeof(struct sta_rec_ra_fixed) + \ sizeof(struct sta_rec_he_6g_capa) + \ + sizeof(struct sta_rec_pn_info) + \ sizeof(struct tlv) + \ MT76_CONNAC_WTBL_UPDATE_MAX_SIZE) =20 @@ -798,6 +807,7 @@ enum { STA_REC_HE_V2 =3D 0x19, STA_REC_MLD =3D 0x20, STA_REC_EHT =3D 0x22, + STA_REC_PN_INFO =3D 0x26, STA_REC_HDRT =3D 0x28, STA_REC_HDR_TRANS =3D 0x2B, STA_REC_MAX_NUM @@ -1091,6 +1101,13 @@ enum mcu_cipher_type { MCU_CIPHER_GCMP_256, MCU_CIPHER_WAPI, MCU_CIPHER_BIP_CMAC_128, + MCU_CIPHER_BIP_CMAC_256, + MCU_CIPHER_BCN_PROT_CMAC_128, + MCU_CIPHER_BCN_PROT_CMAC_256, + MCU_CIPHER_BCN_PROT_GMAC_128, + MCU_CIPHER_BCN_PROT_GMAC_256, + MCU_CIPHER_BIP_GMAC_128, + MCU_CIPHER_BIP_GMAC_256, }; =20 enum { @@ -1310,6 +1327,7 @@ enum { UNI_BSS_INFO_RATE =3D 11, UNI_BSS_INFO_QBSS =3D 15, UNI_BSS_INFO_SEC =3D 16, + UNI_BSS_INFO_BCN_PROT =3D 17, UNI_BSS_INFO_TXCMD =3D 18, UNI_BSS_INFO_UAPSD =3D 19, UNI_BSS_INFO_PS =3D 21, @@ -1771,6 +1789,12 @@ mt76_connac_mcu_get_cipher(int cipher) return MCU_CIPHER_GCMP; case WLAN_CIPHER_SUITE_GCMP_256: return MCU_CIPHER_GCMP_256; + case WLAN_CIPHER_SUITE_BIP_GMAC_128: + return MCU_CIPHER_BIP_GMAC_128; + case WLAN_CIPHER_SUITE_BIP_GMAC_256: + return MCU_CIPHER_BIP_GMAC_256; + case WLAN_CIPHER_SUITE_BIP_CMAC_256: + return MCU_CIPHER_BIP_CMAC_256; case WLAN_CIPHER_SUITE_SMS4: return MCU_CIPHER_WAPI; default: diff --git a/drivers/net/wireless/mediatek/mt76/mt7996/main.c b/drivers/net= /wireless/mediatek/mt76/mt7996/main.c index 09c7a28a3d511..482a8f7d75d7a 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7996/main.c +++ b/drivers/net/wireless/mediatek/mt76/mt7996/main.c @@ -342,6 +342,8 @@ static int mt7996_set_key(struct ieee80211_hw *hw, enum= set_key_cmd cmd, case WLAN_CIPHER_SUITE_GCMP: case WLAN_CIPHER_SUITE_GCMP_256: case WLAN_CIPHER_SUITE_SMS4: + case WLAN_CIPHER_SUITE_BIP_GMAC_128: + case WLAN_CIPHER_SUITE_BIP_GMAC_256: break; case WLAN_CIPHER_SUITE_WEP40: case WLAN_CIPHER_SUITE_WEP104: @@ -365,9 +367,13 @@ static int mt7996_set_key(struct ieee80211_hw *hw, enu= m set_key_cmd cmd, } =20 mt76_wcid_key_setup(&dev->mt76, wcid, key); - err =3D mt7996_mcu_add_key(&dev->mt76, vif, &msta->bip, - key, MCU_WMWA_UNI_CMD(STA_REC_UPDATE), - &msta->wcid, cmd); + + if (key->keyidx =3D=3D 6 || key->keyidx =3D=3D 7) + err =3D mt7996_mcu_bcn_prot_enable(dev, vif, key); + else + err =3D mt7996_mcu_add_key(&dev->mt76, vif, key, + MCU_WMWA_UNI_CMD(STA_REC_UPDATE), + &msta->wcid, cmd); out: mutex_unlock(&dev->mt76.mutex); =20 diff --git a/drivers/net/wireless/mediatek/mt76/mt7996/mcu.c b/drivers/net/= wireless/mediatek/mt76/mt7996/mcu.c index bf917beb94396..707db74f234ed 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7996/mcu.c +++ b/drivers/net/wireless/mediatek/mt76/mt7996/mcu.c @@ -2058,7 +2058,6 @@ int mt7996_mcu_add_sta(struct mt7996_dev *dev, struct= ieee80211_vif *vif, =20 static int mt7996_mcu_sta_key_tlv(struct mt76_wcid *wcid, - struct mt76_connac_sta_key_conf *sta_key_conf, struct sk_buff *skb, struct ieee80211_key_conf *key, enum set_key_cmd cmd) @@ -2079,43 +2078,22 @@ mt7996_mcu_sta_key_tlv(struct mt76_wcid *wcid, return -EOPNOTSUPP; =20 sec_key =3D &sec->key[0]; + sec_key->wlan_idx =3D cpu_to_le16(wcid->idx); + sec_key->mgmt_prot =3D 0; + sec_key->cipher_id =3D cipher; sec_key->cipher_len =3D sizeof(*sec_key); - - if (cipher =3D=3D MCU_CIPHER_BIP_CMAC_128) { - sec_key->wlan_idx =3D cpu_to_le16(wcid->idx); - sec_key->cipher_id =3D MCU_CIPHER_AES_CCMP; - sec_key->key_id =3D sta_key_conf->keyidx; - sec_key->key_len =3D 16; - memcpy(sec_key->key, sta_key_conf->key, 16); - - sec_key =3D &sec->key[1]; - sec_key->wlan_idx =3D cpu_to_le16(wcid->idx); - sec_key->cipher_id =3D MCU_CIPHER_BIP_CMAC_128; - sec_key->cipher_len =3D sizeof(*sec_key); - sec_key->key_len =3D 16; - memcpy(sec_key->key, key->key, 16); - sec->n_cipher =3D 2; - } else { - sec_key->wlan_idx =3D cpu_to_le16(wcid->idx); - sec_key->cipher_id =3D cipher; - sec_key->key_id =3D key->keyidx; - sec_key->key_len =3D key->keylen; - memcpy(sec_key->key, key->key, key->keylen); - - if (cipher =3D=3D MCU_CIPHER_TKIP) { - /* Rx/Tx MIC keys are swapped */ - memcpy(sec_key->key + 16, key->key + 24, 8); - memcpy(sec_key->key + 24, key->key + 16, 8); - } - - /* store key_conf for BIP batch update */ - if (cipher =3D=3D MCU_CIPHER_AES_CCMP) { - memcpy(sta_key_conf->key, key->key, key->keylen); - sta_key_conf->keyidx =3D key->keyidx; - } - - sec->n_cipher =3D 1; + sec_key->key_id =3D key->keyidx; + sec_key->key_len =3D key->keylen; + sec_key->need_resp =3D 0; + memcpy(sec_key->key, key->key, key->keylen); + + if (cipher =3D=3D MCU_CIPHER_TKIP) { + /* Rx/Tx MIC keys are swapped */ + memcpy(sec_key->key + 16, key->key + 24, 8); + memcpy(sec_key->key + 24, key->key + 16, 8); } + + sec->n_cipher =3D 1; } else { sec->n_cipher =3D 0; } @@ -2124,7 +2102,6 @@ mt7996_mcu_sta_key_tlv(struct mt76_wcid *wcid, } =20 int mt7996_mcu_add_key(struct mt76_dev *dev, struct ieee80211_vif *vif, - struct mt76_connac_sta_key_conf *sta_key_conf, struct ieee80211_key_conf *key, int mcu_cmd, struct mt76_wcid *wcid, enum set_key_cmd cmd) { @@ -2137,13 +2114,99 @@ int mt7996_mcu_add_key(struct mt76_dev *dev, struct= ieee80211_vif *vif, if (IS_ERR(skb)) return PTR_ERR(skb); =20 - ret =3D mt7996_mcu_sta_key_tlv(wcid, sta_key_conf, skb, key, cmd); + ret =3D mt7996_mcu_sta_key_tlv(wcid, skb, key, cmd); if (ret) return ret; =20 return mt76_mcu_skb_send_msg(dev, skb, mcu_cmd, true); } =20 +static int mt7996_mcu_get_pn(struct mt7996_dev *dev, struct ieee80211_vif = *vif, + u8 *pn) +{ +#define TSC_TYPE_BIGTK_PN 2 + struct mt7996_vif *mvif =3D (struct mt7996_vif *)vif->drv_priv; + struct sta_rec_pn_info *pn_info; + struct sk_buff *skb, *rskb; + struct tlv *tlv; + int ret; + + skb =3D mt76_connac_mcu_alloc_sta_req(&dev->mt76, &mvif->mt76, &mvif->sta= .wcid); + if (IS_ERR(skb)) + return PTR_ERR(skb); + + tlv =3D mt76_connac_mcu_add_tlv(skb, STA_REC_PN_INFO, sizeof(*pn_info)); + pn_info =3D (struct sta_rec_pn_info *)tlv; + + pn_info->tsc_type =3D TSC_TYPE_BIGTK_PN; + ret =3D mt76_mcu_skb_send_and_get_msg(&dev->mt76, skb, + MCU_WM_UNI_CMD_QUERY(STA_REC_UPDATE), + true, &rskb); + if (ret) + return ret; + + skb_pull(rskb, 4); + + pn_info =3D (struct sta_rec_pn_info *)rskb->data; + if (le16_to_cpu(pn_info->tag) =3D=3D STA_REC_PN_INFO) + memcpy(pn, pn_info->pn, 6); + + dev_kfree_skb(rskb); + return 0; +} + +int mt7996_mcu_bcn_prot_enable(struct mt7996_dev *dev, struct ieee80211_vi= f *vif, + struct ieee80211_key_conf *key) +{ + struct mt7996_vif *mvif =3D (struct mt7996_vif *)vif->drv_priv; + struct mt7996_mcu_bcn_prot_tlv *bcn_prot; + struct sk_buff *skb; + struct tlv *tlv; + u8 pn[6] =3D {}; + int len =3D sizeof(struct bss_req_hdr) + + sizeof(struct mt7996_mcu_bcn_prot_tlv); + int ret; + + skb =3D __mt7996_mcu_alloc_bss_req(&dev->mt76, &mvif->mt76, len); + if (IS_ERR(skb)) + return PTR_ERR(skb); + + tlv =3D mt76_connac_mcu_add_tlv(skb, UNI_BSS_INFO_BCN_PROT, sizeof(*bcn_p= rot)); + + bcn_prot =3D (struct mt7996_mcu_bcn_prot_tlv *)tlv; + + ret =3D mt7996_mcu_get_pn(dev, vif, pn); + if (ret) { + dev_kfree_skb(skb); + return ret; + } + + switch (key->cipher) { + case WLAN_CIPHER_SUITE_AES_CMAC: + bcn_prot->cipher_id =3D MCU_CIPHER_BCN_PROT_CMAC_128; + break; + case WLAN_CIPHER_SUITE_BIP_GMAC_128: + bcn_prot->cipher_id =3D MCU_CIPHER_BCN_PROT_GMAC_128; + break; + case WLAN_CIPHER_SUITE_BIP_GMAC_256: + bcn_prot->cipher_id =3D MCU_CIPHER_BCN_PROT_GMAC_256; + break; + case WLAN_CIPHER_SUITE_BIP_CMAC_256: + default: + dev_err(dev->mt76.dev, "Not supported Bigtk Cipher\n"); + dev_kfree_skb(skb); + return -EOPNOTSUPP; + } + + pn[0]++; + memcpy(bcn_prot->pn, pn, 6); + bcn_prot->enable =3D BP_SW_MODE; + memcpy(bcn_prot->key, key->key, WLAN_MAX_KEY_LEN); + bcn_prot->key_id =3D key->keyidx; + + return mt76_mcu_skb_send_msg(&dev->mt76, skb, + MCU_WMWA_UNI_CMD(BSS_INFO_UPDATE), true); +} int mt7996_mcu_add_dev_info(struct mt7996_phy *phy, struct ieee80211_vif *vif, bool enable) { diff --git a/drivers/net/wireless/mediatek/mt76/mt7996/mcu.h b/drivers/net/= wireless/mediatek/mt76/mt7996/mcu.h index 9300cd8eeb76b..32ce57c8c4e6b 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7996/mcu.h +++ b/drivers/net/wireless/mediatek/mt76/mt7996/mcu.h @@ -250,6 +250,23 @@ struct bss_rate_tlv { u8 __rsv2[9]; } __packed; =20 +enum { + BP_DISABLE, + BP_SW_MODE, + BP_HW_MODE, +}; + +struct mt7996_mcu_bcn_prot_tlv { + __le16 tag; + __le16 len; + u8 pn[6]; + u8 enable; + u8 cipher_id; + u8 key[WLAN_MAX_KEY_LEN]; + u8 key_id; + u8 __rsv[3]; +} __packed; + struct bss_ra_tlv { __le16 tag; __le16 len; diff --git a/drivers/net/wireless/mediatek/mt76/mt7996/mt7996.h b/drivers/n= et/wireless/mediatek/mt76/mt7996/mt7996.h index e53cf6a3704c4..3434ca50d3181 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7996/mt7996.h +++ b/drivers/net/wireless/mediatek/mt76/mt7996/mt7996.h @@ -485,9 +485,10 @@ int mt7996_init_debugfs(struct mt7996_phy *phy); void mt7996_debugfs_rx_fw_monitor(struct mt7996_dev *dev, const void *data= , int len); bool mt7996_debugfs_rx_log(struct mt7996_dev *dev, const void *data, int l= en); int mt7996_mcu_add_key(struct mt76_dev *dev, struct ieee80211_vif *vif, - struct mt76_connac_sta_key_conf *sta_key_conf, struct ieee80211_key_conf *key, int mcu_cmd, struct mt76_wcid *wcid, enum set_key_cmd cmd); +int mt7996_mcu_bcn_prot_enable(struct mt7996_dev *dev, struct ieee80211_vi= f *vif, + struct ieee80211_key_conf *key); int mt7996_mcu_wtbl_update_hdr_trans(struct mt7996_dev *dev, struct ieee80211_vif *vif, struct ieee80211_sta *sta); --=20 2.43.0 From nobody Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7007B1DD2B0; Sun, 24 Mar 2024 22:52: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=1711320726; cv=none; b=aXzvmWs3i+7V4pS5dYyXK00nbQQjpBdhJMF9evszFl41iTCUNvhmQ9uqEXiYvCK7Ch8xHFhzqoqJcqljSqjBDbRLTp9Zj2Ot2rWzJtJ812t2AWLGpYsEe3GYnrNVduSntMEwSZl/qUocA7SNfxkwn/eQvIpPi1QHgTcoD92/tZ4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320726; c=relaxed/simple; bh=qcGs7kZbIl6Ak85pu1rldD0TPyy7Kre2X8tOIF/KJVI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=DFQjil759FcBOfgzOqbkQRFjNJAUD4vkOGJgrcxkHe+5v3//vw5X+Y4heRUdbMglpeQffaJaRDvilTcka3zo3oGXNwcOx3j2E6MxwTS4PkFkTH56Acc2iNHKra0G/NVWEuxJwdvLW+jvA4xK1DXGNfFgbt0JVpJCburcKaza9ZA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=IOvDa5We; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="IOvDa5We" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B1454C43390; Sun, 24 Mar 2024 22:52:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320725; bh=qcGs7kZbIl6Ak85pu1rldD0TPyy7Kre2X8tOIF/KJVI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=IOvDa5WeeJpis4Ev20PK4qGyghp/pl2ylWHol5QDHzlxIvG00VQS4Ry6AYCUP/ylD zWLpT5Eb31Ju8/yhXWJYqE6Jx+52gRqV8aBBMnKZRRu6mn2AJX1Vmy/1gu+kPc+7/1 pAJI6VBlfM3sp7bebqZPS+XR+i6HAVAociNjZ6n/nLCPP5OfxDPTDvM4pPiRHydMYr YQm5pf3PI4ikMy26oGZGiPRqbL+YFmYBVHHhru0ra4Afv5dMgBlckGyF+xB/QkKxzy C3oQf+1tSeYGPyLWfnb/3gp0brNrn7RfykD5OpW1Pu2WeOB9vD+cwu8Mlm1WNA7fjD Ol+QOQFyYVtTw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Ming Yen Hsieh , Felix Fietkau , Sasha Levin Subject: [PATCH 6.7 288/713] wifi: mt76: mt7925: fix WoW failed in encrypted mode Date: Sun, 24 Mar 2024 18:40:14 -0400 Message-ID: <20240324224720.1345309-289-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 47916693ec7cd1b283ffa7554fc48ff4eec2daa1 ] When in suspend mode, WoW (Wake-on-WLAN) fails to wake the system remotely due to incorrect encryption mode settings. For the new mt7925 chipset, the old STA_REC_KEY_V2 command will send incorrect parameters to the firmware. Therefore, STA_REC_KEY_V3 has been introduced as a replacement for it. Fixes: c948b5da6bbe ("wifi: mt76: mt7925: add Mediatek Wi-Fi7 driver for mt= 7925 chips") Signed-off-by: Ming Yen Hsieh Signed-off-by: Felix Fietkau Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- .../wireless/mediatek/mt76/mt76_connac_mcu.h | 1 + .../net/wireless/mediatek/mt76/mt7925/main.c | 3 +- .../net/wireless/mediatek/mt76/mt7925/mcu.c | 86 ++++++++++--------- .../net/wireless/mediatek/mt76/mt7925/mcu.h | 70 +++++++++++---- 4 files changed, 103 insertions(+), 57 deletions(-) diff --git a/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.h b/drivers= /net/wireless/mediatek/mt76/mt76_connac_mcu.h index cc6cdbc664290..bf023f317031d 100644 --- a/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.h +++ b/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.h @@ -808,6 +808,7 @@ enum { STA_REC_MLD =3D 0x20, STA_REC_EHT =3D 0x22, STA_REC_PN_INFO =3D 0x26, + STA_REC_KEY_V3 =3D 0x27, STA_REC_HDRT =3D 0x28, STA_REC_HDR_TRANS =3D 0x2B, STA_REC_MAX_NUM diff --git a/drivers/net/wireless/mediatek/mt76/mt7925/main.c b/drivers/net= /wireless/mediatek/mt76/mt7925/main.c index b6aa792e5511f..09b53cec750b3 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7925/main.c +++ b/drivers/net/wireless/mediatek/mt76/mt7925/main.c @@ -360,6 +360,7 @@ mt7925_add_interface(struct ieee80211_hw *hw, struct ie= ee80211_vif *vif) mvif->sta.wcid.phy_idx =3D mvif->mt76.band_idx; mvif->sta.wcid.hw_key_idx =3D -1; mvif->sta.wcid.tx_info |=3D MT_WCID_TX_INFO_SET; + mvif->sta.vif =3D mvif; mt76_wcid_init(&mvif->sta.wcid); =20 mt7925_mac_wtbl_update(dev, idx, @@ -527,7 +528,7 @@ static int mt7925_set_key(struct ieee80211_hw *hw, enum= set_key_cmd cmd, if (cmd =3D=3D SET_KEY && !mvif->mt76.cipher) { struct mt792x_phy *phy =3D mt792x_hw_phy(hw); =20 - mvif->mt76.cipher =3D mt76_connac_mcu_get_cipher(key->cipher); + mvif->mt76.cipher =3D mt7925_mcu_get_cipher(key->cipher); mt7925_mcu_add_bss_info(phy, mvif->mt76.ctx, vif, sta, true); } =20 diff --git a/drivers/net/wireless/mediatek/mt76/mt7925/mcu.c b/drivers/net/= wireless/mediatek/mt76/mt7925/mcu.c index b21fe015a701b..bafd6ec72ef24 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7925/mcu.c +++ b/drivers/net/wireless/mediatek/mt76/mt7925/mcu.c @@ -921,61 +921,67 @@ mt7925_mcu_sta_key_tlv(struct mt76_wcid *wcid, struct ieee80211_key_conf *key, enum set_key_cmd cmd) { + struct mt792x_sta *msta =3D container_of(wcid, struct mt792x_sta, wcid); struct sta_rec_sec_uni *sec; + struct mt792x_vif *mvif =3D msta->vif; + struct ieee80211_sta *sta; + struct ieee80211_vif *vif; struct tlv *tlv; =20 - tlv =3D mt76_connac_mcu_add_tlv(skb, STA_REC_KEY_V2, sizeof(*sec)); + sta =3D msta =3D=3D &mvif->sta ? + NULL : + container_of((void *)msta, struct ieee80211_sta, drv_priv); + vif =3D container_of((void *)mvif, struct ieee80211_vif, drv_priv); + + tlv =3D mt76_connac_mcu_add_tlv(skb, STA_REC_KEY_V3, sizeof(*sec)); sec =3D (struct sta_rec_sec_uni *)tlv; - sec->add =3D cmd; + sec->bss_idx =3D mvif->mt76.idx; + sec->is_authenticator =3D 0; + sec->mgmt_prot =3D 0; + sec->wlan_idx =3D (u8)wcid->idx; + + if (sta) { + sec->tx_key =3D 1; + sec->key_type =3D 1; + memcpy(sec->peer_addr, sta->addr, ETH_ALEN); + } else { + memcpy(sec->peer_addr, vif->bss_conf.bssid, ETH_ALEN); + } =20 if (cmd =3D=3D SET_KEY) { - struct sec_key_uni *sec_key; u8 cipher; =20 - cipher =3D mt76_connac_mcu_get_cipher(key->cipher); - if (cipher =3D=3D MCU_CIPHER_NONE) + sec->add =3D 1; + cipher =3D mt7925_mcu_get_cipher(key->cipher); + if (cipher =3D=3D CONNAC3_CIPHER_NONE) return -EOPNOTSUPP; =20 - sec_key =3D &sec->key[0]; - sec_key->cipher_len =3D sizeof(*sec_key); - - if (cipher =3D=3D MCU_CIPHER_BIP_CMAC_128) { - sec_key->wlan_idx =3D cpu_to_le16(wcid->idx); - sec_key->cipher_id =3D MCU_CIPHER_AES_CCMP; - sec_key->key_id =3D sta_key_conf->keyidx; - sec_key->key_len =3D 16; - memcpy(sec_key->key, sta_key_conf->key, 16); - - sec_key =3D &sec->key[1]; - sec_key->wlan_idx =3D cpu_to_le16(wcid->idx); - sec_key->cipher_id =3D MCU_CIPHER_BIP_CMAC_128; - sec_key->cipher_len =3D sizeof(*sec_key); - sec_key->key_len =3D 16; - memcpy(sec_key->key, key->key, 16); - sec->n_cipher =3D 2; + if (cipher =3D=3D CONNAC3_CIPHER_BIP_CMAC_128) { + sec->cipher_id =3D CONNAC3_CIPHER_BIP_CMAC_128; + sec->key_id =3D sta_key_conf->keyidx; + sec->key_len =3D 32; + memcpy(sec->key, sta_key_conf->key, 16); + memcpy(sec->key + 16, key->key, 16); } else { - sec_key->wlan_idx =3D cpu_to_le16(wcid->idx); - sec_key->cipher_id =3D cipher; - sec_key->key_id =3D key->keyidx; - sec_key->key_len =3D key->keylen; - memcpy(sec_key->key, key->key, key->keylen); + sec->cipher_id =3D cipher; + sec->key_id =3D key->keyidx; + sec->key_len =3D key->keylen; + memcpy(sec->key, key->key, key->keylen); =20 - if (cipher =3D=3D MCU_CIPHER_TKIP) { + if (cipher =3D=3D CONNAC3_CIPHER_TKIP) { /* Rx/Tx MIC keys are swapped */ - memcpy(sec_key->key + 16, key->key + 24, 8); - memcpy(sec_key->key + 24, key->key + 16, 8); + memcpy(sec->key + 16, key->key + 24, 8); + memcpy(sec->key + 24, key->key + 16, 8); } =20 /* store key_conf for BIP batch update */ - if (cipher =3D=3D MCU_CIPHER_AES_CCMP) { + if (cipher =3D=3D CONNAC3_CIPHER_AES_CCMP) { memcpy(sta_key_conf->key, key->key, key->keylen); sta_key_conf->keyidx =3D key->keyidx; } - - sec->n_cipher =3D 1; } } else { - sec->n_cipher =3D 0; + sec->add =3D 0; } =20 return 0; @@ -2122,21 +2128,21 @@ mt7925_mcu_bss_sec_tlv(struct sk_buff *skb, struct = ieee80211_vif *vif) sec =3D (struct bss_sec_tlv *)tlv; =20 switch (mvif->cipher) { - case MCU_CIPHER_GCMP_256: - case MCU_CIPHER_GCMP: + case CONNAC3_CIPHER_GCMP_256: + case CONNAC3_CIPHER_GCMP: sec->mode =3D MODE_WPA3_SAE; sec->status =3D 8; break; - case MCU_CIPHER_AES_CCMP: + case CONNAC3_CIPHER_AES_CCMP: sec->mode =3D MODE_WPA2_PSK; sec->status =3D 6; break; - case MCU_CIPHER_TKIP: + case CONNAC3_CIPHER_TKIP: sec->mode =3D MODE_WPA2_PSK; sec->status =3D 4; break; - case MCU_CIPHER_WEP104: - case MCU_CIPHER_WEP40: + case CONNAC3_CIPHER_WEP104: + case CONNAC3_CIPHER_WEP40: sec->mode =3D MODE_SHARED; sec->status =3D 0; break; diff --git a/drivers/net/wireless/mediatek/mt76/mt7925/mcu.h b/drivers/net/= wireless/mediatek/mt76/mt7925/mcu.h index 0218fd2a0eb01..9fce054e50657 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7925/mcu.h +++ b/drivers/net/wireless/mediatek/mt76/mt7925/mcu.h @@ -159,6 +159,20 @@ enum { UNI_EVENT_SCAN_DONE_NLO =3D 3, }; =20 +enum connac3_mcu_cipher_type { + CONNAC3_CIPHER_NONE =3D 0, + CONNAC3_CIPHER_WEP40 =3D 1, + CONNAC3_CIPHER_TKIP =3D 2, + CONNAC3_CIPHER_AES_CCMP =3D 4, + CONNAC3_CIPHER_WEP104 =3D 5, + CONNAC3_CIPHER_BIP_CMAC_128 =3D 6, + CONNAC3_CIPHER_WEP128 =3D 7, + CONNAC3_CIPHER_WAPI =3D 8, + CONNAC3_CIPHER_CCMP_256 =3D 10, + CONNAC3_CIPHER_GCMP =3D 11, + CONNAC3_CIPHER_GCMP_256 =3D 12, +}; + struct mt7925_mcu_scan_chinfo_event { u8 nr_chan; u8 alpha2[3]; @@ -383,25 +397,22 @@ struct sta_rec_eht { u8 _rsv2[3]; } __packed; =20 -struct sec_key_uni { - __le16 wlan_idx; - u8 mgmt_prot; - u8 cipher_id; - u8 cipher_len; - u8 key_id; - u8 key_len; - u8 need_resp; - u8 key[32]; -} __packed; - struct sta_rec_sec_uni { __le16 tag; __le16 len; u8 add; - u8 n_cipher; - u8 rsv[2]; - - struct sec_key_uni key[2]; + u8 tx_key; + u8 key_type; + u8 is_authenticator; + u8 peer_addr[6]; + u8 bss_idx; + u8 cipher_id; + u8 key_id; + u8 key_len; + u8 wlan_idx; + u8 mgmt_prot; + u8 key[32]; + u8 key_rsc[16]; } __packed; =20 struct sta_rec_hdr_trans { @@ -441,7 +452,7 @@ struct sta_rec_mld { sizeof(struct sta_rec_bfee) + \ sizeof(struct sta_rec_phy) + \ sizeof(struct sta_rec_ra) + \ - sizeof(struct sta_rec_sec) + \ + sizeof(struct sta_rec_sec_uni) + \ sizeof(struct sta_rec_ra_fixed) + \ sizeof(struct sta_rec_he_6g_capa) + \ sizeof(struct sta_rec_eht) + \ @@ -510,6 +521,33 @@ struct mt7925_wow_pattern_tlv { u8 rsv[4]; } __packed; =20 +static inline enum connac3_mcu_cipher_type +mt7925_mcu_get_cipher(int cipher) +{ + switch (cipher) { + case WLAN_CIPHER_SUITE_WEP40: + return CONNAC3_CIPHER_WEP40; + case WLAN_CIPHER_SUITE_WEP104: + return CONNAC3_CIPHER_WEP104; + case WLAN_CIPHER_SUITE_TKIP: + return CONNAC3_CIPHER_TKIP; + case WLAN_CIPHER_SUITE_AES_CMAC: + return CONNAC3_CIPHER_BIP_CMAC_128; + case WLAN_CIPHER_SUITE_CCMP: + return CONNAC3_CIPHER_AES_CCMP; + case WLAN_CIPHER_SUITE_CCMP_256: + return CONNAC3_CIPHER_CCMP_256; + case WLAN_CIPHER_SUITE_GCMP: + return CONNAC3_CIPHER_GCMP; + case WLAN_CIPHER_SUITE_GCMP_256: + return CONNAC3_CIPHER_GCMP_256; + case WLAN_CIPHER_SUITE_SMS4: + return CONNAC3_CIPHER_WAPI; + default: + return CONNAC3_CIPHER_NONE; + } +} + int mt7925_mcu_set_dbdc(struct mt76_phy *phy); int mt7925_mcu_hw_scan(struct mt76_phy *phy, struct ieee80211_vif *vif, struct ieee80211_scan_request *scan_req); --=20 2.43.0 From nobody Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 58B521DD2AB; Sun, 24 Mar 2024 22:52: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=1711320726; cv=none; b=aon/NMBMKxHNlkb61kHS8TPcyjXO3LBGzchIQQMA+W20d9T7coxwM7dD1DiYSw+FMWjuDJHJl0hQHWdqfdhQ6gnEYGP6542gVKvz5USib5QoblomYRveAMYym8NtUPtg0jhtxsWUfzNgOJkg1RYSt01pa3v60ewGohp51Hyx9JY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320726; c=relaxed/simple; bh=ZqHYJmWbjAaWX7RMHrG6rxMCX1+c2Hs/9yWUkPKYsSc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=lVgrdxzWPSIbfwxDdTy8pAV+pDgp9wGVD6ov9JHAEILVYizmfdMJRCcHEPpywbFhPfjZDiLMwS8Bxgi8bEwsufP7wMd33eSd0PsXQtzBvjN8pCeTZr5bEHt+h7KXbPKPW/xm0p5TiR1Y1q0S+1HcpaBZRQEhglCAOlBQPpKgc+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=s2oUMfzl; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="s2oUMfzl" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 96FE3C43399; Sun, 24 Mar 2024 22:52:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320726; bh=ZqHYJmWbjAaWX7RMHrG6rxMCX1+c2Hs/9yWUkPKYsSc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=s2oUMfzlsaUDxApqjwD2waZRo+nGDcSX68VH9WJz7gq53bQTie5J83uBB5DysXKuU F+Ik6uKURqUWWNGQQcJcxkzk24yLez67AmzAUYTQOtqe8WyhRr3s0YvcoRYDE3AcWv +JuFbidjOyQNqGc2yX5TNweFXsTc2PghtAhSqRanY1dpqXiKfc0pIOZ5AA5VdVvlBv 4UqgytJai5e6KmluKlI2NUJRq1ZK69gwRdw0y2CyADqw+6vbEa0EPiqKfz5Wb8QL3B Vjl79PbnJ6+gClbZWobK/wyL/5UAyYhSgZKrZmnc1Zbz9wwBzjLTzVn9GGmAY7x/2Q aknmVCwTWxDRA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Ming Yen Hsieh , Felix Fietkau , Sasha Levin Subject: [PATCH 6.7 289/713] wifi: mt76: mt7925: fix the wrong header translation config Date: Sun, 24 Mar 2024 18:40:15 -0400 Message-ID: <20240324224720.1345309-290-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 d8cf7e1344727b80b4ec3dc17ca520238d55a88d ] The header translation config should set to broadcast and unicast cases correctly, not only unicast case. And also remove the cmds of wtbl (wlan table) series, because these MCU commands have already been replaced by other commands in mt7925. Fixes: c948b5da6bbe ("wifi: mt76: mt7925: add Mediatek Wi-Fi7 driver for mt= 7925 chips") Signed-off-by: Ming Yen Hsieh Signed-off-by: Felix Fietkau Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- .../net/wireless/mediatek/mt76/mt7925/mcu.c | 32 +++++-------------- 1 file changed, 8 insertions(+), 24 deletions(-) diff --git a/drivers/net/wireless/mediatek/mt76/mt7925/mcu.c b/drivers/net/= wireless/mediatek/mt76/mt7925/mcu.c index bafd6ec72ef24..28b871e552f0c 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7925/mcu.c +++ b/drivers/net/wireless/mediatek/mt76/mt7925/mcu.c @@ -814,6 +814,7 @@ mt7925_mcu_sta_hdr_trans_tlv(struct sk_buff *skb, struct ieee80211_vif *vif, struct ieee80211_sta *sta) { + struct mt792x_vif *mvif =3D (struct mt792x_vif *)vif->drv_priv; struct sta_rec_hdr_trans *hdr_trans; struct mt76_wcid *wcid; struct tlv *tlv; @@ -827,7 +828,11 @@ mt7925_mcu_sta_hdr_trans_tlv(struct sk_buff *skb, else hdr_trans->from_ds =3D true; =20 - wcid =3D (struct mt76_wcid *)sta->drv_priv; + if (sta) + wcid =3D (struct mt76_wcid *)sta->drv_priv; + else + wcid =3D &mvif->sta.wcid; + if (!wcid) return; =20 @@ -1577,8 +1582,6 @@ mt7925_mcu_sta_cmd(struct mt76_phy *phy, { struct mt76_vif *mvif =3D (struct mt76_vif *)info->vif->drv_priv; struct mt76_dev *dev =3D phy->dev; - struct wtbl_req_hdr *wtbl_hdr; - struct tlv *sta_wtbl; struct sk_buff *skb; =20 skb =3D __mt76_connac_mcu_alloc_sta_req(dev, mvif, info->wcid, @@ -1602,30 +1605,11 @@ mt7925_mcu_sta_cmd(struct mt76_phy *phy, mt7925_mcu_sta_state_v2_tlv(phy, skb, info->sta, info->vif, info->rcpi, info->state); - mt7925_mcu_sta_hdr_trans_tlv(skb, info->vif, info->sta); mt7925_mcu_sta_mld_tlv(skb, info->vif, info->sta); } =20 - sta_wtbl =3D mt76_connac_mcu_add_tlv(skb, STA_REC_WTBL, - sizeof(struct tlv)); - - wtbl_hdr =3D mt76_connac_mcu_alloc_wtbl_req(dev, info->wcid, - WTBL_RESET_AND_SET, - sta_wtbl, &skb); - if (IS_ERR(wtbl_hdr)) - return PTR_ERR(wtbl_hdr); - - if (info->enable) { - mt76_connac_mcu_wtbl_generic_tlv(dev, skb, info->vif, - info->sta, sta_wtbl, - wtbl_hdr); - mt76_connac_mcu_wtbl_hdr_trans_tlv(skb, info->vif, info->wcid, - sta_wtbl, wtbl_hdr); - if (info->sta) - mt76_connac_mcu_wtbl_ht_tlv(dev, skb, info->sta, - sta_wtbl, wtbl_hdr, - true, true); - } + if (info->enable) + mt7925_mcu_sta_hdr_trans_tlv(skb, info->vif, info->sta); =20 return mt76_mcu_skb_send_msg(dev, skb, info->cmd, true); } --=20 2.43.0 From nobody Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B174B1DD2C9; Sun, 24 Mar 2024 22:52: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=1711320728; cv=none; b=MpJ2GuoD7iFCPMlsTZyqKgRxYshXiLr//vwSsACtAuCC1PjSCnsLt+ISxQMpbY+DPxv3gYnuaL2IiC6nHpp9bN4Pnke6jOUXqKxzvDONf02tmaHX1O7Ly6tgI330l5dtqRr70o3YwNSJNTPogOHwWRMjP751dxrsLFuiBQxCO0g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320728; c=relaxed/simple; bh=CP1TSSKoiKiCEQKLsdxI576zDse1KHJj9eW0u99lzW4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Q3pOhi3czuXZz7WgKsSDQ8yyv0BpYUG6jljWREsx6V2RU5P0jh20CoYnDlNP8b/4onWyvgflV5Y0kb6NXx0eC0iCsA2xUwiSFxqBOeTHET5kBp3ZJZCDpclEigxxfY5zdHfYDYQsQazxXS26THGBYak/9nHyx3d/7wYyfb5zM3U= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=AxUnvCpx; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="AxUnvCpx" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7FCC2C433F1; Sun, 24 Mar 2024 22:52:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320727; bh=CP1TSSKoiKiCEQKLsdxI576zDse1KHJj9eW0u99lzW4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=AxUnvCpxXv7OvKgEXVRCmHRSAf9dMjFYOj1/8QYArmP8QR/04EP7kfswH4II/IpxU +O/CofX3JUF5mQPTf21l2N9im9fmHP9Yh/xFBeVIYwaaza7IUgmRdvouBgz1/LqqQH 8UU2uqDTIuNzLV9Ke4x3356+ZUJ3YCLIRC2eVUbFD/+zBZ5gOG9+R6RHy5V9Tk1M5x so5xKJ+gGyY8qh2uLK5ajoVZziRnrHjxBV6r6eLvQxUS8V0y48qf1+wJJMBAnTI/3R 28f7T+YY0PoFTFJdiXgFBUhKwHSEwAOj1GRfdfTNXSRAyAMC1wJTPTOWliSokhe/eO +DBOi+L2W3bIA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Quan Zhou , Ming Yen Hsieh , Felix Fietkau , Sasha Levin Subject: [PATCH 6.7 290/713] wifi: mt76: mt7925: add flow to avoid chip bt function fail Date: Sun, 24 Mar 2024 18:40:16 -0400 Message-ID: <20240324224720.1345309-291-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Quan Zhou [ Upstream commit 9300ae0cd9e8f2407b20e0e67ee3ea03dc8b06af ] A sub-process of Wifi L0.5 reset will make chip common partition enter low power, and have chance lead to Bluetooth host-to-chip command timeout, modify the software flow according to the chip's design to solve the problem. Fixes: c948b5da6bbe ("wifi: mt76: mt7925: add Mediatek Wi-Fi7 driver for mt= 7925 chips") Signed-off-by: Quan Zhou Signed-off-by: Ming Yen Hsieh Signed-off-by: Felix Fietkau Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- drivers/net/wireless/mediatek/mt76/mt7925/pci.c | 2 ++ drivers/net/wireless/mediatek/mt76/mt792x_regs.h | 3 +++ 2 files changed, 5 insertions(+) diff --git a/drivers/net/wireless/mediatek/mt76/mt7925/pci.c b/drivers/net/= wireless/mediatek/mt76/mt7925/pci.c index 08ef75e24e1cf..c16d683e4891e 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7925/pci.c +++ b/drivers/net/wireless/mediatek/mt76/mt7925/pci.c @@ -386,6 +386,8 @@ static int mt7925_pci_probe(struct pci_dev *pdev, =20 dev_info(mdev->dev, "ASIC revision: %04x\n", mdev->rev); =20 + mt76_rmw_field(dev, MT_HW_EMI_CTL, MT_HW_EMI_CTL_SLPPROT_EN, 1); + ret =3D mt792x_wfsys_reset(dev); if (ret) goto err_free_dev; diff --git a/drivers/net/wireless/mediatek/mt76/mt792x_regs.h b/drivers/net= /wireless/mediatek/mt76/mt792x_regs.h index a99af23e4b564..d7f9b24cd665f 100644 --- a/drivers/net/wireless/mediatek/mt76/mt792x_regs.h +++ b/drivers/net/wireless/mediatek/mt76/mt792x_regs.h @@ -389,6 +389,9 @@ #define MT_HW_CHIPID 0x70010200 #define MT_HW_REV 0x70010204 =20 +#define MT_HW_EMI_CTL 0x18011100 +#define MT_HW_EMI_CTL_SLPPROT_EN BIT(1) + #define MT_PCIE_MAC_BASE 0x10000 #define MT_PCIE_MAC(ofs) (MT_PCIE_MAC_BASE + (ofs)) #define MT_PCIE_MAC_INT_ENABLE MT_PCIE_MAC(0x188) --=20 2.43.0 From nobody Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5C8CC1DD2AC; Sun, 24 Mar 2024 22:52: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=1711320728; cv=none; b=aenp9Zw85k8znafOppwfPHOT7emKaqrRqloxAXwmFvS25AMWPzBID3sEVkDPqqNVL5joWk4dVVIht9gcnziL747PPy+bZz0UMFa6v+IFSLIQQ0luKC+h3wsX5RoT4QiMkdDnWtM5RRIGjiKSNl5om/A7yFUyKjJBktcFABWuuks= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320728; c=relaxed/simple; bh=cWdscHCae5ZFuXtoirel5HNtlh1wLRIoVOpG2BJ26fM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=IMUPXYwg76BiDQOoaGybJWyGgZOq9g28QF4LVQOjiC2zVAerxrR/xu3cqt7xt3+kMZeqPs5KmE0jX1MpUhIkwbjPxAha23eIAimKOZld0CnJd+ncDxiKMjSooGXzDwWCsb74T1cQjVFRlKeiGUjCekBho1Ii/ScWrRFwMNS1d1U= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=cSoyfKQX; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="cSoyfKQX" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 810F8C43394; Sun, 24 Mar 2024 22:52:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320728; bh=cWdscHCae5ZFuXtoirel5HNtlh1wLRIoVOpG2BJ26fM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cSoyfKQXbct7ce6YMnO1rxOZABSo2/+v4jjsaHiqX3TaUzROm+FY1MxcqkhQDwG0U nWrwmWfa6k3TRkcIbI//wTKp5ekUJmMBtKfKsEuwbzKEHCIWSPSOJs9hqmp66o1yOT lz4/45MNPgeiNNH35IJ1BnfrgDrpmodVeOZEwgYtuWjTYzz5De++xfLmMKGdC0P3lZ 3koN6Pqp8JcTSboPSDDTLiEPGri8vFEBxFCQUc1Eka+54RCYUD7zynlWKLZrTGMYP+ RdAGbANQaYGVMslpR9eqPqxaYUA/cYlyzSTfz/ok5Eg/fx243v9b0fE3H4yTurG5Vk Sc7J9Ab/woI8A== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Ming Yen Hsieh , Deren Wu , Felix Fietkau , Sasha Levin Subject: [PATCH 6.7 291/713] wifi: mt76: mt7925: add support to set ifs time by mcu command Date: Sun, 24 Mar 2024 18:40:17 -0400 Message-ID: <20240324224720.1345309-292-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 8536ef0aeae1177c4a59b043d4b1c41ddaa9df2a ] There's a race between driver and fw on some tx/rx control registers when setting ifs, which will cause accidental hw queue pause problems. Avoid this by setting ifs time with bss_info mcu command. Fixes: c948b5da6bbe ("wifi: mt76: mt7925: add Mediatek Wi-Fi7 driver for mt= 7925 chips") Co-developed-by: Deren Wu Signed-off-by: Deren Wu Signed-off-by: Ming Yen Hsieh Signed-off-by: Felix Fietkau Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- .../net/wireless/mediatek/mt76/mt7925/main.c | 2 +- .../net/wireless/mediatek/mt76/mt7925/mcu.c | 33 +++++++++++++++++++ .../net/wireless/mediatek/mt76/mt7925/mcu.h | 19 +++++++++++ 3 files changed, 53 insertions(+), 1 deletion(-) diff --git a/drivers/net/wireless/mediatek/mt76/mt7925/main.c b/drivers/net= /wireless/mediatek/mt76/mt7925/main.c index 09b53cec750b3..6f0b18ae313de 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7925/main.c +++ b/drivers/net/wireless/mediatek/mt76/mt7925/main.c @@ -712,7 +712,7 @@ static void mt7925_bss_info_changed(struct ieee80211_hw= *hw, =20 if (slottime !=3D phy->slottime) { phy->slottime =3D slottime; - mt792x_mac_set_timeing(phy); + mt7925_mcu_set_timing(phy, vif); } } =20 diff --git a/drivers/net/wireless/mediatek/mt76/mt7925/mcu.c b/drivers/net/= wireless/mediatek/mt76/mt7925/mcu.c index 28b871e552f0c..8e72012472874 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7925/mcu.c +++ b/drivers/net/wireless/mediatek/mt76/mt7925/mcu.c @@ -2244,6 +2244,38 @@ mt7925_mcu_bss_color_tlv(struct sk_buff *skb, struct= ieee80211_vif *vif, vif->bss_conf.he_bss_color.color : 0; } =20 +static void +mt7925_mcu_bss_ifs_tlv(struct sk_buff *skb, struct ieee80211_vif *vif) +{ + struct mt792x_vif *mvif =3D (struct mt792x_vif *)vif->drv_priv; + struct mt792x_phy *phy =3D mvif->phy; + struct bss_ifs_time_tlv *ifs_time; + struct tlv *tlv; + + tlv =3D mt76_connac_mcu_add_tlv(skb, UNI_BSS_INFO_IFS_TIME, sizeof(*ifs_t= ime)); + ifs_time =3D (struct bss_ifs_time_tlv *)tlv; + ifs_time->slot_valid =3D true; + ifs_time->slot_time =3D cpu_to_le16(phy->slottime); +} + +int mt7925_mcu_set_timing(struct mt792x_phy *phy, + struct ieee80211_vif *vif) +{ + struct mt792x_vif *mvif =3D (struct mt792x_vif *)vif->drv_priv; + struct mt792x_dev *dev =3D phy->dev; + struct sk_buff *skb; + + skb =3D __mt7925_mcu_alloc_bss_req(&dev->mt76, &mvif->mt76, + MT7925_BSS_UPDATE_MAX_SIZE); + if (IS_ERR(skb)) + return PTR_ERR(skb); + + mt7925_mcu_bss_ifs_tlv(skb, vif); + + return mt76_mcu_skb_send_msg(&dev->mt76, skb, + MCU_UNI_CMD(BSS_INFO_UPDATE), true); +} + int mt7925_mcu_add_bss_info(struct mt792x_phy *phy, struct ieee80211_chanctx_conf *ctx, struct ieee80211_vif *vif, @@ -2268,6 +2300,7 @@ int mt7925_mcu_add_bss_info(struct mt792x_phy *phy, mt7925_mcu_bss_bmc_tlv(skb, phy, ctx, vif, sta); mt7925_mcu_bss_qos_tlv(skb, vif); mt7925_mcu_bss_mld_tlv(skb, vif, sta); + mt7925_mcu_bss_ifs_tlv(skb, vif); =20 if (vif->bss_conf.he_support) { mt7925_mcu_bss_he_tlv(skb, vif, phy); diff --git a/drivers/net/wireless/mediatek/mt76/mt7925/mcu.h b/drivers/net/= wireless/mediatek/mt76/mt7925/mcu.h index 9fce054e50657..2cf39276118eb 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7925/mcu.h +++ b/drivers/net/wireless/mediatek/mt76/mt7925/mcu.h @@ -440,6 +440,22 @@ struct sta_rec_mld { } __packed link[2]; } __packed; =20 +struct bss_ifs_time_tlv { + __le16 tag; + __le16 len; + u8 slot_valid; + u8 sifs_valid; + u8 rifs_valid; + u8 eifs_valid; + __le16 slot_time; + __le16 sifs_time; + __le16 rifs_time; + __le16 eifs_time; + u8 eifs_cck_valid; + u8 rsv; + __le16 eifs_cck_time; +} __packed; + #define MT7925_STA_UPDATE_MAX_SIZE (sizeof(struct sta_req_hdr) + \ sizeof(struct sta_rec_basic) + \ sizeof(struct sta_rec_bf) + \ @@ -467,6 +483,7 @@ struct sta_rec_mld { sizeof(struct bss_mld_tlv) + \ sizeof(struct bss_info_uni_he) + \ sizeof(struct bss_info_uni_bss_color) + \ + sizeof(struct bss_ifs_time_tlv) + \ sizeof(struct tlv)) =20 #define MT_CONNAC3_SKU_POWER_LIMIT 449 @@ -564,6 +581,8 @@ int mt7925_mcu_add_bss_info(struct mt792x_phy *phy, struct ieee80211_vif *vif, struct ieee80211_sta *sta, int enable); +int mt7925_mcu_set_timing(struct mt792x_phy *phy, + struct ieee80211_vif *vif); int mt7925_mcu_set_deep_sleep(struct mt792x_dev *dev, bool enable); int mt7925_mcu_set_channel_domain(struct mt76_phy *phy); int mt7925_mcu_set_radio_en(struct mt792x_phy *phy, bool enable); --=20 2.43.0 From nobody Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 57EC31DD2DF; Sun, 24 Mar 2024 22:52: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=1711320730; cv=none; b=s5/Ng4bq2a9RocwSQLszS4hpgjPn0RXb9kL4U6bQR+1ADsGSczjWLyTYZmZaWAB56QNsYQiZ7UILE/QW6gTy1KdKepbVO8kJPyULSJEfGSCB3zgbJyUNHFyqR3ggT82y/bFg21rv2wRd5vEcEsryTWGIRiFje2Hf6FzxkZs0be8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320730; c=relaxed/simple; bh=v/fESFmUSW40UM2hj5S3JboOxncvfxWDP/34gyFSfCA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=uevon26qrrRoNrpPIUYjrVPKVZifsdwslCg2mczldQaxqWo/y9Vx0jCEYeGWWwsbX0blPo60lfQfToTqhqbghKc115KSAwSOyPC9fp4u1/EfNl37HWRiGxWaCpKFH7reXvAxLZvk11uruO4fNv9c0saeHJZWphkUmLLKZH8aWFw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=NSIvHMr7; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="NSIvHMr7" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7E2FFC433C7; Sun, 24 Mar 2024 22:52:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320729; bh=v/fESFmUSW40UM2hj5S3JboOxncvfxWDP/34gyFSfCA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=NSIvHMr7wkxmtcwG8MCgDQbypkqe9ockD+NHzoHmfjZYyPupVT/Mlu1MKBjmkP3xM btodU8YhsqQwqYn0O1fsskyVS+o1BLiInhdr/xzHNINiAygLXf9ExqR4ElZ0Fxalgi p+jp3I8KKUd1pmPumzNdXNbYyMxHFYJJzUmBXwszBONFIaciQxy/JJDaUIuQrq11dy B3P7nhya0H+egFPMKZpXB1qYSvlMYbOD8Lcldej7T47GwfsFjGAxrgAevEbVtmNNHW 4tNt7A258yAsw67JfV6MgYmT9VcM+NigF4eCt/eFvfgV8/XPKVP0mqzWkcnRvseIn6 qViBoeWPGQBHw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Deren Wu , Ming Yen Hsieh , Felix Fietkau , Sasha Levin Subject: [PATCH 6.7 292/713] wifi: mt76: mt7925: update PCIe DMA settings Date: Sun, 24 Mar 2024 18:40:18 -0400 Message-ID: <20240324224720.1345309-293-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 0844947ccf64ea45edf6619ae2ba6dd9098b3308 ] Fix the wrong WFDMA settings to improve TX performance. Fixes: c948b5da6bbe ("wifi: mt76: mt7925: add Mediatek Wi-Fi7 driver for mt= 7925 chips") Signed-off-by: Deren Wu Signed-off-by: Ming Yen Hsieh Signed-off-by: Felix Fietkau Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- drivers/net/wireless/mediatek/mt76/mt792x_dma.c | 13 ++++++++++--- drivers/net/wireless/mediatek/mt76/mt792x_regs.h | 5 +++++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/drivers/net/wireless/mediatek/mt76/mt792x_dma.c b/drivers/net/= wireless/mediatek/mt76/mt792x_dma.c index 488326ce5ed4d..8fa36b59e738d 100644 --- a/drivers/net/wireless/mediatek/mt76/mt792x_dma.c +++ b/drivers/net/wireless/mediatek/mt76/mt792x_dma.c @@ -123,14 +123,13 @@ static void mt792x_dma_prefetch(struct mt792x_dev *de= v) =20 int mt792x_dma_enable(struct mt792x_dev *dev) { - if (is_mt7925(&dev->mt76)) - mt76_rmw(dev, MT_UWFDMA0_GLO_CFG_EXT1, BIT(28), BIT(28)); - /* configure perfetch settings */ mt792x_dma_prefetch(dev); =20 /* reset dma idx */ mt76_wr(dev, MT_WFDMA0_RST_DTX_PTR, ~0); + if (is_mt7925(&dev->mt76)) + mt76_wr(dev, MT_WFDMA0_RST_DRX_PTR, ~0); =20 /* configure delay interrupt */ mt76_wr(dev, MT_WFDMA0_PRI_DLY_INT_CFG0, 0); @@ -140,12 +139,20 @@ int mt792x_dma_enable(struct mt792x_dev *dev) MT_WFDMA0_GLO_CFG_FIFO_LITTLE_ENDIAN | MT_WFDMA0_GLO_CFG_CLK_GAT_DIS | MT_WFDMA0_GLO_CFG_OMIT_TX_INFO | + FIELD_PREP(MT_WFDMA0_GLO_CFG_DMA_SIZE, 3) | + MT_WFDMA0_GLO_CFG_FIFO_DIS_CHECK | + MT_WFDMA0_GLO_CFG_RX_WB_DDONE | MT_WFDMA0_GLO_CFG_CSR_DISP_BASE_PTR_CHAIN_EN | MT_WFDMA0_GLO_CFG_OMIT_RX_INFO_PFET2); =20 mt76_set(dev, MT_WFDMA0_GLO_CFG, MT_WFDMA0_GLO_CFG_TX_DMA_EN | MT_WFDMA0_GLO_CFG_RX_DMA_EN); =20 + if (is_mt7925(&dev->mt76)) { + mt76_rmw(dev, MT_UWFDMA0_GLO_CFG_EXT1, BIT(28), BIT(28)); + mt76_set(dev, MT_WFDMA0_INT_RX_PRI, 0x0F00); + mt76_set(dev, MT_WFDMA0_INT_TX_PRI, 0x7F00); + } mt76_set(dev, MT_WFDMA_DUMMY_CR, MT_WFDMA_NEED_REINIT); =20 /* enable interrupts for TX/RX rings */ diff --git a/drivers/net/wireless/mediatek/mt76/mt792x_regs.h b/drivers/net= /wireless/mediatek/mt76/mt792x_regs.h index d7f9b24cd665f..458cfd0260b13 100644 --- a/drivers/net/wireless/mediatek/mt76/mt792x_regs.h +++ b/drivers/net/wireless/mediatek/mt76/mt792x_regs.h @@ -292,9 +292,12 @@ #define MT_WFDMA0_GLO_CFG_TX_DMA_BUSY BIT(1) #define MT_WFDMA0_GLO_CFG_RX_DMA_EN BIT(2) #define MT_WFDMA0_GLO_CFG_RX_DMA_BUSY BIT(3) +#define MT_WFDMA0_GLO_CFG_DMA_SIZE GENMASK(5, 4) #define MT_WFDMA0_GLO_CFG_TX_WB_DDONE BIT(6) #define MT_WFDMA0_GLO_CFG_FW_DWLD_BYPASS_DMASHDL BIT(9) +#define MT_WFDMA0_GLO_CFG_FIFO_DIS_CHECK BIT(11) #define MT_WFDMA0_GLO_CFG_FIFO_LITTLE_ENDIAN BIT(12) +#define MT_WFDMA0_GLO_CFG_RX_WB_DDONE BIT(13) #define MT_WFDMA0_GLO_CFG_CSR_DISP_BASE_PTR_CHAIN_EN BIT(15) #define MT_WFDMA0_GLO_CFG_OMIT_RX_INFO_PFET2 BIT(21) #define MT_WFDMA0_GLO_CFG_OMIT_RX_INFO BIT(27) @@ -322,6 +325,8 @@ =20 #define MT_WFDMA0_RST_DTX_PTR MT_WFDMA0(0x20c) #define MT_WFDMA0_RST_DRX_PTR MT_WFDMA0(0x280) +#define MT_WFDMA0_INT_RX_PRI MT_WFDMA0(0x298) +#define MT_WFDMA0_INT_TX_PRI MT_WFDMA0(0x29c) #define MT_WFDMA0_GLO_CFG_EXT0 MT_WFDMA0(0x2b0) #define MT_WFDMA0_CSR_TX_DMASHDL_ENABLE BIT(6) #define MT_WFDMA0_PRI_DLY_INT_CFG0 MT_WFDMA0(0x2f0) --=20 2.43.0 From nobody Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AAE251DE100; Sun, 24 Mar 2024 22:52: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=1711320731; cv=none; b=o5+0fpcYJnHHzeqgvRyhD9clS2BlCipVvRGW47HwtvXVogy54wt9BvO9S52kFY5LBnWwZDBa4i8q3nGF9kBYG+ovanYOWKfI6qR4KgO7/8lXW5EtSaguUv5m9IKWKTfLOFRGPCXmYNpe6xPJr+SgrwJDt1rLvq7wYs1E7PiDPHg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320731; c=relaxed/simple; bh=NRY+7Tj0qGy+7ZmIHN94EIlHoI0r19i0s2wSgIv4I9A=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MAZEda2xIBpcHc6PZHLrYTf81J0+ZGSVeMnDh1H9SRS/3/fL0NthP/C7RrDgD8k7vWD5MenRdZEvJz1T7DgVylO3H2u32wWxKUTIaERXA7WpTqrrNklywibHtOyVTEFS15BKqs/ffizipVYKL0pSBpklzTQxFFdYK2CsNs8b0J4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=GICIdG/9; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="GICIdG/9" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7D7A1C43394; Sun, 24 Mar 2024 22:52:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320730; bh=NRY+7Tj0qGy+7ZmIHN94EIlHoI0r19i0s2wSgIv4I9A=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=GICIdG/99OHfQOHq80nVtF3o3aYUP8D7L9AbE6JooTshVuc2H9EWktQsbBUcgE9HE ySHg+17jN5hRUQO3MERY4eohCNrwPXdepLU/vmFXaT6nRNCMuvfo1D/JZixJGXYby+ wi01flfeg2krXvlq613tTKf6poOVFLiqQ7e9oy/X60QmHeoHIqukHZodKRrAiToAwy Daz72rbkZTzGvjyZsIrA3zwlnmnKEafwZN76Vs4tKoQIGGPkVVL8g6fjKT0AE+M3JS +EyH74W9toVy4BW6zc2igDJGXqBfhVJMkerJoCEW1bgxNHDCh7kMXsbrM98pdAnRrI LK+PZAlW779wA== 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.7 293/713] wifi: mt76: mt7996: check txs format before getting skb by pid Date: Sun, 24 Mar 2024 18:40:19 -0400 Message-ID: <20240324224720.1345309-294-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 9c9c25f1dcdd98fffda564d2073f26219c84a2c3 ] The PPDU TXS does not include the error bit so it cannot use to report status to mac80211. This patch fixes issue that STA wrongly detects if AP is still alive. Fixes: 2569ea5326e2 ("wifi: mt76: mt7996: enable PPDU-TxS to host") 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: Bagas Sanjaya --- .../net/wireless/mediatek/mt76/mt7996/mac.c | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/drivers/net/wireless/mediatek/mt76/mt7996/mac.c b/drivers/net/= wireless/mediatek/mt76/mt7996/mac.c index fa3001e59a364..cee2ede268a2d 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7996/mac.c +++ b/drivers/net/wireless/mediatek/mt76/mt7996/mac.c @@ -1178,25 +1178,28 @@ mt7996_mac_add_txs_skb(struct mt7996_dev *dev, stru= ct mt76_wcid *wcid, struct ieee80211_tx_info *info; struct sk_buff_head list; struct rate_info rate =3D {}; - struct sk_buff *skb; + struct sk_buff *skb =3D NULL; bool cck =3D false; u32 txrate, txs, mode, stbc; =20 txs =3D le32_to_cpu(txs_data[0]); =20 mt76_tx_status_lock(mdev, &list); - skb =3D mt76_tx_status_skb_get(mdev, wcid, pid, &list); =20 - if (skb) { - info =3D IEEE80211_SKB_CB(skb); - if (!(txs & MT_TXS0_ACK_ERROR_MASK)) - info->flags |=3D IEEE80211_TX_STAT_ACK; + /* only report MPDU TXS */ + if (le32_get_bits(txs_data[0], MT_TXS0_TXS_FORMAT) =3D=3D 0) { + skb =3D mt76_tx_status_skb_get(mdev, wcid, pid, &list); + if (skb) { + info =3D IEEE80211_SKB_CB(skb); + if (!(txs & MT_TXS0_ACK_ERROR_MASK)) + info->flags |=3D IEEE80211_TX_STAT_ACK; =20 - info->status.ampdu_len =3D 1; - info->status.ampdu_ack_len =3D - !!(info->flags & IEEE80211_TX_STAT_ACK); + info->status.ampdu_len =3D 1; + info->status.ampdu_ack_len =3D + !!(info->flags & IEEE80211_TX_STAT_ACK); =20 - info->status.rates[0].idx =3D -1; + info->status.rates[0].idx =3D -1; + } } =20 if (mtk_wed_device_active(&dev->mt76.mmio.wed) && wcid->sta) { --=20 2.43.0 From nobody Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5D3C81DE10D; Sun, 24 Mar 2024 22:52: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=1711320732; cv=none; b=lTJDfB78JqPfHRsd/42U8GM90m44P9D+XTFV2/8aIQqJlHdo6yPoIZwwNMsjB3WiV0PvQFnboLGPQKsOzAIB1hgrXlm41SzbGyPnubvw9EAX+lDgSfsNWOsk5EUSuVMUDqLJ+LDUBa2mOaJEHez5A68sxR8NOZArX0/4hjFgMYo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320732; c=relaxed/simple; bh=0pEelp3HkQmrG5hoCPA0BrUxeXlKzW8azuUFfb0Ide0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ujYI9cdlF4m5KaDr9nI566xAUk/s4pWg/jkqxF+Msv1NwN5E0jZzwYx2dNMoA/76Bv2D9BJg/iQQfVuGW+MNXhO2SJe+TdQUkwDwPud7/darTphzCTD5NUlxGjVvCJSquRxmDwAInWPMsndkQJ9202c+Q2fMsNCewgGMZQn8fqg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=u9UsNRgT; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="u9UsNRgT" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 84595C433C7; Sun, 24 Mar 2024 22:52:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320731; bh=0pEelp3HkQmrG5hoCPA0BrUxeXlKzW8azuUFfb0Ide0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=u9UsNRgTg0wL78HOYTY0vbunnRhNlcBn0mJKN7mC+enwyQaI/qJul5mDfu4Ul5pnr EeLvQ/r/9g1WlJes5PQXOOp8XWURV6eoCeG/R5eug56sXUUQnYPgsBdK4JGyhXeUbC Jv66U2ae6Cd40r7z0FewKuveB23gQjD6z596bg143vZ+quv2DzsHxuL+NmP8OO1wv7 V4p2C0f+hHbIFHdZSOF/Sa3AIjFSSV8qB/ebjXwL0DblrbFmA+MYDIqBNbHh5difTz dCjE3Jc1z8LdST/8iTVWAJGHQFloKwON/fGy/nMzer4mWBPEic8y3I76c0SpZKo2VQ Z11AcmAja+p+g== 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.7 294/713] wifi: mt76: mt7996: fix TWT issues Date: Sun, 24 Mar 2024 18:40:20 -0400 Message-ID: <20240324224720.1345309-295-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- .../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 cee2ede268a2d..7d33b0c8955ba 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7996/mac.c +++ b/drivers/net/wireless/mediatek/mt76/mt7996/mac.c @@ -2461,6 +2461,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) @@ -2472,8 +2500,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; @@ -2486,9 +2513,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); @@ -2535,10 +2572,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 3434ca50d3181..6733ee9744d9b 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 = */ @@ -236,7 +237,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 62D971DE11A; Sun, 24 Mar 2024 22:52: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=1711320733; cv=none; b=gs3s9Ynw6wMAP/WhYxDKwm9tIJOABj3WUiNUSh1MUSDXM5WXrIE6LauWjyWDI3YX5DBjOIvVNbpg+HyAdjnItvsnEEyf1jUgnYLynE52H27d5YqZctUj3tFPZUT/duW8QIbhrQAn5Oy3D69+TVIg8X05jDGM4MiMvjtK+zpTbg8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320733; c=relaxed/simple; bh=p6qPeNnWXYgNp4uWdNFBa3tfwNbMNl1eH1kqn5EOHto=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=JU5XJUObhSgcjXzjNV8dCTywE06fZw9oE+m1oTNcYRJTNjD4f8/EinXeML3Ut3E/Y+q04vVyRFG+2bTCkpBlBQXZWCEWDbqE1gxUJKVZX/mPAbUtb3ObFpvB/84y1dAUPSMEMt1bVQcLwmkovukuYzmZrwBnYm84j9A7fuZtLnU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=R7oGAhKq; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="R7oGAhKq" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 82F02C433A6; Sun, 24 Mar 2024 22:52:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320732; bh=p6qPeNnWXYgNp4uWdNFBa3tfwNbMNl1eH1kqn5EOHto=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=R7oGAhKq71UQFwbWuKijCj26X1WA1u1Z2QXILigBr1l1laC8Dp+QYifu5duuclXKP 4CfP9PfdZpZXvlAaiHcBHxw8706ZkGBYOUr1Yy2lzT8gtGTjSFtaSpq2lfSIycn3KY 7mRSAQ+f4elDjVsvHOA/TsUYtqnASeTpvpfh7naIBBcmT/ym7sRTcKeA+e5pMHaNjm NvEyOsprimh/JqbrTlDoc/Hif1zq7EDd5OOFYqAQ+7W+5hjjCcTBz9+jbg584WYfQx yZt7gvxD1ORzkNO6zDwDzWeueBD22oliWew4DFHOXYAqO0h1+qHiaDelsPyGLpTPwp e+fHNZJWc+enA== 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.7 295/713] wifi: mt76: mt7996: fix incorrect interpretation of EHT MCS caps Date: Sun, 24 Mar 2024 18:40:21 -0400 Message-ID: <20240324224720.1345309-296-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 707db74f234ed..e7a7d943b168c 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7996/mcu.c +++ b/drivers/net/wireless/mediatek/mt76/mt7996/mcu.c @@ -1079,6 +1079,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; @@ -1098,8 +1101,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6452E1DE124; Sun, 24 Mar 2024 22:52: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=1711320734; cv=none; b=NlIHfLhJXxeWLpNBnfovU8frofUiPQWnyIiWCutliVzpaAWjd3ub8XQwYl+MekYH7s/iftbHUGm6XSV9BZxxHLZxniVFz2NelbB9nSWV2SCVKVBuiZ2T4czIfHL+pufhLa3erorniptteShj+QG2/xAfowGbryhyAJfGDW+f2qU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320734; c=relaxed/simple; bh=9dvy687CtwURzfVHw6lTuPxhxIja+b8C9bxt43jmUvw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MOKhF9HWKVSrnn/a5ZUWKyZaMU9qUTSGZXe9M3uJhUNbHNRxONcckSl1yjGd1CLvrprweZlh/CEd/6XYGT8I5L0EdwJ8fS5y7stbE+gfAErzoP7zx0xLz83xwGu9oibA1ac21w5c/9SIBon3a249xxVZq63fXWO+mLC3REQTbzg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=R3Kby8No; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="R3Kby8No" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 86DA3C433C7; Sun, 24 Mar 2024 22:52:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320733; bh=9dvy687CtwURzfVHw6lTuPxhxIja+b8C9bxt43jmUvw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=R3Kby8NogT9NJA4agJjV3n0WJ7CuNuZjCBYXCxyZ98lSdhYgDrM8nxFCu42TtxIUL Ape/sVJWrtCX2k96iIjqACFhMbcTFhXxyLVNSyJcBLONhuw05514/Ez3nYcSa4wNYZ 5xJhe4gL4xJAKv0ClTiGWnXflroxgxorVStIRw9iWOCp38ApDdv5ONdunIAuRxIBhr U9X59FdTc/KlntaYnJ17YSYlJ0ow67ew9PHVzHAqA/reIU6nEOdMQgPAoEFJS948pq 9QDU0v9JUodGn4Cae7OwiWkT0cn+StoVMIcGMRZ31MP+V8nAX0WbOQEHwZUnRfSi7u Hg4kMgcmqt73g== 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.7 296/713] wifi: mt76: mt7996: fix HE beamformer phy cap for station vif Date: Sun, 24 Mar 2024 18:40:22 -0400 Message-ID: <20240324224720.1345309-297-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 55cb1770fa34e..1d75bf23a02d4 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7996/init.c +++ b/drivers/net/wireless/mediatek/mt76/mt7996/init.c @@ -578,11 +578,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 629B21DE12D; Sun, 24 Mar 2024 22:52: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=1711320735; cv=none; b=eESqqD6xA4P1s5EO+2QJ5UjrNj+gJfXYxvgNPwxJUWbvI+WCmTE44w6n6ilLTUU4F+vWprwwhFEmRIiNUSiTB9OGOVI0sSrdGK2RkVqtV2s78JtqaTcL9OT6qjLTSLfjNr5eRjDEXmPG/+eYy5lrRu6H5+Kmk00rs5aHHAitNoQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320735; c=relaxed/simple; bh=iZsxdmPJt5i3niPi+PdZmVKu1y2Ej9SipBlgIi6hUDM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=GPqadzMBTHAuNw4Yuwcrhe3rzuy+JTWVl/UGOO1pAJIezbG3KaMae8wGBW1EJdkVLikTIi3hT2DhgR5BBbgX/bvKUWooVlu+eUtMvWuv0pLrNg8jH/cHjGaTJTQGLnk+tqY3zdu5tSWD3V9UUD72HupR4E/4wvYGnBOESif3QLI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=EPz6L2tF; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="EPz6L2tF" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8B80AC433F1; Sun, 24 Mar 2024 22:52:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320734; bh=iZsxdmPJt5i3niPi+PdZmVKu1y2Ej9SipBlgIi6hUDM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=EPz6L2tFUGpRcAWci7H4f0kkc3yxgB2yR2cPAR5vfSC/Zj4tyHeqZnn8plXxYiLcS NXdKmf9ymCAyGGrbtsx1Nsk7sFMvpDeX4VvUbEB815LcnPWt60wF8VYt27bXm+EnaK 940IkBqFwhw4mXPVSF2AVzAoYf33NcBb7PDsgGweuKXnG6CTZW+iBbwjLB9R1uE6jr /JAdvejTfNOHRpmDy13aVUFdvaRzL0oB1GBCxqtIT7hTupa7HEODjDBMdltOy1Lkcd W20gEkIt6T+PjDvdQaViXBVuvJS2h1Fq21JEmwX1WK9znDloMzVpQhfaJFENvi7+aY Jp4hBiIcnW/Pg== 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.7 297/713] wifi: mt76: mt7996: fix efuse reading issue Date: Sun, 24 Mar 2024 18:40:23 -0400 Message-ID: <20240324224720.1345309-298-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 e7a7d943b168c..0586f5bd4164f 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7996/mcu.c +++ b/drivers/net/wireless/mediatek/mt76/mt7996/mcu.c @@ -3426,7 +3426,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 66FFE1DE13A; Sun, 24 Mar 2024 22:52: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=1711320736; cv=none; b=GmwH8/6SwhEjao36+34OYeT+yN0gJFeIOHcQeiZkLxBd0o7+A52Qd9DeDFROM5Xq8xmmUfAqnUXV7cfMwoE5J2SCR1OKUVBmmaoNKuIJI9ZGtxUyQir1XxWuDum9hEkEzAFXqDcEMoePkSXj7u2iygG862ms+iGS4SEnCc3GS8A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320736; c=relaxed/simple; bh=neKTN06HKftInWaXkvQA3oNgLOGcIpYH0s7hLEhEuzc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=B5t2IahKbk91pKXwAOgndRfQLqOCFeiUJE6nKGpLIFtXLJGezlpLGTk9WR1c92kI4geMWUzzDhUeF9aDtD5Y8naTz5/bDgDyhB+rfRML4YuYU8D3yBG5M9YtP2Af3hYDELDc/HZTrs5i6mmaICB/pvOgH5WEcfFKju+dKqBK5AY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=L7r5RXKd; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="L7r5RXKd" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8C949C433C7; Sun, 24 Mar 2024 22:52:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320735; bh=neKTN06HKftInWaXkvQA3oNgLOGcIpYH0s7hLEhEuzc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=L7r5RXKduF7BNQloErQs8ZqNaA1BE9VVc0iLZ80B+AjSCMMAP3FJmBAHKJd+j4Zgs ZOEqCWx61adxYuIgX/N8WWaPxSpq62weJMZ44tpvxpczY2lmkOqOnTFoY5CWol7p7B foOE2AX2t+veHp54VpKJvW8nLrT6q3B8Cw5TJrLSmOqyE9xMI3zkoe8cIitJ28X1rD BPUtnN/HgWt87ktZOG5/72+xV1PLNOF1HQX10K4359hK1IlH867d5Z9CIdIXcUuSl4 TCI6nUO7fI99Cy5Gb2Cobzx/WdyoPrw9szY0PmCBJHQmcOc2lXuSbMGaX0oHoISbbc A3Ar9Qe349iVQ== 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.7 298/713] wifi: mt76: mt7996: fix HIF_TXD_V2_1 value Date: Sun, 24 Mar 2024 18:40:24 -0400 Message-ID: <20240324224720.1345309-299-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 1d75bf23a02d4..f8b61df15fcb1 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7996/init.c +++ b/drivers/net/wireless/mediatek/mt76/mt7996/init.c @@ -297,7 +297,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 527E41DE11E; Sun, 24 Mar 2024 22:52: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=1711320736; cv=none; b=oVtF465VFWUjWatt8LjLnlOw++ux6K8HGtv04GMOrpZmy4c5fUwnJg4LrJhFYQcpzmhrZ04zuTLLKgqlRtg+o+kLPR+RzRf3reMTZkGpBnx9K0ulmyEUlieGlMtBRW1CugSu/Tz/TWdkMvD9cO9SiIlhIrQzltm0VVyUrqoXUfc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320736; c=relaxed/simple; bh=DIaY63F6+qP+Kys6KjDibBgqTTc6/AjrEVqel/3Y1lE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=lxt5Kxf1j8bRqhkCVdXD8gYcJZVXSb+eG3kdnhuRZaWLskPzOB5gEpeDXGqN5Mp1nRW9Abz+5Y/bMPURdTYIdtuaHchA+7aTaCDxicQONVGW3jf/xyHFbU7FipvBYQTDWktB3MjQeGG60fqQuJW2DGYuPRwGhhnjZHuquQY8YO0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=dZOlgMBR; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="dZOlgMBR" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8F307C433F1; Sun, 24 Mar 2024 22:52:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320736; bh=DIaY63F6+qP+Kys6KjDibBgqTTc6/AjrEVqel/3Y1lE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=dZOlgMBRiyT0N4CI0Ax3rwxAYoo+BMzZEi76uz0HBSFdDuZ/e2Cv/VmrA0ST13i4w kx1Oxs8FPlshKfP2WjmnQXb3Mw70oCN7mbTsAnSL8GjStsVa2tC/5OPq4RHCy+Ig+L BLKvzo8D5lgRiP3BaASbdJjnqIE4AJHA4NqsyeJWpcOBjaNRsWiBn06JE/9r3YGaDw WR+HpTtUKDWtRKhzhJGCnadQSFxmc8pLfaUfa0e3dnXPtBQN/79QjRsbx65IregdUk NLrzw/1G421XJw368b4cygjCdryYCBJeq6UwLNuRyGO8EkOnXIq/AFVwtPhDOpj6hw 1Ie3crAQHER4w== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Gen Xu , Felix Fietkau , Sasha Levin Subject: [PATCH 6.7 299/713] wifi: mt76: mt792x: fix ethtool warning Date: Sun, 24 Mar 2024 18:40:25 -0400 Message-ID: <20240324224720.1345309-300-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 502be22dbe367..fb35eff6dc7b3 100644 --- a/drivers/net/wireless/mediatek/mt76/mt792x_core.c +++ b/drivers/net/wireless/mediatek/mt76/mt792x_core.c @@ -354,6 +354,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 52BD31DE9E9; Sun, 24 Mar 2024 22:52: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=1711320738; cv=none; b=igS3C/jFZMaYxvHX83rMd1bOmpN+ssrWsSpl5ijPNU8V5t9OBIvx8uI4uM/cYyyJhkbGoIAGdBBmornrBqIPlFyI3cQHMrKPiWys0udUgPw+Ql68VcxrASeGpihTWA+mY1LqN21hl49PFU7TQJ4RED1nnrw/5GnZEHQmL4KUqgs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320738; c=relaxed/simple; bh=2hCty2P98NCyqseVLfExMgcfGdEqPpK/g0kZVtV6zHo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=R47l+CjXtkHr/IF5C8jevEDgvt0lu4NlP1tylZdFh0hNbWbfC4Q8+SCeASECznUXQ6bnVvVFUoF2PVgNC2rZfim+o4X/ppDjTu/BU1GYXxb26iokLQP620EmV28EveisQcBaSPAFnQTjEyJxmIkCr0VNtUfPtRs6nQhLAlY+gIk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=RB0QXCo6; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="RB0QXCo6" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 786ABC433B1; Sun, 24 Mar 2024 22:52:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320737; bh=2hCty2P98NCyqseVLfExMgcfGdEqPpK/g0kZVtV6zHo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=RB0QXCo6ze1wKV2iJDXOvXmF5AQgPP/z1iaBi852e6xIgBFEwN8krA4afKRvxkOKJ 6jxRs8GPl/F8N73KjS3lwry5XkGfB/JoVNNuIZeGYq1x4mn/kS+qGF5ZWMsOUzy7Ok hN0dSPH9jLxCzdDxkHRXRgTBBZbe9275E0PxVn6ThOlqxlsxK8z1HFxFNg+iaxhbFn kqd8JROLDx9SKDoiWobuP7BkQ9atuVWDVzbs66CJA3K4Ui/7+IPKopI/Qlu6vXE1w4 dZUj5rtZQES8vakj2J7/hrbdXy79XadEZbyu6DQitNFI4LVMjzkUQULedkfYfpzujr nTQNOoYkz/XGg== 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.7 300/713] wifi: mt76: mt7921e: fix use-after-free in free_irq() Date: Sun, 24 Mar 2024 18:40:26 -0400 Message-ID: <20240324224720.1345309-301-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 42fd456eb6faf..4d04911245409 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 8fa36b59e738d..5cc2d59b774af 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3AA8B1DE9E8; Sun, 24 Mar 2024 22:52: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=1711320738; cv=none; b=tPZDCBfxCOCFUN+PSDBf24+iaqOpifvNcYnnqw1gLDGQLuDnyzeS+0Luu7qj6onu2QBiJy25dod4vtg09/UDfpD1RQcLJF/u6ARVkAsT6yCMyCfdVpGi2idBHYt77FXMMXOYNyc6uFfSoKWHiy+oDKppzT04YCVSdtAvUW0nUUw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320738; c=relaxed/simple; bh=GWhucM3UOWCf+Jn0EA1zuh0UWwbQen1v+fnZzq9n2WQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=n6zjRb+d4H9zsUTJ87VPWIjgfnoiHCaojL6j51lzJRi/WbbX6bMNTEDFvWj4heU8Z+GnNC4cb7p3Vk22c8hfqnvyivUDi9RwHUXC2Qv6py1zGRmK4TFh8GUUTSS67yeLPakVXrGVewfr6Cu57jzMPDIFaLYDqoy67KaBeKve4KE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=nnLBPfpG; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="nnLBPfpG" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 773CFC43390; Sun, 24 Mar 2024 22:52:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320738; bh=GWhucM3UOWCf+Jn0EA1zuh0UWwbQen1v+fnZzq9n2WQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nnLBPfpGlPrMQKk7XWpGZJ0QMKJwQeoaBhHAiBq9HTWn0yOrZKm1PBJZL5faJiLjo qqkSNYatNzAzNVp7dku2Ajkld6XVrf99BG0rmzrGAEUA/3yLes2UTekndLHpS8Cgjc VPUI5lQCS4PcJ6T9PvO4rZl+GDnAo9iIKEdPnxZDvbJu0YAMJsMafJTgW7UP152Wye Xw5NGbhwQHge2HSua19Py5tIY4WMf4eRi3Fpq4rNsTPmPEGVk+Uxlc7aiBxm+Kh80m DhBt36WE5snhJTlI7+7/29z3wtWn5n/QZ5PT4UTIggdNoYpnF+q4eLu9NMMEh+SnQt rcR/WmsectB4w== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Deren Wu , Felix Fietkau , Sasha Levin Subject: [PATCH 6.7 301/713] wifi: mt76: mt7925e: fix use-after-free in free_irq() Date: Sun, 24 Mar 2024 18:40:27 -0400 Message-ID: <20240324224720.1345309-302-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 a5a5f4413d91f395cb2d89829d376d7393ad48b9 ] 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. Fixes: c948b5da6bbe ("wifi: mt76: mt7925: add Mediatek Wi-Fi7 driver for mt= 7925 chips") Signed-off-by: Deren Wu Signed-off-by: Felix Fietkau Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- drivers/net/wireless/mediatek/mt76/mt7925/pci.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/wireless/mediatek/mt76/mt7925/pci.c b/drivers/net/= wireless/mediatek/mt76/mt7925/pci.c index c16d683e4891e..bf02a15067ef6 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7925/pci.c +++ b/drivers/net/wireless/mediatek/mt76/mt7925/pci.c @@ -427,6 +427,7 @@ static void mt7925_pci_remove(struct pci_dev *pdev) struct mt792x_dev *dev =3D container_of(mdev, struct mt792x_dev, mt76); =20 mt7925e_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); --=20 2.43.0 From nobody Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 88B311DEA0C; Sun, 24 Mar 2024 22:52: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=1711320740; cv=none; b=R1Wt2KsNZyyItuXvJWxxEW8P15WaK8zjXyEWn+hW4UVeFcBU2HY5zhdXFTAqzczLcsLwM0Xt1t/nXNgU9s+L8MQjfgSkVmcAdx8TIJKYwQRzQhaAwTz2vd5k8tXHLlyLuk9+4zNRPpgc11gbmz5C6MUVB1LNAbjCqiZLMVCTCXg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320740; c=relaxed/simple; bh=TQXYspbfT+moCuXb5jEZWh2Vb5Vn0eF+7P6IyRXaoAE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PIkiV0Bphvb8GWW5EpbwSggiahXqXyyQHmy5xYW1kdunwq55qHZ93CpGfmYvYkVQmxFZwhMqN5RCPHgmj9qp/CAy9lgMKjXV4EF1MzV0+xwEUeiuKn/XzaXuoIUhWRhaVGqCkvxZCaIShZkpnLXgDOfwWNxYukfLhjh9Z4xHw7o= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=mvd1mos8; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="mvd1mos8" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 61903C433C7; Sun, 24 Mar 2024 22:52:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320739; bh=TQXYspbfT+moCuXb5jEZWh2Vb5Vn0eF+7P6IyRXaoAE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=mvd1mos88x1TDU8EPJpxeN19C5Cgy7S9h6MFGJlSIFidM9Y+WrK26NF9GfA/ByDqO 8kmPxTP/7RE0duMHerrKycCKRvLw64mB6FaJp5ZZGWeN+7Q2Zfs57jwSz+U8GVtAUa 9wkrAFOUtiAcbsjF9iYvwj8SQ25A1T5XMfMwRpBxR+aJI9wqcNpOsbLkSdjRsViV9E JybMMlX2mIle3F6Y3Yg7xjOL/anFnRnGH+ZijHig2dc2uVMKEjnhhsLJoqv+dQz31V lvEAyKx7FHE4v2b4cb5kMJ1Mat9sm8FcU8CiD7uKLOyPjkH96ZDKoGQlOJgBkwV/9T 2+0hiMdz2qQOA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Ming Yen Hsieh , kernel test robot , Felix Fietkau , Sasha Levin Subject: [PATCH 6.7 302/713] wifi: mt76: mt7921: fix incorrect type conversion for CLC command Date: Sun, 24 Mar 2024 18:40:28 -0400 Message-ID: <20240324224720.1345309-303-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 b6351ef9994ccb93b2447d396a0c517964dff2bc ] clc->len is defined as 32 bits in length, so it must also be operated on with 32 bits, not 16 bits. Fixes: fa6ad88e023d ("wifi: mt76: mt7921: fix country count limitation for = CLC") Signed-off-by: Ming Yen Hsieh Reported-by: kernel test robot Closes: https://lore.kernel.org/oe-kbuild-all/202312112104.Zkc3QUHr-lkp@int= el.com/ Signed-off-by: Felix Fietkau Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- drivers/net/wireless/mediatek/mt76/mt7921/mcu.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/mcu.c b/drivers/net/= wireless/mediatek/mt76/mt7921/mcu.c index 399d7ca6bebcb..18056045d9759 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7921/mcu.c +++ b/drivers/net/wireless/mediatek/mt76/mt7921/mcu.c @@ -1270,7 +1270,7 @@ int __mt7921_mcu_set_clc(struct mt792x_dev *dev, u8 *= alpha2, .acpi_conf =3D mt792x_acpi_get_flags(&dev->phy), }; int ret, valid_cnt =3D 0; - u16 buf_len =3D 0; + u32 buf_len =3D 0; u8 *pos; =20 if (!clc) @@ -1281,7 +1281,7 @@ int __mt7921_mcu_set_clc(struct mt792x_dev *dev, u8 *= alpha2, if (mt76_find_power_limits_node(&dev->mt76)) req.cap |=3D CLC_CAP_DTS_EN; =20 - buf_len =3D le16_to_cpu(clc->len) - sizeof(*clc); + buf_len =3D le32_to_cpu(clc->len) - sizeof(*clc); pos =3D clc->data; while (buf_len > 16) { struct mt7921_clc_rule *rule =3D (struct mt7921_clc_rule *)pos; --=20 2.43.0 From nobody Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8E8F08627C; Sun, 24 Mar 2024 22:52: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=1711320741; cv=none; b=DcxNTAqlBG+dibdF+PClFa16ODEsZ7wLTXkJ/UShGDyMZXXThsWjxwB1eoLBDoG7yxxtNXHkDhb45vGUNasReaxiuiyXDdNAawXfPOR5HKE3MxCXqDuN7BPC49FL5oPUZ+eNl8RNyFCScYNkM87CeivTve75d/Hn7e3ogPhud20= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320741; c=relaxed/simple; bh=UJVecGRcsJMrble1axSJMuG0b3FUpXz2QsuhpnXy+d0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=teHR3vLSbKvkDFanOyD/PsgDBWiKj9Q4AXnaR+qPG0T8j8Ao5iZ2By5/SPjOmkjSccxW7i9h+W4PnjNK/etJJJlPlzWB5mDuviWqBmm+T11zThSFsaOy/ozEG9DGZLKgeggWrVCfgIvx7bArmUAe5xTIVmhOn052vndjX3a++A8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=bWJo7nTJ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="bWJo7nTJ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 62A2FC43390; Sun, 24 Mar 2024 22:52:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320740; bh=UJVecGRcsJMrble1axSJMuG0b3FUpXz2QsuhpnXy+d0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=bWJo7nTJypJaKmqafKPgXiP2ao6aIomtNbEVuYlWvVZZQns0pkuC9AZ6w0c7r/1FQ JXJrYNXL5WTeKZgtK0th3Eh3pyIbiXBIjv92XlFiIS0+0AnZzo1iMbzZqGyj87+JFV WkzXJrX+ZzX4xgrWX9WpihTGmYSlTqM1syJKcU9IFJNft8tXVVxrUZWtX85vg7zwod nVqLBjCHYd2e5dg6c7XBW7EC7KnGTLlT/O/mHE9H/Vm4s2DDudMxEd+j2x2Im6Jc3/ 4EJjyb8/fRJmNmqZr8Q7vNMTcMG+RyMFEj4YFiFswlXqi7O0gsRk3OxIfH57RpMRdk L5S6cPTJWEtDA== 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.7 303/713] wifi: mt76: mt792x: fix a potential loading failure of the 6Ghz channel config from ACPI Date: Sun, 24 Mar 2024 18:40:29 -0400 Message-ID: <20240324224720.1345309-304-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- .../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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2AF1F126F3E; Sun, 24 Mar 2024 22:52: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=1711320742; cv=none; b=pCW1QECqSnuQt1YYEt9jgw0IeUnFm+MfXv/AHJ0bozb2rikJ4cMxa6e0flw5WBZd4MbT+DB5rbbSwpb6BdwMbe1hQzTcfvqrdiWwHlhSxH+Qzs6+X/8YnPpcUN1wrBizeweiy+qBkohNFV7dWht8/hD7mVmrIaetRYVOAzOqfGI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320742; c=relaxed/simple; bh=DEC3DToOjlvv/6yVq+ThedLbsWTQe1fADO01HVYUtXQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=tEWEKpjC+HcgSdvH9T19rLA90ypQ8s7GyT4uwWtmvdZOKEtediTgfz2FtdyaBvkDVQT7fDvegWAKwr/K0dKqxmKvvUIX2mawm/GYtEAmAEMJ3KJGfqfF5QxAS+Dj05txD6Y/2TWWidwuYAnZDTgim/aDYCKAbE9WvuBR3hvtlhI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=bdXQPofB; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="bdXQPofB" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 62F6DC433F1; Sun, 24 Mar 2024 22:52:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320741; bh=DEC3DToOjlvv/6yVq+ThedLbsWTQe1fADO01HVYUtXQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=bdXQPofB4FuUz1AtZqWkTWD0yFBYf6BX5IXD1gdxBMTKuehD3gNuMqF9dqXRNCE58 6N6LGrqg+lLCTeCPEebwal0tUUQPEemGU8J/TgQx3Z39kVHlBhD6G3LnGQogm7Lh2Q NV3ZaNEKeBIu02k5oR1QfcT5YPcdP9ZyD37EizRp1HNSfa0QDHc93ZJqPXxBmiL5Z8 gEzm0c2VAHK79H6Bk5KGmcz4KDB9VY5fQ3RerUzvSlc3ak14HubSRXA1srewGR0eC/ hwOTXhB2MVHfS3enIj3jyUVihsfqrNHz15j/8fu1WdWytcgIEBraguco3wIR/mLnTW X1+gj1orXFvlA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Ming Yen Hsieh , Felix Fietkau , Sasha Levin Subject: [PATCH 6.7 304/713] wifi: mt76: fix the issue of missing txpwr settings from ch153 to ch177 Date: Sun, 24 Mar 2024 18:40:30 -0400 Message-ID: <20240324224720.1345309-305-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 e9a46175a79fbc591c48d433020444b8fa2750ee ] Because the number of channels to be configured is calculated using the %, and it results in 0 when there's an exact division, this leads to some channels not having their tx power configured. Fixes: 7801da338856 ("wifi: mt76: mt7921: enable set txpower for UNII-4") Signed-off-by: Ming Yen Hsieh Signed-off-by: Felix Fietkau Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c b/drivers= /net/wireless/mediatek/mt76/mt76_connac_mcu.c index b475555097ff2..633f56210563c 100644 --- a/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c +++ b/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c @@ -2100,7 +2100,7 @@ mt76_connac_mcu_rate_txpower_band(struct mt76_phy *ph= y, int j, msg_len, num_ch; struct sk_buff *skb; =20 - num_ch =3D i =3D=3D batch_size - 1 ? n_chan % batch_len : batch_len; + num_ch =3D i =3D=3D batch_size - 1 ? n_chan - i * batch_len : batch_len; msg_len =3D sizeof(tx_power_tlv) + num_ch * sizeof(sku_tlbv); skb =3D mt76_mcu_msg_alloc(dev, NULL, msg_len); if (!skb) { --=20 2.43.0 From nobody Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4E2931DF0E5; Sun, 24 Mar 2024 22:52: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=1711320743; cv=none; b=oBh2BSr8X+cfJPJ8wdSco/9fPSpcDkaWi7SWiSxAYX206rZMA/pTEhnn9hWTb7NoBwO5nM7boI2IWrulb3c0GtIUHBm5yZuk/9VA1Jz2AvxwNH3qXyOSqZjU9Vqr4DFV+E5oC36e/a7LKtjaDpQmpwTcF2W9D7YTBJogIh0wPms= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320743; 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=ep8GFK3D1sZEOMQuWX6xUpGI9CPE9ZAP7hYAowgFs/lf14fJKer6eZ25RYqw156BNyAUhfdVzrzitIsoLbGUqKdi9rCMmuownJPqL7UIwQ7dZ3qQtyy35xkpYm01C9a9weO+kqQ8xwr/ykrURoPdYRbdBYWexGPaQfhyfDY81Eo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=hvLpDPdV; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="hvLpDPdV" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 504DEC43399; Sun, 24 Mar 2024 22:52:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320742; bh=iBV/5/Z+cGNqIANUq+vBJr418QFN4hXW/Rfok5Qg3Zw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=hvLpDPdVzmiEwTprydTM200Ay7VX3X/t5NTDDdrerQKdeU/wlUTfbj069rWIdB0r2 VeGesQsai3JbpRVcymjM2ounSOptEjTblrK5ZwleGA/wR0mIRtZm1vNy8a6BiZ+RFr mHc995Twzu0M/WA5HOsNvfKNenF6LeBSrFPsFCh+vpezN1/CYFFYizoBbAD5z7t7EQ PtGT7hlHAH2f5SolpUz1xUDbP7KOFEL1nRi39gqXshmll2BB9TKvLVoLS7W3F4wEFJ NbfDUURLGXG7dz4LX+tKSX5/sWK9ixzW55Lo/81BkAk5WUd/J9qunxpAfN5O2zcAds QKj2q74lC6biQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Lad Prabhakar , Geert Uytterhoeven , Sasha Levin Subject: [PATCH 6.7 305/713] arm64: dts: renesas: rzg2l: Add missing interrupts to IRQC nodes Date: Sun, 24 Mar 2024 18:40:31 -0400 Message-ID: <20240324224720.1345309-306-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D989F1DF0E2; Sun, 24 Mar 2024 22:52: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=1711320742; cv=none; b=ApP3K+HKH3L4ArKt1oTxrt2Q6Tmk5oPiJ9NamwsQzygW4gseJUrIC4nstGyj0Srl6x/dXztAOKCdJwMTFuisN5QMPODqA0xmSPH4iix9IJZ+ohMcHGzz16FnYmRR/HujujdExk24yuJl6lSZPDwq+cfJxryh9xEA0RythdtkFbY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320742; c=relaxed/simple; bh=58B98bGY5tMD2svD0Au4W1Qr/ZKoc4cnw7wxauTqbjE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Z6eH+EKv7IQBHlcaMiT+futA8cpKFG+Xszg+H3EjAEA7rN1x/ddHkgmgDOX722jTjliZBl2fCSNPN0/mn+RXigbEIIlAGmY0REszP315UfBWhlOe6TyCgk47MRVN9lC19Y+nb0HYseUd+Xp2YHw2gE2AKe7BMqChxRYmUYujbdg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=UhyWMkM4; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="UhyWMkM4" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3B876C433C7; Sun, 24 Mar 2024 22:52:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320742; bh=58B98bGY5tMD2svD0Au4W1Qr/ZKoc4cnw7wxauTqbjE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=UhyWMkM4uddfmJfbVHLSwZlpfAV95ZhJkDk2jFm4rLa26opZH+riBMsOtwIRE0Ggw vvRYqVWPGsZmudf4ngAooXBipuLDS9vnoSD7Tr2ZTQYANGQ3dVKnGl3MB7Ca4rqEoT BDRha6K20ppxpcyzKrTjUswQd9xKk4AVII3HEcANFQ0Xn6pm/UYOvQf/fhguhHjHeJ g/lzKr8llcySPWjNVJxF/7VWe+2gY/EmMlaL4/moaKhLaJAbjlEyEuCAyLfTtr+2XB PWxKKcMamnOUYtCy44tUHLQwmh2RrOHLcBV28IZXNebmKpAQo2nTTIoRik/G3pIDkV kBQnxnORuJ9FA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Geert Uytterhoeven , Sasha Levin Subject: [PATCH 6.7 306/713] arm64: dts: renesas: r8a779a0: Correct avb[01] reg sizes Date: Sun, 24 Mar 2024 18:40:32 -0400 Message-ID: <20240324224720.1345309-307-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AF0931DF0FF; Sun, 24 Mar 2024 22:52: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=1711320744; cv=none; b=KRoWCvK2cy4+RM79DtyMofehtQ19thLiFG0AmZ1HVTVsxYufWrwsoIdOVvDTef4tEged/Y8XQ2APPiFjd0UJKJmfOjWvbLChjp5pC2BcMPXmLRgpUNt6v7TBH3N3iA2g1oqVJHBDwIWIE3TjoVXr3TO/MUI2OBrATgHB6Zbj2vU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320744; c=relaxed/simple; bh=hmQWRWL7arDI/JH7/+hDhSSggeI1GZPVqcl3qHGLP78=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=nIAPEi7tx7VCz3640aHcAgAvfdX4W1LViQsEVjlP/rNJPBvTc+yPsZsDG4xm4LklUOmwMgwbprI99XXBNbVtTp4lqqukp3UmH9l2/G/P3vGpqL1gYU0c8GKqh4t/4V0aavRKW9AUbaW+p5OIRc2JYSDPHARVnj6+dvgVwaosJw4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=uKcuileL; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="uKcuileL" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0D57DC433F1; Sun, 24 Mar 2024 22:52:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320743; bh=hmQWRWL7arDI/JH7/+hDhSSggeI1GZPVqcl3qHGLP78=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=uKcuileLlrm42CzTPBs2hsUg8Cys8mAGKL0I6q0exdFpRiRaXusyDwBrSe38+lYod P+7w7+eQWvTtUA07lWoxsa8N6o2nr8cfSwzlZDGgOs9edeZylMJW92lF4Tjoh0YeZv hSOZFPGAZG9H63OwFjfEbYFLsrHkImERXnAsspxerAJZ60PzGHQhdfEYvoJ5Zrl+8n 0iF2dRE5AkOZtHAPDNFySUrKotusUOomhHVr85FnwsmhZinV1zkNWJi4ampSSEYZKJ hjbQNgxTl/MoLmO0WnuWFm1dwnEyARAuqu0WGgvPJ7YFwXPXzLkFaRqiuH/iJjhEPc bw5TlUZecCa4Q== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Geert Uytterhoeven , Sasha Levin Subject: [PATCH 6.7 307/713] arm64: dts: renesas: r8a779g0: Correct avb[01] reg sizes Date: Sun, 24 Mar 2024 18:40:33 -0400 Message-ID: <20240324224720.1345309-308-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AFFE91DF10B; Sun, 24 Mar 2024 22:52: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=1711320745; cv=none; b=SA4biUFs3v4uzUJBSU8hI2WVDZX4Kfw2JLQHoYuW/x7a6wb4Ng2knGCGZfmIw5ddVtYQv9WEJnxC1upMtmvP8NtkVwUnmMWX1GBA9IHueykX+3kNv2VrzIOnfLHBHwX2yVcU42+TuWrV/9ROGcnWMw/JB9cULrLicCNtPJPoJ2M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320745; c=relaxed/simple; bh=dnKtJv9o0MbAL+MDMRs+y5NYGE3Zb6APtJ9KUpq6zsQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=kbn5w9v9Tx9b9bcgfJMi/PXre+ryvgK1UD5aVAdI54p4GIl2m3vAna+mFct41w/IAnaGcQQvXq9fxZzG8SGMVAeLIIePijNg4EK1FhCx/FDiSFtNi7SnxzqH7m2q2Zn3tEbFpkFvH2Hm+2/hYYh3SFq5zZwcPl8b6Jp5Rih+cac= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=msp3UF/t; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="msp3UF/t" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D3477C43394; Sun, 24 Mar 2024 22:52:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320744; bh=dnKtJv9o0MbAL+MDMRs+y5NYGE3Zb6APtJ9KUpq6zsQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=msp3UF/tbr7HuK5GsxFu4rEXCxZdYGSiapU2mo1g1hmFIaxTHapXeGfBEllxrpkPi 2tfjuwUa+0P+O3zLNO8GGbB7ocbUL/JZ8IelmkFJY6Zi1M1IBE82ts+fkp/7sw29K/ IqExkl9pi41ge5D+sFc3v7Ydthk4q0mfs0hibITlO5fBE0WQM7p4KxmyRJarAQNJb2 1/sF4pFJ/9lehqrpC4Uy8jVq8zQm0XWvlqyt01ZIEIpXvQqLSA7IlKr6zZ6iJS8py4 6GEZ5sc4xeWgIyHtRoXjhh5cdOwkcxH7pUHtCXcE0OXzKLYoyuALi3rcQPQISN/ksr EoKJItn65UMkA== 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.7 308/713] net: mctp: copy skb ext data when fragmenting Date: Sun, 24 Mar 2024 18:40:34 -0400 Message-ID: <20240324224720.1345309-309-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 94cc40a6f7975..78cb3304fb353 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -6676,6 +6676,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C3ABF1DF117; Sun, 24 Mar 2024 22:52: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=1711320746; cv=none; b=fLNl5/8enoqHes4V64B+OJzystkAKG+I8V+6jS7TQSaPNg5eDb1xbsCcKqtwG0JhpoI3oTwhZ9TtZNW1bgaC4uZkQlIlGv6N4XPmEq/7xvdfCpefBMjY92JSWZQx5CCFMVaoqBPGXvXLuDhoYuHNGqaz/Yoc1xLbSs6f3VfkWAM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320746; c=relaxed/simple; bh=Ou0E6vWtPrzFTnqADnt3d4DBQVXvW1/QfnLtXIX9/go=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PAgR1JU+/JmMXuw5x6W0ntZpW20qJdDx/hWZ5IsG/OJ2i08nQDtcWT78+4Jc1PJ5NMKw3w+7i7G4B5Ax3GLmLmKzRWS2/nv/aGeIxgr3euk2Isu5VhyyzEEe8BAZLfBh5Pgx9aIXvXmjatP4+V4O2Qf0AefvzRK9y9DNNc1a64Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Rqa0HSiX; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Rqa0HSiX" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D1E05C43390; Sun, 24 Mar 2024 22:52:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320745; bh=Ou0E6vWtPrzFTnqADnt3d4DBQVXvW1/QfnLtXIX9/go=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Rqa0HSiX9hdl8svdH9KLLiHfz4uOzaoUKPtTm0aQJCxjlw7Ek1bm2MTsMr0zn+VQU BrsB1zz9IBsw+tskX8oVi9TtNeSYNCz+J1xGIyW7gEJZY4fmLu+2pbiCqBhnsqzEKf x6/9Ms9N+d58FUCu5pN/TqCyfr2stDlxlMwccqEpQoJJeJ1Ak8MGlsVwpRIG/Wt1uZ qpS82aqC1mrKEgaKp+Qj8ZBJ9kYkK3X6pyXv4qVdGj7I0JpgUYCEPxilVXyTE1OMJl YJA40Q4piVYMMv4elez12arULMoy5a1wjH/DORW+EPaJQNYH3DUVs6pN8BuSeYIK12 Y5o7aNcCeN7Vg== 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.7 309/713] pstore: inode: Convert mutex usage to guard(mutex) Date: Sun, 24 Mar 2024 18:40:35 -0400 Message-ID: <20240324224720.1345309-310-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 d41c20d1b5e82..4b4686c593996 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", @@ -396,7 +389,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 @@ -404,8 +396,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 @@ -451,9 +441,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 @@ -468,17 +457,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 94E701DF116; Sun, 24 Mar 2024 22:52: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=1711320746; cv=none; b=SohsFxRurIiN1LkNse/ODVNhitX9gcs228Yx2o01iz5aRl4APDGl3/2hcJGVtReLJUFqLPPWv1jMihFVnfBL+iuByD3snC93qZIcJ91vT0GDmVqGbhLO+FRyNYXvg9Ao5f07RFV3PPJC0q891OuqBKQ2a1WnwOGC+4OIz1EGslY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320746; c=relaxed/simple; bh=7eHIBbjxTnJNAvBe7y538hijttessdfvGCLOEmFqKzo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=RhH6wPB0ZRzOzIt0eIpL3ipgbm+OjFLjjUfgfkScGEEcuSH0/14i3FWkWaKoo8B9/hmzuq5mFrqp+ozePcDlLTlmvoroz1Xt6WtvjIWCIy/pa/g4qUUmlTHx80+G3/e8608tkFFLQuUoX/SH7JDj99/yOQUzzTKgDv+Df+M7Q50= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Xw/L3Nds; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Xw/L3Nds" Received: by smtp.kernel.org (Postfix) with ESMTPSA id EC128C433F1; Sun, 24 Mar 2024 22:52:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320746; bh=7eHIBbjxTnJNAvBe7y538hijttessdfvGCLOEmFqKzo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Xw/L3NdsvnXbYLORT1fC4q2VRTKnCzw4UIAv/xTXVgw7hudzCuv5QGsGrkx3kRA9V zOZkZoGbAwsuUtevdELl2IdQYCVqbETBiAqv7lb84u3OEvAHvvgQ4eFSaXKOl1b/n/ kkINSv/zyhtSg1KjA1M78BJiCTWXPiJOyvu8YnwdQCqesu/sLAxZfS6JBISn6fNbEi 2xMgVdRTg0h2wRnnbszKj4adAAW1Ml4UXEZbPYzRiohaCq2lZHXjDAD3+JrLThb9Nm xlHZaCfzPCNEiJ8lhWBEM4nC3w48QFxNX9UFjGEvwlF1SG1kGxYbfuRxQ526P8NYtp hu9dKZCmq+QHw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Kees Cook , Alexander Viro Subject: [PATCH 6.7 310/713] pstore: inode: Only d_invalidate() is needed Date: Sun, 24 Mar 2024 18:40:36 -0400 Message-ID: <20240324224720.1345309-311-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 4b4686c593996..4ca72b08d919a 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 91B981DF78A; Sun, 24 Mar 2024 22:52: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=1711320748; cv=none; b=Gg9E+UtyubiVw5RFceWNi9tdfM96hURIU2LIT/xuYZCTsDsL8ifDKI/uGhDGPWGft/g5ZFBqBuaL08Gm1NFJ0P7UW82nMXWylnLDv6GXl/VBXH66Wh6rjSKsC/6Ex7f6H25ykywGijuWOoygOVqtXSeu9YkI7rByoHNJ1Hxoepo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320748; c=relaxed/simple; bh=PSfaJaGHfeh9RYxvNOEV3FNhCqWgQCV/Di0zLdoOfeM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=UREnKvR3lW8IYG7BJTObhLvgufBdKR2Tg9ePfWUWJle+9LCdfPD8bIhY38EoI8SiaO2S7pbbGf+iKmlHd02Y4cu2oXQ907m1LG9gsnDXSvJohi8PqXmNBxoxDmZT3ka1xjrDxC6lOWVPeKvObpKBIKijVI/cl68g2s96PrUzK/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=rk3QGSJ5; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="rk3QGSJ5" Received: by smtp.kernel.org (Postfix) with ESMTPSA id BBE6EC433C7; Sun, 24 Mar 2024 22:52:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320747; bh=PSfaJaGHfeh9RYxvNOEV3FNhCqWgQCV/Di0zLdoOfeM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=rk3QGSJ5wGHaSdINwE/zsQMLG3OEH+ZgqZ2KJ0wf3wOSqxbs7LUxO7cwd7TBBsUzQ qDPJu6zyR3A46A5j13v+8RlOUGtJeBrB/VLRzVeUjtFqQWXqPEJ4x1mvJPW5Rz87Wv ZmZzbLFKEvZuE6uj1FvVrVUdZdjPfs74aC4xZY3EqvJ0QPYuVrnQkcBMlIS8h8N/AO 6qGFv9dDxfQQ38yMI7vXKRYu09IwBztLziEAbodca0re/2vQp6kcMChmDPn/LrsFOW w3CysMyRW0war4WnLCQTUrm/rCPdQ3aN/CchC3E1dpSzj2m/3bksf6uO62gx/EYz8T jmartopfm1bwA== 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.7 311/713] arm64: dts: allwinner: h6: Add RX DMA channel for SPDIF Date: Sun, 24 Mar 2024 18:40:37 -0400 Message-ID: <20240324224720.1345309-312-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9316D1DF799; Sun, 24 Mar 2024 22:52: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=1711320749; cv=none; b=mMo76ocYWQW8Hy3VEBOEeNy7y6DjbQK1yO/rqlsLf0LCE2zEGlXfgqha76gJrKg37Tw2JAB0XmkqhAP1+kpamJ2vbCpJq5VcnN2zJjb0wHYQJQPrnOO7UAXKS2QAIyyItGFQCfOxpFsT7ZxD6nig4XrgZM26qpHTNPLmdAr4prI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320749; c=relaxed/simple; bh=ND4MKUcYcMyYShL2dADwCd1T3/24PLG/95Zp8DoRkb4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=ZN4H6IuA2bLpU23t9OqB3smoamt/MMsEV9tfzgDR6wH7r3l7M7C/NqAqSf97h4dn27jSXQ1NAhVeF1Q6fX0+FQta3a59ng9bfF++/h3C//5p1hYQkcW2GtquKDr56nwtCriSvvunQ0BBX6JGqdBjIDoG2bOof6apsRMUaMztDSQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=UjVEc47v; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="UjVEc47v" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B6916C43394; Sun, 24 Mar 2024 22:52:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320748; bh=ND4MKUcYcMyYShL2dADwCd1T3/24PLG/95Zp8DoRkb4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=UjVEc47v+4R5zufa4WGNNU1csMRdYrvhDrz9BPJxzAgj4VNx3j2dWKEq4xm3t452b UV9inHZQx31Zw5KXPISQo/6bYGRUqLRgRoieNdOABvg2M0v5z2OKehql+qaP+xvJ43 XgpebxAQXcrcU39GCT+zsDVcEwqeB7UcHwke1jSfU6/K1phuaO123UOwJ2/Of7imlV lr3oWj9esv0fXna/dfksIb6qm5mXgqVmaTrd5puPTDe7SXny0gsKtCM6d4Wee39GTW RytJIsdMtm/VNp7L6HwgM7Eup3PYatNwqyyQC7oJDkuhLDHqokI09LXn+/lCNZfUOu 4lNkgSusI72mQ== 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.7 312/713] ARM: dts: imx6dl-yapp4: Fix typo in the QCA switch register address Date: Sun, 24 Mar 2024 18:40:38 -0400 Message-ID: <20240324224720.1345309-313-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8AA4F1DF7A7; Sun, 24 Mar 2024 22:52: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=1711320750; cv=none; b=YaUBkFtirzN0E5KoMHwncMC4/XbgxL6kthZEGyMQNn1jgp+hnNwThdNobEKyc0o3zMqzHJZiuuxMhIp0uinOmFjdI2viT7tDeIVOOsX6cU/LoymrB/hnTkQtFpeWGnyTmF/tfQPNWzFWzQvQnN14oFlY0MYCSCkKUUPNHEcG/2U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320750; c=relaxed/simple; bh=qDdkBp52whbIdsEQJeQ73Fo2VF9QAYIUfc9LlJxEzNg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=tfMRfvXbTd91sQ0hiVMWRGxueSCj5I3vtPFK1cunmttqJhhTuID0MuaZni5ZmQE9G/CvhkxsUBpX2R2MHpJQ2Gcm/qycrhvuZCtqXGxaGOU+pkLP3JZYeHZ1qGgk1U3F4IyP8BRm/pHhgOZA0Ktj3RV1Gop5rI+ScuUH6efOJ4c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=A3GTbEiK; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="A3GTbEiK" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B96C3C433F1; Sun, 24 Mar 2024 22:52:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320749; bh=qDdkBp52whbIdsEQJeQ73Fo2VF9QAYIUfc9LlJxEzNg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=A3GTbEiKL4oA7IbiFqaN6DzEgCqQJlqd/Hg5Uza0xp9wACvTDCxdXYaKZ3QW5BQt/ ay4hSjc7z4mp5ufvcmf2FpWhxH6RnB+NsTHgUwZULqbVJdvjtWFomsB8AnMo7pV+HC ZSqRa+B7fj4hTckhvOanxah2Mjs4G3m0AgOJIz5fd31mqo0rKH6H4QrDDlWwVDwdoF jc6JECW7O6W3sC8h700K5+aDVXd6kJJsdr7fR6UPAo7P3WzkiYLM8FYj8tYLSGDtVd hOjrz39v4gkYhNBWlQ04DV3Wu2noXnFScsjcULxDFV54ODptchfk7HOl+gz7suy/6b M9fXpakaofjwA== 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.7 313/713] ARM: dts: imx6dl-yapp4: Move the internal switch PHYs under the switch node Date: Sun, 24 Mar 2024 18:40:39 -0400 Message-ID: <20240324224720.1345309-314-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-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: Bagas Sanjaya --- .../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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9CF481DF7B8; Sun, 24 Mar 2024 22:52: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=1711320751; cv=none; b=dwspfJ1t72+MPe9eB1kXOMrBZc4LtC7F3P9TyXaU1gfZq5FdvtPFVRxFJYZPBrZYybCd3eOQEWFVZuxGCbCkf3Q7pcebe9H23/wBMHa1H/mzO+A0txnftni21rrpGFR0k9n8tUV1XlT7NEb6CAEX+QPlDnIyixzozyAnk9nd6Jw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320751; c=relaxed/simple; bh=+I604YvrVbmBP/fR3nTzqZgyNQVHXkAtJ9TyLm1Qv1I=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=cvhb8SjNXEx1bWQNTKLKW5OhlQcwAI5nSjKC5HajJP43N/HiY3bdo10IWdoim7X+SSvQGj8ifC6uRCw0CURs6kFH6IpRX1DYGQHOMGJ5n6LQdCGaxHs7ipkwK1OmmfYa09/1s8rKLbSrN+fNlmgX+CjSFEWjRh/88PnYurMcVy0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Svlkzqlz; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Svlkzqlz" Received: by smtp.kernel.org (Postfix) with ESMTPSA id BD9C3C43399; Sun, 24 Mar 2024 22:52:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320750; bh=+I604YvrVbmBP/fR3nTzqZgyNQVHXkAtJ9TyLm1Qv1I=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=SvlkzqlzeAG1vtLpq8UDLZjGJ93d3RB2otBD+eqTLrczyg9EFpRiR9xR1RVJt/JoY wluPn4/ClPM59Mtho60jd2EhXH85Mtjx1V4hbtycTeJ4BY0MrEiBBm+lmubjfocYcF xsonGvm68gAj42d7iXJBKcw3QbiACZKMWMrpuHW82n6JEK3popTkLiAyb2QBOHaHnF XVbDZ+F9O6beg4fkgBPxWVZO5urXDs24Zwy05Vp33xBDTfdyKKCYbPoJpcEY3Y901D vWqROmJC8ZGwZxVLPoJpepW4CinJhAIC91GAVUnKTd+7or9vB6jJSyTLDmejWBGZe5 SVBk8/kJDGzlA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Marek Vasut , Shawn Guo , Sasha Levin Subject: [PATCH 6.7 314/713] arm64: dts: imx8mp: Set SPI NOR to max 40 MHz on Data Modul i.MX8M Plus eDM SBC Date: Sun, 24 Mar 2024 18:40:40 -0400 Message-ID: <20240324224720.1345309-315-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 5828c9d7821de..b5ce7b14b5434 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 86BD11272BF; Sun, 24 Mar 2024 22:52: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=1711320752; cv=none; b=eDUPArZ8hzEtXoSmpa/mSXcX74F3tP08+E9kmGOKsHBKTaIo5Vq1gzgKRKMAwkG/T3zOk2IRZvqIcQ2Fez1Y8cZCe7FpOi+J3bCLSfyKa+Qw8AgfRT2HvpulMSxtNyD7pyuazDD0IReXy0btC7Zt7xoA7BbW+QbYS2yb4x32+Eo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320752; c=relaxed/simple; bh=y5w/BJhZ9ZAo7JQPzIZug2Ac9FBly8WTfC9ZuWIKE8w=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=RevxKE4VLYvYphfZUWvG/SFeiceFM/E4tTmhJtYBQyTFEYAH8CQKjKJQvnZhedmj4PAx23M/uhFJ5RsGx6Sa8c4HcD8wMgF5xozEVRPiWFSzk0/dcipR2f+UJdAP3ZH1ksDew9PnnFTtWiuq8N7Vxpc/XtmQ1tOVUlidq9pd3Tc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=grpEzKsE; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="grpEzKsE" Received: by smtp.kernel.org (Postfix) with ESMTPSA id C28ADC433C7; Sun, 24 Mar 2024 22:52:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320751; bh=y5w/BJhZ9ZAo7JQPzIZug2Ac9FBly8WTfC9ZuWIKE8w=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=grpEzKsEs7cMoGPzNKoThbgZEJn8nu/hwTH1ZPAtC3N7SVCHJ7nYhMeIS6SNy1wAY bV+FAd/AvvQyg7uTWqh2oK6gVt4uttoqrBWasFvVP/F9XTOZm6yCc81UTk9v96ZmGP M4fkdI2WpaTf4kDso+Q1RphnyqRWADtt4gU+ZxMsZII0pFwqFotVQ0bbRz1zskNgnD H6t7eZTOi37PhmJsWXa60eS0Gop4UD+4RYcQPx89a0/Z0dXEDcL0LPldJq7cYne0T5 LXPhxlBk1jgCnV6UhE5PcZRbdwiXzx+MoiCC4K8ynqGQLvM9Potd2ipTESxnhhRQ5N /V8TA4mg9cqsA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Liu Ying , Shawn Guo , Sasha Levin Subject: [PATCH 6.7 315/713] arm64: dts: imx8mp-evk: Fix hdmi@3d node Date: Sun, 24 Mar 2024 18:40:41 -0400 Message-ID: <20240324224720.1345309-316-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 75E4B1442F7; Sun, 24 Mar 2024 22:52: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=1711320753; cv=none; b=iAdCANCv9TLYUvDLmww0jz1Hrr4q/N/ZNNE5xaiT0Agez5LrpLqlTZ45lJSMTTutJU1grAiu3fk7byVFbAhJiJ9ueYJf005UnWG9+pUklaTAQ8NFWxjlrbvudGob2VIwaGURnFDqPfnViB7mJ/srj0BsJtu9FvaHUrSAPD79hmk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320753; c=relaxed/simple; bh=Ta11fKnZobjyFkQcnU/qNvjknrk6rRLtjqxBTTMP/JQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=nFVmi75Tw0sz7vRl+PZoGE0Rmu89J53U7W8NXTLkWI4gUUJTyU5pKSOGpbq929JjXKwLho2e1oIrbMDYqhlK7ngW5LJHDkQSUT8Ksvq4OXmpgMmbzLXrYb0SsWt5dxj1a7P6fJcKmCNqQUnMr1uFczzfJXJp9rbQ6UAHgsfq6ZQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=HmIZSVsD; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="HmIZSVsD" Received: by smtp.kernel.org (Postfix) with ESMTPSA id AC9EEC433F1; Sun, 24 Mar 2024 22:52:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320752; bh=Ta11fKnZobjyFkQcnU/qNvjknrk6rRLtjqxBTTMP/JQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=HmIZSVsD0qGMKraMeuLJBlOQ9pyX/2l+5A808AlOsUPLgNFxkn9uAhHMJlvS88A1N 0VzNIn6+3M9ftnuyqjYR19+7TNTQiUG0sZ8VDlfl7q0CdK3Ka0R2/a6LhC1uC0RfRp wwA8TDJxKVEONfjbBvp4wUYfSLQSzEHh6fH9osmi7SOeKKavBF0+WXqF/4ueZQRCbc DPAOIhgVFX8wiJF0AOezbLB6oX4sEUCirUJXVNvi7k4BkxTBfU7H9u1pl9T6a/YSUD +vSrb0nKHTUfBnn1hbgg7t3mRqfq81ykfx+GPT8pZ4YqQqsado/qJVthaCYk03Orlb 4mBfoiklwuipw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: John Keeping , Mark Brown , Sasha Levin Subject: [PATCH 6.7 316/713] regulator: userspace-consumer: add module device table Date: Sun, 24 Mar 2024 18:40:42 -0400 Message-ID: <20240324224720.1345309-317-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 76DDA1D8DCE; Sun, 24 Mar 2024 22:52: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=1711320754; cv=none; b=E455hct8S7q+E/7Qi3/hfWanhOMbfxTfTafESBZu/aEtRCHt/19qojQ4z96pj3XLu8ZGF9/aptK5xUd9SU5A3o3m/Xeb9Epq4fvBTdWbD8AcDlg+pdVMr8hapcw6WwzptRAkTiuQDBqP0OM9+55kftsXmf6pX6OAUcQhX4L5u/8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320754; c=relaxed/simple; bh=l5VQlAyCqA+YBYutp6QsOdh0u8gIR7VkiFb2R+hyqs0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=UCeBlvyxUk4pZbUQroTaMMu641ysIhNE//fcLK5kO2R+23eX0d+qOSx2XV+1J77CBEb5M6SgSNz1vzUh+6z8zXNwHA0hMG80Fe3FZzMb+KryORVo+vnOf2k9zNkv7H28AwzS4i9OPSkhi58LVEGFyiyb09cIrZJeTr7jFLIap8Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=I7AafBdZ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="I7AafBdZ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9E0DBC43394; Sun, 24 Mar 2024 22:52:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320753; bh=l5VQlAyCqA+YBYutp6QsOdh0u8gIR7VkiFb2R+hyqs0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=I7AafBdZ2YHvDTchwVDfClVA17yQ5uNPZsAN6SXM2j8RHYWNpSqjh7P6b9gRer2QG j4mQkfNRFvtISBayE/sEZO1k95QIwfBYV2RhniAyBBCOd3NDBrerm+LtUiwunHYDIM v5O9KhWunFd+BuHKsdQeexfUvixoxnHCGLcixYKFB8CusXdsgDlZ0k5epCyt2VNszg eLG09YIwMuYZNOa+nyCPG0EduLwcNbDC2VqSpX5F9vUK6N0zx5wnZip96ssEsuDzv9 By5psv6t3XyPZ6IFpqBchwXu5MJkS9HGE8BeoZ/WVk2WFNr5cgkbYnRibyue1r3UAp Xa9xpA2Ve2LBg== 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.7 317/713] gpiolib: Pass consumer device through to core in devm_fwnode_gpiod_get_index() Date: Sun, 24 Mar 2024 18:40:43 -0400 Message-ID: <20240324224720.1345309-318-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 1d033106cf396..2d8c07a442227 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c @@ -4127,13 +4127,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 3ccacf3c1288e..87ec7ba5b6b38 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 60A981D8DDC; Sun, 24 Mar 2024 22:52: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=1711320755; cv=none; b=s4P9yJ/G/8fD32HuQh1BKhzjPFUBaUxr5TCys/p+pyYdf0lMmwGIXqVtQ92+BrurasoCieG4VlNZUhX2dBNH9w2ZYsz0oGcgamt8E8advKQU9xbYI4kfbd1lPk8BhysfzOByJ+MH7/qY4DLJzFXxEPZZNJvKfCqmcU/h1t5b0Ig= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320755; c=relaxed/simple; bh=SshzBxQWI3HSxD262UrFfxJZBE5bBzCQvEdLf58jmno=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Cj4ckwRxCxUtPLVfpbAXgXebwJGHuRnlCZpBpTYKHD8MbE+6X9gxn2pTqjPu86f1rL7TXeS2C5JUoGGYj0bzVhENYqYmvmTkwuMkhNxo4AgN1sPNJ27QDbajNwAAbgi0iT2cqmWGO9P5G0kaC45538rXfaJkzLyLB+xmzrrgpwI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=pDEuS4QI; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="pDEuS4QI" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9F790C433C7; Sun, 24 Mar 2024 22:52:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320754; bh=SshzBxQWI3HSxD262UrFfxJZBE5bBzCQvEdLf58jmno=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=pDEuS4QIXaqvSNHOr2BSodwlFEL+8Pvufnw1aE1l5ZCW9580R3GY90XUYl9WTKePU OaRlsWJqbYtUQcmNJGOZZnv74PpxfvtujZPNjr4C6ACd/Vq0Qa7nsWnoiDcSU0fEms sPZv0c6zALzQQJX8OnfUUdT8n5OxMSYq2V/KKHS54uz9RjE0WZvcqy0EmqtHvmEc8M C32uUCu50zsBlmvTGp3db5Vlx28qfzb09CaVoaLY4ISyyzYjI1JVs8coXyIYIgd9R3 XumA8RT4dNwu8PEc100VVxDuoeUrIh3JpVPJHPKHToVkbLd2gL9Tn5AG2ugrNWxwps qf8K4UgZWwfRw== 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.7 318/713] arm64: dts: marvell: reorder crypto interrupts on Armada SoCs Date: Sun, 24 Mar 2024 18:40:44 -0400 Message-ID: <20240324224720.1345309-319-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5059D1D8DD9; Sun, 24 Mar 2024 22:52: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=1711320755; cv=none; b=mVM+apPIo8QKzWgYPKwqG6MOz7I+ckE7Fk6gfGVKbNS5VvOjSJIAAzJbfpQBApnf3BD+vY9Ms8xDIekEz2M2jooux5qT0l51pydLAXWo6lMtg+eMQkJMjc/XQ77o/O7VNkXdLaJbTKJI86DTd5sFMOWpdBYnXo6ALTAxaKTEstY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320755; c=relaxed/simple; bh=Gy2dyvh/ntyyDPtr64AevhST2rDGnJU/UmphK66lt+U=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=pmYBg2uV0iLeIIkpvEY7vbY/IOVGi9U3f50bXePXxODRB+GdYXycBPvsMRoCA6cAhTXh42EywYUohN70MxiwdSiLmoQ/u4/wF+G2H1FPUpXegkfe4yNZOsmKS9Ogf58prjRRqXZPZHMB4Rcw7me3YvicQd4QXqDNOZ7aNnYmdh0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=RNw4s4w6; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="RNw4s4w6" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 89F59C433F1; Sun, 24 Mar 2024 22:52:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320755; bh=Gy2dyvh/ntyyDPtr64AevhST2rDGnJU/UmphK66lt+U=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=RNw4s4w6qABQ+07Rc1w1Ql4j4rpbTE1K5xVaana+e4ID8L2ykG4qKT/noANx9eCly iUmkmeIWSHqH1XOo9QET9NMSaXILvGKMFvdrJ9L36fQ//T0YU9uEZvPP0kCLhQpWw+ 46IeMlKXloCiZqBwjEmsQKDnTEKJgErTgY17Mp67rtzu3qQbA/o0R893ISZA+L4UYm iYCQDP2bPCVnZb0Y+PoynyBdmuZ5voLi6YA9stmIvWHyd23ovvwEfCaaRs/+YNQrph nrZIr5FyJI3fYm5fYN6TNnLIMtubhcsSAkvS9rkmb5FgUtaiGZkLX+Wt7WE3DCY/+o I7Q2f0AO5RLqw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: David McFarland , "Rafael J . Wysocki" , Sasha Levin Subject: [PATCH 6.7 319/713] ACPI: resource: Add Infinity laptops to irq1_edge_low_force_override Date: Sun, 24 Mar 2024 18:40:45 -0400 Message-ID: <20240324224720.1345309-320-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- drivers/acpi/resource.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/drivers/acpi/resource.c b/drivers/acpi/resource.c index 03b52d31a3e3f..dacad1d846c0d 100644 --- a/drivers/acpi/resource.c +++ b/drivers/acpi/resource.c @@ -576,6 +576,18 @@ static const struct dmi_system_id irq1_edge_low_force_= override[] =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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 892DA1D8DFD; Sun, 24 Mar 2024 22:52: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=1711320757; cv=none; b=VbrlD0s0WcGs5YME8mo9wH7g64qxn6hoOwiNnNo1QBAGE8nfFGZOZvCUxM3OCgIuXi12wr2ub73u/QBxlIN0bcvE31hbHHC1idFnFIdylkKM/MnH8QFbzKmfr8VzUjIIZrR3PzLNeu6XE4hzHbQRlTRsg23RubvhkIrYjf1h7iY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320757; c=relaxed/simple; bh=0STq7XixVzodxPyfWUmK0TRE9zcmsjRtxfTpQn9z/xI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=CyeaCoFhQfL4dUmxEVTL8cxhnnAhoWlHVT4n+ylId4purZLTIhuz833kk4BBYLSJKFgNCyQycJ+2TImiOaoWdy+mBRLy7pPFs8EhE18DisYCiI/XX1jjHOFuYnvvkK6jMz3gw1Nh7Vgq3oIudSUbFtsAOxIkyUFTcibB1a2Ely0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=P2BL3dUd; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="P2BL3dUd" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 77EADC43399; Sun, 24 Mar 2024 22:52:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320756; bh=0STq7XixVzodxPyfWUmK0TRE9zcmsjRtxfTpQn9z/xI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=P2BL3dUd4lUiPPuktns0JaLdh4XXUPfk8POTdxHu2zrWqGOFXZv3PPiI58x9iU8JH 5yUOG9Zi+PRzlSxxfES27Ti/YNsFk5q5oZOazxgoz2HqaXiBaFrw6LyVzVLkhVAdNo o1tabIhX1Sd562dMPJQHCVC2Qoc99g4tgnEBKULWme3npeIaLEXpf2vec01Sg0cKp0 C8Iisdi36Nm58COifJl/0zWQOlo2hbcXncjQus+9gr6FWu+9KZ4hW5KaOI4wWoDjzl N/hkCSsGOFzex8QmOxIs0SiW07LQ1C0vDtHMoH1mM9mFcRUAwMXJnq1C1XWKiJPhmy epuMZRmUlJ/nA== 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.7 320/713] ACPI: resource: Do IRQ override on Lunnen Ground laptops Date: Sun, 24 Mar 2024 18:40:46 -0400 Message-ID: <20240324224720.1345309-321-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- drivers/acpi/resource.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/drivers/acpi/resource.c b/drivers/acpi/resource.c index dacad1d846c0d..3ebb74eb768a5 100644 --- a/drivers/acpi/resource.c +++ b/drivers/acpi/resource.c @@ -588,6 +588,20 @@ static const struct dmi_system_id irq1_edge_low_force_= override[] =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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3EB7F1272D5; Sun, 24 Mar 2024 22:52: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=1711320758; cv=none; b=FwDFE47A1OLroVosJDCpNUx2QKF9l1cNOd92OaZVoPE43eREo6yILFbRRcXN7RrIRrvE/L3xJn4NAljFL6abkty3MOmJTHSjSAWblswj5mxOFapJcgUf6cYBZ6Wl9LaUdTFs6UjPTRljSljqHXiWdDmwqOGbtIzIjzt6r+GqG38= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320758; c=relaxed/simple; bh=XDtBQWhsDplhQAGI/ZUTgS2XDcZOfYklpJ8bHYM4Src=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=X+bmGSMILiOraYyMHIRQHjMxf9rTI+ucwLPC299suE4g9VTzz8rfP5PqDHGl+EvKoe1uOjeyu1fbhZKHzEJH2YSVXghUMGzvmdEl7tPvFV1M4V1aSOvLoSJi4G8XQnN20x3yAOVwRV59pdvHDCPPEQm7kVm0WyK3xs25EEcT22k= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=POvjKDEl; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="POvjKDEl" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 63863C433F1; Sun, 24 Mar 2024 22:52:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320757; bh=XDtBQWhsDplhQAGI/ZUTgS2XDcZOfYklpJ8bHYM4Src=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=POvjKDEloxaIY5r9KMPKSwZ8ChxYfHqDNSW7j7znn/LHphB50fiihGbrZ9eBDc9NI ARoVJF8ZiSilzgzJgvCW361F2ulPx27bg4LXz8f0niY03812JBdq/L2Nr89op+qawe pMrFJxvX17EPaMxhagmGT2gpnYseEuAW7s0aSHGYiw05bg+RGFPpczUaEKjvAmECxQ Hzv9gvhsllYDKbOs6J7mk8yybXZC+/j/v2v4qTSPhlsV8xMvbJbnwzziYVDhHspEhb 8pZ7ncroiB7sJWrS4cTyaeIrVRsZG/KqP5riqZcvMmK+ABg8slCUzks30bMctA9F+P zK74TE7W8Fhpw== 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.7 321/713] ACPI: resource: Add MAIBENBEN X577 to irq1_edge_low_force_override Date: Sun, 24 Mar 2024 18:40:47 -0400 Message-ID: <20240324224720.1345309-322-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- drivers/acpi/resource.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/acpi/resource.c b/drivers/acpi/resource.c index 3ebb74eb768a5..c843feb02e980 100644 --- a/drivers/acpi/resource.c +++ b/drivers/acpi/resource.c @@ -602,6 +602,13 @@ static const struct dmi_system_id irq1_edge_low_force_= override[] =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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2B6DE1E0621; Sun, 24 Mar 2024 22:52: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=1711320759; cv=none; b=hOvjpuM/KtqQGwaEA4iNUxQWvLppPEs0kwl8um2woBvdJz19VzMkgzSncy6FonMps06Ahyhpfu9eo1HCV6voomZwnxQ3X1h9kvWCz+5RmUoWLE1BOe3fC50Zb+HygLntfT4FPVeWlefRzz0WrhTL3qVg5E2aYPy0TwDwCSJx0DY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320759; c=relaxed/simple; bh=lqQQQTexJ/MMhl+mj3ydgYMv1bw4L4LJ//0o9zshRDc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=HdWXZse72MnZ7HoD6MfesYzb6VCGJLpqbO54v4tZx0DYswQf80s23VR4IQwT4gfl7pYC9VIhMNuOy8k0fg/7+ovErREB7UToXdw/Kffm1BntDb+a2macNXxeG8+V9IJrNMs155VbxRykbAamiIls7Rn6I5qGRNCKjG1RNWfLhQ0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=dholJIfY; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="dholJIfY" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 69558C43141; Sun, 24 Mar 2024 22:52:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320758; bh=lqQQQTexJ/MMhl+mj3ydgYMv1bw4L4LJ//0o9zshRDc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=dholJIfYo3IRwtSqaYSBK03V3DjyXlNWvHfFHE76PBS1YQYfiPPA8QHxE9ytIY7DR 1j8MKJZ9M2GfDjBzCeCmtJhD/ned5SejyAQYPZWAXqTK5p1Z+m/SgWrLSInLsYTUEu bvveTLrU3tMkBOTv9cWs0N0SupJknUCy7WgZdXSpB24fAX7q0Tahgsy0gmHClIpsUD eZmElhPAjgGSQyazRutoo4DTngHVb7oEiiVLl9HdmqEY3U8KkOqqEsiMeSMjNn/Gbz fMn6urUXonIyrwgX42gNrC0Fe8Q8IR1n+Z+UijL4Cg2bXD71Y0xTFAQGYQ+n6eLXhr KRh9GZ7lfntsQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: "Rafael J. Wysocki" , Jonathan Cameron , Sasha Levin Subject: [PATCH 6.7 322/713] ACPI: scan: Fix device check notification handling Date: Sun, 24 Mar 2024 18:40:48 -0400 Message-ID: <20240324224720.1345309-323-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 02bb2cce423f4..35ad5781f0a5e 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_enumerated(adev); } --=20 2.43.0 From nobody Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 314A41E0633; Sun, 24 Mar 2024 22:52: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=1711320760; cv=none; b=IJTJ0pg7NIZnZPSSZH7y7Mg0ZUUTo2vrAgQSe9rB9gmwV82dMyd4h2g3votzbApsWMkOOu1xCp38Wef8+8oyJgx0rLaZL0YV7bYQQoXZC9wdDvqIWouNt9wOnqnDFad02+Wue7Cfao+Xx8u+CcJpZLTVaIkBJoDrSm+l0GuSZE8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320760; c=relaxed/simple; bh=Cv+D7q9WvVAequB7TUaTMLoBK1zzgqdQ3pgOi7ApiqE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=bxPzL0Mann1L23ex9yN4OUDOI/MM0fdRoW75JYuREPa5R6DKC2p+aqWnLBoY0Ez5tsf1wnPHbZ6EVXU9ai7YADiBYoQ/d8H6ipScP4LO5tqrM6tv/zCHdsuXKRR3kOmjsEuaMIQL9SPse1sNhJfjU6nhGLhA8ZJU0gxwUmUMOfk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=N9ZVFzCO; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="N9ZVFzCO" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 52ED3C43390; Sun, 24 Mar 2024 22:52:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320759; bh=Cv+D7q9WvVAequB7TUaTMLoBK1zzgqdQ3pgOi7ApiqE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=N9ZVFzCOmlqdq8qhhLGeYisyQw+3NFolMjpH0HVyzvIS16PiY9IFGQ7viEe8LaNhR aafjVfnwM4Y42qlkX/o5N/as06FIVesjRKP1/dRYl57HhJFO8gg/45tUD1b/suJfg2 AYpE7KAeT9/I2cWFANYlkzCdw7OKHM3HvyRJIzYlmX5zMtp28W52X4zQy9gs4tbkO2 oDOokVqXYYz1Fkmpm/yHrUcdxo6bYUmnTl9pyLzcQT3eJl3DzDd55rMLP6CYKIR3yg BlAnxIPAhMGBe2lrprkMRE3R+3UtwGiBIV/p1pSnwFfkgj1i4X0hpyN40SxksAHvmy tUREsdYc4N4wA== 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.7 323/713] arm64: dts: rockchip: add missing interrupt-names for rk356x vdpu Date: Sun, 24 Mar 2024 18:40:49 -0400 Message-ID: <20240324224720.1345309-324-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-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: Bagas Sanjaya --- 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 c19c0f1b3778f..6a9bfb0550c04 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 15F111E063C; Sun, 24 Mar 2024 22:52: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=1711320761; cv=none; b=Z0QMgymdaKXwTgeS/7ow0G/ZLH/LEPoyFdvK1JyJup6yWaSx7qcLHGrJhNM/U9paIjYXzH0dByxZPkeaLPOP6FWsShMCN5iJQe3Ri/yXRklLGBadRv9kvMcSiOfidn1Fc1MwTUdrkpOlZUQdXgzabQnYzzDkW7ZqkmfwHHa1hUE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320761; c=relaxed/simple; bh=3amgfx0AshjHIMz2Es+2BaOqMWFTibDYt+16ztnBPHw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=q6EdmR1K4apuHxUBrUUFLoKj6V1aNYCdjQcBKEyavVA1tjDtrhAoJ/QDxUzRO1BhLzywhgc8xAH6h6u38YzS2tpIflh+reQXsSpn0kgOUFX+LadpOSTO781zHakk4MBlDpIaUVemL4YDUKlM7u9QE5DNwrHdhQLcTVO9w4BCgO8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=UedNUTZ0; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="UedNUTZ0" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5475FC433F1; Sun, 24 Mar 2024 22:52:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320760; bh=3amgfx0AshjHIMz2Es+2BaOqMWFTibDYt+16ztnBPHw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=UedNUTZ0w6AhTw76ew0X2RN3dY/0tXb9AcjxZxjlmxz/QS2EsieD25Ghi6Czi++bT 46xHf/w4vfO1+nEUPlQknXKMgr+vGvqO20+2oyHUZ5BtH1Krpii45By0PVMHqa0MlF Wz+AMTiZ4KUN01TvWfElcWYiNPc7TFzX4oPfMcX/ppG9sQacqgZlmKCH/QRqfvypdV aPHClp+Pl4r1bQL0pqGc8iVZZTb2uXmhV9unlgU9AcDzrWzwrIzeYjqjpJIRbZX0iY T44z8qlQIdKeMAi1IA3D2FlfvCesD87NOn7M8gGoPkJKXF2NKcb4KsrBE0kjQfr39y RwZ8SpVjt78iA== 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.7 324/713] arm64: dts: rockchip: fix reset-names for rk356x i2s2 controller Date: Sun, 24 Mar 2024 18:40:50 -0400 Message-ID: <20240324224720.1345309-325-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-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: Bagas Sanjaya --- 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 6a9bfb0550c04..92f96ec01385d 100644 --- a/arch/arm64/boot/dts/rockchip/rk356x.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk356x.dtsi @@ -1124,7 +1124,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 416771E0647; Sun, 24 Mar 2024 22:52: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=1711320762; cv=none; b=RBUN2/9OzCnaSyL7qEIHJdV9GJT7WVPJZKySnD9B4Pva1PQApG+fTzjljzMTUbg8vF5usfp2KzbieAKUYryoPcp9zaQaf7M/GCNuhLDUU/nvWGOOmMH8ZV3enLcjxvuojO+fojM4ST8qPnCwO2sFyUbLjvVvQ02L6e0o+t2njHg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320762; c=relaxed/simple; bh=yG+SnCAZ63RHQ0LSud0TFiCY3rBSvIL15pC7toLImug=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=UcR09DLgp/0wuiJ4oe4V3IcNbH7jSRziDyaBJSFgVtdJudcHNxwVQgA+p3499vP27v1hDV9CmTxVE9PYemO7IwCsIe/24FE7sOtSTi9xSuD3p8kNJVgo71OriO2GZoiw/GuqVaPppPM/aK8sdULyRxhdox54muTe/VhKZSnUT0k= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=U+p9x9zL; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="U+p9x9zL" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3E564C43141; Sun, 24 Mar 2024 22:52:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320761; bh=yG+SnCAZ63RHQ0LSud0TFiCY3rBSvIL15pC7toLImug=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=U+p9x9zLAQ611ddU8DNR7HmRRZReY6KBV/FvGHudlaVE/z/xXln6Zmbx92d70xx+x FiSZV1hPK/Ai/rsT28Z3hnZXQWm3LuvTC4ifhGohphspbbdkaYumzgwcSk47RTLJN9 X8WYxbxK37Vb+EzVaWtPoDazSmseYegSYTHylqLIkSBuzL/TXlx+SSGH7rYI4a4Rd7 KRvIxRIp2tRtGYHDr88BGPgy5mYUbhOWf+IrH7MgE3zqICvsrGfxszaUgh7NB1viTl 4SQfARjiSH8JvQFrYGnq8t4IflaRibg71Gq/urSVbFd/G6zrTWix56Wm5dyenub837 NmQ+DX+zZLCYA== 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.7 325/713] arm64: dts: rockchip: drop rockchip,trcm-sync-tx-only from rk3588 i2s Date: Sun, 24 Mar 2024 18:40:51 -0400 Message-ID: <20240324224720.1345309-326-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 f9f9749848bd9..1d262cd54c990 100644 --- a/arch/arm64/boot/dts/rockchip/rk3588s.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk3588s.dtsi @@ -1589,7 +1589,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 @@ -1610,7 +1609,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A30E81E065D; Sun, 24 Mar 2024 22:52: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=1711320763; cv=none; b=aUjn1F9bWkJjmBG+UoGdZLpw4Q4BxTv205KBXL44Fz6SF4wxBUrsqz5HSNQo9ek2BLRwJbWUuHYE0JDCmV5s9H5uz3FcSG9I8E8rVm9FLmvGFpqGVoU/DJMhvDu9KRVm/ksclWUU92ug+kqN2sE8Aukyxl20KBZ3a6TGMfpdKnk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320763; c=relaxed/simple; bh=FwRUlJdf2CwufbTEJaPahXujuWP54HzSK35Xuao6dhE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MtTgyt10MTobZiDyLSlfXlL1Ge0EKSHHG6nazyV2JTYOkS04d557JyOZhyDUQMRyFvf93RNHE5JyL+W+uKVaAvhq/n2Ep2iGth3zF1A2ZYR7+lVfjcHJ86oTLDz8dEbOziCLrtmWPmlvXFWjd4otu5QmG1ubl8IfysT8HH1ZlqQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=NqmmXN+h; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="NqmmXN+h" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 66E14C433F1; Sun, 24 Mar 2024 22:52:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320762; bh=FwRUlJdf2CwufbTEJaPahXujuWP54HzSK35Xuao6dhE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=NqmmXN+hCf66Tpu45HAUgWsve5ZD6dEsoIJha0Qxyl1NeB3UdWa1j35sytKtRvhAG fY2uu2O/uq1XHorh4rWfsu3vKTBm018XmP/++fDidevrCJR/KPi/s/Soy+g8m4EJiS cQ5QsJ9WaZewex33c2ZoY9OphSNZ39sKvzkLzmLnYPpurtpJYfbv9xVpuD+HlxBeaF 7dfTyvbM6eJk7NuoyUpUHptOPOd9Q+0AEVYYdHfa+4LUUxO9Klx/wdKrIWgWHdHId5 x1DFq440VJKrQMFdkpSE6gdnPodZFGduF7EliVZM+24Z8rNzHRX2I7VVs84Fgf/bQg b4JaFt4Uk/6BQ== 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.7 326/713] iommu/arm-smmu-v3: Check that the RID domain is S1 in SVA Date: Sun, 24 Mar 2024 18:40:52 -0400 Message-ID: <20240324224720.1345309-327-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 4a27fbdb2d844..2610e82c0ecd0 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 @@ -364,7 +364,13 @@ static int __arm_smmu_sva_bind(struct device *dev, ioa= sid_t pasid, 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 -ENODEV; --=20 2.43.0 From nobody Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 579FC1272DD; Sun, 24 Mar 2024 22:52: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=1711320764; cv=none; b=jvRmzPtLl3AMdVgZuafOud89+ta/1eRk88K5hbzZSM7B7pLhR8Yte/2AYf1rZX7ZQGYwN9L8EFaJ6QUBUbrEMWdBHiRwdjmlIUWNuHSGSQJAImfoMR9PpBeBdedTQvqF/xZOKbVlr9DMabt+CKhAJow4zqyMJlu5n1VUwrUWDAg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320764; c=relaxed/simple; bh=YNZbHaV8JW7SkCNxUeXarPC6P7Kv6wqn4pMipRrje38=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=OcS0VOjpRrwu4GsHqwtiQehORo7P6CsDS89zcDG3sJHui1H90WO2xf633zgHed4RjRE0bhQG5waiqYLvfK08KQxNYZ6TLJ74BAMNybBf1Mwo75j8tMQg55NvHIj0HfeWes1/ESPLSXr24akx4U0T0z8uS+Rs1+FFZZExhmJC0NA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=OG3IODSy; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="OG3IODSy" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7EDE2C43399; Sun, 24 Mar 2024 22:52:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320763; bh=YNZbHaV8JW7SkCNxUeXarPC6P7Kv6wqn4pMipRrje38=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=OG3IODSysIr0OO2eoVcUOfFdTvHYbT2s6aaDWWJm8CS/MXcRtj5GPdfDr/Z62PjUJ 3yKL9zIzY70080i2V7fu380UJWChmRNvTDgTVjYN27viRbEkgtXREJB9hnzseTr1JW 0ioXX9GalFu4tzM783n4p7Zyyn1HQRw5nUohJx0EGSxvTC1GhWfREQGdIi2mndJlsq Jt59IjlmSQ17roFHKHTxwy2C6F1JZHWpU3VQflODl/4zqxORfUYK0XnQxwM2cF1fHo 6hBZR5cKOUdm5570yA6GZSXl0NSvzlzzQVurBdTvcYo3kdBvGMM62gfcnxuKEyBPMr a+0LLjpgIrWmg== 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.7 327/713] objtool: Fix UNWIND_HINT_{SAVE,RESTORE} across basic blocks Date: Sun, 24 Mar 2024 18:40:53 -0400 Message-ID: <20240324224720.1345309-328-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- tools/objtool/check.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/tools/objtool/check.c b/tools/objtool/check.c index e94756e09ca9f..167603f839851 100644 --- a/tools/objtool/check.c +++ b/tools/objtool/check.c @@ -3620,6 +3620,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 599461DF7BF; Sun, 24 Mar 2024 22:52: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=1711320765; cv=none; b=AlHazVfMC6nmUK+Qm7GB0/SLjA00mdUlEgtFRKsoL1dGMvhWIWEHDPtrKQ6Y5fYqZkoL8wo9KTiDwzgWA7+I9cM5Hqn42zIuhPGTynSey0ogdRWkpVl9a561Vwj0aSo73MV8CH2bOqp1wQfy1bROOTsmS+DREl6nTOo4iDYs8EI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320765; c=relaxed/simple; bh=CWRgix+uDvTPQLyz3Skw1HxUUQ9clC+hsv2lUdDt+KI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=V5GQxePc5uMHsMDBeRIesUCMA+zg6ZJfljVqJbS4QOJDhTD1XtkNrqi4P5DNdqhG/6ewH40Zy2n1tkFg4CbmqNCkF9W++V8Bj7mwXWVBKhgJfrRqRM+QazJDVZsfopeGYfkuHAqPmCphdmzq3vwq4+LMWvbWlCZouH07I2Dj2vg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=JyX9IrP+; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="JyX9IrP+" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7EA9EC433C7; Sun, 24 Mar 2024 22:52:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320764; bh=CWRgix+uDvTPQLyz3Skw1HxUUQ9clC+hsv2lUdDt+KI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=JyX9IrP+mdFNymz0hhMFi1Xamshk2knCz8qBSwi6VKwe8/qn14YeWGvVu1bub3CMH SqYQ/+aEGMvWfrvHiXQYQZUF/qXE6rPBwA9E5Ie5aURSNXUdl6Xn1Tt2Equ3RkXVOe 22ZR72n5sy2KRYQ5xg2COlQTUS1juzW5Lc/gppInvy9bQmx22MXudnEUFXUu8g+U80 lkzPPU4cp7XsEv+1VOEWm0rKDN917abkGAj6VauXgGgfgN0/fNGgghYq4o6gvNN4n1 Mohylw8jH7fqWSyPkxEBb+BHqMlzm7eiiKTB2pxeJMbvy9ZXlzPdP6foCUf8CO9EJ6 WeQd5GIteEFxg== 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.7 328/713] x86, relocs: Ignore relocations in .notes section Date: Sun, 24 Mar 2024 18:40:54 -0400 Message-ID: <20240324224720.1345309-329-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5898D1272DE; Sun, 24 Mar 2024 22:52: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=1711320766; cv=none; b=QcDUL7vrssCVXJusZFKAMJjgm+x3QCnlc+8hLKoEerP5AG+a8JwGHVP3kXa3fsAtHAQY8Mk0VkoOiD1SW+ODbF2qt066nlpXxc7xhfVOFjp2T22umPRgGeDMRpHKEVaP8jA2HsmUt0MmdGgYW7TxGv6Hg45TjoyVDcEWOzGK+Ik= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320766; c=relaxed/simple; bh=0ZbiRjqbqQPMs4lhJ5vHIlkejiYFnKo63dXZozmQ290=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=L/tNO2TlMcN1pls49Wz64Bj5+BeOplExEquvjsv7pNUtlq9nfaEST/YKnj3Qu6+UsSz3Hq9IOcp8o+dHcc0zdbrgmexCmXtKp7/SX0YEJaz/dRIKK5sH9A3VfpVYmkmD0Ok16xqIRmI2I7NRXnFWBhPDSxBuN63jW7xt7k3vONM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=A9W8QL0i; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="A9W8QL0i" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7F474C43394; Sun, 24 Mar 2024 22:52:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320765; bh=0ZbiRjqbqQPMs4lhJ5vHIlkejiYFnKo63dXZozmQ290=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=A9W8QL0inziEMLnsyaP3lNea/VYnYNAB2e3Eujj/i2UrDn32VnaoStLagSShKU3UE SiUxL8WQZ4yOFrJxZXIiWSg7lzLqj7kSLafZdQdooxfC2ZLSJmv+wshIzbJzDS39le XVBJDgaNMXJNWuFo8ppJK9jDNznwBKR+GoaHVih0PadgIdUeHpp5k1Cb4rCoyJu5HE 4FpziHfz8rK58ZnbG24Gqd/eZV4+F9ah7fpWmp3xa67ajfdEzZmptuEFEn+JIlpPRW /40AoNnWarzm/BAXn/JosT6zeS3QGkU5M/qH5ooy4GY5L+Xi+zoEYSocPjOYgYUbys 1ht2XBoQMuHMQ== 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.7 329/713] SUNRPC: fix a memleak in gss_import_v2_context Date: Sun, 24 Mar 2024 18:40:55 -0400 Message-ID: <20240324224720.1345309-330-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 41A1A1E0E2B; Sun, 24 Mar 2024 22:52: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=1711320766; cv=none; b=BY/d1pdFxIondiQzWkNeCo19tkolCxiUgGvVCZe9rPRhbQwNMDyumtT1ZpfpsfysgrIXilTbpZv2qTjIu5P3sF//28uhu+yHrAe7L7k5jvYIvWu484lJEHqu9Rsxoh1wWVsEEx1Uu1RfjENcrYviA8N6fKEMJ1bFdpTnFukO75Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320766; c=relaxed/simple; bh=uRoRsaHWAWpKpAmF0MLAb2S1bcEcuSVKZ2mxImqiWlo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=clEuPJdXUejlCtCE527xdLysn/4zdq/asak/sQsv48oEHO3rU5TLg04yqmtRYPkwI0MaavCsiOomBa03JR6GMnn+1Wo9ABVjNYX7ykAMv4DN2tyc0IlAnlndmtAq0Kn2te5H6uUBlf1y5fT1SG4BGe+G0P5XOccWh43O71QY4v0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=MrYyZwi3; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="MrYyZwi3" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7FB26C433C7; Sun, 24 Mar 2024 22:52:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320766; bh=uRoRsaHWAWpKpAmF0MLAb2S1bcEcuSVKZ2mxImqiWlo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=MrYyZwi3ppqlPUdYybm/B2WA7tvwx0cFdgLyb86lG1cTfPY2bGBl3vy0TLT9G8uv6 4jicFl4Ezmu/D167XJJy0oR1S8T6tc7xx4pljjOOmV5bLn8LIIMcF7mTF6BoZxD2KN W5CDaSAuOlNReJciyvAzqR5wA3Z5WEdrl/gBH3/BiGI2Vgm4ypmLKBPjDnxpXLUTIM Uada+i32ntmvdfqkg1SMG0AhT04E2A5sFmL6M1gnbjJ6RgRymtTweeLywUhBYqme4f 9mw/Z2mNTTQIuSuWJhlnwPgvCk8+pEoNUJA2CIK6rAHcpNF2eXZAtWLskzoCchJNG7 WVdgM/7gpk9iQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Zhipeng Lu , Chuck Lever , Sasha Levin Subject: [PATCH 6.7 330/713] SUNRPC: fix some memleaks in gssx_dec_option_array Date: Sun, 24 Mar 2024 18:40:56 -0400 Message-ID: <20240324224720.1345309-331-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A292B1E0E2E; Sun, 24 Mar 2024 22:52: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=1711320768; cv=none; b=jUrbJ7qJ5ub38Y+8MGlVwuXVu8hMfKIZLEbuVmdtsBHeAGhDC2XOX9FbkyiVEP4ylNqPH7YrMRPhFDPwWhKN6Yw2jhAnWgrpoO7XOP1jgKRx89488IEadMkFl0chqyQCU2IAYrjjuHsfwgGXFm+jEjRhPpZLzGfARl0Bl/wlm7o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320768; c=relaxed/simple; bh=qfiltWF1DjBz/PYTLyHlIKycekeTw9i4OTfCTEjgtGo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=R8zE+8Vp+HUSSc0IBePO3LG8hdFQ82AOjc2df8MR9Peh/b0f8Q7HTwULM2zQNaJUz5DO2NiYnmYDC49FAfD7IQHCq9siPc+azTEES9zRgj8/LqCD69wVPXa2JKbYWlu0fq27M+jIWVFrJmQppf5ZOzk7iAltmhv/UW6K8xFu/WY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=L59r0u7z; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="L59r0u7z" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6939FC43390; Sun, 24 Mar 2024 22:52:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320767; bh=qfiltWF1DjBz/PYTLyHlIKycekeTw9i4OTfCTEjgtGo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=L59r0u7zguT5yyHCuM1gH79xB2g2EulImJ7liYeHlQB7VjeHnC4g4WwrcjiHXbgwB InY1FViwrR4kejH2XQSgHa9xKCn10vH8xdcFGGelE244m27s4Y0KY/cpY6twTI7xM+ iieCEW/ork/zbUtPNJwRMD2J6Zo5NrLgOtbC01/NsFtN6y5NqDOAQNWRO74QyXV6/+ sYcZDjzJZ7uew8veS9NkPiP5VoYBBbzx76gs9a0OqTifV+u/LXugUeM5cgXYQi7emd JhpMNcmJTmbYKzNfxUNP478JvLN70k+1Wf9jOEoebXCewrNi34OagiOlow7guBAyqS Hf874fgqsEVUQ== 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.7 331/713] arm64: dts: qcom: sm8550: Fix SPMI channels size Date: Sun, 24 Mar 2024 18:40:57 -0400 Message-ID: <20240324224720.1345309-332-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 e15564ed54cef..d7e68e0f57131 100644 --- a/arch/arm64/boot/dts/qcom/sm8550.dtsi +++ b/arch/arm64/boot/dts/qcom/sm8550.dtsi @@ -3047,7 +3047,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 43D761E0E4C; Sun, 24 Mar 2024 22:52: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=1711320769; cv=none; b=WXOGMuY0aDUxzin82MmXGCgv6a5OdIgOS/jE78dnsYSzcB1SCW7hYbmmDaGt2Pd0XbSzTtk8kMOkW57WP5bW6tZfu/4nGEFTiq8yrpQ8n2j3YToCQ/FAlz2TI39Q25uXYUNoFZUF92DhHCDI15yTHvLUiKzLYPBr3QwJNMoCk+4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320769; c=relaxed/simple; bh=bu/cLGl0Ou6FdE2ZToeEYLdGrXcfFHwS3SKibvwNMpo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=T9KcsYdeIwM2mEnX0wtkxVhaSfr911TMF/gvS9SsQRWltPhFWtpvQ9dLEJ4HT7CS1+ndIG29gQckuKV36Za+GEYK/bwxq54iBZSp+Heb8m+Rtaqo07VPyo04XZfkhW0OLNjxrDB4aYMtXh4jIHikk1dUjvLClfbhiGVCXTYD4/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=WZeE0Esa; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="WZeE0Esa" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 80C8EC433C7; Sun, 24 Mar 2024 22:52:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320768; bh=bu/cLGl0Ou6FdE2ZToeEYLdGrXcfFHwS3SKibvwNMpo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=WZeE0Esam30q83VhVPet4u2JrRWJEdrBDQ44jQfpzX9luzq0pDGWtR+QxI1nVSYK4 56WtL/VkoXspyKvB2AxJN86JVg8Ai2DdWclDv4ktDDpJGeqwA+5tVs7VHFBT68hSRn irV2op3JeyXnQvgOnbzNcNmuwedYV8PVIhj1BRMMjNmFSjeev42CPF+CkVq67bWWjq 07Syogbt0J9ql/Thwgo8lUuy04zwMAwB9XyonvWJzKOgiuf9VAfmHjKKrnyvhR4m6S /bUgvXHIWQ05CTx6iwBkVr2tfqvNNmH4DhGETbbIL8N8kU//j/82IQ4YTAst8fW2Yq v5Jz4AlBd/szw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Christophe JAILLET , Ulf Hansson , Sasha Levin Subject: [PATCH 6.7 332/713] mmc: wmt-sdmmc: remove an incorrect release_mem_region() call in the .remove function Date: Sun, 24 Mar 2024 18:40:58 -0400 Message-ID: <20240324224720.1345309-333-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B07CA1E0E5A; Sun, 24 Mar 2024 22:52: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=1711320770; cv=none; b=shkPd7YjOI8P/lriutMRz4Av4NYvfyJZAnl8b1SFls5NqaKalqJ3hAmiS/HAEW1q/yOKtxpAypjG3amptdm5RBpV28+oFz9WefW0p9zS0ia3MsFl63I8pqGGIBNvq6oGXfvSe2wTIs8h0Fmy5qIRYxojuMOFRqYWQKemJBJ5O+I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320770; c=relaxed/simple; bh=yoUldDTV2NJujGlAxoNcWJ40t+aa06GDaoJ4gRjf/do=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=cUakI9hIiRQCtL4QFjBH7Wt7GmTHxysq1M/TscNmw5fpx8sq9EP+DcshtLnfE9ICx427AD7il2zT17zLoQ+P9rYcrw0teX6FMk8+1YzFFcNTTElr6p/7c7VyMUstr//uAuCBRVZAvotAs/EI32fkGwX1mU+JmLdjDZVbcYfK+/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=RlEF2hYx; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="RlEF2hYx" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 68CD7C43394; Sun, 24 Mar 2024 22:52:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320769; bh=yoUldDTV2NJujGlAxoNcWJ40t+aa06GDaoJ4gRjf/do=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=RlEF2hYxcq46dXVVG2Nw5TA9+RV6FC2RCh69ffbPRkBwePA401OrBa9Ig54iE2axk MyK141eyClIgP0a2QaqySBVPOcN4UrUt8LCkDsNlxPlpex+2rGjJqSYA5a/JfA2q0+ 9mtpwJlJSR+CDGLWs97TjBaWMxGTBuoiWY//xdjyVamgpmeOmd7jyBNNdPPlzpqGB+ 8uFns0VT+7Iq7b35ICXR8JNGwEhD5Cw/2oDO6Rhn7Iy2kpCtq3JLwcJJwrGA5MpyjY 2jrGDdGz2k035nR+po2pat0uQnV9hsp9RpvIDCupCXWIfYPKlVfSiUsgovstj1L7vZ 0lNvuCjWDIwrw== 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.7 333/713] ACPI: CPPC: enable AMD CPPC V2 support for family 17h processors Date: Sun, 24 Mar 2024 18:40:59 -0400 Message-ID: <20240324224720.1345309-334-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A5814127B5A; Sun, 24 Mar 2024 22:52: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=1711320771; cv=none; b=IO+kNq+Ppn0KG68F91G/wCCIiSx4TbBa8saotioaiyX1mNAalnzGJXGOqH5qyDUU+TuB17cSxxcV0pe68NYOYNSp4aSPAT4a3WDv9tdjhYr6rPqx5d4LRvYV/1G3eGlUmGebAv2+vuPukW7pbWrA979DRR7IrWppP+pjDnf5Ngo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320771; c=relaxed/simple; bh=k9fXtCbqXNZ0AnUWWV++CufZSs17sIiecx+63pb9vlI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=gc7TiLK4ppsWRcQUO8xluDPPLybHyo1FGvxMQvarHCuJZ2WbJNyBcPGJHcDORk4r+CrczhrDXO/Reew82Ti62xFgFVn+Nhx6NMbbhSgNJGekOvpZooXI7WJNRH1dPKiMQBGrNDEIj+zzGMX60pQfMLSVzFtDTzUFZX1W59yGSLc= 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/wqQ3YZ; arc=none smtp.client-ip=10.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/wqQ3YZ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 934AEC433F1; Sun, 24 Mar 2024 22:52:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320770; bh=k9fXtCbqXNZ0AnUWWV++CufZSs17sIiecx+63pb9vlI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=J/wqQ3YZ2o47wjII5gG/ix2WUCO7BZCsIJ7gdhb2H+OQ6J303uPPWdeeM02GpSQBJ WmJXZfLKIKMrMzxQFq1Al7wjiNoZnzd89j4LVEdEbks6bOfnZBEBT4kjdHZce0O+xd 3bYSO1BbEcHogKksNrzEnLucb/1HslDp+/nB9K9rjAjgY9UyXKzDCBiqHaOC/nERau 1Hi0Bn6cBhH/TPp295y2DXihYgKRV6Tk2GutwC5OiIqk6ZTI7xDc1TBmmugF3qMDxf w2IZ/qLiny4T48+Evc9+G0C7g5nFEtymk2c3NB2q6Y0xDtqV1erJXzR6kdou7al4Z+ BPwahHq+Q020Q== 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.7 334/713] wifi: rtw88: 8821cu: Fix firmware upload fail Date: Sun, 24 Mar 2024 18:41:00 -0400 Message-ID: <20240324224720.1345309-335-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C193D1E168F; Sun, 24 Mar 2024 22:52: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=1711320772; cv=none; b=Ay5xx8po8hO5KeyA0rnhmeX9RMVYwfdj7R+FIlnMw8IbbblXouQbNM+JMaOPLv++G/oZ1wtH6lz9jgfCEqQtQDflwAw3juCZl3F9ldc8zl6r2Yo89agF1LGgIZyskgEfH2Ygsqfc4TTtx5Q/s+jQedA7g+oJQJZwqpb+Ybupy9I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320772; c=relaxed/simple; bh=2as4bBo5Q9U5cUurpFOJDy4sVzMO8/WedLyf9JYhGBY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=OPROPNNy7Dpg3y3obVtuoG9Z3og/u+B5IfwGEegLQBjEGVbCQ+MbvAB9CbmVf4wnJQBL0ReCAmQGrEQuWPzggCRNHWbV9jiGp3EZuQvAYl0Bcrb6aL9J7xR91txZN6RgubVHDsZxD16YmI4oy8jxvJegvoGQd+0lupismr+k9AA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=TQJJaPt8; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="TQJJaPt8" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 94E68C433C7; Sun, 24 Mar 2024 22:52:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320771; bh=2as4bBo5Q9U5cUurpFOJDy4sVzMO8/WedLyf9JYhGBY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=TQJJaPt8sdFji6eML66ZNBw/4hJXf9KCiAPJZjz4rM0RKK1phVxBfXMHD/WE4PVMK JuZ7UjfCOsYCjfync41nfuqOwNnCwBYXHdSuv46orNl2Kd7alXTnM9dg9oseHiu+Bq nql2CkyfQRV8+3IvMvp77/u/OetWVRpoHPc/toByU/mOkJfYt3K3WI3FSfhcmkbI31 EXiyWvMu1ZOQR+9/fFs82AoUW9wLr1YKx6sPsJ7WgjMYVpIZn/fG2FnMAlnLLbFCQo szLc9WVERQRC8fRDX7SOzYKvP60CW3PYHyQEgml6eaKEIuZRdUCqbkBdEI8O8EisMP Z3vad2kYo883w== 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.7 335/713] wifi: rtw88: 8821c: Fix beacon loss and disconnect Date: Sun, 24 Mar 2024 18:41:01 -0400 Message-ID: <20240324224720.1345309-336-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B8C951E169B; Sun, 24 Mar 2024 22:52: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=1711320773; cv=none; b=myShxvWacQo8LPNOztQQALeBFpNCfgXvL6bUAY+Wsy+b1zVWSMHKfh91pVGaX5vKJO2UX3Ze8UwDmo8y3i4SRZ1d1tR8qOupT3367GAUu1sYX3b1jxKmfCxxIB37DJXwu+hHgJ7QO9DhbAF8UaZbI1GNu52106+vxG75dqXdZ5Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320773; c=relaxed/simple; bh=mZScqgdFbFxEEZ5oStzghiuQovEy8pryA8k/LHb0adw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=FLCsJhAH+5k+GSR6R+yEdom9bBwyhvdlEVnXWPilj/ojCNfSG82NNtPryt8e+0gRsqBkIOKwCs7ozex18d+WLWrfVaYSiaA0iGHwwH0XBF0bw6AtUNDplYkjv5J9/iJjryTOh4Nq4M1v3NfAuAe+9F6MJl3XyPY9kVzhuN174/8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=jOIWE0RP; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="jOIWE0RP" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 99239C43394; Sun, 24 Mar 2024 22:52:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320772; bh=mZScqgdFbFxEEZ5oStzghiuQovEy8pryA8k/LHb0adw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jOIWE0RPTQsVb5wnKkTmJupAz6XkgPGTy2NI2VZWJCPPiYClEFjJOKSMVBn9gMTu4 MBHi5RcgT9+V21bQmc7xqwVzec7SJCWtA77uEOimCsx4uacpXQTKSJPTNPhdGFUVtM tIEG+0FK7zeR2LWbbPUipnkh/eGLNrymwBwH6TQRVvKcKgJOpn7qVS1ZwoNxq/kfWa bO1i9IlbyrajW/Ft/XnShjmDMSP4ZYUcmN0+2tKF9TcCRh+29ZhhUTAMkLw2l2bQlL IXENEThF1SMuiPYerfg0Pw1axNHS3uYzpWt/2gKq9yBhqp9/JzfkbImI2u6Sogawrn COYHbJej3Cubg== 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.7 336/713] wifi: rtw88: 8821c: Fix false alarm count Date: Sun, 24 Mar 2024 18:41:02 -0400 Message-ID: <20240324224720.1345309-337-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 429bb420b0563..fe5d8e1883509 100644 --- a/drivers/net/wireless/realtek/rtw88/rtw8821c.c +++ b/drivers/net/wireless/realtek/rtw88/rtw8821c.c @@ -773,9 +773,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8755E1E16A0; Sun, 24 Mar 2024 22:52: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=1711320774; cv=none; b=Xb+/9KkHD+4iw7zdQH9CorKB6E9jUsgHcLilV+UbnuUWSIfskSXz8OfedSJ0Bs1SVFU9/xdH/6RJ7fPjPdSu/AAq0dpF2YoSvH9/eZAZ0Z/Z+MXHWj7kZi+wG6U/eZE3CbfPDmlkiVEB+R3s8vAlKXdhxt85nivL+V/ZfSnv/Po= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320774; c=relaxed/simple; bh=g8KGzfYA/4PhED1+413GJMaRIZogAcuGh0s7OPJeDzw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=o2bGlKfPBrCPINy9U8edXvNjZuiaxED1/tldxlmsUdJQWQnRxqtGBKeU/l4km26INRUhhwTKtcxMRXOaQakDsHmYyeAV+G9ycnDHkRyE/nkEn5bZUcdZKg0yHkxJgHY9Xfg0oSzjs+UvVMmqFhLc9qgmtZu5EkAD8CUfwqpAr5E= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Hy4rf5wk; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Hy4rf5wk" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 972C5C433B1; Sun, 24 Mar 2024 22:52:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320773; bh=g8KGzfYA/4PhED1+413GJMaRIZogAcuGh0s7OPJeDzw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Hy4rf5wkI5bOYL4vlWGt+IiMgR0j95UurJBut9XENO4laEDvJ6vEJLfxhRT1ImTos ywoeFU+byzKkxAqvrZY2ZHO9pyItI6cFG8jxx2ux9z/KLjlvo7RpoyiRQdMVsrEGWR AhsddVTb/z8utyBWfdP6FVAfcTsZ4bEsv6ExGwd/Ep7vxCIok5urSNG9PFLZ68pLkF aCddcMuoEPz9aGTkbeIb9Qf9yDk7npCDtAx5f+mXDXe+SB9qHIpulNdkmaJE1uTTti LEg21yCLl5qU8awu3RK2e1F//uAUciBCagAaiRVJhTbhudNxk9FvFctW30WuM47KWN eIdnkAY+KOFNw== 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.7 337/713] wifi: brcm80211: handle pmk_op allocation failure Date: Sun, 24 Mar 2024 18:41:03 -0400 Message-ID: <20240324224720.1345309-338-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 44cea18dd20ed..8facd40d713e6 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c @@ -4322,6 +4322,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CA5EE1E16AE; Sun, 24 Mar 2024 22:52: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=1711320775; cv=none; b=XkaVhs/+9hH5VRig8MBF5PlXJTJMx42y83LQ4yj43w8+ITYtAPzwDx2f3X3CwtMQNILDKLROstO7EKborCBf/axACDONYiIUMDB84RfcJ8bd5r2Ii+UttrJ2HdElzPAVPFBfg7Ri/4LpUlRlVXVVAcA0XKO/O3f84k1EtqUPW1o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320775; c=relaxed/simple; bh=7z9VKnEcVKttCYMNNEZ3RltWsrm5wlUFur33f2x7As0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Tos6bC4GRbyLc4WoKgfJjxPNk6KUw/AYtLxlVYh4QMBQyVJQbqzJqiJkXrtFCWWLWLPXKSO9ZSga8/l3B6IkXNHri8AEQ3ElP44cz4oDN/e91+x/7nCl6TAjS6Hxoy/KpDDYkhy7gUNqORM064yDza13MmnhDdE77TAt3xNwfAY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=QQ59bnhP; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="QQ59bnhP" Received: by smtp.kernel.org (Postfix) with ESMTPSA id AD4C7C433F1; Sun, 24 Mar 2024 22:52:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320774; bh=7z9VKnEcVKttCYMNNEZ3RltWsrm5wlUFur33f2x7As0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=QQ59bnhP6kTC+L6442cpzj9iCPzFPEBoL07n5ptFo7EsPZKbzUdwboJggyE3xSCvF 8TGC236b+edv1ILwwwrqCWNcucj36t5j7NZ+J28k7OB6YthoPamnL5kgQ51wyGt3gr 1E18uVVbPmS7ADVMlaGnnLt1m3K5ZBaDRTasExIkeCAyDkO5LVOquxarOB6gr+KCwl hAfptTBkYHPtJZykLNkfGWdEmwWw3/fDjkbbMdt/orBwVWpa9LRLoPNsVcBJhB18Gv 5O6b/4p/vmlXDQn0u4mSGMCczgW38aIz+6I2Anthawjf9VycdlNVDJzkv/U1FhV3ss dLCA2HE+gA+Xg== 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.7 338/713] PCI: Make pci_dev_is_disconnected() helper public for other drivers Date: Sun, 24 Mar 2024 18:41:04 -0400 Message-ID: <20240324224720.1345309-339-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 24ae29f0d36d7..1697cb8289d49 100644 --- a/drivers/pci/pci.h +++ b/drivers/pci/pci.h @@ -366,11 +366,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 675937a5bd7ce..ca0e61c838e83 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h @@ -2511,6 +2511,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EFF691E16BB; Sun, 24 Mar 2024 22:52: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=1711320777; cv=none; b=lL0LJeRT65IRnOaR6cpuj8FlvAqtkJE2um1udGhsg0d99y91jbG6Iqeu5mJkHLuUQoOpLMWlPAV2B4crvbbp3w0CeslMvkZ7yNXoAiVr7TtodTpVzefI2Y33PoUAEUX6HALJ7Dbgu95mkGlVmID214x9u/MsUo9iLj+JesPjwig= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320777; c=relaxed/simple; bh=xebV7HPWNpbnV+Y2jNiYGd33ZX2Fo8aoBdz1hxyhr5k=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=httpejkomWIuTPebdzKzn/2/OiDDTdLp8ALsZFib/gnweLmr5Sw6cl1EgTD1+3mCmzmLlrxRTrVbdkIA+5aiAAVXoXm5f5tt+JF8lD0U7gDtjbxzLMgbm8nv+EM9kapyUIjbuhU8LDBIYSAYWy9rk3WcHDdRrtij8dGjHcVSWL0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=RZR/gHdR; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="RZR/gHdR" Received: by smtp.kernel.org (Postfix) with ESMTPSA id ECC49C433C7; Sun, 24 Mar 2024 22:52:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320775; bh=xebV7HPWNpbnV+Y2jNiYGd33ZX2Fo8aoBdz1hxyhr5k=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=RZR/gHdRYsKljMNDPHbHDM/1+47d+fhOXWgRbkntp5z0j1XadZsbaGGKR/wglj376 GSW92N6tZ8C2XFGKx4ldbl6ubzJ0mZab6SVhVviOjQ2Q9eMd4QvWXpu+rjpnzRSfSs kljzqbwnnOlGbkX4mTBmzGFTLz6PxZb2/zqxHRUv8KAgpsVoOG11iviHx0NbZolUVp nmHlqsLRH6F7aJ7wC7g/Okk9TZH6WvuyHcQRajMAky+ydhWaOwzqZqGgyLPXWQF5Mm IF21zZtog8mLyhiE8bMcLRj/EkD90DFj7VnQz1VNWO4tXmh80EaPJVu2FM8QVSkbKL bujiYGiYgS6rA== 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.7 339/713] iommu/vt-d: Don't issue ATS Invalidation request when device is disconnected Date: Sun, 24 Mar 2024 18:41:05 -0400 Message-ID: <20240324224720.1345309-340-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 6e102cbbde845..cc2490e5cfb6b 100644 --- a/drivers/iommu/intel/pasid.c +++ b/drivers/iommu/intel/pasid.c @@ -481,6 +481,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5A8DC146583; Sun, 24 Mar 2024 22:52: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=1711320778; cv=none; b=sDWReW5GENWjuHyKBAtuM2btd7eHwRJiER75+wyNVLQUjBVIsyszGMF0553MC4TS2bAOlzBht+0dBMuh+ax2/zSVY0GJHHYJFlkjpOAd50i+8rC3g73nvwxKXFLbEl73YGuWVwCAZRIWTTQP2VFZMxbHORgUQa4nYIxT8kQBoDM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320778; c=relaxed/simple; bh=SyyvxpOBiscFYM8hG/1wtsgj6jCx4t5ztVWGGSs0e6k=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=hVQ5rv8nTaNrRpkBV6qMPopbEG1qS3lw0HdiUbMyAsnMctp2LVerjWDSvtzwDsKNZkdMCNtFozNPu/xE8Nm3vSfNBqhhI/0nIDI4KKRTK/hQLGz5I/bXYgVgEIMtrcl0OzxDuZWjecJDbh7PzX/ExOZUWqBIjxvbzbEaDv29fm4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=gfiAkPN3; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="gfiAkPN3" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1EFCAC43394; Sun, 24 Mar 2024 22:52:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320776; bh=SyyvxpOBiscFYM8hG/1wtsgj6jCx4t5ztVWGGSs0e6k=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=gfiAkPN3Me1MXd5XYxHY5yGuQVjiHB4tMWEs93n6xdpZ14fUJboS8H5U1EEOLio5b rQCHLqjOcUiLsTwkK09HkNN+StjmpPSTxByO7oauSODgwsDkyj8s1XrKHdgH06A8Wu darwpCFJYsRcPW/z4uGmb4g+BqDVAcLM82zk5sKamivzF8VaZ+aqMMtuQNFxgyr4V+ xkT/anZiWGmOUnHBo9bJSgcGVaa8IV/ud4w2k3MXE/8w1nJ0ig32zh32rmR5R2wnzA VO5wnHeTd9WP9CYcZxajEgDmKEPM0IW0hhRbg40E7dZBkYCTa9rIh15rsaL8rTdhXq gStPCswK79E4w== 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.7 340/713] igc: Fix missing time sync events Date: Sun, 24 Mar 2024 18:41:06 -0400 Message-ID: <20240324224720.1345309-341-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 58ffddc6419ad..45716d271d955 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 266F6127B63; Sun, 24 Mar 2024 22:52: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=1711320778; cv=none; b=UzTIKUITT92PcmCS9s0gxCpdrtfh2Pk5L/Wlso9Qov+fgsfs6Ke60YM5KnctYxOAvLSz7RvRW/vgvqilKvibnGP70Jc4LOjwVsCNLYdwBESVXI0My9n7Y9wGsy1g9eThDtiE2jw9QJBFGh68kVWHQcLLiuCYnGKeCxCTPZUrfTA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320778; c=relaxed/simple; bh=5PFsaQlyqdwHk72k/+qjhy0XjH+8BI1+xj26NDsB7+s=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=GIqRqgU+euOijDrj5mlwko4N6AH74m3GppbkQJUcVryFQS0Kd180PPeObVxv9E+Rm1oRQqoXUO+bfhK53qrpvaAdWs/iNSFkZFpeJoDaI3oDQbPqv2MDn/8GcBNuYx/Bi4HvjJtudpXBP+xbOCGuz5CdFe19Oisx6SMHfya5vDQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=MqEGjE3l; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="MqEGjE3l" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 34409C43390; Sun, 24 Mar 2024 22:52:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320778; bh=5PFsaQlyqdwHk72k/+qjhy0XjH+8BI1+xj26NDsB7+s=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=MqEGjE3luNu7cPLvvQA5Pbh3FRH0tqi0Sr9Ab6MBn80M8XHxuh1VSFEmPMWqqhmgN oEHnKeNGsJTc59c9kmEfmzpVptRNuX2EECT3iCNLhRzhP/n8ZC+sHjlLi1+ktS+5pP wc/wETHdbXqI8HlGF6sBJGLaLgKuvUkV9JjalnFHNBn2EnTqgRhfrGCXGADWzrIEEa 7Utfwt1npYE+CJQ1E4Up0vSwnUjcwkB1iGlWks8p/aXVvkoBIP1lc65DtTGZERgspu 5q6Lo5F+q3KCpYn5Nj74xfWXq6vvaWorzfs8xhvrrTYSmTgznC6r8XrSZUfoDaTOaL xlVq8dv637xyg== 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.7 341/713] igb: Fix missing time sync events Date: Sun, 24 Mar 2024 18:41:07 -0400 Message-ID: <20240324224720.1345309-342-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 b2295caa2f0ab..ada42ba635498 100644 --- a/drivers/net/ethernet/intel/igb/igb_main.c +++ b/drivers/net/ethernet/intel/igb/igb_main.c @@ -6984,44 +6984,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7EB9D14658F; Sun, 24 Mar 2024 22:52: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=1711320779; cv=none; b=bpyOOWKTq+u3HczBAX0J9MQki2U3JdBAM3TrBm/TPjYCUzSW8uEtYXBj0x6bsPTRMIZ/vGLA2cNrWWdICMpz8gTZw2+lwYc2amFh/0lCLtNPiruXMTm8D2EWXR3+2GaEhfS4BcO+NNjB8nSMVPBuxG7/x6vOOM5GE1HUjIYLAKU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320779; c=relaxed/simple; bh=jj07wmei3mN6ZMOc0Yk4DtKf6tEJuooz99NDNP+fkjo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=aZR7KNwMWtufeacDYLy2S1IYz37HeNMIJMu9ieBRWbV9OJDBUm5Fw/rDpa0AvUH7JE+P9Kwpq7tEGz+xF+6Vth12SAos/7PYMp+eghDiNAbBAKfc1ll+6htI3oxoU80B0ILI/ZYVNNLJqDOMSh3kcC2X7UYW/62DqGnFOm/nhuM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=dqZbv/7S; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="dqZbv/7S" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4A68CC433F1; Sun, 24 Mar 2024 22:52:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320779; bh=jj07wmei3mN6ZMOc0Yk4DtKf6tEJuooz99NDNP+fkjo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=dqZbv/7SHQVBZzazZiyQapwONwZnst91dXPKlJKRS6GhNEE64WvQ2hv3PopQ2n3NJ 0TYzGBo027g7z2JkndDKV7I9IYhScYwgusseDZyN9+BpfEDFzQjJq2KAhsURyGvGfe vn0BHYl+1ifn5M06kXpEiWFCsqnN7NBYTkFE7FIBfVqzn+tuvrFrmYg+/erPs1d11E xuIu8LtsMoLUifgwxMVaWrW0ct9hQ2rvuYvUf8kC+C2R74F5tE1KkjaKBtvXyBDonG BYR/aFcKEVRkZ42JkOuWV3YcOEat/BydnQ/JRu25vqldxt937HW6dfN5rxavSMttIw OIJRajK3qwvUw== 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.7 342/713] ice: fix stats being updated by way too large values Date: Sun, 24 Mar 2024 18:41:08 -0400 Message-ID: <20240324224720.1345309-343-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 a9cca2d24120a..dabf33cec3e1b 100644 --- a/drivers/net/ethernet/intel/ice/ice_main.c +++ b/drivers/net/ethernet/intel/ice/ice_main.c @@ -6572,6 +6572,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 @@ -6617,21 +6618,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6D1B61465A6; Sun, 24 Mar 2024 22:53: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=1711320781; cv=none; b=fNQ2wEf0p3ttQGpFYApYrJKLA2pF+p3t7barw5RKJi5qDOz+8LPlB4RBm1NJAA2lwstwcf95CtmEwRqYMRI8C8RBFBmRkAnxNSjjtxvLuMZm3S9vqHejevl+kME3obq9aOHwIImoU3m9HGRWzuTfdgmdI4Kf/QI/v42O+EvNJQI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320781; c=relaxed/simple; bh=n0ZZGalvuA0PD6jzMmVDBM2mpyQqpmLP63G0KklBvQ4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=pNdTW1SYOrqDjJ1Coif0Iy5lHsNJNVixUyH0KUUfsniQoJ9s5g91y3q9hF+0UNnru5zO/fajBPPPfY2beW7/41v840TLPGSVaKnxWMbYHHgC01AoBKr5HtukNfPCsRiWlVceEC9/Hoyu+uZ1B9S/yz+LyCe7YDUTinklNgghISg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=aqgAqi4i; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="aqgAqi4i" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A1CD5C433C7; Sun, 24 Mar 2024 22:52:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320780; bh=n0ZZGalvuA0PD6jzMmVDBM2mpyQqpmLP63G0KklBvQ4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=aqgAqi4iTFYdfxkfkXE17OpgR8hrkLM80qZrs5UdRgkDAIvWLfS1WbJJjsZYIXNkv IBgdo6krif8Gg7F/fPIeb9ClnOY85ws4DZoG26Iw+aTKEL03btzuxQwJ0481PYkBVa WRlkVBs9Vpp3PBE9zdJVS5xyE2IzPuvINFSGhxZlOxCf2ORtvbGsWsN0EHiBHZkoRe jSzljV6Q9V0zsDdAEY1x9WIw7lbkJ35LUfo2ABP2PbN1iEiNKeP7QZqEnBj8z6iUHv j6pGksThphGS9dp2T/VMBn2/3cBklyhnDgIx3K5DrUV+nDVEYevyOZGm14AF7FpdRG nDjrHmGMShXsA== 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.7 343/713] Bluetooth: Remove HCI_POWER_OFF_TIMEOUT Date: Sun, 24 Mar 2024 18:41:09 -0400 Message-ID: <20240324224720.1345309-344-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 94A7F1465BA; Sun, 24 Mar 2024 22:53: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=1711320782; cv=none; b=pbbBGexjFah3pCX5ad9geJU2k0VDb3swWpSkIfYUJaU3UMFQ/bZcrpPWVgBmbdpsNiI0rWeKvCEVVk0merMfVanyx5UUh33FnSxBnYKte3qe0CNQE4RalNmihZN7lBhI2O9Wq80keOQEv1kwlWw1x4gEniUqlyXL3+nJKgjfGXQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320782; c=relaxed/simple; bh=fxh2FzIss8jfV/LFAffOsp5nCtgdW3PvQ5ctpWMXbPg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=ib+//5XaGybOOqR1lCw3ug/hUElUwQK4boDRZ5F3tcUwpnrSS4ZxijoapeBqpkJNXbObEY+s5TJCmD7GJrZ1l7uuOEbWfjs47/7vcHal5j5GW3+o5ZBogcKO90yZXWYBOaj15XVUeVaQNPV+yqA4Saqs+TbrCEYDwMM0YCZ7cQQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=aXtkHqvg; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="aXtkHqvg" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8B0D4C43390; Sun, 24 Mar 2024 22:53:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320781; bh=fxh2FzIss8jfV/LFAffOsp5nCtgdW3PvQ5ctpWMXbPg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=aXtkHqvgh5qenln9Nxs53UMcf8Sb65pI1kYQCIhjw90MZX2jG/mBa549/u6MKWlpf eNpwpcW1E/eY4SQWF9sUpMXJa/IPQ+cTnswggIsW5Cuad7E4QU2AhT817vG0gZ250z C4k3p03iAJxzEb1cFVmF0UePbcqC3bScmWYirMbZpWs3yQBiiPNufhyn978c84exxf GXrljbwXR9px/U8boXjR2s8c7Ljmyovryb3DuB9EH9ROCgk71VN0br+KBxKu7qvtb6 ZFWNijRXsbW5RROUe9207MUSzwfteC6zax+Ud1K2FVEC5TlXN3vu8VlHMeLfI6EBZd fTwxkv0oKkgtg== 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.7 344/713] Bluetooth: mgmt: Remove leftover queuing of power_off work Date: Sun, 24 Mar 2024 18:41:10 -0400 Message-ID: <20240324224720.1345309-345-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 33FB3127B69; Sun, 24 Mar 2024 22:53: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=1711320783; cv=none; b=Cjwv/NyNAgZ/QW3M69tB8jGjs6k38+VmNkrhH3Acu3LzQixRQUX1fvVpbt90hzoZNJIQV/1cmRwlBApUMmOHPa00fCiW5TNK108fJlQwFTkhlM4b/61TuzLMUf2m0eVRJz9/BOu+EnUEY2/jtJ5zc8lL0iI/MroraULdIgs8hE0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320783; c=relaxed/simple; bh=8/kr8B8u6KwyMHX/o0qNOYBBY6aCjmBMpsM2+5DKcnw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=rqHpYwSI0+adeePxUsL5f9AuxCq+5GCKUxd7mE4nZAaNAgzmwD9vtcZtLc6e+c1MuyDmQVasm/BHG5Z2O7YReIJ5ZCxurq137GdKDdWXXT9IErh+osYhTt3RZlhfv1GWbyCZ6blcxxQC2e3UBE0VSZJ5ukRMrlQhMTydn/wzN6s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ul0Gh5up; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ul0Gh5up" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 72B3BC433F1; Sun, 24 Mar 2024 22:53:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320782; bh=8/kr8B8u6KwyMHX/o0qNOYBBY6aCjmBMpsM2+5DKcnw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ul0Gh5up+7z90/0f/pwtbBEOVgferKwY0EM365pCIF9U+K68dtt87F9s4yuI0kVnS sHrLvHmFawXdXIAunWVRBRGONQoXbwwOdP9Z0p7B1NWjByfsRkwOmaOoN+6az/3v0n tgjd1L2zxA67sZI7Vy/9h/cwDlNFZXfF1cM4T4oFsxX7Gq5SrJhNkJygsQ7Qn0+eGO aRAo4KudbkEbUugnSzwkwoyFABY5JSlDX5xr2YYqB0cPH94Ly7b22Iu9ySUywnG2kv dEPzVNUhrbcoEu7+ki1lTjNLOr+P53x6z0Y7ehWM7m62Hrgu2KJcg1LwiVRr/4YW9s VE+LE8fbkcGkg== 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.7 345/713] Bluetooth: Remove superfluous call to hci_conn_check_pending() Date: Sun, 24 Mar 2024 18:41:11 -0400 Message-ID: <20240324224720.1345309-346-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-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: Bagas Sanjaya --- 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 2a5f5a7d2412b..1f63f77661dce 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D98181E2544; Sun, 24 Mar 2024 22:53: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=1711320785; cv=none; b=RtXKqqUroXviCf4wpNJ52L1LYUUp8VW6vZxsiOuF9OSbnF4A+QlOQmUuHM/pwg/xZNzi3OeZLlBETuHeyD2W7tJi1MUl0HOk5vP1iJUyVdLPoWJAHIscKsaRZ9qZvfyu+ZXC/IRL6QEr/9PdTlDCLPz61DDOdsdI4U8Nn3Hc2tc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320785; c=relaxed/simple; bh=ccT0G28tpzx8LV0yTwcgPSilAl2FNZjtmlq2KbcJo3k=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=jiW88rwuuJI6iT3UnCYZtNYo6xNxACU1Av5oFtSa2ylVeSst7NOLGbRMETbPEYEvnCQdMr8lNmKOdsnCZMisR+JFzqaQEYBHwrFooZT2YKRDSB/GBIQq/wHEuCksUn8J8H3sAZ/x89mrYwEdroPGRZXoNOSDiKJoBvTaK7ABEgU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=VH3lg24V; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="VH3lg24V" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5A547C43399; Sun, 24 Mar 2024 22:53:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320783; bh=ccT0G28tpzx8LV0yTwcgPSilAl2FNZjtmlq2KbcJo3k=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=VH3lg24VbUilIWmAv06fkG0yLDoMF1qIxwlu5kwbAH3OWO0TRsrKnbaycDREywLVw UKoobXPcgiJc6j4W/ZyRBQc5vSgA8BsXRBBz4+h3Dg5V907PTOCMG8JGQFv3zgYjjk yIwqsOeiOr3HCp3Yp9tcCcKR4BFfQLQyvmD181bjJZZyfxCWGYWVLIkY49MGk4eGO5 Rjwdc1YYiWyUOYrjqC8Xp0Dwe8n9E/43O4l6spRJ4e710QjBCwHL+P9vCy4fhnWnxt EGIT7P3NNkRGD1P2xKkpLpbLwFtSwY2lkz55sv4dE/hPfqfILL3GvW/6e4Am91ppW6 WxN9yhsTJA9cQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Luiz Augusto von Dentz , Sasha Levin Subject: [PATCH 6.7 346/713] Bluetooth: Remove BT_HS Date: Sun, 24 Mar 2024 18:41:12 -0400 Message-ID: <20240324224720.1345309-347-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 d01db89fcb469..029bf74ec5e78 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 { @@ -1169,9 +1168,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 1f63f77661dce..55daada8dc15d 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 e50d3d102078e..ee7a41d6994fc 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5B8601E2558; Sun, 24 Mar 2024 22:53: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=1711320786; cv=none; b=E1c1L0JT3IQZE586QTANR+/yO+2+zal43pjasQTciAsy1VEaBNNvQy6UK0Sebl6+jyIe+qsKSJY2Mp/gbXKIjZiyEME0pvTjCeqrBoHMEXjgHvwPU6qhNe18C6ZwaVYXcYozQhp2Uy1RhoRWuxit8dBp8LiFJCblU3oObNrVvzU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320786; c=relaxed/simple; bh=MMkBRdQHFky8DEcjQ8QJxN0Osw6l99H5jn7XpxtYv1E=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=OpgRVpYNggshx8cn0uMVWlLSwo8Ek/yQ/7M1M3tXa+foFowi23XB0EVFSRG8AHGSPLaNUQcP3PQ9RaUrxh5QsWCnCATWvSfYhOIfYa905BbhkgSJ/lr8gxid4nj9DUSyTt16K+xINJPvXC59z6xWwrTyANRFqcfwgEMJq2ulHkQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=K5nxbm5g; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="K5nxbm5g" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D5AF7C433C7; Sun, 24 Mar 2024 22:53:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320784; bh=MMkBRdQHFky8DEcjQ8QJxN0Osw6l99H5jn7XpxtYv1E=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=K5nxbm5gHFMqkYWfmhbol9AHUNb9oXTao4i6/HBKqz6ALfhWJ83N4YjlgYjYXdB49 NMcBohJXH/9ccis1pZm5Ou0lYLs3dSlyI7Jcf0rLexc75llKHhjj5+29gzQe7MD0Bv EgKvFLo4fldGAmfgVI9nDTcT2jpqZe+3OZgiidHuD7TmPZxSeM/YCOss2H/Fgl+gab 7MHxF/mVMj1UGnwDecaMmo2sgQjGhGxUwQB0BC9w8YaogmSuN8nhVGj5HTKXiBICbR leDv32L7NGV8eEkTFD3cMFaDB516kjmCEJAU1aPSbe9OALV6NdzVswGh/C3z3FiE2J o/m4xTjx02lHw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Luiz Augusto von Dentz , Sasha Levin Subject: [PATCH 6.7 347/713] Bluetooth: hci_event: Fix not indicating new connection for BIG Sync Date: Sun, 24 Mar 2024 18:41:13 -0400 Message-ID: <20240324224720.1345309-348-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 55daada8dc15d..9ee66b393981b 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; @@ -7210,6 +7214,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EB1421E2562; Sun, 24 Mar 2024 22:53: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=1711320787; cv=none; b=HMPiDgoED8VvZ6x3vb5nxcpDSrRk9TjWlg3epS7GJpoJyJubtI8uBipPf/jzh0j6GyzP1WDJd3nphKuBiJdbjtwcM0hcFIWj23ddbJbhQ8npaGiG1a03jpUe9C1TaVWxKyOfxARGRKuvGMOedpJZudNh2PCsUDgGfW/Ti1PPR50= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320787; c=relaxed/simple; bh=tRgyfE1J4Fe3Y0cCshJvvPBauQhSZVEKNuiHqQIpNmI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=DQguc1tnYoVRr9HcacGe5L35qp+oN/UtwkWM75HYSRGyEBSFZazRbwMshvA0hcBE6JcrQamaQZQ/Gke20Xm5i5x8CG5t66lylxG1nF49SN8Kk8D/dtIAAjKX1ZRVJHGAESGzm6vDXw5nzb9IB/CQOJjwneGYbVFBtIqARK7yzkU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=CvCE0toy; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="CvCE0toy" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 36D82C433F1; Sun, 24 Mar 2024 22:53:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320785; bh=tRgyfE1J4Fe3Y0cCshJvvPBauQhSZVEKNuiHqQIpNmI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=CvCE0toycz3jDkENuZb9KRi/u2xX0ZykpMdmiNKIltt89oPYsroliwqiUZ050QzfZ ePOf7kMjcG9EO2L1VN0kBNJiGG995hdIJQNFyz8Mxbz72ibYL6MgnHKrM+K1350WaJ jX2awdKhcdih2SWJCqPyTjcj8R/xnTtJum1IeK3UbH8mvB/KOxC7GQ3FemxQyU0+84 V2dA4E83UvHuzuLpZRE3S2tYfH2c1zPaSKruMGkzUJ4t7ObqjRcWZHgPcLe7ItuMTH 6aPkCSxrSDrN/HSTSxtYn9gmBWE2PMWPU68P5pS0YPfjJd4WE2E6l3sxqGQtx3TL8P Jo8CP6c+S09Tg== 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.7 348/713] Bluetooth: hci_qca: don't use IS_ERR_OR_NULL() with gpiod_get_optional() Date: Sun, 24 Mar 2024 18:41:14 -0400 Message-ID: <20240324224720.1345309-349-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 a65de7309da4c..bb69b7ea8119d 100644 --- a/drivers/bluetooth/hci_qca.c +++ b/drivers/bluetooth/hci_qca.c @@ -2304,7 +2304,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"); @@ -2313,7 +2313,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)) @@ -2335,7 +2335,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BCB271E256A; Sun, 24 Mar 2024 22:53: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=1711320787; cv=none; b=gVofRImPI4QxA09TUONGOxHVbUJ5VA+4y435F50gxHQ9dypbDtw+UALkxHWhhpw9zVxiZkKyaPQxyERZ+L/92Ns8KRraZtiBOiMCD4V54IxOd2H9uhlq9YOkldOgV3UNjoAXpr1L2HLTUL/XmV4Qv7czDMbxS47U6C1jkcv8M9A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320787; c=relaxed/simple; bh=sAzRuhdyrXSmBAIankUC48xiKoML9l283II4MxsW2Po=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=l/kuql39VVa9J9FNOU+h6PNsbMSul1/gannGtqV5X6uLmIO6DCoPWrR70KlZ+rTAvD/77e6+cVcgISFZFGk/tjcZz9Wl75kwJzqrJD/kje6rCymYtcYT0+nWEYv5rbfxfdDKENtFbZzU814fZa2Upzpq9taPLdiQ+8S8X52bKrA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=n8dsIXYQ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="n8dsIXYQ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1F4E9C43394; Sun, 24 Mar 2024 22:53:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320786; bh=sAzRuhdyrXSmBAIankUC48xiKoML9l283II4MxsW2Po=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=n8dsIXYQKn0+XzqAwvUMr3zrzWDQwAEabNYZ4gnt/Hja097i80uCKR5yrRzKwpILo 2Awwrpgz9ZWkI2jDqr3qlfTOQUZJczm+ZWaNA1USPNk7W4BQqbcmJPymhks/W6T+Cp 6A78SiE+/v+nGVhbdxQlZOPycPkViRwj/uPYq2nXTcUvXq8LyHJKc8NSW2bADqgScJ PKLlCMYWbtNGhY5vJ85I9HixSkzUAE3ADDYrpNMSUy/mqNr4lWS8755M9T6ry2RpsN HuIb+kyCVhohL1CG9CQXqpFJY81a0xOAAZRRcX08a43c2HhY76qF3IpnGj5F1ohZvM Pgrw0Oul54oQA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Luiz Augusto von Dentz , Sasha Levin Subject: [PATCH 6.7 349/713] Bluetooth: hci_core: Cancel request on command timeout Date: Sun, 24 Mar 2024 18:41:15 -0400 Message-ID: <20240324224720.1345309-350-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 6efbc2152146b..e2582c2425449 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 b90ee68bba1d6..f4c53c428305b 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8F0AB1E2579; Sun, 24 Mar 2024 22:53: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=1711320788; cv=none; b=d/lUeH4LEivyuWLISazPhUaJu57bUyQfJpvPwh4wu3+VW6X6GFfq+sy28t3pjfWe09UuYq+Q3RIedWsBxOEmz5Y6YqefXGLMhIYinM7nZKUG1czLPlbP3LXDOvdjfkXARijUa6T4EA7ZYImWLnkPmuYwM6eaFse6KsGLEzmaCsM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320788; c=relaxed/simple; bh=F9n3JBbUTqN7uVdvLx4GurGXiqLNkb9Gf/PhMZt0Log=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=t1oPrZwFRHGDBu9cPwmiQpDFu3DmkbYhTVSlUv7IG2A6j4zSm8qLOjVPmw0JVf8g0BjEXlg1mYqxJSAvTpugrE+LO+w59r+z5kM0nixbchgmIob5eFYf2Ai1wf8sg6RpAMVKxhRqOnc5CM8GTD7uQ068kZwExIDWuVakzldDWj4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=susQOmT2; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="susQOmT2" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E4B4CC433C7; Sun, 24 Mar 2024 22:53:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320787; bh=F9n3JBbUTqN7uVdvLx4GurGXiqLNkb9Gf/PhMZt0Log=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=susQOmT2nmt+D6+RO9E9rzlX0j1laOrpnB9IuS7eFHCSw/2Y96QaTV4DvXxHGrH5V eDvoAc65CjsOlt33cE/4UwBrVELgOQlWPzVksjuD/MZR6g2s2RRg2Xs1wUlGYht5zr 2+Bat6qLW+gSp0bKGR7ooog1h8NAjB9SDo3xqA0GpaL2KTmyEIvOEBGqqDpo+QGOC+ lnXVZ5VkUWKk/y6nzrQ5oKgUi126nfwbEcg32ooLkAJ1cIZVBdgKhZaG9ud8+JiTdo SZofgnz8NdI/H44cPupiPmk4JrQadMSTQeWN53NT7UI+bBVojL2in5yWcImro5aTH8 ThjvT3c6RpVvg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Luiz Augusto von Dentz , Sasha Levin Subject: [PATCH 6.7 350/713] Bluetooth: hci_sync: Fix overwriting request callback Date: Sun, 24 Mar 2024 18:41:16 -0400 Message-ID: <20240324224720.1345309-351-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 65dd286693527..24446038d8a6d 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 029bf74ec5e78..50c55d7335692 100644 --- a/net/bluetooth/hci_conn.c +++ b/net/bluetooth/hci_conn.c @@ -2977,7 +2977,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 9ee66b393981b..6275b14b56927 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)) { @@ -7327,10 +7327,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); } @@ -7717,10 +7717,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 f4c53c428305b..183501f921814 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 78571127B7F; Sun, 24 Mar 2024 22:53: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=1711320789; cv=none; b=ZWu5Wy2I5cvYZFCYis4JNp/V5ada3PjhWgE1ciDa7AFKX2YeNpCStHt/Hzp1lB+2nvr3b9t0/2bIXD1Av2K2Co2hpM6MpVEev8rE1P9asK+UIslS2Y6ZAG2yr6NQHQz3yoPuZKjFRjfUYHlia6ZPuUidRZe8uVUhpz8zMrbR6fs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320789; c=relaxed/simple; bh=ArHPtWX3+1gtQ68zc8c0UMu038IRAJ3nC1hv6nvkR10=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=DhiCEle1xXsqsLt6rB31SnN+VbDMWaBe4Trxctole3HoO3aULXpGszF+yUE9oBcWg7LrrRCOvBpSqeKL3vDvUqcdmuRYHjcI4RZJyCS6DEShc0wEgTsJYY4haGb7XPGgO3gA2LIkU+m1W1NDhfd7cvznzTXEDD8SYJVscM+Ab1M= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Pn01AAhY; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Pn01AAhY" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B5E91C43399; Sun, 24 Mar 2024 22:53:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320788; bh=ArHPtWX3+1gtQ68zc8c0UMu038IRAJ3nC1hv6nvkR10=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Pn01AAhYpTfWh1ZyI1SnbMzJ+5FsUYrdsGtrw9Whj8QXOKf/z+nntD4tCUKzZFtZ7 EGQ9Oa4i2U74EbTgQ36uXpT11If++zycBho7fh2Kh1kAV1td3U8TCakTCQX103g9zj 4YeJ/VbgQvCC3VrLAQh7eizjBpK6lMc6WPE11l9OImWX1yXWY+siRjFclv0zfrh2AR kJAVTG7248Haknm9L6azl/i44rfg5X17DCglJKVMHcO04YIs5+HMUKNQ6MaQKOskfR 7d+Z3rxcJBZSEEkdu32OWYKFLzTRLll7EYcamixxWrRPXwlOsqVhYjRvyYeu24Wy3b nfyXJ//R9mDmg== 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.7 351/713] Bluetooth: hci_h5: Add ability to allocate memory for private data Date: Sun, 24 Mar 2024 18:41:17 -0400 Message-ID: <20240324224720.1345309-352-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 602A71D8DDB; Sun, 24 Mar 2024 22:53: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=1711320790; cv=none; b=nsMi4PBFT78awTlEgBgUHbP+mC/vxMxc99yYveu53mjFdqerNV8NOnssCUrV/+V99Y46HzdLoKx0e+xtNB25qSThwajGHKR6gSl9xTj0m3KsZiAXwBx2t1sREhD9yoX2WLh7VDZwY+/LuHZMiZr8Qcb6enNAL1xQw9SzWP7Si74= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320790; c=relaxed/simple; bh=ZcHPGh/+6JRCBw+dWU/yC1PN20jUS9Kcv6f7ag8lQs8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=oD/PnBeFWw30U825X9ritdA0bZ7ye/q1+Mw8YeYxOdegwxr44EMbb2O9lt8swKO2mVPPFKca6AFJCv1CAgnrl5W+KmpoQ/9BxSOM73HglN2CU66oKgxbcVedZWh3FZdu4wGQCfFM0bNwEa3Ez9+T01tpxfq831igqb5d5pVPtSA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=pMBpdPpX; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="pMBpdPpX" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9E9A5C433F1; Sun, 24 Mar 2024 22:53:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320789; bh=ZcHPGh/+6JRCBw+dWU/yC1PN20jUS9Kcv6f7ag8lQs8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=pMBpdPpXbgvR82UTKZTexT4gI7WuA2+bvAmW/qIlSAhJGBQxF5X0csVWxrIJYo9Vc XhytScioX0SkEJ8tFTrKsPSKsssjrc7ODF17GbA9gaSFDAuzfC0OQbec5nXpYXfeef 9eSbAUFPg6ECqyLfYv/YtHtOsCsrMs6uc2JNj2R5GVlId1HuiZhc1nTv3wfwxLlIBi M3cwrQq7taNZdOfcFMv4SLzQ6gcjToq7gP2T3ZLMIscY/p0cX+sXWq60IIl7ziAXp2 bR/i6S6LPRYpQnMKmDb5VWHY8xrCWORZ+3jD0UUv0hNaO8mN+TNPrd5V6zW0MYGYrC JTRhhR91xaYaQ== 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.7 352/713] Bluetooth: btrtl: fix out of bounds memory access Date: Sun, 24 Mar 2024 18:41:18 -0400 Message-ID: <20240324224720.1345309-353-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 357131E3047; Sun, 24 Mar 2024 22:53: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=1711320791; cv=none; b=LUk1ppco0mGHQc+2s13+7YM7mtPLpKZSLrZo6CChkghtMAkGcymrEUnqP90q8aU9uFgIzAHDz7y6VH3DKTtPXe10v7rboBFCIG2sirv25qfiCqOuH5ev3hX29hejcAk4i5bqtz6TBwz9oNVBdNtVIW9alKDiutsGs7nid9ewxDc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320791; c=relaxed/simple; bh=Ugg1J7IKQDMYXnCywrahvRSEfKqAl3Vln5nLujV8KfQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=olcrsP9QF8fzJAwg3CP6WZEYVjHw61KMtgzlLERx5CyBHvAZdL75abqVP25skUfFhO8wzt784oq1BEG+Tw5w4Z4UoBr+ZrESKc8zxZvt1ue6JgWFLcWJusbZJILwiQQUk+dwUxzjucZ8pDNKtlKPL8iF0KtD5qYpdaUgpwL9eE0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Po/iMdFI; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Po/iMdFI" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8814BC433C7; Sun, 24 Mar 2024 22:53:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320790; bh=Ugg1J7IKQDMYXnCywrahvRSEfKqAl3Vln5nLujV8KfQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Po/iMdFI6xzrVyB0QYkw0jHKP0mxhRobQcLFPUQDH0gQf9rdN0S3AzM44NVdDGh+J iqw4ROBUmRcKqL+XaryKO9+YqGOEWtZ8VptiFa8Ubnr12CfLVSYu2h6EKTSdmovpt1 NoKEq4CiZ5wOC8JtfukZk4ywj20a/GTROSbwQYoFGGhy+HmyCxrTv6grRyjO1r8uIE kegtqvnTD4XFImW6zyQylWQpz1f5V0bS6fRd/Od8QpyDKx3oyiuxE8aStA4jis5l8Z PkafpxXEhtYIejtKG2n6a6iUv+JnIdOCeZJ/kk4u+Po8YigGxOCUEqWW25CQfxGEkT WJh6P4WAh0xdw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Luiz Augusto von Dentz , Sasha Levin Subject: [PATCH 6.7 353/713] Bluetooth: hci_core: Fix possible buffer overflow Date: Sun, 24 Mar 2024 18:41:19 -0400 Message-ID: <20240324224720.1345309-354-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 070DE1E3054; Sun, 24 Mar 2024 22:53: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=1711320792; cv=none; b=MrOmfDdbv+/GqCI99VEueeRDICDLnj6OMVb4HdNMXT625VWkamsHRvEjfOT0Sl05posdVN9dmtIJNWXGbkk3fUYImrXspiMqx1H4SqSp/ro5gU1c33XH7OvIFPh/+3kibpaCDhlQ8CX2Tf4peL+Tcy9xQi5M9a95AQvC5YgZoOQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320792; c=relaxed/simple; bh=eZ8P3VvFJh8AOiFHtetE+vSb5xhTtJgCpVECyeF04SA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Faf271TysClRn6cOzl6prjk4Pki5nltDwFslWaHxSey1qv9d5Z8NPoYgIjTIBtwmDvuGGpjhVVAZP/5hMoAx58qUaVouXbPZ6Xrx/bv+C7cvMEZgP/s9jVPnS/dPQwP8G4RMX10q5uwnd462Xw3wsRg4q0+yCTaZJKofQUsNihc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=UDKGolh/; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="UDKGolh/" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5CFB0C43399; Sun, 24 Mar 2024 22:53:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320790; bh=eZ8P3VvFJh8AOiFHtetE+vSb5xhTtJgCpVECyeF04SA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=UDKGolh/7YWF57I1TeQONS37UulKlZ9un7gyprOkEbJ8nj3WcqvKWx+Ihm7kQQAyZ F8WHeDcGo7Q/SBirhnNTjL3Gm65jOc0H9L+PQ5cLP7oY6KjvRyGe9orl2/0zoiItqQ Gl6G1NWLTubAvCl09kCnx2NgHzDsMvj2Lfjq/SWtUO9+jP+rY/55Mkzv2vT81M02o6 ZHrsNsK86G61ebO6Wy5zg57P5yMAa504f/OSwPRB3sCWTrFURbsJaLV4MIiVPG0Z8b d3oC6QEUopnES7KXmKMkJPtllK1Qo6IUuypalz8zYVXiN07z/IZCsQ7Dew2WIUfiA4 87mlAGhThVk5Q== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Luiz Augusto von Dentz , Sasha Levin Subject: [PATCH 6.7 354/713] Bluetooth: msft: Fix memory leak Date: Sun, 24 Mar 2024 18:41:20 -0400 Message-ID: <20240324224720.1345309-355-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C983E1E3050; Sun, 24 Mar 2024 22:53: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=1711320791; cv=none; b=sAWJI1PBRv8avY430me4j8vnB9o210oce0N0DQX1eYOXsgNTWH/AN1nCLaDz409IaRO63yOrC18RuW14Loo/72NI7LPCdGA9vyqb3MoOWJPTt1EfTGJmLRXCCDnvI6157/v1Yl3GIvdp5Gy2bMa3UzBpywbgUvjKwrCZYauSXlY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320791; c=relaxed/simple; bh=Fj+Ywu3FPVpOr87/iZCyRE6IHhbeeRmWmiO+uTLZzo0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Iaytqew925I96bAb9l6xXUQ+ECcQ+NfwdtJUeDm7FNLCO2Sf8n0P0tRHQ4sahoBaKBeTBEYW3otWZ7z4haYGN2YJqJ3nRdytjDtQp5/6kEKAstRpPxs2AA6t5tQS3yQqiFVqM7OyOYnB/NqtnhTausFlndFbzfa92bZIdsUGBoI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=OU5fKoHm; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="OU5fKoHm" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2D354C433F1; Sun, 24 Mar 2024 22:53:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320791; bh=Fj+Ywu3FPVpOr87/iZCyRE6IHhbeeRmWmiO+uTLZzo0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=OU5fKoHm4W1EWBz6nOJ8/PlDySUgsEEe2SpXyLYmsBgXNLwMv32ZNG6P5pFxGGWv8 4uFiozpTJcuwBcsU0/Xuxmb9S9staNXdBVRTzx1XaCrSXEIPXTdbDcve3OM+fBb2oL wV3H5eDE4lJtWtuy7cZUxdAV56f8mPq/ORlppfWFwGmJtjdL7d7UsuOqfulJhdktlP QGsryg8xv1uZT7L9o+1iiCrg9Yp6Q/d1oENcuk1BntdHNDTItEx2hQsAnf8x+yrfAW zD5gT5HZiApCxkz0H56lwim4MeQ0bNJj1VP1I5dRtrBtrhhwBSITmMFf8wYXRRlPGU PQgJqDFwq6jzg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Luiz Augusto von Dentz , Sasha Levin Subject: [PATCH 6.7 355/713] Bluetooth: btusb: Fix memory leak Date: Sun, 24 Mar 2024 18:41:21 -0400 Message-ID: <20240324224720.1345309-356-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 b8e9de887b5de..81ccb88c904a3 100644 --- a/drivers/bluetooth/btusb.c +++ b/drivers/bluetooth/btusb.c @@ -3271,7 +3271,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 */ @@ -3284,9 +3283,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EAD691E306F; Sun, 24 Mar 2024 22:53: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=1711320794; cv=none; b=JoPcLvvBmu01JN1EKywKuhtrWj6Js/ja5kZ3Tz+daLXHq6ilpBPO8wr5ai6OqVQAWlK/u4U8eKjULVEc8WUEiQS+VFamt2mvH/uh+j0M1iKERW/r0FuH+7TmIKS94Zw5pnEjZb8GWHOuF+uPzdPXTJ6ldZeCpR2H5k7qdZrImS4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320794; c=relaxed/simple; bh=8Mq+y2b4QoasCHiS9C0t/oVV7yRpu9gPxY4aigJk7HQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Xb/U8ZzxO2MAzN/RepRvUcDAzY2D3VrBMqVVbcgogQwtxNKCJXwRqhIEgyfwhrUMiLjGCvswoeBWTeG9KeO8gS0481uxeUZm9qMdNPVvRNQz0bHxSgEMXOFuGutFmT1le8NNSkVVOroka9ck9kmUX7P1MK8LBDG+R0G6nt1cMRI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=eqoea4Y7; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="eqoea4Y7" Received: by smtp.kernel.org (Postfix) with ESMTPSA id F0375C43394; Sun, 24 Mar 2024 22:53:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320792; bh=8Mq+y2b4QoasCHiS9C0t/oVV7yRpu9gPxY4aigJk7HQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=eqoea4Y7isbu5krH1q/wOwyMJ0cWgUFPg2zFWJOIB1uN0rqtUwheNkcn5U+lcbyAa t6F1GheN3CdUmAAMCA0Xrr1xmzCLTflvRbdPms7t3rh1afX3Amt0qK0wh1XszotOVJ FT2ZrBV67Ef1X2n6uJ53gUScYRNZhyhDNT9JYmDFdllOYchwHv8LQKBBZQrKKiRnWp Z5bh+q+wagMxeckX0rQoo60kMGof+NpSnBMIZZQAlhBAvlJ5tMNrPXdN5EveQPM6Ot FWLT4Y3xBHM5qvFxNz+1L0lyYXDnzv7KAdYsQEHpiZd1tkT/OwoEovyD8vORbPTZfI Pt0D+bC4HWw0Q== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Luiz Augusto von Dentz , Sasha Levin Subject: [PATCH 6.7 356/713] Bluetooth: af_bluetooth: Fix deadlock Date: Sun, 24 Mar 2024 18:41:22 -0400 Message-ID: <20240324224720.1345309-357-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 858631E3077; Sun, 24 Mar 2024 22:53: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=1711320794; cv=none; b=n+Ry+Lg55qbPFcSawKpUf8kxQKxn8waLK/WhW+xl80f49/uVMEHN0G9Cn9EFSYWy8rh7HOLubArGZNY6aaALPgqXDcI+zLMxvSUSz2F5d7LslLKMGNoNATGxeoQfLfmDWuRfHSwePcBOpPo12B3IOvFjpVjvfKt8mKOBiwDw3uc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320794; c=relaxed/simple; bh=CgppWVbYSdfdH7pUfBvvux86ej8YyJiAHOmFHrzmnXI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=GyX2xF0PzfGRkjnN3BhnrxghEUUwdKS8coW1BqgHrmJQ6AlgWSxIkjnDEqmUz5rJczNH9KBoLyOI6jhEXKzMGitOuZryZ22Z7Ge6VmDb3FEp6vVknUBgfHU2c9/DdspFvN6rK2epyuYD6+n7hkNDXgDNqljWGPQzB7EYEm45Mlw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=KDinYUrv; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="KDinYUrv" Received: by smtp.kernel.org (Postfix) with ESMTPSA id C0FE1C433C7; Sun, 24 Mar 2024 22:53:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320793; bh=CgppWVbYSdfdH7pUfBvvux86ej8YyJiAHOmFHrzmnXI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=KDinYUrvNwqQEga4rZCweR5LpJNlnqRodC36iUzt8JT/BHXY1crwxXIFnrE8IjkS3 yADnuraL7ejvBz+2JwbGagItIG4xOtCfOUMDU/0wyS+VthbliUAht7Qb1NR/gVhl0q Xu7xKmWbNUoOJq6PcBC2I+Cjg6JS5zeN2lkYHlSpSLxAIbzvOMpKHoQrxpj9vN0+oW cA8nwouf/eygonKQvqLbVkdQMTGAI8sTXWz+F8+W9uGEnelIA48yMFl9EFy4Klu3G5 uxqgu9OzKdXTE7NxXcYumI2pIMzznWAfZHPMFV4bVx8jCL7PEIff9rW6F2hjijtfI3 BqWC+DdIBvEkQ== 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.7 357/713] Bluetooth: fix use-after-free in accessing skb after sending it Date: Sun, 24 Mar 2024 18:41:23 -0400 Message-ID: <20240324224720.1345309-358-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 93B59128366; Sun, 24 Mar 2024 22:53: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=1711320795; cv=none; b=PQ/PBv1NsOXuKd9LCRk4K6V2RblnK23Wy3F/tXTQIdV5UdCTzVQ3djNkmkGffghzLjBB8Lunw5Hm9JJ8y9ayqzpCXyYdP5sJ1J2o6NqE1NZzbSoj5tmjGa7cQkciKSWhO1Zn4hM7/KGhUltSWwXjtlARJ2zPh5qRGmHn+ke5zr0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320795; c=relaxed/simple; bh=36c3PdCk3dmv9ATi1Ur1ycwjHJ3q6K33jYl8d79ERfA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ovALxmQ+/LqulpkA6bB99X5lk5hW1Tl4Yh0qVaZNXUUOSu8VTqI0jskr8Q/OoKfQXpgumRPbPAgUMECCx5a4YEZEd8Ic8Tn+CqGvjsDg1dI9+BjS2LSIPEPrrmVzDSaFybNZsdAj+fxFNJQ/+1lgZH81NXH1/m+3Q4YqorwuOSc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=NS/j0kj2; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="NS/j0kj2" Received: by smtp.kernel.org (Postfix) with ESMTPSA id AA411C433F1; Sun, 24 Mar 2024 22:53:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320794; bh=36c3PdCk3dmv9ATi1Ur1ycwjHJ3q6K33jYl8d79ERfA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=NS/j0kj2RJPFtFVkdvyTNLEcGnSCWcfKucaIbLmYFvJULI4ePsAE9MpOWmn+AvKQ5 9n7SaxTBJmSDxFWOsoMa4NhZKH5jC+L6bt6CmwOrLTlcItJHuINi+Mx94+dH16VPmO wMhj/0x5zUZZSwn/nRi4BDxbOW7vRXyx/Yk/fU0tGVtj8Z7MaBofRO4IiUgoyzR+9X UAaGY2oAJDqondIBt45/Wrp6i9ahwa1gv80cMOav58uNC71wjpfcQwZyS/EtpCY3Hi QAm/t4y0tFQXmkuS+HCvjJ8h+0vFz6+Lk3MGuzcUw5/FgQWsrN1KWnO5gWTcQXMd+E GEzAn2vN+zxgA== 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.7 358/713] sr9800: Add check for usbnet_get_endpoints Date: Sun, 24 Mar 2024 18:41:24 -0400 Message-ID: <20240324224720.1345309-359-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 143bd4ab160df..57947a5590cca 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 53B6A1E307A; Sun, 24 Mar 2024 22:53: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=1711320796; cv=none; b=fYOWyz5Bfm8flL2JdAbqOrPYNLtEHz33dDXToVuvZZUGESqQc31WmR+7eOpSzLfjAPI6J5Meoy8nESd/6OxghfUzhOaomi5EwneSm+trIxB/nR3ocySSpI1ehUdZkXpgjD4ld/4Dn05kcYKy+ov8fD/l2NxuIIrkexyBPgeT6aQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320796; c=relaxed/simple; bh=1CZXj3ZSEJhTLO9kDaryueK7/Emi8Jki56hPONpCagg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=cuFkdTSkizYl6YQAP4UXxQh1OQnNNfQsCEdShN45X0VYE0M20DRNeml5a5Y4RVgmxWm/EqFe2R56pePk1MbsJ+MIRO7ACpxamk9dpjjTduQ+CE6z0FgMYIsarnar5+dgGbEmt+znRUWiXyLiJNasvUIHxDtaL+S0hLQHDGXS14g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=owHhWoPQ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="owHhWoPQ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id AB1A5C433C7; Sun, 24 Mar 2024 22:53:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320795; bh=1CZXj3ZSEJhTLO9kDaryueK7/Emi8Jki56hPONpCagg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=owHhWoPQI/AM4SRq5ki9OlWo1RfmwZI5X7i0M+aNahMpa4p+llUnY0FNuO413MF8V 4uW4Hm4hLiE1j1mZw8RptT3MGiDuh2QlUzWSIcUXdaVoE3XBWlsZoKML0rbPLu7/ie 33Sw6PFR72UrFOOJjCE4nQqK6ubqGZZ5bhkrkNkXOlHfSK6pMAdav+lwX8BznW3OkE lzOm18Di2zbLY6AGi1GH2pesSPu7AIL8AXfzbUhlhmjn6HrnpfsXxjF8Fvc570ElXG zVs2ybldZywlZOoTJ9/90PK0tl6fQ3vsMsMcnRsv1P3bKgpE6D6qSUtJ/qgHf6SZqZ x/1uRf8c+Yq+g== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Heiko Carstens , Sasha Levin Subject: [PATCH 6.7 359/713] s390/cache: prevent rebuild of shared_cpu_list Date: Sun, 24 Mar 2024 18:41:25 -0400 Message-ID: <20240324224720.1345309-360-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4F9121E384D; Sun, 24 Mar 2024 22:53: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=1711320797; cv=none; b=DImU53MFMF45dPrQBZ6+Wmyit10D/Gc9vxeH2XxpY1oWcyowKl0fIENySEWHxc+LzIohpC0+iwnk6x/7HV6xy9QDQYnBt5RFJS1dzguYMmR84tzK7RX0qJUanrKCkS90hKE8lEI9iVWLDNt28cP7WNwmePEESK1GaROFee7zqzM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320797; c=relaxed/simple; bh=r+eUaeSBbJITi10eWBdwYxrKWd/L8nsqR8864q3AH38=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=UX5to5HFKe2YSNKRwGltnC7EH4l8OeJYHAcBMWgZnapMMPuXVI0tYNjUuq0TSIUuUdwjNVKxtI9dhgPFJMc7Y+wzX8dqux6aoWL5+YAAREKSiZI5Zysg1JIiZWoY3xA2phshnTfmSjflVluh3mC5abdeM1ulKGpeDJkooeM/cOo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=gpzLIyrD; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="gpzLIyrD" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 787BEC43390; Sun, 24 Mar 2024 22:53:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320796; bh=r+eUaeSBbJITi10eWBdwYxrKWd/L8nsqR8864q3AH38=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=gpzLIyrDXeNFk9i1A0cvy323oZbjaHznYNPEl2QmgPZNt1NVg/pT2qSF1vYZZrrmI REa6WzHwN8KV7Z12GYQRckkZpQStVlZeypZzEckZbJof7S8uNrpiW1s4N518qClS2s A1K6QmjKEZlTNwTHvHvPWHFJSzJecLuz/2/x/sLiCc1rgMcEoOs5Qs25cQWGFlsRsM vwFdR3390bFmNlc4ri9lPOUynQ/oao767tul0cL+YFsd/3xtVDCRGsPsX7J7j305zS N8CTbarABguv0jXRi/q1yUmrz0iUTaxq+XioTrAH2obGVi99UguZMNqjTtJm7pIojS smeM48pQAIdRw== 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.7 360/713] bpf: Fix DEVMAP_HASH overflow check on 32-bit arches Date: Sun, 24 Mar 2024 18:41:26 -0400 Message-ID: <20240324224720.1345309-361-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-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: Bagas Sanjaya --- 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 a936c704d4e77..4e2cdbb5629f2 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 353271E385A; Sun, 24 Mar 2024 22:53: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=1711320798; cv=none; b=B0yBjHQzUh3S02sO76OPgvSl3Iu+Iim9LUNT3nJz/z+V4Ll77vf4YNCNDKF4/41LEJ4c6BBqcw0G/+/0E0q4E0vXwQ7Ll2GiZ6WJMMSYVwSC3RiVFhJbOIsrJcdRMTosKfwUgtjmnBkU6SA3xy+Oz37wTq3dV5jZnmfQirgsGC0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320798; 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=fSnxGF1ZcGmcKXG73xTXYunKKDJDs3codBbdON3qjluS2Tu3SLZ5mWtoUQGrPyrhKsqFONPHt15ouY4d17LON17lUeYNgy+tNOuM7BESp+izBDlAvM+ob1SD2QLUaq5kS+h4Cs8EH86PbpSlb61xIW7spALAUliAuGZm0XLW6+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=Yph6WyeO; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Yph6WyeO" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 762F0C43394; Sun, 24 Mar 2024 22:53:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320797; bh=BSB4jCWJU4ghse22gPst7g6+o8OVQyN+w/jFKOUHFEg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Yph6WyeO1U78Nt4yO9fdyFZsHeXx3g4FGRZHldfP+yK8f/HtEiaeBUzAJ7cYAUtW6 aj+WBn1V1mcrslgtBR7z8al938gl3eiYf7y/U9UzN44jT2pc6YQBcTToWvwQHYD4dI pYZbwuoUoH3W6QFmkYiWNlMFcK1bwFXpLFCQ0ZXgrnCMZK4nWiUKIAGuslV0McSO0V pFIkrunCl8uWHUrmAo1nDvIP7w/pI3Xx1ot3oaGWO1uaOeBg10v+bj21T6s3G4l9gR G4iTqANCbPGhYiZd7PCTNFkxljaXwCGVX0TbB2Ep8Fd9dW54enfMeXLEULuFdE/Z/P Bpv/oFJgn/uBw== 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.7 361/713] bpf: Fix hashtab overflow check on 32-bit arches Date: Sun, 24 Mar 2024 18:41:27 -0400 Message-ID: <20240324224720.1345309-362-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3531F1E3862; Sun, 24 Mar 2024 22:53: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=1711320799; cv=none; b=OtrFc8yulQ5SCzzjmu2l3wPWs68uJGHYLQOwLCt+WyEL2haNcfzAyRFr8lgKRvMv4GmCFLGtEo0y+gb/kzh5KU3Avlyqcgjbe/RayZfzZxeD5fOYtsCkPrsOBtkUG7T9p4eC4tIXbOTlFSS8PpJkiKBCBOVazW116EV0kLDXXlg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320799; c=relaxed/simple; bh=2hRt1La1a0cLNCTGH/9iSTwtq5WzHFv8P3BW3OtCK1U=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Z4zFOTtZrkl3o2vx8NsJylZ1vD1NH2OXMOi/waWfHbyixMj+7hRSAb8YDdmPrTHMrW4bT4VESFJGrDNl8fCFu4VtYJMlCHwzS1OIDXh5wHzZoqesxMR0mQ4j+oxTzA/R1XQj+g9agwUrt+/eChqwBvRd20Qe7okiICRe+aA9088= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=fCQ2dgoC; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="fCQ2dgoC" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5C04EC433C7; Sun, 24 Mar 2024 22:53:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320798; bh=2hRt1La1a0cLNCTGH/9iSTwtq5WzHFv8P3BW3OtCK1U=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=fCQ2dgoCsnqES/pozubc09caKoEkLT6T4kuXEjx6aE9ZvpmqkojTQ/WFOvXULxgMg kWbdIssXGFOvS7Xm460a0ODbGF1OCE6WIiBynnsnsXlu3vhz+UdwT1IHqjrwqQ4EFM 0zwqGSZ5QwCzVfKrMY/DKTPqZamaMEYoFrIEDAkQIWsTu0ZVbNV33XibKHi/OX8xp7 WJpOF//XTl3iLIII+cnBW77DFoI+d5Ltep4ExmOsru6DVyGqklORxSkUEKdC92ObPB xP+y27HwSzJ73pSTmbZhTyccYn5TmcqefXKp52KIv5ou6dLVKRhvQ9jkfNmRxD1JSt cGryO+ed7PODw== 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.7 362/713] bpf: Fix stackmap overflow check on 32-bit arches Date: Sun, 24 Mar 2024 18:41:28 -0400 Message-ID: <20240324224720.1345309-363-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-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: Bagas Sanjaya --- 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 dff7ba5397015..c99f8e5234ac4 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 22A531E3850; Sun, 24 Mar 2024 22:53: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=1711320800; cv=none; b=EGALNA5xFGy1d2lwHHhnskRdenViq7Ha6vgujPKuXVR9vn9nqQ2a+HuetKHpjzl5qrr97OccnUajGKaJdj7d7S9kkhYn8y+l0DycCJtcpVtFmG2iR7sIHxtAPFJgf2RlO1n5CJzlDkU5zIKevS4EHb9beqJ3gFo17GTU1Q3W/is= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320800; c=relaxed/simple; bh=CdRcVWACKoGMPyJTmaHPMOZhKs0ZjfmHxlgo6m8IUEY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=HtuqkEINuUCuN0mk8Pg/7xFrG5nf8NusKdh4lRPfQJynDRdyXodICAqlr8TxwWFMkoZQWUOdvs3i3SxhoOwG5HARXvxwLQWmhWWGMK44WRETdYcRfM755Ygk2gTU2zYLFQI6z/QUXqZUrqOR2XoZrHdzjr75nQ3g5VmJ47gyBRE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Xcv90Ifg; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Xcv90Ifg" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5E5A1C43394; Sun, 24 Mar 2024 22:53:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320799; bh=CdRcVWACKoGMPyJTmaHPMOZhKs0ZjfmHxlgo6m8IUEY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Xcv90IfgQqfWcB7cBkngk5D/+fCxcZcW1dtfuKiUTeFnwA8/7ydDa5sC7LQE7TN7n ++YdzLmHEOQcQCs7Cm2uvMM3/7AInlVTHhPp8EKsZ/KGiBCmgjEYfqezM2NNqq3seG 0aQI/SgivC3zuHcd3LocAQp+pObW1QFvjxsKnkDmSNve7eTJlHeT/VNKe8dlxqBZN0 l8Lub3Dj4f3FPW53X2OuvHKQ5bspKsweOGmSjIjsRZm1Eno6o5gqMhlBWo0qqxeDv2 BzbiCTppT/bq3Ubnbpnr90XmUaTvj937xFk/7tk31YGte45m5JcSrMahNnQZtF7cEg 77Soh/h8VUN+Q== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Oleksij Rempel , Jakub Kicinski , Sasha Levin Subject: [PATCH 6.7 363/713] net: dsa: microchip: make sure drive strength configuration is not lost by soft reset Date: Sun, 24 Mar 2024 18:41:29 -0400 Message-ID: <20240324224720.1345309-364-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Oleksij Rempel [ Upstream commit e3fb8e8ba72b053d05ca2602acdd6b869f9f296f ] This driver has two separate reset sequence in different places: - gpio/HW reset on start of ksz_switch_register() - SW reset on start of ksz_setup() The second one will overwrite drive strength configuration made in the ksz_switch_register(). To fix it, move ksz_parse_drive_strength() from ksz_switch_register() to ksz_setup(). Fixes: d67d7247f641 ("net: dsa: microchip: Add drive strength configuration= ") Signed-off-by: Oleksij Rempel Link: https://lore.kernel.org/r/20240304135612.814404-1-o.rempel@pengutroni= x.de Signed-off-by: Jakub Kicinski Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- drivers/net/dsa/microchip/ksz_common.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/net/dsa/microchip/ksz_common.c b/drivers/net/dsa/micro= chip/ksz_common.c index ff4b39601c937..d5d7e48b7b928 100644 --- a/drivers/net/dsa/microchip/ksz_common.c +++ b/drivers/net/dsa/microchip/ksz_common.c @@ -2176,6 +2176,8 @@ static int ksz_pirq_setup(struct ksz_device *dev, u8 = p) return ksz_irq_common_setup(dev, pirq); } =20 +static int ksz_parse_drive_strength(struct ksz_device *dev); + static int ksz_setup(struct dsa_switch *ds) { struct ksz_device *dev =3D ds->priv; @@ -2197,6 +2199,10 @@ static int ksz_setup(struct dsa_switch *ds) return ret; } =20 + ret =3D ksz_parse_drive_strength(dev); + if (ret) + return ret; + /* set broadcast storm protection 10% rate */ regmap_update_bits(ksz_regmap_16(dev), regs[S_BROADCAST_CTRL], BROADCAST_STORM_RATE, @@ -4236,10 +4242,6 @@ int ksz_switch_register(struct ksz_device *dev) for (port_num =3D 0; port_num < dev->info->port_cnt; ++port_num) dev->ports[port_num].interface =3D PHY_INTERFACE_MODE_NA; if (dev->dev->of_node) { - ret =3D ksz_parse_drive_strength(dev); - if (ret) - return ret; - ret =3D of_get_phy_mode(dev->dev->of_node, &interface); if (ret =3D=3D 0) dev->compat_interface =3D interface; --=20 2.43.0 From nobody Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 07B071272B8; Sun, 24 Mar 2024 22:53: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=1711320801; cv=none; b=bNQZLKpmzGaUkkkDuIad0e6DSlJz944VAtuDhnuLDBlPLRJrQCYUNrkmtAWPtGZCd5AQSDjsw/oXW0xbowGuulR/EIvSGfWQ0vX+GUxv/1gH52/8u1u9KSEnHgHkvVRwDZdoDBERw8PPk12EaoY/iXxSB0J1hyQC3gxPmrS/kxQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320801; c=relaxed/simple; bh=9sb3DEvcgysAOVvCd3EzJUsl/MlOiN2diTQTQ94DBHs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=UUwCg5bNStER1e5GbddVEYVBaDOGhSg4yJDoM9gKROvqjv2cCyhfZiUDW9AWU247r7SbSa1osh+C7bm2dl372xIjkmc2FSp9qEOzCrX8QHtQLGpiJ9bH7VpIkk+hwv8h3hLIVaOvym861AZVA8xsikHOgnDDLys/1R3a6vTBn7o= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=EYGX5+/Q; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="EYGX5+/Q" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4A012C43390; Sun, 24 Mar 2024 22:53:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320799; bh=9sb3DEvcgysAOVvCd3EzJUsl/MlOiN2diTQTQ94DBHs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=EYGX5+/QYzxfsaDROwBLv8xF9pFfGZzwBzaOBcLq42Sf2GEfGzOI4WLeSArN5VbnN EUX5qQsrsGvXQ4TMcESldU8y2j/RNTusEmLpCmuTiw5HNPy2yADgmsVtZQGFcBurqZ Z21sA7obSYuuotbcPKXhf+Ch3JJuF5UVFZgAiT2nu2MJ7ZlSQ53bjBozbJ2LVDGx2p 8NQnka8f8Q47a65swQ+fmX7sKMRfDnRsJN7Fa6M8jRsRzfGLgWHl200Wp42hdPWQNB L6zFTf3GLnVJVDwH2h0sPPZDpzz7Evv+0E49tB5nGdr6kCXePD8NqAYFFe8+cwvkpK pO04jFxxgMquQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jiri Pirko , Jakub Kicinski , Sasha Levin Subject: [PATCH 6.7 364/713] dpll: spec: use proper enum for pin capabilities attribute Date: Sun, 24 Mar 2024 18:41:30 -0400 Message-ID: <20240324224720.1345309-365-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Jiri Pirko [ Upstream commit 5c497a64820ef9f10962a9c37607df45d6395fa5 ] The enum is defined, however the pin capabilities attribute does refer to it. Add this missing enum field. This fixes ynl cli output: Example current output: $ sudo ./tools/net/ynl/cli.py --spec Documentation/netlink/specs/dpll.yaml = --do pin-get --json '{"id": 0}' {'capabilities': 4, ... Example new output: $ sudo ./tools/net/ynl/cli.py --spec Documentation/netlink/specs/dpll.yaml = --do pin-get --json '{"id": 0}' {'capabilities': {'state-can-change'}, ... Fixes: 3badff3a25d8 ("dpll: spec: Add Netlink spec in YAML") Signed-off-by: Jiri Pirko Reviewed-by: Jakub Kicinski Link: https://lore.kernel.org/r/20240306120739.1447621-1-jiri@resnulli.us Signed-off-by: Jakub Kicinski Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- Documentation/netlink/specs/dpll.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/netlink/specs/dpll.yaml b/Documentation/netlink/= specs/dpll.yaml index 2b4c4bcd83615..5b25ad589e3d0 100644 --- a/Documentation/netlink/specs/dpll.yaml +++ b/Documentation/netlink/specs/dpll.yaml @@ -274,6 +274,7 @@ attribute-sets: - name: capabilities type: u32 + enum: pin-capabilities - name: parent-device type: nest --=20 2.43.0 From nobody Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 14AC8128368; Sun, 24 Mar 2024 22:53: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=1711320801; cv=none; b=XP1gja21RC+DRpI8Ukr01fFtUC2idWqpPCx9RsVFJQqaq02li4XXXAQ4kMsj9fw30lEaT351vxmyBoVg3d8YvNUy2X6WSnC0CoehhM2P2snP3GZxHb9D/0lYojSudXp3F2+ojN3JkYIig4cZmcqjS7MSeMx8kApt9qQDKNedpuM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320801; c=relaxed/simple; bh=WTXrESP4wD3TzDbEwiBdO61iJBAqJ9D7jDgdCi3pw6M=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=RtXecMf2LThkaGB7C4AcbvkukL3DKuoTWlYT78RONwds4AyUVnRZGWY6SNVTkbVG6hMD7OMmUVtHw2xbSsfdJEeNRUxXImS6iAPn0KJ8+cVkvEsUhKwwkAqErDq1QFpX+hRDJFosb47hovJIOWlYhiDZtDXzMalLb6v2MnKuOq0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=dLtgq2Ru; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="dLtgq2Ru" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2FF23C433F1; Sun, 24 Mar 2024 22:53:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320800; bh=WTXrESP4wD3TzDbEwiBdO61iJBAqJ9D7jDgdCi3pw6M=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=dLtgq2RusHx1OlQg82lI4VMimP1AcUlDDqNPf+D5jvG5MCV/j8Mb9LzRdgTGtvoJ2 gjYfBFuGx0iHmtnwVujgmV+UY18hhjW58b9V9pDOoOZK9Ox2X4x+o4kiV/EC5deKsP NqvU/RVnaphjOe7SUUjV1ECeMaNnNfbSQfbLtlikYH2QcJ58yh4etrSrYLgAuiVbbY Hbi1mAViGZOu7U8Gg/Nsg/YBPgOIXHo87lhza86VleWIxAUJmJ3ZTxvnAALFBkbR+G AXLXfltpgT1ujQj0GzO9bLMS45QaTEzvnrdHfSQLp2EJceqkJw+wkisZwTxqvKDwuM j6r0Otc2+QI+g== 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.7 365/713] iommu: Fix compilation without CONFIG_IOMMU_INTEL Date: Sun, 24 Mar 2024 18:41:31 -0400 Message-ID: <20240324224720.1345309-366-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 7673bb82945b6..a66f7df7a2b0b 100644 --- a/drivers/iommu/Kconfig +++ b/drivers/iommu/Kconfig @@ -195,7 +195,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 5dabf081a7793..5402b699a1229 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 68F69128386; Sun, 24 Mar 2024 22:53: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=1711320803; cv=none; b=n+6uBUephKNVbHKs5IYMlfin7mLH908JlQ+7kcqOiWphvdyWCoutqkVlhjwuIhVvHttjhG5ajYtwIYpZUyGdwK/LRXIDOrzpP269zbFCl64+Xt3F1BG5hju4T4uMazTS44afkhAB3lHuK5GUJKzUoabybfLODAqCgYnYmqYOWPk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320803; c=relaxed/simple; bh=pNcFH+ooFkIv/Gh6pWZygMrI9+wZ6KT5OyHzXrzdBTc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=AL0z8MZNdvDrci1u91pWPVHFV/Q+LD5mVvU76MfyL2ZrjgNI/IPAWFuGD4rSyipuIY8iaxBS0R3eRshUBadS3cOHWqez0mZweMFyqN2zh8ebMCu+DC3VmVKdzjZNfqkrR8wDsVR66reQVds6c351cOGuTr0TT4jiTkcCsyqgAy8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=FoVDj5uc; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="FoVDj5uc" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 300AAC43390; Sun, 24 Mar 2024 22:53:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320802; bh=pNcFH+ooFkIv/Gh6pWZygMrI9+wZ6KT5OyHzXrzdBTc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=FoVDj5ucybIRw2upv0FYUE+cgNdYdi233/uv4k6aimRQYceA0G9mdpUzyY+hP2TcS vjKIy9AJ7e3mye97sm8teDH5WlA8SaRjvOUzn9gjCLgPzXXYe55MDCXw7vmneTrGLS QIvjhLxlHB3RwKeV2WDhtpZp0N5kTnKPrGpHRnXJLWQILGeKHAVwS4yCHZSQ3vgWQn biE3QcrRaWbZ58f3HNrIGirb0ONAUVU6Wy6l3GA4rDcIvi3BN2nrWSpW/Y99six3G7 FpDL85meQI3txfoFlkJE5MWRoSd1F8sJXtQ/DcD4T2CUTQiiFXA45A2gMi7u2jY+/u l7/5Vi9Kly6Og== 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.7 366/713] ipv6: fib6_rules: flush route cache when rule is changed Date: Sun, 24 Mar 2024 18:41:32 -0400 Message-ID: <20240324224720.1345309-367-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1AD43146A7C; Sun, 24 Mar 2024 22:53: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=1711320804; cv=none; b=CP1Afz9y/yY37p7gNINPkBU1XTQvfty+NEZ5mjFLVSXsl64j5IO4tQUkMcp0lnnz1mk482dOEeWoJALFnWHsC45euMjd6SA6is3lhztW14mTgFEl5B2hJogWBFxWAxZkX48N8AVvgC6R2Hr/7FL/XjaCmUyVM9656ZhvCJPk+64= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320804; c=relaxed/simple; bh=+QkvvFUsfzJGAOfFG7l43e6uK8qVL5kgLn0QxLrcRik=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=gHDZqhm7Hf4KaZuqVAcATSWszkvxR0IkqzYzZfWEGZAKptFouJ6gnMVQmKgctkllRW4y0eAs94lVCqHzlELs2id85P9c0/d7G36xNTm6TVw3M2OEziczWN52WdqB0JboXyxwPdWUb5LJ9vb2XFRDFrSmozYbZmR+gDsFUBOGKiA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=GxFx3VEM; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="GxFx3VEM" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 438F4C433C7; Sun, 24 Mar 2024 22:53:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320803; bh=+QkvvFUsfzJGAOfFG7l43e6uK8qVL5kgLn0QxLrcRik=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=GxFx3VEMYrGo13mKf6IK4lz6DX63CK1L0OK0a2nFNMlWQYrgvOv00F7rdY7TMFJOW +SKTnZ4ReV+Zg/7EItFCKaCbjlY/dlY6SMDLbtXKpjYGGOBBT8/b5Pi7QReydh/Y+7 x7x6T0AFixn/WK+Ve1t+51VqC4W+6bn9+PvQxcu49DkjepZK3uXNeVbCXruCNSKA6p q20wmo51VfpPhOAgEfrF6kBBSo1LdIOaVX54N3hcxipt07yBLmEOQsIaVjLzbA1fk+ 7XnFWxzZOZyE2BLYSnWiWWryI/B28hf8NnVyfAhHbqazVSQLdWsKTJzXOtYow+b5/A uryT0I5i2Qfcw== 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.7 367/713] net: ip_tunnel: make sure to pull inner header in ip_tunnel_rcv() Date: Sun, 24 Mar 2024 18:41:33 -0400 Message-ID: <20240324224720.1345309-368-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2E5C1146A89; Sun, 24 Mar 2024 22:53: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=1711320805; cv=none; b=OlOQdzTmQeOTT/+pMqAu0tFpNdJ2tGqHSmzjy2Lep2UwNngvnpHHXBgQsN2qgMlREPohZhdfdb7L5/w9QbymLbnmEEgmNTzapDb6gHdMdJuNdzR4KR7NAzSwLFD155aMta8bQcRYqO+v3FkvEELJ+7sfruNrLHrpA8dl9mrGXH4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320805; c=relaxed/simple; bh=AFtDp0I19989MUL6aaJ2DsxhejQl4XuhXqLEYgx6LVo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=cet7pocx8uSYIrc+9kHs/cY8VnJOY9ZVUGDWjZWcCYbyGQMYkWZ2dc/tafO2+AAnBZl9yq/EcxNmJdH014v4aVvngCLK7w8HP+J9D/SpWv3A2YdCz+JU9aPrukKWufTIwGyZzdcKkXLvPz/l499LUdzHxE4osqwqTy/mtuI/LvM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=XFJSGcY/; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="XFJSGcY/" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3E5F6C433F1; Sun, 24 Mar 2024 22:53:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320804; bh=AFtDp0I19989MUL6aaJ2DsxhejQl4XuhXqLEYgx6LVo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=XFJSGcY/XAlQ+aIvoCiaDzPfwIxmU8iuY9nf9hkuTe34v/aF88opMQuls+NEU4bWn 1k61S4GDYVtnoSsYzoSxKmFh9SHogJDqxcLL+VQKCM/b5S21/HMQiVcHjChWfNtgOR vf38rTM12zWpAgykc+c5jkeQJaOIkDetUjQfge0Ueh3XrelYfO4uI8Gn22DHSPYNmw GEg5TUf9SqLPBZ47nMalqIlsN2UHd5w5kX5JYXQGHAwzrEQCF3Ham2nIM3+JG6whpm e1HePYPOkmABWG1A1iRbN5Bx6W1ieaBmd2sJaNTzZ5kbBURJGjCQ30JTnerw4wF8jx VdjO9KppSF3JA== 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.7 368/713] net: phy: fix phy_get_internal_delay accessing an empty array Date: Sun, 24 Mar 2024 18:41:34 -0400 Message-ID: <20240324224720.1345309-369-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2CE4D146A95; Sun, 24 Mar 2024 22:53: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=1711320806; cv=none; b=Ae2GNjAlvwnjGJZ8LMhJ1gTVDsBnvZrRYxqJ75xAaZ9NTbHO5YhGRsHHe+tebplCk3KxlZHomYBwvVoQ9XfsiRDJrkqSl9lNgNzrc5TUjU4CsKuPjEfU6Hi7OjAJqSAU+591fvb7q/i9pVsT/YrZ8FX3Z7tBXxZkICNfWZlvNs4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320806; c=relaxed/simple; bh=fGzJ+yDOc3uNG1UiulHN3KFRF0/HMCzgPfkQ8z7nWQA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=R1Hcre/ksTVgHgr/9TXUHbzzF2WqZsDXMUkiJS94lQ6yKV0NyS1l4GgYD+HjNoHsw6IiaxEkpsZ00KPH1T9pqkdeOcU6ZAj3PrMIuSXhozC4WeQ5/+dub7EvMdI9wW7qpj+cuENrpPuZ29CIeLBQv93S4B6qyjrrMgRi0PNAdgA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=QCZLaLnA; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="QCZLaLnA" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 549A1C433C7; Sun, 24 Mar 2024 22:53:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320805; bh=fGzJ+yDOc3uNG1UiulHN3KFRF0/HMCzgPfkQ8z7nWQA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=QCZLaLnAq3P9vbijyh7hLgbX1vUgpQBT01uf0uhNMUOULmv8zF4RGXCz5a4aVjbQX eMuZDciamJDYOfeKgWuMt6LdmMrWeKcGfI0DvmvF/kg10cq1nXewyPMIrPRq4qDdO6 BdfiKAQJCApl7UokWFuJCjONcs1UTOewxsWIqaPK41nFJw1QU3dFV/4xucaV1mRVJk W5B7+MZE7RLuaOaUAiZgjj7aaA+Vnm2vahDcum3ix3XSJ2mdnHxLMAb1xSTtUsJAAQ xQ0IFbOAMeNceUJQQIC/P489YMFiNtJyvl2EGfDE/yWD5nq6d2kEyWQt8zB3jkmx+0 ms1LZp8yQflpA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jiri Pirko , Rahul Rameshbabu , "David S . Miller" , Sasha Levin Subject: [PATCH 6.7 369/713] dpll: fix dpll_xa_ref_*_del() for multiple registrations Date: Sun, 24 Mar 2024 18:41:35 -0400 Message-ID: <20240324224720.1345309-370-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Jiri Pirko [ Upstream commit b446631f355ece73b13c311dd712c47381a23172 ] Currently, if there are multiple registrations of the same pin on the same dpll device, following warnings are observed: WARNING: CPU: 5 PID: 2212 at drivers/dpll/dpll_core.c:143 dpll_xa_ref_pin_d= el.isra.0+0x21e/0x230 WARNING: CPU: 5 PID: 2212 at drivers/dpll/dpll_core.c:223 __dpll_pin_unregi= ster+0x2b3/0x2c0 The problem is, that in both dpll_xa_ref_dpll_del() and dpll_xa_ref_pin_del() registration is only removed from list in case the reference count drops to zero. That is wrong, the registration has to be removed always. To fix this, remove the registration from the list and free it unconditionally, instead of doing it only when the ref reference counter reaches zero. Fixes: 9431063ad323 ("dpll: core: Add DPLL framework base functions") Signed-off-by: Jiri Pirko Reviewed-by: Rahul Rameshbabu Signed-off-by: David S. Miller Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- drivers/dpll/dpll_core.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/dpll/dpll_core.c b/drivers/dpll/dpll_core.c index f8fbf03942888..e72ebdf621509 100644 --- a/drivers/dpll/dpll_core.c +++ b/drivers/dpll/dpll_core.c @@ -128,9 +128,9 @@ static int dpll_xa_ref_pin_del(struct xarray *xa_pins, = struct dpll_pin *pin, reg =3D dpll_pin_registration_find(ref, ops, priv); if (WARN_ON(!reg)) return -EINVAL; + list_del(®->list); + kfree(reg); if (refcount_dec_and_test(&ref->refcount)) { - list_del(®->list); - kfree(reg); xa_erase(xa_pins, i); WARN_ON(!list_empty(&ref->registration_list)); kfree(ref); @@ -208,9 +208,9 @@ dpll_xa_ref_dpll_del(struct xarray *xa_dplls, struct dp= ll_device *dpll, reg =3D dpll_pin_registration_find(ref, ops, priv); if (WARN_ON(!reg)) return; + list_del(®->list); + kfree(reg); if (refcount_dec_and_test(&ref->refcount)) { - list_del(®->list); - kfree(reg); xa_erase(xa_dplls, i); WARN_ON(!list_empty(&ref->registration_list)); kfree(ref); --=20 2.43.0 From nobody Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 118EE128387; Sun, 24 Mar 2024 22:53: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=1711320807; cv=none; b=D7SzlXZZnIVTdFmUR+o+7te1o1uzk3V3Ts9zWFL0gECLeZRmIg6thMxVS3+WC7SDHdombUizPD4s3VBJODMPnbpfASysKUOmWWEBVCi9/T2ineDHN8XVZOj5bxR8hZCqt9XH8av0Npzg2sS0qDuD3mCtVVSB3b+bigzv59zJph4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320807; c=relaxed/simple; bh=vP825Ku2Y5fpQtvsySFA7Z6w4KP+omheovnqVtB+F0Y=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=GOWUv6niJnwPUmwVp6ZMr6FKJ6e08pAfVWa97jNID7hdXgrFC3TE2ZVP6DYvM+JUDBq6gvqnZghlFfWsNyXJOKwOKZGxtccUeyZSuzTnem0lIGjVfrAVH5AJZ8FX3dDB0X/QEN/Dae79I8nHkmKQEVWxEyTkvpSc4jiPom/v8pc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=aOkHQqq4; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="aOkHQqq4" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 50EB4C433F1; Sun, 24 Mar 2024 22:53:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320805; bh=vP825Ku2Y5fpQtvsySFA7Z6w4KP+omheovnqVtB+F0Y=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=aOkHQqq43/VKJKvJ/yDp5mXXOjSblQKx5PND+3hpWDWkxxN0IDfVqbGeozV9Zfm++ v2dVEhRG9kmUS/TCXQ/gH8JV/6mAM0ZdKPLTvnghacjAhUqdoCmdhLW0KHyUkFDPc5 bDk1lT4Ywixz31QEF3+DB7f0deqvYagOxjauYUauo0a5LDFpWbACSbebq2FRhRKgU8 BG7SyCNKW09wCegHE4uVkAhLRoAUSY8+Iol84QdLghFhMBhyGSOCWRtSahdHgh1KU+ WNJ1OXtSPJT0mqeumFzt/HVXk9eBnROi4269jsWFgVS6B8xwNcfAdCFogFFOIRrEqa RdJGzx+qOySiQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jijie Shao , "David S . Miller" , Sasha Levin Subject: [PATCH 6.7 370/713] net: hns3: fix wrong judgment condition issue Date: Sun, 24 Mar 2024 18:41:36 -0400 Message-ID: <20240324224720.1345309-371-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0A391405F7; Sun, 24 Mar 2024 22:53: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=1711320807; cv=none; b=c+o6Os5GnClvfkcHn67PxizTmgp2RqCJLH5pihiJt91v9UPuxXbSZ/uiheImFoIRA0lQd4E/LoJj8fp77iOLmoBJ0ul+3XEQnES2Y1TsBzAFB/ewd7//ualxqh3NBkI91SLjMlxC52WUwmLNunje2CF1TB0X1mRHDMpXLjwQ7PI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320807; c=relaxed/simple; bh=vqdGYh2qX5PJMHJlK/yEfcvomm37fo5U2NvzLr8m9aU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=JTUjGP2NKmLPmxt4LnXmQH4iYZ/KkvMgsKBxoj6H8gu1N3ZQtLukpmTs+bowQXIs8JWcdcknRudJAGuM4EA61WQRRlG+Pdnm0TM+lVKijN+1js8wC1d+PHmd5oZdIHnP3aR0/ARVPA5OcQHVIBYe2wyZFXaHwxxc730GVqZ9C04= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ReKwXyGH; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ReKwXyGH" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 36D5FC43394; Sun, 24 Mar 2024 22:53:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320806; bh=vqdGYh2qX5PJMHJlK/yEfcvomm37fo5U2NvzLr8m9aU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ReKwXyGHOI4ZCN834SnVzqkTw3HxSqSP1ouiRztWaiLt3isoG+D7NYipZOqvUsv7F jc0LrzvaDFnHebsyuEBbe/pEiblZxNy8qAlDlmv5NbCBhBUi0GLQagit7dFcR/vL3D Yijfm43uR+SCOB6WzhlAzFbzGVymhD37IiLkQQG2Ub9zYAyLEwHyg4MrtppjIELd4b zA7utMpgob07NY+uJnQeg8oVE1uar7FaXPuCmdSIizYW14ECXE5R6EjjhpW646eIO4 lwIk+dNgrgK522P9EqrUdq7WBGLGD6cGQhX211NATme51vDmIXmEJuOVJXvuVjD2ie k4MshzvQvpuaw== 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.7 371/713] net: hns3: fix kernel crash when 1588 is received on HIP08 devices Date: Sun, 24 Mar 2024 18:41:37 -0400 Message-ID: <20240324224720.1345309-372-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 422161E4A11; Sun, 24 Mar 2024 22:53: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=1711320809; cv=none; b=PGlyahLKUQY/XFYorYCbhV6+BeFjvL9guyNoqZ6HiHdGk9nN2q/XEGR9WoaHUJ9isJZCDfjnvNpUzpmjiLegzeTPEFYUeHFKB9GT0bSY3/fvsD/lGMSEcOhRVBDBLSEraTQPYGHJG4VBQagB8k/9dUc95u8futzW20bONJm1b2Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320809; c=relaxed/simple; bh=cfO/pSwv8DvtXWRMznN57ZBsrXBoyZbOV1j5gmASnTI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=hJNCVT0GmdSLecb+alNflvDdff+oIuRcSLCd+HpSsFA76RMJYCE6AbJWNh2ds6GxsGYAhAHmXiAeQzSL8I0/zW0g2ejXfPfOomazQr9Dw8tx5zaYe6vxtv8K+V+zrJLEI5N295z+bHSQi4ZI5SjT8gTJVmXB9H84e8KiHn7hMuk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=nVvsha7b; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="nVvsha7b" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 331EEC43143; Sun, 24 Mar 2024 22:53:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320807; bh=cfO/pSwv8DvtXWRMznN57ZBsrXBoyZbOV1j5gmASnTI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nVvsha7b+54JT/u/tHZdx0Eo2FwiSnsPMQx7ppIA9XhO56FW0WT/rYz4GwXJs2XaK Sm1KMZA8eaR8RSpbtMNZTY2SZQHjrFoSi7xNeL6+pAagEYTpyiWvQDD0/HvZvxEzUA mmSwhuvDJPH1ZWNy+4cmL1Kli5to/O+MCPPLB/qg6fwkoUsIuWdQYaEHZgNBR8vvoM g0MBiNDlaHSpVjZVgyeCFou3tpVYWZaaAID2LQ3v76pS53Yi8oBpWr+tEIePVf2HO0 BD1QBHCZQskRu+gqM8Yc6pQEBi6u5tUssgGPjq7+KStcXjOorpKNtI/1nz8vbrCWh2 o2Dm435WyEpHg== 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.7 372/713] net: hns3: fix port duplex configure error in IMP reset Date: Sun, 24 Mar 2024 18:41:38 -0400 Message-ID: <20240324224720.1345309-373-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 5ea9e59569eff..609d3799d7738 100644 --- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c +++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c @@ -2890,7 +2890,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E6B551E4A0F; Sun, 24 Mar 2024 22:53: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=1711320809; cv=none; b=HKmCa12h6IZ9AI2+eOj5ubJi3S0doeJffLJtuRs8/iD0rw3KlsS5SAtNPXGrS10B83Mmhb685N79cI9e3wP9U79gTVy+sjhn5J26jt/BLSgMkfallySR93UtaBollQe3WyyhzNrKTyvBD3ER3gIcLE1/r93AOYtqMDAxft3SU1I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320809; c=relaxed/simple; bh=LHMGvFVwf3Qcf/aIqresdD78FYxbY6AGHTVAdf9r6kw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=p7V/PN0n7cp61PXxV6UvmbhJpGuCIU8/WBzYyxR43xtqiK+i670XT1OPSeyelg4qqeZIr+0/PRyJEp6KNXzPLvMyrX9zYcSEQpqM5/hQuB5gHXx8i+kPiFngRRmIqdUe8FjcKY2omhFzbsnejkUcGmJdpz/GhX+MyDPy1sZjzBk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=cJofyGxH; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="cJofyGxH" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2EBC0C43390; Sun, 24 Mar 2024 22:53:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320808; bh=LHMGvFVwf3Qcf/aIqresdD78FYxbY6AGHTVAdf9r6kw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cJofyGxHyqS/k6Om29Ybq66YwhakmwtJbn2Vaj3CHwNA34byrkCfa6roTNgddGg5Q VX6N4VVFfgJ6rcrvF/Xwhe+AnQNuIPB1MQ7Kdu/FJC4VvQ1/e/W7DEAhACeDBhlnkR tLjbT6kJx3rveMfSYD4JgSf8osi/1gUZiBkyXXk9nxLkLhVGTG4Oph5XoF+zlzQAh7 VlRnb3P79/A8SUdvqGqKMr6n3+gqUX10Yl2/etP3Q4qzMusmfP47YVWxD7J3thigpi ArVJufqQ79D9h/tJomqD2nlDDWFth3O1FGWum5jiyuBWjaNHjx3sC77tvyPq+sLwyl 9bYPidXw94hvA== 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.7 373/713] Bluetooth: Fix eir name length Date: Sun, 24 Mar 2024 18:41:39 -0400 Message-ID: <20240324224720.1345309-374-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CDC9B1E4A20; Sun, 24 Mar 2024 22:53: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=1711320810; cv=none; b=SUSWw2FV1LIRuC9HocgrxLzXYCZK66WeYKxG03rNOnPIfmWE4M951slHxGyrkVc7mc410P7nAktpoLuTkmC+l84iZTvnWTtB69cSF5dg86M2bewWrRnGL+kabKkp59eKJVTIzogDJBENfRNiCXUZ1QX+gdTa0Jw5DMYJhO4SDFs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320810; c=relaxed/simple; bh=eHTqfpRH4w1jwSBCjC/7u/xx40HMa+l75jbyu7n46y0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=oRIuIsgOQWy4iLZg5zlIoe50eZdWjwHq1kpt7OuM4Eq2QyeuTcF0UgStgeihDKVDzj9hWRBGI59UA9mzByVAu33vuvdiK4vtcNsuOEeAZTcALdMxtMCYlIWRMU4xXmyXZ5RE5dnwxb6pVeyfAnoVptsTvk/NIw6ih704rzWu2gQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=rR5ACJrl; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="rR5ACJrl" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 17934C433C7; Sun, 24 Mar 2024 22:53:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320809; bh=eHTqfpRH4w1jwSBCjC/7u/xx40HMa+l75jbyu7n46y0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=rR5ACJrlug4QZ36YQjO3B4dLoZ9SEI+g7m7wm5x67t4Xew1v7mylA8nXUDanRhoj/ jyspLp5WcT8/GvxGemcAG8I2uVp+5MT5WSX+qwkL4Ja/E4aOo1YSTRqhKN0DuuBjjd GK67kfT/ECYsWIM0yEMAewCS4JmcTA4COi4FAxYUEjbN8KEpwy1UueEDXrhUK/HNGq rJaQlJY5PKvyrXuVxYaVIC1Z1dE2nRhof7n5okd3yVZvWrOvPMWx+95p/5zdbr2rtT GvDssX95fRVAGExHgtLxsjIZQdEvp5ibPPsVJO2huJQlz4UDaaAzbT/hgRFBmTtuDe wyq4ZZBQFl9AA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Tim Pambor , Jakub Kicinski , Sasha Levin Subject: [PATCH 6.7 374/713] net: phy: dp83822: Fix RGMII TX delay configuration Date: Sun, 24 Mar 2024 18:41:40 -0400 Message-ID: <20240324224720.1345309-375-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A15901E4A25; Sun, 24 Mar 2024 22:53: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=1711320811; cv=none; b=ZdUu9bhIbJmcB/3X4qr/yhhhz4Yhte/3p8jsypDg9o9mcyODR11MuMF92daA3TT/SrgojbdOB4x5FBrLoYMdqm17trNdP2Yicg3/MxW6JmcQXk7S3OGjeHbTnOoN44OUnZIeonJ8PSMUqcEUDnamMV2z8rvowx+8cPGMn+IfloE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320811; c=relaxed/simple; bh=bqhQ8CzGWTTriI8TaVQ625rSdktHGajB4fQc3wcp1no=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=lSajhmYbVaw3p/TuWG/jNSjwvXh1gWumFhvYR4pZT9VyxqKhjiEw4HLIFjLSDTd5fuv5L1F1+stnD7Xam0gC9QgHcA9vo7DNYprPG4GUzClC6zRMYhlG7vKWJrxkL0xTR+onY6sdhvVjJSDUiKIAl4wWY+78+iRGYj5YKbxhqQA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=GhF+6pDi; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="GhF+6pDi" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 01DE9C433F1; Sun, 24 Mar 2024 22:53:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320810; bh=bqhQ8CzGWTTriI8TaVQ625rSdktHGajB4fQc3wcp1no=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=GhF+6pDibVZLR33hA/ohFaxIUoAtlA6hUkT0mtlVvqnngzuoRglKaLE4ktNoRy0d8 Qs748lxiXhTp3JSZMLTFc9kejhEuw6AO04SJxNtnfVERDWbvEuYI+Vy4ApvihayAio MlCk4q+6IaRlIqzQQuPgkblDgVanyv/Ahq3kJ5OfgcJZqfxwEL+kx9CRhc/WeLsvqm N9PcTV0RbtHKK9s1C8d9IxLL/JzGdkPLVtye3npy73m7B0cWm0N+uzQUd8TChSXwNE aXgD4LzALfjtVxwzDFcHECGq7c/3Y3220HRE7VVfymReU8JEI+uACMEvfuytoU6Cjl VuY1WmtusYV5w== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Al Viro , Sasha Levin Subject: [PATCH 6.7 375/713] erofs: fix handling kern_mount() failure Date: Sun, 24 Mar 2024 18:41:41 -0400 Message-ID: <20240324224720.1345309-376-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CFBC01E4A31; Sun, 24 Mar 2024 22:53: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=1711320812; cv=none; b=ZdrDhs8oHky6Ikp+aUAlZAy2H4NV9sj7WRrpRDJK6CKQnjZn758J5OT/rxlihe0lWaMMlJdbKFjJUg4OinjtR9ANZGLo+eWytHrjnJglOYdxSUdajfmo29hxEr2HXQ6vmZzVuOUldeIOv8hRhX239SxHj/EF05xD8bRA7Z59b5w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320812; c=relaxed/simple; bh=/wkUrVURaFW6PhpN42GU6CG4bO+YUQVvcwI8FwqBU1g=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=X4PdzmOhjC5yWk30KUC4WGhoPAF/5EbrM+UCKlb4NAKDFHFt7ZYmMY4Q6l2HWQ60RXZpmU0E2Qg071UoyRtS1Hm0f9ZzmQQgdMfZTHm+vyr7aiu9EzGjDzB2xifFX8jwG5vR21f1b5tsez5dIoV8WYztBsCMoqTsy4oXgGIvJ3U= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Gx1hcfnL; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Gx1hcfnL" Received: by smtp.kernel.org (Postfix) with ESMTPSA id C8020C43399; Sun, 24 Mar 2024 22:53:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320811; bh=/wkUrVURaFW6PhpN42GU6CG4bO+YUQVvcwI8FwqBU1g=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Gx1hcfnLaPT+uoSFSJAxEUrM12PEPKrsq99KNW5AfWRSRcztAj5vTMboGBqTFhrJ+ aH4V/0Zm1bKBEhj3+MwZUbO3pGPEkaJRdHyvUuMgNUqSCTDZ3eYYH7sEhn91CpeZVs O78IdNmyM1ND8fkOUY2uH2G3He6mHNwvq/ys1MDRv/BJOfvqjfls24nWG9LqjB7hC6 yxFugiUuPjsAf4ijhOXwHlv6QKpzVjSO7P5sSyGiZu6cqijM/q4X6dxqLN3tDglAu3 2TWGS4QWhY+I5dTiI3S93YL5p0oQdtER3sLnf7bCp6s7EuYzPq0Hf6gH+trN3+8SdG HbEL2zoRWeyTA== 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.7 376/713] erofs: fix lockdep false positives on initializing erofs_pseudo_mnt Date: Sun, 24 Mar 2024 18:41:42 -0400 Message-ID: <20240324224720.1345309-377-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya -------------------------------------------- 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 b0409badb0172..410f5af623540 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 3789d62245136..8a82d5cec16da 100644 --- a/fs/erofs/super.c +++ b/fs/erofs/super.c @@ -573,13 +573,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; @@ -706,11 +699,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; @@ -783,20 +771,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; @@ -818,12 +796,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 @@ -862,7 +834,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CE0771E4A3D; Sun, 24 Mar 2024 22:53: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=1711320813; cv=none; b=pZE3e/zYSH1e4oodjjwoxIF4dIwnczEhkDxJ0z5k7nUiLAViKBcjR9+YqcI0N9LWjFyKe30TRH26hVCKiGfserZHQ7zKjbvR/viQXxqeukBTrklyXQ23VNUR33PpO2zehSIpN2TDXrHe+8otGSZqF9614v7GOmHIW/YpPGCAddU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320813; c=relaxed/simple; bh=hP68GkQ2L6JTHbh2rG6h+rkhITHFGKUHyafkXz2mEaQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=V10IeFEz77UYva69vqBRb129F6DWQbxGmHheV7gpbV4M23+H89497ZxTg/kI5Wvz7YEpVBm4i7SVuCqLXdz3yRPeLPmTnH9ca7m1GCClw412kxD3mfzDLEb1Dd6BC9jrEHQeT36vGT/dxyLjbjp8Z+TSMJ7ZynhTIeq1QSF2P0Q= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=jm9XH+Be; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="jm9XH+Be" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 013A8C433B1; Sun, 24 Mar 2024 22:53:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320812; bh=hP68GkQ2L6JTHbh2rG6h+rkhITHFGKUHyafkXz2mEaQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jm9XH+Be06ErztLnCEWyvbkWCIS1oexB4uVpjPsyLr2AQ72PbpV2ykMC3xivq2ypu r1i4sl6D+1SshrBy+qUun1S5gupefshuYp5F5ZkR21+2eCKdNGz21Zs4KfEKQZsIeT SJ6qTnv5G8JoMYWZ0yqzK872EtUvBnZJ6bLuL2WOM0M4WiiJlhzwuISEaaQ6pazUG8 ++pbzW4ZsAmvc9DSu2mfaMwISAFb/HGMrLd/7yPYiEO+Dz6ZpeyZj8nlm5xv3AXHxD Tzlh6T6x9SuGezxpYw2y6l8FsQ5NHFOJoBQbePhN0OtQJTGAhIwUBjDTnhf6gkW8Nn z4to8uhyjO/7w== 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.7 377/713] OPP: debugfs: Fix warning around icc_get_name() Date: Sun, 24 Mar 2024 18:41:43 -0400 Message-ID: <20240324224720.1345309-378-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 ec030b19164a3..f157fb50be50c 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CB5A212839D; Sun, 24 Mar 2024 22:53: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=1711320814; cv=none; b=tgsZJVuChHNmyA4zduEWPWYbFe+ll4bATASfwr8hpgjFL5zOMR41ddYsR8msoiKNmu3LagHQkXgapnxs8L7NewGOfntddETJGcMu49Jmj2y6Nr+13A6B8pThVRD5EQCZDnWOsHnhSciBoIXkFLMiQb9UH2kxMgRePqoM3HPlhEU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320814; c=relaxed/simple; bh=lZLSFq1iJp+1yqZH6jxlI2/fDatifOXhw/hTEBOsvak=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=KYzcYwR2x4SDaQEw+hjccncFCrt8gPXubeG7zm+/NH7mFBypIa/tAtHSdCRRtcZi1ROm3dbyeHEHUVKSHHBMgBa3y0cXORib8xH83yQO+MJE/aGrBjDj04mvSmXh83vk4gZXjyeaw1pcgsaW+uylFieoYzLXigzsjTFS+tRdKlo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=RAwiXl2P; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="RAwiXl2P" Received: by smtp.kernel.org (Postfix) with ESMTPSA id F27E2C43390; Sun, 24 Mar 2024 22:53:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320813; bh=lZLSFq1iJp+1yqZH6jxlI2/fDatifOXhw/hTEBOsvak=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=RAwiXl2PmbgRTIlJtTxVSulzOFS9p8MYJOUHmiJbaU+nFBgC+/bLyF0S4KfU8n1e6 kvOvoVUCV2xvBTglWdSWYGWMCSUekVHfxj6TLMSMVbiTqjnI06q7Ww30QGoY+aSaoC WEqyG5XjkG15IWCIPQSMdUSn1go6iNx+iAnGxqZQ/tzfcelQpTAXqbQxHorpb3V76n QsZcRX/lCHDmMV30BmXW+MotR6YEAwSfRHP80ec25zQgeobPQCH1XXWHFBY4b3fX8+ i598s+m8UItWVFht11kjqvRfU/J+8/6PAfAQJLTiDBtMQSloE4eFXZ3plauHppVU4X BYUh3L0+9kcHA== 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.7 378/713] tcp: fix incorrect parameter validation in the do_tcp_getsockopt() function Date: Sun, 24 Mar 2024 18:41:44 -0400 Message-ID: <20240324224720.1345309-379-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 b30ef770a6cca..0d03d48702a4e 100644 --- a/net/ipv4/tcp.c +++ b/net/ipv4/tcp.c @@ -4011,11 +4011,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AEC7B1DA179; Sun, 24 Mar 2024 22:53: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=1711320815; cv=none; b=qbegBNJWloyEkrtJ+KgkAN7EXCvrEIKGeA7R4201rmM7gnnYqTLx95TtAcerrkE5Tig6P+vVFPsu7bHPDdCA8+ibQlOYe+Vr/cBYRUhq6B8725DQkMs87aecHMLEFp4yNcX7+cRoguinK3fl9SCyL4aMW1xjU6GH3lAAYT0rIDY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320815; c=relaxed/simple; bh=FkpSNpSlpycCmcF3vPsdKNwVZjnMaXFcSIOgP4WTv0Q=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=cs53/wyDAq1UygpnXtpe+tIwpJ5E8o39fLTrHqCPR1d94knUnIJqqR5p0ma2ixjIQQWmn/vK0na0IGaYhIbHauNIsUxkbAjGuljZKpDyzW3DJMEMSOBVVDb9nDkH4Ju8qSnyGVkIv2lkRhSPrj5TpeUcd/CE/0IuDp7byUclYhs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Noh4FoI7; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Noh4FoI7" Received: by smtp.kernel.org (Postfix) with ESMTPSA id F0B80C433F1; Sun, 24 Mar 2024 22:53:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320814; bh=FkpSNpSlpycCmcF3vPsdKNwVZjnMaXFcSIOgP4WTv0Q=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Noh4FoI7Uotl4LBilO2RLK/zF8zJKxpDdZ2WRDOROfUZQR2q2RstffbWYSJvwyeFz dBgLeh6N+hwXFY2qJEnveyoTS6dqQNeZL81QQZmoCrpa6DVdLx7bw67qrB0x0PeJZY 5XYTB9NkbhELrDEGdJFOaUBj/puVMQzFwkOsanAtmRYr06whEJKEpSAV/iJRkb626Z MICZyxaMAKVNPhdbfA+gtylgxNP8e/Frili6LMqMCextsWLH9imwySNZSmpQWD2jiV RzaAKPQ8ny9So92uCqEDTqudp+zCpl3P47B0wQx9XjkNMYLK/WqOAwvBWcxk52yBZ1 WRw4dmfcHifZA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Gavrilov Ilia , "David S . Miller" , Sasha Levin Subject: [PATCH 6.7 379/713] ipmr: fix incorrect parameter validation in the ip_mroute_getsockopt() function Date: Sun, 24 Mar 2024 18:41:45 -0400 Message-ID: <20240324224720.1345309-380-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A69821E4A3B; Sun, 24 Mar 2024 22:53: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=1711320815; cv=none; b=uVwMSXfRACplCusWvI/iqQVkiq4K2YuOdNNMdM4MAy1EEcS7HnStlXEFCOT2V25gHeBX0+Nda8+BN5UZWIFfKCZTOlKQ+KYcou/kYy66IEJOFbnzZlatUY/iOOpAcyCK9obHYSa1XlyzIKuZQL8fgz5WVpBMqMer+PbMCq5zTtw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320815; c=relaxed/simple; bh=OQsM+h49KmJCuY/Vc4xjJEjsD2hIGGvvSko+Q3j56jk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=InSeFWeJPMhhv3Fb6/ZMbVl9QrzbaTxKbI8IJmZCocKTrtBfklLy98MRDm6LaYvPJYodXo3BqSr2Y+ER+n1fuxMX6qr0qD12HCWY1uLe5e+iMZWGqfSKF2L+5/wXmCS3DE/sYykR7Nk0aNMOkTUn+iSCg034704icNnsV2BMcX4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=D1A8Gm+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="D1A8Gm+e" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D439AC433C7; Sun, 24 Mar 2024 22:53:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320815; bh=OQsM+h49KmJCuY/Vc4xjJEjsD2hIGGvvSko+Q3j56jk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=D1A8Gm+eCgoHnX43fBs7zSdREZL47udNJhabUfpVTEAfs2SgNfhh7IStahjJ2e+94 MA5LMwLHmmixXOQunNDWa2LNmCzn2jCV2VGMZLODCQp8PsfTwTS9/EbvqGJWQlfUsx Pc1xAQFlzPMDg7Pcpj5TMYiuryiTGhVecplNM8xIz6DEo+KeKCS8D64nle+ATDJ6RS ekmXFfXFa2aITM/fh+16LnJfQiE2pzbPfW2mSSu+5qQ8p6oInVjeSJ7LOgYLbKwxrp kztlllbfinEZd8ziTuqutXvns9D6RUiN+j0jbsIrD+LVUd4XJjaxkQFfhgXZqafLoh beyBa5QVbAsiA== 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.7 380/713] l2tp: fix incorrect parameter validation in the pppol2tp_getsockopt() function Date: Sun, 24 Mar 2024 18:41:46 -0400 Message-ID: <20240324224720.1345309-381-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A355E146D49; Sun, 24 Mar 2024 22:53: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=1711320816; cv=none; b=U1o65CuTCO/71y5D+gNCcDGIp0wyCyk3q0pGOWTyYsv5jDfqLg0F0p104WkGKdfwn8/w2lxUYM3fUmDPyrLYOAq5ITqlWovCIQ9Y3NJDAgvMzEmYT+Nwot9A6FuMl5p8mrGKmHuyRvda47urZNNJrf6myRtYJ6qoL3FxoUo3DsU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320816; c=relaxed/simple; bh=v11nOk9WMIawSUi2NTo75pwxYN0u6dGKGLF3hwTXg3Y=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=hZzGmHiRvRLR86mAXymS/H3G0SOSF+ygR2hynArtUPjKveypJ00ARJCyk2P2o9XS1kk9vagLS/E6RePgxXabSzR6+aPGBx2qVRPo2re0u4caRM1wwtEQijZ3ogiMyP7PLZN71tPASVEAXsQQZpiQ/5bqKbBCIjm9yU6YWseNgFM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=NsK0BcCH; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="NsK0BcCH" Received: by smtp.kernel.org (Postfix) with ESMTPSA id CCD6AC43143; Sun, 24 Mar 2024 22:53:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320816; bh=v11nOk9WMIawSUi2NTo75pwxYN0u6dGKGLF3hwTXg3Y=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=NsK0BcCHblUep+n9Ds8LFMp0WTIfpJk8YdRNvfd2dgnBlxHYPHVxsqyb/6nCbudLX 2cLW3yc+5s0rZuqnAvIXLneJdHbMXodykLq2BFhxP6FkcA9rCYU4c5gNwJWtMAlOr2 3p6LQyq03tXi/1zwf6YEJpxG0pbWxiUG07ZShnTbYF+ia6OvT9vAI9R3HxX5z8sQUS +fnSQHKR54id2VgoTHkDjTwpg2dz0yq+GQaTGQNAeYojy9ax2uUI+jxLyhMxtwvf+p ioDaJy7LecKaCRIZp6QOfXKI2JTFoBjdqIdZsGK+Vjfc/pzXm4r1/wvtYQ7JiNRKhd 6Im3EAz0MVeKQ== 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.7 381/713] udp: fix incorrect parameter validation in the udp_lib_getsockopt() function Date: Sun, 24 Mar 2024 18:41:47 -0400 Message-ID: <20240324224720.1345309-382-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 e474b201900f9..17231c0f88302 100644 --- a/net/ipv4/udp.c +++ b/net/ipv4/udp.c @@ -2792,11 +2792,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 892DF146D57; Sun, 24 Mar 2024 22:53: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=1711320818; cv=none; b=m/3NMZ6AUbkQLeTY/LI5O6bsqb+oOgAeNVwMZ6fLpfi8VNOZeA+pfcDl50aTiXqye6oxgRaPkWxuCOKYYERlWNduR/VWB5daJuflQ/X+8fjSWmgstuXzs3Y28jtDsHng0sf1+CtL1NP0wYA95ZPW1ywGJ8sDToYlfRL75p5yR/k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320818; c=relaxed/simple; bh=KEnJYE7iFGmp2/B2QX8PVoBww/lPOvrAXRR2IkS82Ls=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=GkEwEbLGzOzzWSSH1USGJEZ7ZiRxXBPURt1QPWfN4awuYQbQId+q4PDTyKm7aInI/3hW2l9U6f7yorAgC28Bgr9kbVwqnMEllj0CaPy6T8C1SJkycb3vOqPG4TjMsi6W//0wTYo4XW63BUYmsryJUH9OG69NUnN80eS/yfGP7pA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=UnB4fX+F; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="UnB4fX+F" Received: by smtp.kernel.org (Postfix) with ESMTPSA id CA5A4C43390; Sun, 24 Mar 2024 22:53:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320817; bh=KEnJYE7iFGmp2/B2QX8PVoBww/lPOvrAXRR2IkS82Ls=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=UnB4fX+FcBoGOL/FFc7cnPx7qgzEHh4uoRgsYaSVVQuU3/8bbu1Mo6vhy2yxgZjV+ j8h8l9pMIID7b8w4PtPDjcoMpeT34sHw/aXPUKtVYESdizzLW3EG/fHtSlveXQxw6v qEp1XgxEkX70nyc/mK5G3zgPaCaohL+uQMveux14NRc7UnHdPV+3FunAsPgC0YK2Rb T/GsCOyt5IH1WRa58g2JO+vcoW5M8sJ9yqIQvatVFsQ6/GeYsTqXjG9haWcVd1qORN /WOkxlm53LNMeHC2qdOu48jyUQ2eBxUMO0oa9yzLHw7j8JOVKHePpX4xWnGiJ0w469 cQHmAZ0fjeBoQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Gavrilov Ilia , "David S . Miller" , Sasha Levin Subject: [PATCH 6.7 382/713] net: kcm: fix incorrect parameter validation in the kcm_getsockopt) function Date: Sun, 24 Mar 2024 18:41:48 -0400 Message-ID: <20240324224720.1345309-383-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 1184d40167b86..eda933c097926 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 71843146D61; Sun, 24 Mar 2024 22:53: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=1711320819; cv=none; b=IM5QJNNFvjEpbjZT3uws9QnceJ9v1+UB1uAXH/VrTvhOYKj2iGBXa+R7i2HE9s4lVGqgvSaq3UWzvZr0sABr4NHiF2IB4CEqyCrgIyrC2hcjySirhsZaAzPI21S0i5qZDQt1GuhLnu2n34OZ4417NRzLs1Hl+0YfeMawQTqswJQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320819; c=relaxed/simple; bh=AfZxNChh6nQgv6CiSACYtKJCz7TflBew/qgCzAtcdW4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Fjmo6ZUgpZv7wkjtxAScdd24uzEHe/5dG3OwmPmjoPG60tiy+OcFpRX4nkoqANDJdTj1qujSb296vmOadMBIL3NNxLnBChgz4ohP59hPf1gSdU6R4iVXD8tE52R7QesiwQz6KMAlZ3gtXLfbp4vdi/XIbZ3Fe/1gnr2SzLpXlPY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=uM3JDL3q; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="uM3JDL3q" Received: by smtp.kernel.org (Postfix) with ESMTPSA id AEE30C43394; Sun, 24 Mar 2024 22:53:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320818; bh=AfZxNChh6nQgv6CiSACYtKJCz7TflBew/qgCzAtcdW4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=uM3JDL3ql0jC6rtunJaXe1kjBtlZgE6fw1PAlBXq5dBlfPCjf3Szrv3xYdSp7AmbH srJJUUAXiU5GFAmZ0OKKKhG87w+Mj1IsIwncXd9JHxdpxAN+g/Xu1sVD4vK76ww4Pf ki90/V0TC1r3bT9OK1YZ4FlWdv1M1XEl/9FxDGqNZqHkOF2RWtgx6xsY1867ybYkSp FltuG9m/Bsz0lG8eycmJ2Jxvzm5GbQfVXnBbKfrKODcFFzHDP1UszhEEavbm6kAGcF ne71OPn/JhjmZNSLyxylVI8sbgzLN0pu0HJrWPIHCX0Hw0u2bkD9u5uWmcfnJ3US65 3WNWke2HQ/ilg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Gavrilov Ilia , "David S . Miller" , Sasha Levin Subject: [PATCH 6.7 383/713] net/x25: fix incorrect parameter validation in the x25_getsockopt() function Date: Sun, 24 Mar 2024 18:41:49 -0400 Message-ID: <20240324224720.1345309-384-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 aad8ffeaee041..ae90696efe929 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DD2A0146D73; Sun, 24 Mar 2024 22:53: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=1711320821; cv=none; b=jQajULTOqMcKH0iF1Sr9sVdoZxIqloJz+vyqjUM/KaVf6Ot2IeRxwPrdj0oXpa4i0Xu6ZY8oQweA+hvtG9Nrmlj6Pq9YCo1ltvOLytgpmpiS1nZvk4q/qquaotRlcXM6PkiiYXwMAwVvetG1P70SzqYVizu27KQag1jB6eU61r0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320821; c=relaxed/simple; bh=M2OsYs51VjFRIBUMTBUyP13zL0lmYIgF0zd8yxKnow8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=TeKmsVXRm834A1UCAbUJdMga2E6e3u5kvjrsO2ESAxsqwtLhkzAxk58SkJyFYbtq+b4Yec5ObyTcN7s2+a/TPb1gy0c3sL6DZ7wTFqkiiZT6DmpFFULP38RX1sOK57EBjq22VewKyVZ+Hm/EdZSYbaRXf3ggWEhdiSwY/RBofdA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ohh8n+Al; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ohh8n+Al" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 971D0C433C7; Sun, 24 Mar 2024 22:53:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320819; bh=M2OsYs51VjFRIBUMTBUyP13zL0lmYIgF0zd8yxKnow8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ohh8n+Al/U10C36TRU0vkztZxwB4WEAPS6v8v+pw99+iDae9mMc99qMEW8Z6eJDT0 8QiwJiUGvamXiBJyQVEBSHt2txGUgIbOAOHyx9S8VA3JHBgnWppW9WYkv+dItswRU1 oY2inn/flD6AM2auRADlkU9ZHi0xCng9ESZ1Oy652hIOWzf7Lt2AG9pI8Bw6H0KGQx MhjZ4XUsutTmSIRE5los+IFimfNpdxr82pYzwfU/9zby0zrSyxozhxoSgUGRPytH1S QWEwitidWgKCGUxfykVqMuzduNVLI1leNQ7aSRqL5HnSuy+oW7Dplk7+2ZVo4NY8AS RDQ2ubl2PCEug== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: William Tu , Jiri Pirko , Simon Horman , Jakub Kicinski , Sasha Levin Subject: [PATCH 6.7 384/713] devlink: Fix length of eswitch inline-mode Date: Sun, 24 Mar 2024 18:41:50 -0400 Message-ID: <20240324224720.1345309-385-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: William Tu [ Upstream commit 8f4cd89bf10607de08231d6d91a73dd63336808e ] Set eswitch inline-mode to be u8, not u16. Otherwise, errors below $ devlink dev eswitch set pci/0000:08:00.0 mode switchdev \ inline-mode network Error: Attribute failed policy validation. kernel answers: Numerical result out of rang netlink: 'devlink': attribute type 26 has an invalid length. Fixes: f2f9dd164db0 ("netlink: specs: devlink: add the remaining command to= generate complete split_ops") Signed-off-by: William Tu Reviewed-by: Jiri Pirko Reviewed-by: Simon Horman Link: https://lore.kernel.org/r/20240310164547.35219-1-witu@nvidia.com Signed-off-by: Jakub Kicinski Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- Documentation/netlink/specs/devlink.yaml | 2 +- net/devlink/netlink_gen.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Documentation/netlink/specs/devlink.yaml b/Documentation/netli= nk/specs/devlink.yaml index 572d83a414d0d..42a9d77803b2b 100644 --- a/Documentation/netlink/specs/devlink.yaml +++ b/Documentation/netlink/specs/devlink.yaml @@ -244,7 +244,7 @@ attribute-sets: =20 - name: eswitch-inline-mode - type: u16 + type: u8 enum: eswitch-inline-mode - name: dpipe-tables diff --git a/net/devlink/netlink_gen.c b/net/devlink/netlink_gen.c index 788dfdc498a95..371f27f653317 100644 --- a/net/devlink/netlink_gen.c +++ b/net/devlink/netlink_gen.c @@ -198,7 +198,7 @@ static const struct nla_policy devlink_eswitch_set_nl_p= olicy[DEVLINK_ATTR_ESWITC [DEVLINK_ATTR_BUS_NAME] =3D { .type =3D NLA_NUL_STRING, }, [DEVLINK_ATTR_DEV_NAME] =3D { .type =3D NLA_NUL_STRING, }, [DEVLINK_ATTR_ESWITCH_MODE] =3D NLA_POLICY_MAX(NLA_U16, 1), - [DEVLINK_ATTR_ESWITCH_INLINE_MODE] =3D NLA_POLICY_MAX(NLA_U16, 3), + [DEVLINK_ATTR_ESWITCH_INLINE_MODE] =3D NLA_POLICY_MAX(NLA_U8, 3), [DEVLINK_ATTR_ESWITCH_ENCAP_MODE] =3D NLA_POLICY_MAX(NLA_U8, 1), }; =20 --=20 2.43.0 From nobody Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 85080146D79; Sun, 24 Mar 2024 22:53: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=1711320821; cv=none; b=i+AKbdL+qwmkio6Jmcx5M3ZVCr8w+3K/EPT+CQKbt8NIN2vvq47Flfs2EWB9lSv04M3rbYR1M8LN5nZt4yVx/Ewut7lbzcz3BQY5k+76EdHaput8DKNvOiQEoAWD3Wnz5xvpkjHYpwfape18NXqgT2200aM3aOcTcB2yVnu5v58= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320821; c=relaxed/simple; bh=W2AvlN3/e6oPQY6FDGVLyCBTM427dEQ9vt1/kJm6QD4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qmMdQwbigaqc1zAtGydZOZJo3MHsXvGLx1L4BjvvlcbCcC5PiXURfEZVF2c6v7GjInkgTVTyITF1z96KRH+Yge9PydFGfvmkESy7/BPF7huG7GE/YTR6aZjCMmp6TAwGryn5KWpv/hgzJVEwfFAlsTKIGhtmsSX83S0KsE9NAX0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=WHmgPZH7; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="WHmgPZH7" Received: by smtp.kernel.org (Postfix) with ESMTPSA id AA4C5C433B1; Sun, 24 Mar 2024 22:53:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320820; bh=W2AvlN3/e6oPQY6FDGVLyCBTM427dEQ9vt1/kJm6QD4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=WHmgPZH7HDBeVhuDoeL+07wLaziVv3N9cBTj3B+k4W8XolQYNt2CVjXk00F0UaGA5 NO2+Cy+PU34G0LX5Eu2FjzQiCtJyS6nQa3V135SSb1erw74kwbxL97MSWA2QhyfiNB ioh1vwSyGt2R5KndoIvDXAcZPPzMVHjPag/n8fjtHMkJ+nT1lItNjuMR8NdBuSJpQJ Q8Xl2q7nJeFEeLEHA448ag5nUyH60izrHOYl6GUHoktb4EhZXgQ65I0nQA/N3XsvmS MlfAgPTjtbM2pjeR93Mb0hxeVaA+5LWokYXzkUQvP1Bz3GkkercMqJ001Adu2S7b4G jRhTmGIBvXFHw== 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.7 385/713] nfp: flower: handle acti_netdevs allocation failure Date: Sun, 24 Mar 2024 18:41:51 -0400 Message-ID: <20240324224720.1345309-386-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0F1CA128811; Sun, 24 Mar 2024 22:53: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=1711320823; cv=none; b=B5JeAnjDVPYfCh2r8/Il1u2CaJU/KZrILl/X45WrBMbNK/8KZsOF54VybXPXb61f7stKI9Lo6tTvqpcOExPgbuZuIHYi9oVNYu81wu3nqWzPLNZdhSLBRCBNaGljhftKcVeeoh29K0aiFpOB7i5DImmE6qdVE9yb4is0plQj1Lg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320823; c=relaxed/simple; bh=9+TxO1i+oU8d5+wka1VBLhZpB1nFKtle8lTbdAgfaW0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ruVu436rebXltp6gxVzb7cO0wd8zR5AetdL1rouX9jI9fmyRgGRmlyeLO00KKT43Vdc3K6r9W3KukjlLk6U664ksWUaBeQq85k0u+zFi/diKJTTRloolk5g0LyIh98aom5wEHNC8v2gHWYdBvQnTAY5Bx+RZajPQ/VO3JWWRWZI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=c3OHli2a; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="c3OHli2a" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A799DC43390; Sun, 24 Mar 2024 22:53:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320821; bh=9+TxO1i+oU8d5+wka1VBLhZpB1nFKtle8lTbdAgfaW0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=c3OHli2a4PajiBmq9k5ZERysKIYKVlpVUuWlDdMeguw+ym7JTjM+gvhXl+Xtk7IJy LuHPpNnmzHJLQUXUW++bVQPoEdV1W1OES3BXhgGvtjJLY9Gg0100OkD5xi52RcyFiB hyNpxgEaowfqwiZUb88SYxslN9DU3A0X2Iu9rvcpTEYOmLpRLTiQtor/5g2KI/SRTB qJQkdM70me9MSEVypUCNjeHpMKHTlvxSxVj91P3UDU+qKHVtnqlBf9TZCVcJgC3r0G a1XHQ51JWxTrVLpF3BljDoRn9RKDYvka2sJqaHtM2DRUOX6IhyZ8Rbnxs6a4+0NqC4 cScnxZvpcWIww== 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.7 386/713] bpf: hardcode BPF_PROG_PACK_SIZE to 2MB * num_possible_nodes() Date: Sun, 24 Mar 2024 18:41:52 -0400 Message-ID: <20240324224720.1345309-387-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 fe254ae035fe4..27fd41777176c 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0BF9B128810; Sun, 24 Mar 2024 22:53: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=1711320823; cv=none; b=hq0EWLBuCX1l0CVeaIBf/9o877OqCs95uMti+zZFCzzY6zImkbgr2PL/5lRsYeQvmtr9bFv/Xp1JQRb6jFagQ/214KG88rEXfwboEA9vxgP/y+HzuDpOY4ZuGxvYWJAJMJruwNdlFH27Kc04Vx3AE66t8OAgPGZdRQZvgev9lvU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320823; c=relaxed/simple; bh=MPJsfCYG3IQN5G/QHQfx5aTxiuzR9zsnaOhfuWbMtVI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=bpvuxh17otKAYF9tmXxLiWHichiP84qy2DQCdHaonkrc5/csWdjtCoGNXPGgzRSn2G/TG17CJuPbHNbY9nwpm4Due7Jxx8AeOCerUkr+1a8no3Lz3ak/uKzOVMYXtYomkGrrcU9X6JPhknCsjcrX0OfKXx+tmbrEWY4B9WRz9/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=YuvKfvdY; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="YuvKfvdY" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3413FC433F1; Sun, 24 Mar 2024 22:53:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320822; bh=MPJsfCYG3IQN5G/QHQfx5aTxiuzR9zsnaOhfuWbMtVI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=YuvKfvdY9qZtV80jvdjVCmtKdF0wibxSqA4eRNXcca+o04U8pHJOgTIAsfQZJb4od ma5JonfOUGouUe1vL0Kk9Y8snPadm1HuLQFkdUrCUzd++nokKZwcXDHpUio1U1o37D MJrPkqpxCZR/pptoH6ZIu3d33ec3RUePB37azQf7v4/k5ihNK6mU6+7tdsbo0i2aqC cZeY3qREa8rC5ARKvdqLdBdMzh0Fd1a2l+bixzpV4bOBJe204ehBbw/CR37AQc75yW CxAPssmhztKS4OJEdlCC9jj4J7uNTaep4zG8EClt8mus75MlCFqZVamlfxX+DQro0u kxsNBGtSW5uCg== 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.7 387/713] dm raid: fix false positive for requeue needed during reshape Date: Sun, 24 Mar 2024 18:41:53 -0400 Message-ID: <20240324224720.1345309-388-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 eb009d6bb03a1..13eb47b997f94 100644 --- a/drivers/md/dm-raid.c +++ b/drivers/md/dm-raid.c @@ -3329,14 +3329,14 @@ static int raid_map(struct dm_target *ti, struct bi= o *bio) struct mddev *mddev =3D &rs->md; =20 /* - * If we're reshaping to add disk(s)), ti->len and + * If we're reshaping to add disk(s), ti->len and * mddev->array_sectors will differ during the process * (ti->len > mddev->array_sectors), so we have to requeue * bios with addresses > mddev->array_sectors here or * there will occur accesses past EOD of the component * data images thus erroring the raid set. */ - if (unlikely(bio_end_sector(bio) > mddev->array_sectors)) + if (unlikely(bio_has_data(bio) && bio_end_sector(bio) > mddev->array_sect= ors)) return DM_MAPIO_REQUEUE; =20 md_handle_request(mddev, bio); --=20 2.43.0 From nobody Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E8650146D69; Sun, 24 Mar 2024 22:53: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=1711320825; cv=none; b=TjPx3Iy7JyI/ZXf8SZ0HSbqQ0KFCZZDgfoNSiLdYEUMDQg8zGii495C+Yh9N8kGwlUmhZ/CHhzZKeyRW3V7eko9+3vzwrQHu0JnrP5tIT3Aztm+U+2Z7U+9gilH1E519vq1tTLt1s1HqKGDTUd8HvFQVTFDALQt7ROwUbO3aXig= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320825; c=relaxed/simple; bh=1hojjrskATgievWWd4UEDME6Xz0+KX5VKU0JHzpTgL0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=B6K3uoVhT1E9SyKbS0WFInM9Xrx5i+dwrk+wALxl8O4FrgOKgT3OlDuz6LofACx0G4Bne6cfVxErOSxYl12CdZQOxxr6f/TPyQZp2CV9TFiXy1PirAIpXENQFSOjtmwzf3qlFE/jIEZ5DwVw1N4ocpsRPP0h4doIQeyJUtc/UUw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=EiLubYF7; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="EiLubYF7" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 30C64C43390; Sun, 24 Mar 2024 22:53:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320823; bh=1hojjrskATgievWWd4UEDME6Xz0+KX5VKU0JHzpTgL0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=EiLubYF7ktS3spqtmSeAnqgZCGfNHMkY9nHgUb23odf625KLMCVJYipM9Nhz0cd1Z ZB2apiJPaX0eMRfjhesjeX4BP6B1bnnvpLVR+nMAy+hd/Yhv+EvcuPPuX3l4Iw4f8F PCDUiIaEA6vJcvbURETyyptmwOzhp2wXxcLxIue3niCF3FNe2n1IahZNlCCLGJzyUS IEkzJV/FbSEDGlLavVJ+d4BP4HGcV+kDcHxgXpl1bqQhCOwFO2gY4zyOEUldmlCmuG vR5jg404xKuYLX4bo/3JHa2c8Mya46fAHHMWMhJA3kl+hFNRAGwDIIhurRYa91FKew zxyIR1fTeyeCg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Mikulas Patocka , Mike Snitzer , Sasha Levin Subject: [PATCH 6.7 388/713] dm: call the resume method on internal suspend Date: Sun, 24 Mar 2024 18:41:54 -0400 Message-ID: <20240324224720.1345309-389-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya ------------[ 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 23c32cd1f1d88..4ff9bebb81ad5 100644 --- a/drivers/md/dm.c +++ b/drivers/md/dm.c @@ -2945,6 +2945,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) @@ -2953,12 +2956,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D03A81E5847; Sun, 24 Mar 2024 22:53: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=1711320825; cv=none; b=PoKOBuqHkWttQ8Pzn6IghYg4gBiiw5YaH0S3ikLPyyKKXlvEJmD3x8HQt7mFJjYUL+vmjelE38DaB8RVChZdM07etVGe8hLoZLH70JlwgIDrftne4/P3fG4225G63ucysKhqBi0eBIk6omtzDBtCVEzwJjeeTPxNnvZ9ghkNceQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320825; c=relaxed/simple; bh=1wD1lMemO0UeL75hTPilrXieqNAbYo6cSZgOGib9LQ8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=fvOoxBBa1BNnZmr2ypYj5VNjyvutjuYO1IpajSMzTv5RvyH3lkpEPpJ7ES4BK6QpDcYpKS3mq1JGvsus06rYxzSaDaMMLP4OhsOsCXf/+hwPSgpkCJt31TBkYK260Ihk94HPOob3DRG2dLCy1baNooEfLycdDl3EPw6Pl8pQp1g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=DJLimDeN; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="DJLimDeN" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 18B37C433C7; Sun, 24 Mar 2024 22:53:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320824; bh=1wD1lMemO0UeL75hTPilrXieqNAbYo6cSZgOGib9LQ8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=DJLimDeNHo/puLfJqD4/MPw/2Mna2wR134bWeF8YQgBbF6MmPjX9YESU7ER3hQ/s+ 4ScuI79CZxMLs1jit+C3JW2OUSMTlzkjdxrTxMb7aCrpbt2eAFwXn6n2AiPjXKENDZ y9ppXPVXreYwkdIql3DvsqbXiMzY6J6dcZmfGvGizO9vDX6cpaEUXISEhpsscReCcw BrAlCc5qsFAXqJtOKsbfPxKnvXji1F1EUXLYM8jfjhZcP6Mkdw+1WVDSf9yMlhSEgO 8MuxkmixS/Ov+MEw1rwM2zEm1nyzJbwXJNqmqcb3wMHBuuEGuXVMl960EL1idS++DE Kw1gPLnRQTLYg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Chen Ni , Thierry Reding , Sasha Levin Subject: [PATCH 6.7 389/713] drm/tegra: dsi: Add missing check for of_find_device_by_node Date: Sun, 24 Mar 2024 18:41:55 -0400 Message-ID: <20240324224720.1345309-390-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 fbfe92a816d4b..e419b76e57d3e 100644 --- a/drivers/gpu/drm/tegra/dsi.c +++ b/drivers/gpu/drm/tegra/dsi.c @@ -1544,9 +1544,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 12C6E1E5852; Sun, 24 Mar 2024 22:53: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=1711320827; cv=none; b=jyganh9YmD13F/3KISpnQLr9HZDquRzBO58H+bU91BLv/p9QSes8YFVxJ/LsMQ242oCQaYJN+OvH/x63vrZSuPXPrOOFI3J0nY42x8Tg0Eg9eNK/fAtH1anji3q65F1744+tFXHl5bmT8ZWTsOOf1xc3+zMYvMLzv5PnjxZH418= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320827; c=relaxed/simple; bh=6PYzZwYgCOek78YwuwPl9iW6KBnvVCcfXpsYYRC/mW0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=GhDaPIK3yW/fmYSuAPZnzm6iuPivZ5LGFbg+PQgyft3zjLpQJlDLLX/uZaM8HwEUSGA8MBqvPX/OfOonHD8e5KFDDwuuxYO33njMpSLIE+HDBiFphKJkW6bESYKyik5O5jeOrhd5THe13IBv1HXISJsmSzeBEbBW+I4Ss4zbPmY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Ih4GAvVM; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Ih4GAvVM" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 003D6C433F1; Sun, 24 Mar 2024 22:53:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320825; bh=6PYzZwYgCOek78YwuwPl9iW6KBnvVCcfXpsYYRC/mW0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Ih4GAvVMtto0K/gSGPcZH3PrDJi6flsWmUjF+TnBuXaqxvcGrpjeBpltMRYX+5O5p vh5Y/uTPvoQrWF3vLac5NsfVyV4m5mTQr9/1sZx/RKNOhdLkXOM7ZxlvjfSpSVq/Mj ehLUHt0c1deXItG0l9qe8uXsXvq5cm5YG90ozXXdGk+3HTj45KfB/p/VnlBQBVwHaT Aht4aQ3JDLoiLgsY6/ZvKPSJ3OD2sg2X+v6XG1+LCCaA6AHB7PZD9D3JoeIs7F751l Mc5mnaYvMUJ3C7A80C2oov3z3sbzkahzlqWO7jnv0qN/vazlUv7eiUFysCpp6S1SBe l5GJ8XmTrSILQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Zhang Shurong , Thierry Reding , Sasha Levin Subject: [PATCH 6.7 390/713] drm/tegra: dpaux: Fix PM disable depth imbalance in tegra_dpaux_probe Date: Sun, 24 Mar 2024 18:41:56 -0400 Message-ID: <20240324224720.1345309-391-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9B3E71E5859; Sun, 24 Mar 2024 22:53: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=1711320827; cv=none; b=KbhZG68grFQHkdTf5p16FV7t2RvUljRpOk36m6jY5G+KWVsaDV2AUsmOl9ziTmEv0TFVwb3Xb6/pdKkpSvQGNgzKCe0jLZmUn7izAMSrBaMeHhD1ihSmSVtn5Q1jRIPFmI3/+0ahia5PMZGTc/Cq0OkewM19oHz3nW4iWnCvuKU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320827; c=relaxed/simple; bh=qmN3b4C2aieEROCXbe9bEVu5uvgLY4liLvY7/rWUvmk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=RxUoJfkeFtZzOnBo4PUOSiVQ2nhVbwgSgSYO7omf+xQpDncQVtWh7YvSkoleg8F2uJEtNeQ/U7sdnKPOKDTKjggAMYxncjW9iHPVRmMMsMOPTWfWHArqdmgYoBfl5ezujlooMta/JvnpWpmCFZZwqBIVkocXdG4vAzoIsRUDgbM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=sBvMsXqZ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="sBvMsXqZ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id DA0F3C43390; Sun, 24 Mar 2024 22:53:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320826; bh=qmN3b4C2aieEROCXbe9bEVu5uvgLY4liLvY7/rWUvmk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=sBvMsXqZpzDnqOB6vYv0p3LaEmZ7R5L51dhs5NirrBcIGX3qZ6x/9hOmt8pH/eeli 73guKkYBire5JtdTvAMY0jEZ9WP337Dhtq+Qbbw0nGRCtpzUXrxdVz+ApOs7Fsmvyr DMmlfcY9HTZ9nxl8gCw8vmfRlGFvgjNhHgaXAV+3aur508fJptENicmu+RULegfkPf AZGWXmA9vWz+2b6JwrlF4GGQbs39a+fv0XxpCmUBD26rEV7UvDjQ9lE8mMd1yMQHIQ Hht6fGnrirm6PL7ygO3jPO1UheEJSR67TUBKgqreSY3JRpvm549bPgOQQmwyIM4j0r UP7AfWRr2SNCA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Christophe JAILLET , Thierry Reding , Sasha Levin Subject: [PATCH 6.7 391/713] drm/tegra: dsi: Fix some error handling paths in tegra_dsi_probe() Date: Sun, 24 Mar 2024 18:41:57 -0400 Message-ID: <20240324224720.1345309-392-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 e419b76e57d3e..0c8ad8ee5009a 100644 --- a/drivers/gpu/drm/tegra/dsi.c +++ b/drivers/gpu/drm/tegra/dsi.c @@ -1596,44 +1596,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; @@ -1664,6 +1678,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7F2CD1E5860; Sun, 24 Mar 2024 22:53: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=1711320828; cv=none; b=pmwm52FnIrC5aYE/v96DTBdP3mTsU9zjgZ7M0ofDvURveCNiEKyYgChRGkZiYjajCECNNdDI4NmddKV14kg+64EFae+0rq/VE7QBB63kZXGevCvnH7fVvCDdLU64iVSzDsppp4192gnUcW6VQKdL3TQvLuA+plVbGIK+sNWi3Xs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320828; c=relaxed/simple; bh=H3YOOhBig6iwhtefRcb2o7O5wuSRi1oZdbrtIM+94i4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=vDVZsfSH6DxyHyabEov1pIk2h8Qct6Wqq8GaFCwHRomeuuBJ+e5OynCaMbTDma2KkIc+d7nkD2orjVKLGglQXh9FQ6GhQKMF/TQGV5m6nmgxDibJ67io3L6yRakQokip48p5Chf15m2HUn09X0L5Z806LPPMj87IpuSVvjWf/pw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=iNva8bYp; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="iNva8bYp" Received: by smtp.kernel.org (Postfix) with ESMTPSA id BF5D3C433C7; Sun, 24 Mar 2024 22:53:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320827; bh=H3YOOhBig6iwhtefRcb2o7O5wuSRi1oZdbrtIM+94i4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=iNva8bYpWhJ9o+6s+vs2FYuGwAGwlRDjFdRcyALaiLOQ0cza54Jk/SKS86rdLqEW0 F6eOshZ/Inc6aZykHoC6nAyX27wYm8lqmUp1fV6dWn9dr0i25IJLssKYKm9ZozgBss qv6eAoGSdz+ttgKI6IbzCSDnBlWBUVe0dyJqGYHq9kJ8pNtCzJix0cDJJDU+C6Umgu mBJhoqDAP+YQAZWSBo5iFOL7BFG75youOPfrg+QF60Sq3fBC+MXSw93R+xN+SxX5TU AL0iG6j71plm2nITgAU8Owsd13IFE6XKmspXyHuKsz0/Kfm2zKeynDg5G3gmRC6KeI 72+xaiHSva2hg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Christophe JAILLET , Thierry Reding , Sasha Levin Subject: [PATCH 6.7 392/713] drm/tegra: dsi: Fix missing pm_runtime_disable() in the error handling path of tegra_dsi_probe() Date: Sun, 24 Mar 2024 18:41:58 -0400 Message-ID: <20240324224720.1345309-393-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 0c8ad8ee5009a..db606e151afc8 100644 --- a/drivers/gpu/drm/tegra/dsi.c +++ b/drivers/gpu/drm/tegra/dsi.c @@ -1675,6 +1675,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 65A4E1E585F; Sun, 24 Mar 2024 22:53: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=1711320828; cv=none; b=XWJoHj5CzFscTuyfS/Bed6M6hLjxTHHCAvtffvlJBIPnhKcNK0Ux0u7cap9Uew1WFLvFktLvKPr0OoftxEp3MNvLJXjz6CER81Js7rI5bndIfN8z8TYfcwISPRKCtW3jcjCG65I+ZiR2eMaC2M8RoiQvSSs0jemAL3oCuNUP5G8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320828; c=relaxed/simple; bh=VyV1cnc9jGDxSW0bzW4txA0kjgRhbvRB1LY5GK/lI7w=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=HYyoPl3R3IihqrzMz5WX7/I00wQnTFfMFjrTQ/dGbNUnrZjWHVIw1GaLBv4d3S8o4aHxePO4OFPwX45vlNWbOYXRumClML8llk/rvRJr6LF4+2vy16hwmrdvcmn5WR7OwM6iBdss1ggYxpo95H72FjcM8ELV6edTTuqhnm5kxTg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=qDF3OCcu; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="qDF3OCcu" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A5615C433F1; Sun, 24 Mar 2024 22:53:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320828; bh=VyV1cnc9jGDxSW0bzW4txA0kjgRhbvRB1LY5GK/lI7w=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qDF3OCcuZCf2fAXOAig61v6uvW9Isb6EsJ5PaIykjrtt5980iLTop7LxUDXiudGw+ +S/Wgko5376aPvR6ji8uC+mwOErs8KaWJQCnGpt/kGyNe+jFQhmLKUMwUvyzQDhVha aWwPP0MBkixO5OMkFUqxgUG2d9p4blsEjXwsJJIDvaVx4k8JrMHy8gSbBD7Ty2Ql6Z 6WJ3/s8khSfgIj9u/MXs9rByNopgby34LEd3dgxD4lQ0mDzb3BTxpTPqS68izaCR5n nexWj6C8p/94Ao8f1itkOu65OOhMy7S1cu3YXyX7ylnnbS94cOcQt0pUmY1d/4DdCL 5uEz5yJsFRe/Q== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Christophe JAILLET , Thierry Reding , Sasha Levin Subject: [PATCH 6.7 393/713] drm/tegra: hdmi: Fix some error handling paths in tegra_hdmi_probe() Date: Sun, 24 Mar 2024 18:41:59 -0400 Message-ID: <20240324224720.1345309-394-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 0ba3ca3ac509d..4cfa4df2141cf 100644 --- a/drivers/gpu/drm/tegra/hdmi.c +++ b/drivers/gpu/drm/tegra/hdmi.c @@ -1855,12 +1855,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 @@ -1869,18 +1871,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; @@ -1890,10 +1892,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 525541E5866; Sun, 24 Mar 2024 22:53: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=1711320829; cv=none; b=Bic71f6+jXtuVSW88U0NDDiKt49ZhmKrnqEHHp1xVDiPAxAqzoiWi7Y2Na+D5GHBLEOFbwCM19mCVxFqNRJ4gp9ymPUVK2C3C0fR27W6Dc0Yhudrx5g94s0Zuui/FRe4oBuxyYk7SdaQP2YwDlvxsJlk071z1vdY85fLFnIYOJ8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320829; c=relaxed/simple; bh=+vKf/AD+EU5ShwD9w5bCge7Hc87d+rNN8o9xeCJe6BY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=eOMm1wN9r3YgzrzjooUf6d22QYRYX5FPaV4mXqKkvlxgNwV7kXwaVlduXnFC54yWnfWVq93YcYpXUpqDWdFdnJs+6kWb1R+fFm9RvOZVjAP0uQBa2uh5K3UOKEvR025OIx80nydt289OMiX6v4qc06KUcZumc5A0xiTwRg39CZo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=WmFuq9WS; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="WmFuq9WS" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8B68EC43390; Sun, 24 Mar 2024 22:53:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320829; bh=+vKf/AD+EU5ShwD9w5bCge7Hc87d+rNN8o9xeCJe6BY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=WmFuq9WSaAZ1clZgm/acDvKyC+9ISbUwVx9doA7IuNW0+y41yaRnWwr+8jk22MbSV KtsfDKiqEznCbkteE71/tF6hJKWO7wwl+6Gtaz3n7BKR40cIuK/SsFo39FTScOSi8W lnDnO89JDf3xeL7H8BVXOjgfrDXIo8aomPaQsGnLM0zrBTn0UehBJVK146RlsMAunN bYIEFwo871abyupC/T000QTzOLePdhjagRpnMaYhdOX6LQ0TxAYDYKZOdEht1v4kNY LDFsUEMRbAXQ/TjXluRL6t9AmShItlAbuMdS2UYyqs8WVO/ibAf9NSGVdAoaYGmCLo 3QeOUFV+jiC1g== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Christophe JAILLET , Thierry Reding , Sasha Levin Subject: [PATCH 6.7 394/713] drm/tegra: rgb: Fix some error handling paths in tegra_dc_rgb_probe() Date: Sun, 24 Mar 2024 18:42:00 -0400 Message-ID: <20240324224720.1345309-395-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 fc66bbd913b24..53c492b13d129 100644 --- a/drivers/gpu/drm/tegra/rgb.c +++ b/drivers/gpu/drm/tegra/rgb.c @@ -225,26 +225,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) { @@ -252,13 +254,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 33BB71E5856; Sun, 24 Mar 2024 22:53: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=1711320831; cv=none; b=kQQVurSB1D0oDrwNOoaLps8E4GZPa3Hh9Y2hT1YvAqoNvxsgqsdViZEfmxT+7HyOMJjKQnRkyxoKSfNfkZpAaP/U+1ucHuriCkhkrP3+oq0nFImJFEZVvac4U9Oa6mLN3EwoijuvyPDqe/tXdWmcCYfUj+W9tzN5f96/+FrvRgM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320831; c=relaxed/simple; bh=xx4kwvzAxT8EfZAIHWdVzcLqTUvuj8Q6VMgCYvPhFCo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=acSbmWXurrpKeZm5X2sIvigayx5w4Ic/Bkf+Dvhxvcvw7xduEIFVcjIOoKEW6N2R1/dsMQIy1bpEMZuAFvqIKOOAHnebANH1TQfSbpnc83DiW73jEjK587jgvu3lx6r8mkKmxhpLN2VqbQbpddhPirX6TiFR0ccZc4nMG8eVkMs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=tjAbnaui; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="tjAbnaui" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7191CC43394; Sun, 24 Mar 2024 22:53:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320830; bh=xx4kwvzAxT8EfZAIHWdVzcLqTUvuj8Q6VMgCYvPhFCo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=tjAbnauiifz0+8vEmJCbUZWjB2HNSWNBHvNEf4i4XkdywBUAouD8Dz2V6l9u6Btem JAQr1NKCqptJP0FbqoGPhgBsrm7/roFvLEEX4uMxi+uXOKesXv8Tw8EyM7z67nkBjc dfzAD6eZOqCNnlkWtlxZIMtI9XiBdH5m5Sn4BPfW7wmKTj5qvWcXKbKjUDgq3bUOth cJywLWkvxI0mVBXnlzX21E2dZBpUwdYyJvWz9uY6t4whv4onIgy5MuAfnNPXqPgjqd 4aYAr/CHzOgQzrqrkG08cTxI3k4i/VcU3tRKTDWtnyveuqx40HKIPMZDUFXkC7MLuO ORVHnfD8YHwbg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Christophe JAILLET , Thierry Reding , Sasha Levin Subject: [PATCH 6.7 395/713] drm/tegra: rgb: Fix missing clk_put() in the error handling paths of tegra_dc_rgb_probe() Date: Sun, 24 Mar 2024 18:42:01 -0400 Message-ID: <20240324224720.1345309-396-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 53c492b13d129..1e8ec50b759e4 100644 --- a/drivers/gpu/drm/tegra/rgb.c +++ b/drivers/gpu/drm/tegra/rgb.c @@ -254,7 +254,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 @@ -262,6 +262,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1CC831E586C; Sun, 24 Mar 2024 22:53: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=1711320832; cv=none; b=tAl7gLWJi+WJdP3i9XQx7kFmX2qLW25JrU2zTrbLfvlZGWcTaWOp/PyTX+06wgdH60AF/4M0aBeugkpzAdOzHQT1u/lvZLublBbJ9hzYutVXPaTs6POpCAWxaE9Rl6yiNFWGo5tS4bMMUT3PNoaZaF0X1vFN23MdpQUcgTgdzak= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320832; c=relaxed/simple; bh=HiFTlZ3SKcc4YSHufcREYcJE8gSsUS12Vn56iUfMUs4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=hvRov5N2fapEj36MAFZacoS7SoU6JesHAPiUytTSmHMGCidVjBuhMkUPIoL15jlFlMty7jtc4uaILm06bQM3VzxuU+RB0qHkptDQzE6p5y3QWMd0z7NGl7IY4je1EkjbMmWFpNmp7FxpDDvh29E10UpMKeBG5p9vUg1xaxG+0Ws= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=E5D7Mzhi; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="E5D7Mzhi" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 59A9CC433C7; Sun, 24 Mar 2024 22:53:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320831; bh=HiFTlZ3SKcc4YSHufcREYcJE8gSsUS12Vn56iUfMUs4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=E5D7MzhiljetDXC4H/ZZSwFsBEm0NxrXOK5+8VQt1SOyK91FIqJtaUej59a/MrEHg rOBzRgFig0wxgozssjin7qTn94K2/L5lITNZH9dfV2+JtShX2rKfL5urUdPiWs6bA4 joAoO7dtVePOVpYOvaqe1NpsQpwVB+TU1kXdAJaWhMgXE9CDqrspgxs+bov6QyeZdP JwuVh3ItwSpfdpJkDcVj/Dlg9EyRSFa/qwdM3OXH89u8Se5H7ITYWQVpW/SO5K9AHR 1Qbo7F+QcI/CL69qNakX/DFBixiunpkKhCJTDnM8DdJxP7YwiRMGC1V9SArpGTgEtF WUcIUUy0qUDKA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Christophe JAILLET , Thierry Reding , Sasha Levin Subject: [PATCH 6.7 396/713] drm/tegra: output: Fix missing i2c_put_adapter() in the error handling paths of tegra_output_probe() Date: Sun, 24 Mar 2024 18:42:02 -0400 Message-ID: <20240324224720.1345309-397-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 17E6C1E5872; Sun, 24 Mar 2024 22:53: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=1711320833; cv=none; b=N70nYq2YF/HJHb8VC7AJhvljMvE7TOZ6VenrrEAHzScv13UDGL+Ac6k4v+VmkJA2kANlAAUm9b9yD4A2CM/k9N53X7Awpux9WWISg8+UtYWXKh0XFdg2iRyCEBKwTgP7AGfZaHKDtU7a2S/qROnnteo0ThaL3oBu6c0SNr0qR8E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320833; c=relaxed/simple; bh=OJJPol7J7fIrfaytG9VmHCkxp+IgzNXZBKdiEqSucJQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=XT/+Ru3hYDlAoQCpInHrcckluwfVHZE7x55asNBQ9pi3VAbJd2PUc+sg+gZiJ3jg1+DNc9OjKBI3lw3kb4RIBiDJht+gL2E7FRT2OprNupkT0I+39dGlyyA3NWRwk10eduIsU3PQ5zC3q5ek+IB/1n4bigEdqUr3ufEGmN+TeGI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=iomq6AdI; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="iomq6AdI" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3F8DFC43390; Sun, 24 Mar 2024 22:53:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320832; bh=OJJPol7J7fIrfaytG9VmHCkxp+IgzNXZBKdiEqSucJQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=iomq6AdIW7tdFOtY9SSCGTLpg/uQY19ul6XclnZ6FgLw+T1c2gy8f32ubk8t/2LTS /lBr6cRqB8UAQ7FzO9qyREEs6qfEcGERhE2ylEOHB+frmMvn8KrDH02RiyqVhm/nQ8 2kmY9Fpo6oRT68tazcSJeZKGygNMNN7ZsmNWNUTPxFU2G7QgFxJfNE2X3+FLiSKXYI lQPf7ki79xJA3Up1FoSdLHvTs7/nriVABzChY4pMutpe1K0iTjhz6uPyygkWn5Exh+ Y92FbNwLWbzxgjQJ01te+3Ym7/wdtJZF9/+KFHT05An+a44/gHrOgo9Iqj3eZLKbBC 7Zc56kt9f1OeQ== 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.7 397/713] drm/rockchip: inno_hdmi: Fix video timing Date: Sun, 24 Mar 2024 18:42:03 -0400 Message-ID: <20240324224720.1345309-398-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2C68A1E587C; Sun, 24 Mar 2024 22:53: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=1711320834; cv=none; b=oq1qP7kHNvNrmxuyc2aoHF2GrBvdEXwQ4YK6dlME3Ep05blqMkx2KYmhHlFHlfCTUN1EUHdJ5fH3ZvVyNe7jun0bC6wxY0+KkCMKQitomLdrziSBShnE9VwDBxV84UV9UbsWkANCf0WR4B6GjsO3aWmcEvMeuw1+H91bgSbbdaw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320834; c=relaxed/simple; bh=qgWoNH854Qu3UszLlD0IS5mUljLWw9/aZEUoPzuQfUA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=jpYP/qxKw4ZSPxKcnXNUc0zOA6H1GPVxj+3GBYluqplEuU315Fq4QUiCsrFOdfYdRnZ3nU2PBoEOiLHZRN5lV5VH0XZA5vCAVInw9ifPAZeRkmoGqf+wzKsoCIdey3LacIdzAlFx7pyBaklxMjPUCeYPyOcHxVr+jQKKmfoOrm4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=orqM0RQ0; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="orqM0RQ0" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 386C4C433A6; Sun, 24 Mar 2024 22:53:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320833; bh=qgWoNH854Qu3UszLlD0IS5mUljLWw9/aZEUoPzuQfUA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=orqM0RQ0MIbu+9hWp/PTOIlq2C0aWr0tecQ+I/I6st74AszDtA4Nipz96d/C4NdEq pqaCTbzttctLrzy6orEoPFqhiWTmxK+QGgrQjAhv5s2pws23H2dWKYuMaPYJkLesuN ueUOo9A43aR6QUwaXAgMXhCNtHUJjuXaOEMiGVRZ4Gi79z++4kiVGuqcHwn6E2rezE WQQCt/670yNmTuo6z9lPY0GcxjThdKB8L9fDHJWjl2ymfu7brCMq83tjy5GNuApPLo YnIrapHeCVZ9pI4OlWRkhg0G4sx0PqhTYUDPKO/5jhB3OR+VGzs5ptTPdjPtMtZA8X LvA4d5UpzBUZg== 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.7 398/713] drm: Don't treat 0 as -1 in drm_fixp2int_ceil Date: Sun, 24 Mar 2024 18:42:04 -0400 Message-ID: <20240324224720.1345309-399-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3A53C128836; Sun, 24 Mar 2024 22:53: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=1711320835; cv=none; b=mFfwn5+Ugrgzpl3rxBkt/TavuCU4Ua4GT26stikJpLzSYTRmklLxYG0rFFXsfA/9kTlXEMgQ31W2kjPsNXFpI1wRsC8L1Q38XsG2GMCGpSSSXH4GXkSTj4z5nxu+0YLz0uLI+kMnHukYMlXKXj4wDVS6wLIK14e1XICSlJvZ0MA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320835; c=relaxed/simple; bh=r94iDyI3IDylZBFHddqhoES6VAbPF+0tOiw1jowT+zQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=DUT9dEJ87PriqkOyHxxVuIVR7T2RUYrXe6gt8w7aau9PZR0iB8Ho20513SM3Uju08GaMlEOn89obrGMLdY8DQ2mJfcZAmCrjqOjU+nslY9VtIPOdX76inWdXqcRFKx24MxlVl8bL6LocaYu9eeD8LtnLBvgUPEVsoMzLJbtuHYQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=tjPWlIAC; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="tjPWlIAC" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 502E7C43390; Sun, 24 Mar 2024 22:53:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320834; bh=r94iDyI3IDylZBFHddqhoES6VAbPF+0tOiw1jowT+zQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=tjPWlIACfpPbJ0TeUIxNVaedXSk7j89HAip1cNbJ1PsvOw/sWWOAPGr2VSDV3xydY uaSo5zYe+oKLfVIQM9T6HrCBo6Mh3mjiof7/dSnKMFBNfW+/wZDeSj9gqv1uRJ3l/N CwXAudkGcdH0NXkGG+7DcykCEodWctW15GVwDBYc273H2/ftTt01vW+26rcKH49Gyx XnLEn/zbSDauFsbpMPW5n2XxaO1fqMHcu9WohgJlxkAmLPxYiBMLlTq8Cja8WEEzlq po6RKGUgGc9YsWOLyOVWkazsMSbD7Zz+p35JcrDRFca9SG9/ny5GcnkqhXxEWyFX8P GXOsoVVc8dRrQ== 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.7 399/713] drm/vkms: Avoid reading beyond LUT array Date: Sun, 24 Mar 2024 18:42:05 -0400 Message-ID: <20240324224720.1345309-400-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 21E7F1E61E7; Sun, 24 Mar 2024 22:53: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=1711320836; cv=none; b=LEGacN68tpB9POXvgwEs9rIVem62zHLU+TFHojRp/jrfmf41Sj9Ob4SizSJob9vzLH0sgb9SDVQ/sUfjKlDtFnKrybBd0LVbktUv2JNNg5dLAI5gK8aGdcXlMk7+U/TdSecHXTKb1ptPoe+aZzWOva7+rLMvabu1e8C+/I32z64= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320836; c=relaxed/simple; bh=Ke97hrXldFBxj8KzdI5VmMC+f8kuAT2CHHarl1iwKgY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=s9s5U95utmsfE2tleU6MKntM/ouGslS2eDqFtqRQ72vnpgYJBLwO/i15jJiBsXvsxcC6QuAJXz943U3jl0f17wycNHsnDS0CyzWddLFG/Qv+XWZPM3wWJc6pdfPDjYCAD/ZKt1kpmxcW1V6PC9qlke0YW464d+FSFGqvXOqltYE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=PKiGlF2L; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="PKiGlF2L" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 62C29C43399; Sun, 24 Mar 2024 22:53:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320835; bh=Ke97hrXldFBxj8KzdI5VmMC+f8kuAT2CHHarl1iwKgY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=PKiGlF2L7pBIltADaYCqRmp6L+DzLTrzgr14mOxHCfe3x60TyPR6RYp1GJmtZ/PQw 95AS+MjEhQT1wd/A1oG1VpbpHe0Iec0WtmuA5rIHGR63po/gIqTzIsxiSXRSDqU+zm fvNeQWyrYAlJ4UDi7Bt3vV4p2VblxpIPKIov+vpRfioPV+pWywZEvWDX4T5X9cSh5l 5D0zXb4L+t9QIdBkGW5XKSnRB4IEW4yp+DXwEscBU3nWw0T/CZfemHvWa+pobUiDEF OtZpcpxES+aZqkBI78h01uNzQw0hhjrmS0zJA6gwOS/N2wXrvrlq81V2nAX40UPI2e TYxlWmcb3J71g== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Zhipeng Lu , Zack Rusin , Sasha Levin Subject: [PATCH 6.7 400/713] drm/vmwgfx: fix a memleak in vmw_gmrid_man_get_node Date: Sun, 24 Mar 2024 18:42:06 -0400 Message-ID: <20240324224720.1345309-401-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 211D11E61E6; Sun, 24 Mar 2024 22:53: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=1711320836; cv=none; b=j151zVkc30AalDqkAhQDb7BLIduuFwqv00clbwRwsCJKrUTSSyJ8sIrLn9zXtJLhV9hHhobyO3ya6ISrnkrvA0XH5wJMTui/46AQODiiU3VdWzRxPofGxire8GH3vf4deNWQtYuhj/gQuvHXkrBMkjYr1aFq2eIj0YRG1UPr6ZQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320836; c=relaxed/simple; bh=m30wCZoV79dMVizD2Gw9W9KU/gugpO1FkI8VgtWsYKY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=THjkqX1bpWEr9hTl2OFecX/MXBIsZgAb4dSuHrck8WsC622tpGWKvnBdy6L4TN+OPLTcjLBw/VwnTDeoEcSzLO7kjXzW6/a4EVT9L2+qYS71QuxivUwQ8aEj7S6dWrvA929zg2RxHreyGOPEq+eoS+xwb0dHdUL9cfelsDNZu4c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Su5kOIGj; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Su5kOIGj" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4A18AC43394; Sun, 24 Mar 2024 22:53:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320836; bh=m30wCZoV79dMVizD2Gw9W9KU/gugpO1FkI8VgtWsYKY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Su5kOIGj/4DHtUq3oH5jmLYesX3+nGmsOcmm/u5uvTyH/NNHoqxov2oELEjH593KQ UiZuogk+4THLVnobxeSSrxVHK6ArDkPnwh4+oPudl9Xn2u0jC+VUtnTSHRELTajUEs 2PaPedbcg8pxyAJcHKP3Ig2r0OE6SxteZSXhbXINKS5vmewAz2oJCPKHuvUQXTYQyi dZoPpfmj7o62EQnUOXuMer69KyMIclpYusdWvm22DysUGnvljf720pU9Q/UmLeQwQF XlmQCv7Y7nKjnwdtQw4oDIT3GFv/eFXg/eEYZc99ACXh4UsTSHnIvarJq3ruw2iI9C 1oWZXznws6cQg== 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.7 401/713] drm/rockchip: lvds: do not overwrite error code Date: Sun, 24 Mar 2024 18:42:07 -0400 Message-ID: <20240324224720.1345309-402-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 f0f47e9abf5aa..17d8fc797151a 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 562841E61F8; Sun, 24 Mar 2024 22:53: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=1711320838; cv=none; b=BzkWDkS1cY7ZdwjUG3/aHMnY89sCyj18HgXPoQ/Ol+EJ59dCF8YU166sEmuinBVt+h7QjBsZZuXBPcVNpeeNSTzT7LIEwvO2YXj0SEJTxq00CXt/9URLUX3hakckOG6Uf6s6+TzDZM5mkSqbNq+5/6g/UqqLuc3TXrucoiM6nII= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320838; c=relaxed/simple; bh=MoV3PrzF8eB1c5ICEbjAs9c9Zmtha4fDS5vYVtWkFGc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=b4RP/Dj3nk4yzs8APUtvAJNv1gSxEQ9fxUSvPleTiJtGTDDc7dDwjYaapb7uPhG8k6hRfDfQYBBCC4OVxdnaP4ja/MjQDG2+PZVBji/6FWQbYioogVRv5oxB44ot1yrrhFOi+h7YKm1dZ1HjgHLwgugfYE1Hxj5O4zMxeqG1E2A= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=S/H8ud4m; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="S/H8ud4m" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 44E7AC43390; Sun, 24 Mar 2024 22:53:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320837; bh=MoV3PrzF8eB1c5ICEbjAs9c9Zmtha4fDS5vYVtWkFGc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=S/H8ud4mqrnPykiqYk2YgphjjBZntPuHzujlk/NDjEUfTNa+dpGAbs+sUQOsxVSye C9dVD4yrVzguVSmEYz0yx35oLADg54/6UJ8o61/wMRN8f2yXM2ipbHsFmEcCn/5Ayd okmiWs8woZIqU4ab5LghC5NMXlmNcZaeqRCC73yl/FH1i9JcQ7Ry3aE/qhlpOR6uav 2wflAwVn16J8N869E5EKKOKCxEB7srtWCIU5XlQpjGoWJJINiy6VARV0mI4dIr65TY 9ikeqcHYm3eBoWk5Am+HDp1iUiP1KXJVJCE9eQztf6PSvj9DVKNFmpqFnI6WAv5Yxb +vfNCR8nIxY+w== 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.7 402/713] drm/rockchip: lvds: do not print scary message when probing defer Date: Sun, 24 Mar 2024 18:42:08 -0400 Message-ID: <20240324224720.1345309-403-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 17d8fc797151a..f2831d304e7bd 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 03E0A1E6202; Sun, 24 Mar 2024 22:53: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=1711320839; cv=none; b=GkHtD0YLA2ZiZGlyxkdrAsA4lCtpnDTie0LQ3xn8xr8AhMsQVwygMV4Xa+oQ903bYUm0c+70scRdfvB5a88WCn4A4nqG6hBG8HSRC2aqdd7fIfnpMaty5+2XZ3W6DCWF8akOzuWaUHDZdcOKJ1+f2HIeqqXImKtCBdyTIUyRW+w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320839; c=relaxed/simple; bh=O945Y65RtR8IS6CkelHaCAjziwhmZ9c1i9x5V/q+Yf4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=XmZsa1Fvt42xtgvoud/0+0hfqrnJFm2vJFgOkj5OfRHJMzk2/jkhrQXVXTGXqWLdmwnQCF8Q5zcUFY7NzZemtAa9nuKa5ofB43rpaimycREFAAuHQ/Kymg1mqUjGpfyBP//2BGpUctQ4LHiikl+MtotfwObWJSccYMosBb/sGRI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=lw2LP5oU; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="lw2LP5oU" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 42351C43399; Sun, 24 Mar 2024 22:53:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320837; bh=O945Y65RtR8IS6CkelHaCAjziwhmZ9c1i9x5V/q+Yf4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=lw2LP5oUACyVvilbBXRuQkB0Xk4dQodpsSv84uUe9IHFJSHoCt+kEJYhqI5s6xEYn 88tNcq2AO6SCQ83zUGQiRVm4t/UM3F4CZO4xDez1MX8S3B+hGJ61dQnz6EewaP+TXI /Ac48PJ+SWiUSc5I36LDZuXN0o5loHRp7xyX/Yie5gx0aoGsRkh3AP3TuAF0Z50/M9 gf9ZgaVJ0V6ArIzcMc8UYihdrhVAXFqkuC96lR3a9YMpukkTRGj5P2l5KulOSAS/ul 0BWARI9zkZn2eUIgVx26DIYLeDXpuEsrX7OQfY/M6TQgFyB2a2FrVWLj9UIQI2/jQj CHLJNZ9EYgbxw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Hsin-Yi Wang , Douglas Anderson , Sasha Levin Subject: [PATCH 6.7 403/713] drm/panel-edp: use put_sync in unprepare Date: Sun, 24 Mar 2024 18:42:09 -0400 Message-ID: <20240324224720.1345309-404-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DCED71E61FF; Sun, 24 Mar 2024 22:53: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=1711320839; cv=none; b=pEjW6mVTTBBoKDxIhSuPbIGd/RbvDxyM9XN2hKoZRrRxDv6Vg8SF9oTUxs558DukJ2TQuvBq9OpZXgykuTnQiqt9DVThYeCZqdyo3+y50vIAUKedoALcGG9aTqLXEamMVmFQBcBvX+Rm2Y3FuhrFcSeoyJXiZ5yZfYWJeNm9Z0s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320839; c=relaxed/simple; bh=0nT6+dnLat5eW46YYuat1egqogoXhgAReEx7/an+0Fs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=UppSbODaXy78PCijEdgC2trSuxXjEJjCu0lHjA5d8Vv14V3+sN4EI73od/egLm7E55pegljyjD/KR/QXj81FQtbres/stYJ41SihBS+PGU9t+uSvpbyIDA+VxPwkMsAjIaaRm9lS19iy4JD2WDAxetETBCF2dzh7Vjp/FB7N3RU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=O7Ba0mvY; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="O7Ba0mvY" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 25D20C433C7; Sun, 24 Mar 2024 22:53:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320838; bh=0nT6+dnLat5eW46YYuat1egqogoXhgAReEx7/an+0Fs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=O7Ba0mvYpJJeFs4IiFspi0Ze5kfL5K1OxejZ9G81/F19AThiAYzyIoRRNjz4Fo1su zb7LmU0yjNT7zRAo2dg08iVDrW4wGrny0q9PqW0mwroqD5/haKvMGf7rmuCj9MLkPd cl/6j4vWYm5qYqyfOrD6CPQx2oR3w5a/be0tdLMBDCfPUQHxv7PvGVZjXunzLl9cCg Zq4+M6ixc341+i5WcGPrw1vGWgXppYIbPJieI2PgBmBPZyY39p93pqM8yvISFSTeql g8C5KsRq5QNl4fdIEWL4C2KKu7w+W6Qh50dX19UehDsCkqNIYqqfhgu//RbSndoW9p Aj8bKfsd1CFeQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Zhipeng Lu , Qiang Yu , Sasha Levin Subject: [PATCH 6.7 404/713] drm/lima: fix a memleak in lima_heap_alloc Date: Sun, 24 Mar 2024 18:42:10 -0400 Message-ID: <20240324224720.1345309-405-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D80AF1E6210; Sun, 24 Mar 2024 22:53: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=1711320840; cv=none; b=VhrnNRcMCiNhcS/lg5m6nLkxtST1C2MSnmMmV/MuDXoi1wnN3xg5TIfF8/8NvKSrxtlRaBWwOHLHKOFwq4hYyUBD6UgI793D3QaKOkwvLcInZz1iDkAZYZytQVfzQi9FfdNhHMoWHVBBlxjiU/G+e6sXvMOJYFYn7RQP8qyIWMY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320840; c=relaxed/simple; bh=IQMlcf/x3JYpjgH2EoHDafE++YM8FkcTZYcWbvKrJG0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=lcyPFNx9+GMkFAOfq/mpxSoUM2gweDcZWQXAO+305TbUOwa4a2qvX/hJGPIfA4/l5ZsjDW59wIRblKz/od+E2JK9z0+c3MoSoD64MQh7wmbN9WeG6EsfeZP3yuEjuAy3tKLreSrBunUIAZq4tlxP2UvG/1W9gxqDGdyg9PO48ZI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=kUAN57mj; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="kUAN57mj" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0CCD1C433F1; Sun, 24 Mar 2024 22:53:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320839; bh=IQMlcf/x3JYpjgH2EoHDafE++YM8FkcTZYcWbvKrJG0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=kUAN57mjsQWfd0iNqWtwBQQzyP8ImOFZ36NePaIJ/UBDFi7ISfdFW5BGmjanU5jEk cP+e80y5yPS45CGg/SZI2oBnNvub+h2RD1jtSGqMCzxPKrzal7Yfz4LX9tJmv4kaU+ GDqhA9vMfWtcD5JoynsgCkBMx4U04Q+5dTjC6M2ElR6JE+HLdtxTGXc5eERod2jiha x8rLfzvBm4Zq/2v4yW1UV0VDc7lS9J/FBsG/0gVQTEUC57HrOkwaFuCqZuwSNG8KHP 2RRd54kC7XlyG+Z3Id3m7TL2ANPeaIKiRIbACuS0yCD7OWNvDi6YDormqc05aQEJqH DtDqhPuYwF4rw== 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.7 405/713] ASoC: amd: acp: Add missing error handling in sof-mach Date: Sun, 24 Mar 2024 18:42:11 -0400 Message-ID: <20240324224720.1345309-406-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DA3C51E621C; Sun, 24 Mar 2024 22:54: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=1711320841; cv=none; b=Rvs1KvB0RfRdeuBWfu/n7YEqEwnt/X+7H62OnKZW21guKkoGCOq1TaX/80pt5Ul1CZvcc+9xfqI3iyslLqXsWX0wjga43CkXRX5pQydFX1qAM6wF/Je04rMfXydZvMZGfqC6iIQN9d6iiMy4c+zwKqXrNXGYPwTrEgPHis8fuDo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320841; c=relaxed/simple; bh=uxy3V+RQwm6GDIBtMAfPP7EnSHK32Sx43UE/yYHa5U0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=EqJmG01c/Yi3AQH5pciyBCFMrwM+qxXWzSIxbwyt7aXqnPQfgUHLWrHBgusVUmUvKEF/qIKYfwpCG6QM7E2lX/UAnbDqr1ZDCxomQnPNkUsfv7UhT4pnCgONkFFriFReXDWEh3oERHEEbwrMFeyck+gS/5N/4QTzYZe9fY46T+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=isYAnDzo; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="isYAnDzo" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0B145C433C7; Sun, 24 Mar 2024 22:53:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320840; bh=uxy3V+RQwm6GDIBtMAfPP7EnSHK32Sx43UE/yYHa5U0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=isYAnDzoS+aQi2dUdbMHItYTCUxju21CumDa+YjGaFQo7hA9kIFSTIL9Klbm8PUS/ OiNUCx8auxbb/bPJwumROx79GHxqvrfyN9UfIVf9R22yw2yM68mb/KNlkYv0EFKMcW e6R6mBCUJV/XZaFo33j3d18HSV9mYVpwkak7H8d5qgn9i/j0pIlfzbE2X753Kw8Uus 9JAZygTSKB4NnQT9ztnMSVb5pIQe/ouYYt+ebLYJsWM1YW5rDWC/3vDYtrcEZnRAd1 HBmXFlwDymRFElHgUXsKYGzRIId+9L7nB9h8Jvs/c+mSab2jAwGy8RgyTkZnX4N9Dj 7SupLDmTXvWmA== 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.7 406/713] ASoC: SOF: amd: Fix memory leak in amd_sof_acp_probe() Date: Sun, 24 Mar 2024 18:42:12 -0400 Message-ID: <20240324224720.1345309-407-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 603ea5fc0d0d4..c6f637f298476 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2F3271E621F; Sun, 24 Mar 2024 22:54: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=1711320842; cv=none; b=Mv+8lCip0cmztXOSpsUZe+CJG38glQ2QWnhE0s3jk6rtDh7jdmCwuXqIYA7Ru3epbWVcXDwLXQzVl9JzQPT9ixoS+2z/EN6gLKIZETlCTAICUObVjn4rtL6oOpujiyYzz71tSSXKGFQOFRpYHhi7oTXy8QRg0X3pIFNNossdITo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320842; c=relaxed/simple; bh=Dk19BKliAWL8ndMZblXchMzHzw54IPJ5e8qxIK3ZQI4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MFb0Oz4GLvQLzoClGqp/nR5dp0WGtJQqibxXQIkQRv5js85o7RFZu+Qw+jqdbqb8nJaKoMZf4GvZqHXabV+wmZZk4LOi3cn8ZBzIe6LjpV0jLsjis8hfBdalT/Ev5AH43vrfX4gycyZ+zZ6QMu8OoKzXv/3cpTWuQgK0WNHNvEs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=LcsnJmfG; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="LcsnJmfG" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 08E18C433F1; Sun, 24 Mar 2024 22:54:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320842; bh=Dk19BKliAWL8ndMZblXchMzHzw54IPJ5e8qxIK3ZQI4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=LcsnJmfGhe3SEhe2UEa2o9VDhoEZ1A2O7INw6Jnz4jch2OwPprw+ztZKauWj54gZR /oEmvVRXMf+k1hJmEzaLgnjngwxNG0PzgwKD65gm8EtUv0q2t8TyYQB1NK+oCg+loS bwB08zLmjVkKpCKIvmFygUBkOk5kYP4JuuFfu1SpPxWlJdVgCv87+26wjaHYTaBIha M2OWILKfRLVJCI9U2JSXHdGNRodd+Ei39THxZtb7eh+tii5Q3k6czq1JNfxyqTc5E6 bASJ1UvinzNH6uTe98dqAWSH1wEPWWcRla5y3a4pEG/+xE62BjupX9FjjjP5P1G0fJ AQTt5KERSno9Q== 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.7 407/713] dmaengine: tegra210-adma: Update dependency to ARCH_TEGRA Date: Sun, 24 Mar 2024 18:42:13 -0400 Message-ID: <20240324224720.1345309-408-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- drivers/dma/Kconfig | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/dma/Kconfig b/drivers/dma/Kconfig index 70ba506dabab5..de6eb370d485d 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0E60D1E621B; Sun, 24 Mar 2024 22:54: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=1711320844; cv=none; b=pJG9VMz7rXmGSJMc5GnYZIu9KAsAJNOUotwWLegY7k785TjkVjua/Pox817W8/E9vh+XssIYactR82ZYRNVVhwv6PZtYKp3hd80WQrErv4y0LMr5pBq/k7qGNHrQ+NIwAjTxO5TUS176UAOyZ7obJ5fPWG6PwO4Vr30cp68ojus= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320844; c=relaxed/simple; bh=vwK9mT2SDzhQT/VK/uvqjMKc6ljiGp44qtXkgvlh3Js=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=lw9pofm69NpEZnjHYc2InVXXAPBER8H7M9waZjbogpmyG6RSwfRDiq5o4DdrEvY9KdJVYDQqfm/hzQ0s9JnSp9AlIolgYzI1BdAYVmm0e87pVloHNI13Ya4WOKRgdTuueQzEJzwL2lusDbGNLh478CmYPg8aGdvfSU+UpqakKFg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=hiOjfjfH; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="hiOjfjfH" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4BC0EC433A6; Sun, 24 Mar 2024 22:54:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320842; bh=vwK9mT2SDzhQT/VK/uvqjMKc6ljiGp44qtXkgvlh3Js=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=hiOjfjfHgeUh4Cc1NanehTgPFGh31hV0/L+VvBkZ+dJULWP90CPuyzjXMfhkQ3ptQ Vpa35EPeLOul933aIOyHokkFrpMymuq35L8dkIzQOjyh5HRLtAbGX65yJVO9YV+/74 XPUgcKciBiLQQ9r3o3OrELk4RSQvsMqcwAksmJ8FCFrSL481EGapzIuU7GNQvy64Ne +dIIVaKqC6s1TXM2cCijKY4F4iwyldWfsG/u82WVIREyQ08pGFbFKrhbFEuE/lxjmv QbKREkxt+wLYp5Vvo0+Y2cLfl4acp86znSzRrfQWcLRRFR5OOU9fQRZyy+MwffWRJs MKVi3X7MumQEQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Alexander Stein , Robert Foss , Sasha Levin Subject: [PATCH 6.7 408/713] media: tc358743: register v4l2 async device only after successful setup Date: Sun, 24 Mar 2024 18:42:14 -0400 Message-ID: <20240324224720.1345309-409-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 37F251292D5; Sun, 24 Mar 2024 22:54: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=1711320844; cv=none; b=ZdUvcnUv7ZOmGtmu49FkbcsSiBQw4RItbMSjYdMZrsmwSR6U08Mc7Xav/goBemPTjjqDTsgLj19FrHBubNdXz59gcLXdFlxA0pMlG1zvgVfbDRpZpdZH2md04WOJ+78ZqjTrWv4zwxI8xR7/Vx6v94+yTdYoPcLw6X/GIPtG1uY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320844; c=relaxed/simple; bh=OHkauVxwhGFcSzxmwXCt6W4KQ6WVPYd3XE4W4dRigWM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qr+FZJmc7wrpsFVga6dWHdG4wTbAeQtfVYui8/aU15OSf923wAkMEwypVkOB7y1XDgC5/e9pSJVAb5uFnVwR3RG3MjUHg03/6NokHpdYYOJncqOcPZPAKs6UAxh7RIKXhoqzC3qf1OYSetdw+FTzJxv3daFERtMFRVpnTlnsOu0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=im7aYSxw; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="im7aYSxw" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3345FC433F1; Sun, 24 Mar 2024 22:54:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320844; bh=OHkauVxwhGFcSzxmwXCt6W4KQ6WVPYd3XE4W4dRigWM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=im7aYSxw03Kb5heYEb9iQKbQtYURYsGBoI8XH+qK/PNOPXqQMPHcPpamrO1HpfQYn FXQcSRMxmMLSzQRE0pajn4yeFL4N4dzsDntAOIS+xmQ2NUHXLGeHs8K3UAOBiGhX+5 pv3qykkrdZtTp+DLFQjsZfqQRwzSGAzrW9OKKtejAdG2gulFqEZK0W/bzYYj0/q1dM uY48vOW25T9T1s0AQ6ow5E09sd163LhimyoW9KKxIvv7EG5MAcdIOIEq1BkFOMo3X2 IgNPGEz6SwLYIv7ouMgPb24RGryrVVp90yDRd1eZ5l7dsLtTEdnUtr//R2mEXuOnnz S7yxVK+r4P45g== 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.7 409/713] media: cadence: csi2rx: use match fwnode for media link Date: Sun, 24 Mar 2024 18:42:15 -0400 Message-ID: <20240324224720.1345309-410-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 889f4fbbafb3c..c2a979397b39f 100644 --- a/drivers/media/platform/cadence/cdns-csi2rx.c +++ b/drivers/media/platform/cadence/cdns-csi2rx.c @@ -465,7 +465,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 09C6C1292DC; Sun, 24 Mar 2024 22:54: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=1711320845; cv=none; b=MNalWw+J28NOSB+PLnVAGrx736hBihIfYdy+yTw3SUuCieiOcKGk329BuCqSvc0h8B9Y2pdgy6UrNv8kquOg2U3ArYS3xtbsZG6VN/5Svd92gx9gl+1kmAGFj4GkMJDgcC3SUHV/3a66XzMVEC1Z7HaClOQ5QFvC1SAgH6S7Tws= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320845; c=relaxed/simple; bh=Bi+CbrTK4iD6H6njG6um+soEi21PZdr3qsucuDdlk/w=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=MhhqJ+k4aNCgR3qyrHbyuNK/J/TKNDsztDVDp2lzWBucaN6iFsEimmtjCSEiXrTT0dSDJkBb99QR8SrBmF6IQNt6P5Z7VFJfzAMuh9juadlr5i2Ip8eYFf0E6/N/eHPGYcgsI026Lcbeayuo7VAT+ilxM2Q4wZyppWmbNfjf/k4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ac27vTSh; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ac27vTSh" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4A871C433C7; Sun, 24 Mar 2024 22:54:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320844; bh=Bi+CbrTK4iD6H6njG6um+soEi21PZdr3qsucuDdlk/w=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ac27vTShsFsPZu1VGC4xKsI2Jeiawi3CJxFIjHf02PwouBZCapobLcsL9lCX+TaTu nwlP7OfteQkV0HTy+Km3NZDENZCZ4wSs4NIdtwIMmPEIbp3hczzLvmTLa+ZWVPakC7 AM07e/d/VzQffJOhlEZJOXXV0i4WJ7qet1+wSZqDxK5v4oMMersPyzqUchTdXckR4L dX1178k2Wz9a4NFnQWQQLTLUalEl/HLM/rRd2f8USBSoZKRlBzvohjQ25O4dITuboc 8FzW0tGcqYMQMyz3XsrWvGV0Io6A13nhRS3Ci9tfch/PafK/OpqZxT4T08HVRdxN7s bORo+cjdu0CKg== 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.7 410/713] PCI/DPC: Print all TLP Prefixes, not just the first Date: Sun, 24 Mar 2024 18:42:16 -0400 Message-ID: <20240324224720.1345309-411-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-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: Bagas Sanjaya --- 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 94111e4382413..e5d7c12854fa0 100644 --- a/drivers/pci/pcie/dpc.c +++ b/drivers/pci/pcie/dpc.c @@ -234,7 +234,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E3C211DB06C; Sun, 24 Mar 2024 22:54: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=1711320847; cv=none; b=Mv9lXporJVSVbqlSR/1yD+NmLUnwACDDINfefCriOLk3vx8AyNKqWwvuLXOD2amASWVNa2MovCrBrBZoyziVowKJEH19y73gDv00prPJXMWtMYqIfum65/H3B3cxBiHX0hKoLC9Dv3FbYZpwhLY8uRGeILEb8RRiyV1/eYnkiZ8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320847; c=relaxed/simple; bh=100Q3DQFY0vQZd0kuvkMZF3fR4O/64ANoavsC0h6OFM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mnr1lOT8PwJmsg9NvleGYcFgV4z5wU8kLCeMl7O91YZbCfHPw8+ZW03OQwaLbdC3ZDaqxPTqT7CFICGqiz2K1okMuFdsLHZVieF03Fuaez1T3FXNWst3jw6dSOzjF/bOaYMWiAlON1vJbnjUw2fBf5b2XHAwwmafOAgkFw1q0KY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=mWaIO8JO; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="mWaIO8JO" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2D1E4C433F1; Sun, 24 Mar 2024 22:54:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320845; bh=100Q3DQFY0vQZd0kuvkMZF3fR4O/64ANoavsC0h6OFM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=mWaIO8JObm2jzaWhwPy2Wrr3gtiBuklEekncNvqOq+wLEUTpEjJzN5MSVpPIRrT6I ClH8T6xzSlpJx/aqJlqyi1a95BlccdlphlE0zF26JRUfy1hXtPuG3wTv4XYfEsuusM Uva9hv3XP7BWWCmafkyDw5F10I8kvhy7F1rboDKMqG4zr6Xr/GOGMWMS29Z1jbggCx QnsJFQMqdn9CNMOLqPJPv7hkfzZ5GOHXgIi9Q6WqXC3mxOI5OmAnq294yU0QizQQRB X0I+ZxVJUHV1KPmCzUyEzy2UhvEeHXoso/XRvpUE+ylGaimIYzXBZgO0dXDstB+EAV XxKuq5UwmSvmw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Yang Jihong , Namhyung Kim , Sasha Levin Subject: [PATCH 6.7 411/713] perf record: Fix possible incorrect free in record__switch_output() Date: Sun, 24 Mar 2024 18:42:17 -0400 Message-ID: <20240324224720.1345309-412-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 dcf288a4fb9a9..fa13479ed73d6 100644 --- a/tools/perf/builtin-record.c +++ b/tools/perf/builtin-record.c @@ -1818,8 +1818,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4AAE21DB07B; Sun, 24 Mar 2024 22:54: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=1711320848; cv=none; b=TypAa94zVwiN4BBXrFZkVUm2tihA10frIk2w6oG1aOBczB32osH/kfBt8w7Jc5XGtJNwnbctbbN5YNhHlqBl6JrBrccseFQAhx0ZWbLFtX/D0D6/UtfbwTGNjCMBhI5191M9jYNPSKlbGa8NQnw8lg6PVO7fgPQ9eJEtHp6emmA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320848; c=relaxed/simple; bh=YC+hLjCMjaUaMXvnrxNFhbGXRLikqY4VpstIXEgX6pc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZZQrGTx33FcVm3QvKdKeDWNXuRVck0VOLUWJVU/IE1i24yMIuGxYDIa7qxdRP2qVuv0+e1EG6UIGYgGWhAHi1Dh6Prn/XO09P6tAdZYp/d//2uDrW16fLQHIShkgeG1JfnkI6kJmUIC4LErngrnn/TJgF9qfaVfzg8hrhd8n/U4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=PkVfJvi0; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="PkVfJvi0" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 156C6C433C7; Sun, 24 Mar 2024 22:54:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320847; bh=YC+hLjCMjaUaMXvnrxNFhbGXRLikqY4VpstIXEgX6pc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=PkVfJvi0twvu80YiRlQxb+8hQibBiBP5QqiP3c+juy4gZM7/QaKPJaGcdoVVqNoOt FfdPH3jNZfmPWZRrxTgu0eUciuwxFkATvo+4J0QtHjWkwWlf5OGGbFW9g8SdsA2aLa x9JWb20Z+d2d2o3cS7PzdoJyUHarjvOaM+GqEY5yL2lIlTudIzYndYJdVDKnxq2j6T qaAh0T6JeKi1/F+/fvyoaxnmcjx0JMf2mvERj9J1tBwh+QQCDkNYP8ksUh5PuSQrTy UjZrnbUvUrkKzr5HOd2EYwxdfCa4/gLK4xYtAHeVj4cmq66WYSFzvlqccEzTJSpyuo 5iwT/l5e274tg== 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.7 412/713] perf top: Uniform the event name for the hybrid machine Date: Sun, 24 Mar 2024 18:42:18 -0400 Message-ID: <20240324224720.1345309-413-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 fa13479ed73d6..b7f8c94d052d0 100644 --- a/tools/perf/builtin-record.c +++ b/tools/perf/builtin-record.c @@ -2216,32 +2216,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; @@ -2475,7 +2449,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 b0ed14a6da9d4..eb1dd29c538d5 100644 --- a/tools/perf/util/evlist.c +++ b/tools/perf/util/evlist.c @@ -2525,3 +2525,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 98e7ddb2bd305..cb91dc9117a27 100644 --- a/tools/perf/util/evlist.h +++ b/tools/perf/util/evlist.h @@ -442,5 +442,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 30CC51DB082; Sun, 24 Mar 2024 22:54: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=1711320849; cv=none; b=fvHA5VAtECnYILmZeqakU4KqGa34Jk3V4ga9vre47T2IXM5tckccZKU5N537nBRqXm/Xc88mp3nHi2gScPbSDXpzzI04CeYKKDLkmtU6TUqgLYMj8i0+i+nlz6l5G9OqooarakZpy0ZDvCS645ebShLCF3PLZiw0tOFD/pWLpts= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320849; c=relaxed/simple; bh=5+ECUaLZ+MoXu77/a9hjEoo4afKWWLYY3fUE4SSgu74=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Htu2thTqycmoYKncLxtF/usbCik5dagcGlBksa89I50ZWhoMmaa+ngha2NxrECzgsA3XmbesXhQORMypcAHRm7txU7RAnDc5+ZU345R1ibl5kfbz9QSaI/gEF5HCKl3w3uHZhC6uGdJjpECy7Gvp3onBVR4znLbic4w9AWSxUrI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=DEOqvpE/; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="DEOqvpE/" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6D58AC43399; Sun, 24 Mar 2024 22:54:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320848; bh=5+ECUaLZ+MoXu77/a9hjEoo4afKWWLYY3fUE4SSgu74=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=DEOqvpE/FmSaVtsFgG+mwO7XE4yPxfskpGiO3JC5pIGnz9+gDWKEH9E3bJ/KEGIQE avcaZzHXCvgPkoaiNvmLqhuE0QZ4GJ9ZkuK827JfwJE9tOwgUwAf8/4hMG8OpYyHkv 0q4R2lONAi7VHjRmkNS8d/VpywsCAvLI/E4tAj4QtaBUhiXLofGZpcKeYElV7ERFLI D4PvJ7axn6c2d2VuNvgyLTF6HWwBoFZFh8HJB2/F9MTiGyXHTfTqOjn1dvmtscj3W9 eT6enpoefX2A27d5Ph+r0UrFwqE5kJEyCCPWis6PHwZC4zrtLjjKSHlxfL0l0IDJ4Z hNs44TQ+7hU3w== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Yang Jihong , Namhyung Kim , Sasha Levin Subject: [PATCH 6.7 413/713] perf record: Check conflict between '--timestamp-filename' option and pipe mode before recording Date: Sun, 24 Mar 2024 18:42:19 -0400 Message-ID: <20240324224720.1345309-414-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 b7f8c94d052d0..5d86aa5ff5367 100644 --- a/tools/perf/builtin-record.c +++ b/tools/perf/builtin-record.c @@ -2449,6 +2449,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 c29d8a382b196..550675ce0b787 100644 --- a/tools/perf/util/data.c +++ b/tools/perf/util/data.c @@ -430,8 +430,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 13BFE1DB08C; Sun, 24 Mar 2024 22:54: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=1711320850; cv=none; b=qy2wL8DuATcLwG7j+yX96FD5vaO64HwxNgESxh6O1OovfUJReAqF3CNCC1DFtuy5ZcaC9LiEsd91VoJL1bllIDMa2RDSb1xN1ixQu5bGdJJjqbf4eemApkAv9L0kxicDUP5BBzaxZLZDlvSyZtu44zD4hMGSEhycmM/YnsPDg8U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320850; c=relaxed/simple; bh=k0CHCQeQYAxizY/a36oGNxW78++AXdIg+U+sNWUr7Wc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=K6G98fHla1Q1OqDQv+KdVdScNdh0ZmsbOFxzjJcZE2vDUHXvUElDGUMUOu1fV+ccDP0VcLLpYeiUsUfmp82HXw/pe2BP7RxSUAJdHYMFoaKAsk32FxV6ollwMGFN5tZ/kjDCCh8OBJQcayzQtYuFSjL0gY7gk1Epg+L3FosXLTs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=De74/UMD; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="De74/UMD" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5441BC433F1; Sun, 24 Mar 2024 22:54:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320849; bh=k0CHCQeQYAxizY/a36oGNxW78++AXdIg+U+sNWUr7Wc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=De74/UMDBEBoP7sJj0l0xXGMZfAhFZVUP9P6Ms3fXjtgCRUOPVajRqHAPhFTvxd3q MTtp/bPs8WKVYD5xizLf7JrXUoFMg5zaIGmtaMsU4+bH+BgXOqzBCV1vIY+Bzf9V0d J5Maokb1v82coCxqMOhAR00Jt2FB2GwE9J4V5x3S2yT+OJ5mpEKs8ln97sj3FQu6S+ mfkLqbMER0kgLcUXRhWN9WLUuJsTCkPl+guTANUhGhzvVlRYmm82Y6z1TtJHGrpww4 FWolErcM4j7npvfCGK+r5Fve9cQ4fO8RllFRTC8Fxb/8ifdMATj+rLAgO9g041yHrn OokkL1n580y7A== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Mikhail Khvainitski , Jiri Kosina , Sasha Levin Subject: [PATCH 6.7 414/713] HID: lenovo: Add middleclick_workaround sysfs knob for cptkbd Date: Sun, 24 Mar 2024 18:42:20 -0400 Message-ID: <20240324224720.1345309-415-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 718041DB087; Sun, 24 Mar 2024 22:54: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=1711320851; cv=none; b=QDzazybxYoqn8Ge/FGIkcSP/1+KdbTOkWp/69NmxotKL1vsLfFUZUliCWudNkq2xaccP2VIgMQXRhOv/XDj5XdF0iW+evuXbhlbgjrd57OtFxE38NyetR0Gvbbikd5RLxqihnlVTGmK9o/P8T3E+DcoYExq3MucGp1jwkRcSxXc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320851; c=relaxed/simple; bh=2xVeTehfVDyxoTKFCXcy33KAjVDc4xn38/mSPSwJRCY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qS5DGfHJUqQYP50G/QJi1+8/6Dt05fcQE35Lsxy336ogd8RODGJFq50Wq1d8zp0DTWgMYQV8PkYwXxE297DV0tvHSyxV0UeIY57MbL/VqG2FOfu9QcsFZhTMrC5aULFIp+4+aIxS7K+cl/ySx2e7poznQhxNY5MrP/HdWIq3AUY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Ep47OYaA; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Ep47OYaA" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3AE32C43390; Sun, 24 Mar 2024 22:54:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320850; bh=2xVeTehfVDyxoTKFCXcy33KAjVDc4xn38/mSPSwJRCY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Ep47OYaAw8Nhn56BU+Tj38OdznWK67HERrrZRa4xTHtNZ+cHcsVxh1DJCIUDUvcA6 lrgxJdfPc6M3Nd/fRnzDDyddSht3xWbeWjrjc2dQfy+xvW7R3CdBpD0kniXO44X/F7 FcvHwuGRL11s/l8ZJvWTVYkq6d7EQqGjyOiKHT/rEX+tqfxMvEeuag2ZRq1yHlr29k Q8RwEmIuaLgw/tnZ3xswJJRbErzWkYdXbMn2ny7qTmU+VUAdW9Q2vaimRfDqXZF1rM qBrQGvffCQjPRrplD5BTDBn4gkR/Fn3FUV7LHEdBD3U9z8XBa8D0eIdGgNE/5QsoVk oJBv3EEpC7Z+A== 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.7 415/713] drm/amd/display: Fix a potential buffer overflow in 'dp_dsc_clock_en_read()' Date: Sun, 24 Mar 2024 18:42:21 -0400 Message-ID: <20240324224720.1345309-416-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 45c972f2630d8..417c9cb47b89e 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 @@ -1483,7 +1483,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4A3501DB09B; Sun, 24 Mar 2024 22:54: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=1711320852; cv=none; b=AnFyyFtnqarw9gZOi2lXpuzqypAZVans62JGa804CXjpHJoNuWhsQZePa+Z7DzQFM+c0PtrgV0VsK3f0LoKdvrqejkdf/+VaP8QP7BXkrdUlSmJ1YErxQ39WnSgkyOELBdZzZLpOjiI0uMDLdNoW/T9ffrKwctTs8K/6SD81/ik= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320852; c=relaxed/simple; bh=KKAX63E2UjWlYV/JoCCOLDPiHQImCjytiQ3NA2dE3Ek=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PZR7nLKBP19EQIhNCK2PvcLIKXO/80PFaWGnSCC+zL5xja8CsuXjxE4Ssl3NdQ3I97UgY6h9idqznVD3wbVwfeBF/KOXK25aHDJ97mW17wvEGwaahu8n+DC7cOI1DMgdezHusELB3/iTUCTfbeuNQnaShdBSFd2ZoBTPOoMqqw4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=fAFpoYJW; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="fAFpoYJW" Received: by smtp.kernel.org (Postfix) with ESMTPSA id BB1FAC433F1; Sun, 24 Mar 2024 22:54:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320852; bh=KKAX63E2UjWlYV/JoCCOLDPiHQImCjytiQ3NA2dE3Ek=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=fAFpoYJW3p45jF1XhVtPii6dsTJs1SN3+3fRTtOkuvsX+qOgfVSusBxput0gpFzHe ELIvWK9DIlQLZJiricEkXpKTanbAGKgjSaQAh0gKsVGnQ69YrqchK76FWNS5ymPNl1 ob7qRFavOin5hMaDe2BbXPdgz+1eQLs0O05Omh3m67s/CUC7h8lsigMfunuQvyD1XM A9OaG0XrtDQ1Mg4iCXMNw4BxEwpbj9Geztq0M/cP/wdyxF0JK+A36GdUkm8h0E4Sh/ LKvORTqtfvZpRK8JcuIINTqJhDFL7uWT7nK6PqUMWsy7DIJSMPkxq+CqrJ139nph0o tNmpFZ/xY+syA== 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.7 416/713] perf pmu: Treat the msr pmu as software Date: Sun, 24 Mar 2024 18:42:22 -0400 Message-ID: <20240324224720.1345309-417-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 d3c9aa4326bee..33e783fc908fe 100644 --- a/tools/perf/util/pmu.c +++ b/tools/perf/util/pmu.c @@ -1756,6 +1756,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) { @@ -1767,7 +1773,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(const struct perf_pmu *pmu, const char *name) --=20 2.43.0 From nobody Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 36E931292EE; Sun, 24 Mar 2024 22:54: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=1711320854; cv=none; b=CGv1uJCeGN3KkRM37xd95vqCXwuIbeLl0HqVzepiVlLOqqNbWNiy9EbvmP56To5I0VKoK3tmruT7B/L3ylJEWURQf07+nNGIrLMJ6rsUeHTwZG8jf6OxDTGh2gooJwA7s2stTxwwXDtAe37INjJSf5+79pIifqy0WpaDx2jOiIE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320854; c=relaxed/simple; bh=YNNOWOco7RCQJS1bye+2aEHrtl5dCWSCAkScx6UKIfk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=YCho61wIXAxVtdCzWJvFk6+1tO7bcUw2HUXNdLNpYaeGYjcdmc0iJkd6EMe1z37RCkENaUqhWtTxPq3Ebb7hIOVZzZXBlbF3MCB5QOIjn+NuNS6epVjIszSGbHm1xv8QRCAXwf0p/LXJegck3Bjx6sagjXG+FJSA9P1ddGN3H1U= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=SQvYU+4v; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="SQvYU+4v" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6DDBAC433C7; Sun, 24 Mar 2024 22:54:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320853; bh=YNNOWOco7RCQJS1bye+2aEHrtl5dCWSCAkScx6UKIfk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=SQvYU+4vK5pRSIKU1+Oxsf5cJ/e/hZLMxeIBzezuDHznqjV8qtRs8vnbn5SZEcXW+ Wje2eLYwtGbWBAakvX4B6ibejrO5eHo5CHew3AjME7xXloKc/5ZfbCxLn5UDkdfzuM q7i2d+pm8Uo+oNCgx+3UPqQney+q4koRzP43Ohb9DRpG+Wr+XLAPldaEx1qtHx5qCX qwMAIHiQVI/e23TMMZHvNjDqwS4mUIUrp23PbK6PTOUVI/Y0TTvRHid/ol+jWnx7u/ biQp1tYljTujQqpE6ChTRv/L7Mya+O+MKuDhv+qdeWnygBbsDuUt17QH67izvUaN2y AOZmzODUXx6Cw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Stefan Binding , Takashi Iwai , Sasha Levin Subject: [PATCH 6.7 417/713] ALSA: hda: cs35l41: Set Channel Index correctly when system is missing _DSD Date: Sun, 24 Mar 2024 18:42:23 -0400 Message-ID: <20240324224720.1345309-418-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Stefan Binding [ Upstream commit 135096ebfab656823d0037102a00776f3914fee3 ] Current method to set Channel Index when the system is missing _DSD assumes that the channels alternate, which is not guaranteed. Instead use the same methodology as the main driver does when _DSD exists. Fixes: 8c4c216db8fb ("ALSA: hda: cs35l41: Add config table to support many = laptops without _DSD") Signed-off-by: Stefan Binding Link: https://lore.kernel.org/r/20240126164005.367021-2-sbinding@opensource= .cirrus.com Signed-off-by: Takashi Iwai Signed-off-by: Sasha Levin Reported-by: Linux Kernel Functional Testing Tested-by: Bagas Sanjaya --- sound/pci/hda/cs35l41_hda_property.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/sound/pci/hda/cs35l41_hda_property.c b/sound/pci/hda/cs35l41_h= da_property.c index 5a5f4b499fd94..b5b24fefb20cf 100644 --- a/sound/pci/hda/cs35l41_hda_property.c +++ b/sound/pci/hda/cs35l41_hda_property.c @@ -207,6 +207,7 @@ static int generic_dsd_config(struct cs35l41_hda *cs35l= 41, struct device *physde struct spi_device *spi; bool dsd_found; int ret; + int i; =20 for (cfg =3D cs35l41_config_table; cfg->ssid; cfg++) { if (!strcasecmp(cfg->ssid, cs35l41->acpi_subsystem_id)) @@ -292,16 +293,6 @@ static int generic_dsd_config(struct cs35l41_hda *cs35= l41, struct device *physde cs35l41->index =3D id =3D=3D 0x40 ? 0 : 1; } =20 - if (cfg->num_amps =3D=3D 3) - /* 3 amps means a center channel, so no duplicate channels */ - cs35l41->channel_index =3D 0; - else - /* - * if 4 amps, there are duplicate channels, so they need different index= es - * if 2 amps, no duplicate channels, channel_index would be 0 - */ - cs35l41->channel_index =3D cs35l41->index / 2; - cs35l41->reset_gpio =3D fwnode_gpiod_get_index(acpi_fwnode_handle(cs35l41= ->dacpi), "reset", cs35l41->index, GPIOD_OUT_LOW, "cs35l41-reset"); @@ -309,6 +300,11 @@ static int generic_dsd_config(struct cs35l41_hda *cs35= l41, struct device *physde =20 hw_cfg->spk_pos =3D cfg->channel[cs35l41->index]; =20 + cs35l41->channel_index =3D 0; + for (i =3D 0; i < cs35l41->index; i++) + if (cfg->channel[i] =3D=3D hw_cfg->spk_pos) + cs35l41->channel_index++; + if (cfg->boost_type =3D=3D INTERNAL) { hw_cfg->bst_type =3D CS35L41_INT_BOOST; hw_cfg->bst_ind =3D cfg->boost_ind_nanohenry; --=20 2.43.0 From nobody Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 68B9A1292F1; Sun, 24 Mar 2024 22:54: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=1711320854; cv=none; b=cejAPf6rr5dgfWHGugbCbWBLkTx8ALQsg8RcjnxdHJuzv2UjPZCW5PUpWK3I5Gcj4lW8h38UMbofyQOYxG3yx5zqi4H+DyzsL2R4O1dOsklQ5c9N5AE8jt0MdJXlmtJvbeSpYGj+Iu/ZIYGaD+PY4Qd3e2QTtUCkWmBqGsG/Fvs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320854; c=relaxed/simple; bh=NqwGCkPP9pHP+VhbOXH+r1P5DCYuQEDtzt/Bgudxgh4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=rJlH2701gmph1YfQhPvnrYlRAkjIer8GtxJXo/v5IdfUAW3WEh8L6pELcisQZ+72eOFTQKgPXdGDLQnC7ix+QgAeUM3y1of7wXUo9KPUbvsEqVmLJAZlt3bHYMgIwDblnQafFst2R41yedOpYMXmCchjSQSsg2Z03qcmF+0XuKA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=FtWwjNsG; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="FtWwjNsG" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 516DBC433F1; Sun, 24 Mar 2024 22:54:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320854; bh=NqwGCkPP9pHP+VhbOXH+r1P5DCYuQEDtzt/Bgudxgh4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=FtWwjNsGV7Z48i2VaD0LtqkbcNgSg9ax0iwzGpQ4e99wrW/0dIS2JABs4zsEQVJ5p 6mrtlVVff7KgY7FTvums3lOHRUDsSY8Az7E1Ilw+oSVnWnWpXi3yryuxP8S8Wkftsg Ccdi0VCE6cRI90QjX0jEzAwSBhhEJLL1iZ4jzy2o8Lliz/glhEEuYaepFWfQuVeKtR GjEm/mHbLpppAbZIQG21FIU9yVntzDgp+Mdit2PXYN0HX12ct55HsEE4lPxOvZiftV Th0rAb6cEFGeB3Vdu8PxIkVG8lVnelih5qR6QUhK0fLiY4tCD1/EJMzhZ7m7a063K8 Gs1PdIrKwk6/Q== 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.7 418/713] drm/amd/display: Fix potential NULL pointer dereferences in 'dcn10_set_output_transfer_func()' Date: Sun, 24 Mar 2024 18:42:24 -0400 Message-ID: <20240324224720.1345309-419-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c b/driv= ers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c index 1fc8436c8130e..2b3ef5cdbd458 100644 --- a/drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c +++ b/drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c @@ -1834,6 +1834,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 @@ -1856,8 +1859,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 625E71E6F50; Sun, 24 Mar 2024 22:54: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=1711320856; cv=none; b=Y8oaCwRk5dCBp0NC3cckkpv0kbAPKV2+3DotEyhiQ6v9K6a6UeM54vWEpqq/+MY+9cIG/8d6sh5ANDRtaFbnhoYIlioZ5DaT/3577qbWSZ+FW2xqix9gcx+w0Dxnm9xPHYlFHqFWatOnYAUkcXjEGDK+UjAY2rzQr4bMianhVts= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320856; c=relaxed/simple; bh=15la2HOP4BZJOz/HljR3aeBvlmkYLsdL1e3Rm1CDSGo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=LqM2CHcPmDv799Gr1CtcFTaqE66IlIhwxjVNGjtcPAgm699H0NA5j9/P1z3cUIfbFOAf/KNERw7Rm8Hyg08KTC9e6uiOQFNOigsvQ2/YzJhDDqZyXzYpm+7hH+KdKGgYPdxG+c//R0CbgDSkDWdbAOtiIAZsyOzT8tG7BJVoH1A= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=I8dVn4gI; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="I8dVn4gI" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8D08CC433C7; Sun, 24 Mar 2024 22:54:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320855; bh=15la2HOP4BZJOz/HljR3aeBvlmkYLsdL1e3Rm1CDSGo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=I8dVn4gISlcmW9uGs4vdG/eBtwz1/LuGk4PLlwcWp5xkW60GM3FcwrzsuHbALxpCz IFZ3BL/ml5J1tB1gdDPVTZNG4c4RQsE4BaVsOnIjMyUdW49UkaODTfc3A207GGKOHs z5vWHXgM/yqy0mKbKDLFoLuSUiXxyUM5+NBqn9dOBf/gBFemPg6k9oeAMOeLbVr+lp 5ErgZNfdGFoNpuUASr3cuVo8kTRQbNNkam1qnXTblOwifj6vqNBmB7O5Xoj8sUN+ve fRG4JkSn55TOV+mYH7wl1rZ+FZI9AFgac4V4dF/oAz2WCSSoBUhY+BcgYY7JMHm3Wl NAbZ1oJxN4l6w== 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.7 419/713] ASoC: sh: rz-ssi: Fix error message print Date: Sun, 24 Mar 2024 18:42:25 -0400 Message-ID: <20240324224720.1345309-420-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 14cf1a41fb0d1..9d103646973ad 100644 --- a/sound/soc/sh/rz-ssi.c +++ b/sound/soc/sh/rz-ssi.c @@ -1015,7 +1015,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 59A441E6F5A; Sun, 24 Mar 2024 22:54: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=1711320857; cv=none; b=nb7ynsoVXB6BiYbJuv0HJGcbCbxIK09t5SdSg2tEJf9sfWhmhkipeB8vC1ppVKqJhbyAkYFEjn4PXs0+wzFqwpYL05cGxylslHgDL5s1EMyGGuaz7ZczIELyZlazdGeNA50hAl+h0dSToyFXi72RECjIx6XMVN+Lbya22qNWV/Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320857; c=relaxed/simple; bh=NxVz+WguTMB6Coo2YUZwzcntSivhyOF+Rdca8TF9s9s=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=VfMNck0h5zP4YYeQaezEInvf4Iv7bgHVH+RsP6sgPm/QxaReP7O6gjum5ezBWaBmmsNzrfWH8bLV0SB6xpt/h40E2xBI4MGLWYNLsXtXPalsu+BjEPHHdPBBli0r6j3T/OfR1itaewqEaVveYGwLGCB2gyyveUA68+1wmpm++Ew= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=EX3hjf6j; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="EX3hjf6j" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 85C92C433F1; Sun, 24 Mar 2024 22:54:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320856; bh=NxVz+WguTMB6Coo2YUZwzcntSivhyOF+Rdca8TF9s9s=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=EX3hjf6jIMvbSHt383OCMIWBMGn/qWZZik2gV1LV/Pq9EmRvHlsAjM1FYnF9DYlz7 dq8hRkaL7/PZe6uXRKxCB58GMYokE3RAMYSeCauo75QzimDQMyCCkEIczO9YRYXd2P PfkQVaNqD8jIvzdegxfsgnmxRA6p7AuVhzbxQWKSTaUMIIK/h5n8VUEwuFNp5F6e/C o/tmJJaZZKYuqG1Oyx5CwvEE2Ytb6HI89qBMxHwkh8h2wQcvW2gJy7ZP8ADIZkdyCc GyDsRYr/Oc6vcJVP8uGOeJ8eV0fLvsQ0hGXiL/zU8VEuFhvhB69jHAQ9ecfacwTGEq Hl66bqQIwWswg== 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.7 420/713] drm/vmwgfx: Fix vmw_du_get_cursor_mob fencing of newly-created MOBs Date: Sun, 24 Mar 2024 18:42:26 -0400 Message-ID: <20240324224720.1345309-421-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 278631E6F5E; Sun, 24 Mar 2024 22:54: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=1711320858; cv=none; b=QPrdfizGRLxQfN5lgrYvHrIzZEneph7z6UcEff9KrZIBW3+KI5hLIRa9wYAil4Gq/xjfj+jwQfUiXq8e6G6iPKNEAwrW1snuBjB+LTblMTsOvKKXAP3wtX5NXddZEhxUb88EGpfc0rWdsPpvFMuPWuz6MzV+B+Ud2M5gO9++9Cc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320858; c=relaxed/simple; bh=C2Ua5kReEzwTd2V431PjK4bLeRHqCCInHnmeMP3BwsE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=hY7cMH/oaU4uodvAW7Htv8Nw0W3Jk68kNsOZu+0AgpU8sG8fqFlJyQqKoJLmWi+DPC00dPg/6LFbneMkG/St0i/n1U0zUfSRaVIhsDmuFRlcO2ttFqhP/4zj77xF2sCCmizCj22cJk4E7w4S5yErhhplUbD0cSsHbdY64Wrktpk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=sxM6jxoh; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="sxM6jxoh" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7E524C43390; Sun, 24 Mar 2024 22:54:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320857; bh=C2Ua5kReEzwTd2V431PjK4bLeRHqCCInHnmeMP3BwsE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=sxM6jxohRztoFxg+LK2x7oYaJ/EReQ28NsQewXit1aAY/13NU8cB2QRRcDxfRH+34 uOJiT28FWDV+aVRlaR1380OejI6nw0ek6xyvNk/6budx1fcAnf5PGkrYarB1oKFREf 1geXqvXkk1IYbYHWR3a4fWqIRJ5qFPNcC1G63VPfDW0fawlIK+4WSDWPt8tK3rOAEt ZJIJB9G4IInFLbdBVVwAUGd1CCIknx3f/SLxTvelwfXl+B1UX2g8ebs2hFiS0tYAfD qm5IJyWFg+FiK9QD13juMMykMwJS66GWOLX1GY6kliHOZGGvUUTQ7MvcJDvsn8G2Wu Yqo2ooHue+22w== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Geert Uytterhoeven , Sasha Levin Subject: [PATCH 6.7 421/713] pinctrl: renesas: r8a779g0: Add missing SCIF_CLK2 pin group/function Date: Sun, 24 Mar 2024 18:42:27 -0400 Message-ID: <20240324224720.1345309-422-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2553D1292F9; Sun, 24 Mar 2024 22:54: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=1711320859; cv=none; b=GB9F9gCR4lQttWKeZbmvP/mu/vKeO9Df5M/ExZv2AhMM3YOT9mIkwQkVMQkcUQHZZEz9FII8KDHuYdpLzh9izx+UDjpA+3fi2MtRu7SxIRnGiZFIiAqt6Uln7TNQmoDahOtL8cdFezKe3wK+AWZxN3umN8K6r4x9M2AxLHft3Wg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320859; c=relaxed/simple; bh=k1718tIRVtyBuPuPME4HoGIOwyBFb8V0fUYLmvZcUbM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=AJkBByd5l12dXgkFZlg7WmEcAeUr9GFjVOCfj9X4l56UlV3vK8LfKAJonJMRcXQkist0I7zcrWmLoMlKBJJ+cbw6S9D6v6nB6lMfBptvHLhKCu4UiAF0LoFxdn6zGjxtFHQrznILbQKInYX3v7Yc4k0qhYohrJdNOMMbppmqMro= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=kfC3mC3e; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="kfC3mC3e" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4B927C43394; Sun, 24 Mar 2024 22:54:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320858; bh=k1718tIRVtyBuPuPME4HoGIOwyBFb8V0fUYLmvZcUbM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=kfC3mC3eEA85ZKl85akClyeuxUBFaHXxhZZT9U+rmGe/bZ/lpbjanKWXJNJeDJXXC xpetubJh1fYU1Dr73hOkSnh/L40gEr4RKVshT8o0IdvxbV1BO/9lOsKGY28Up6jDS3 JqyCTjFHXuznJIQaSP5SvCadVpYeq2pmB56nMzu5irEzkDIREms70i8b3+aAi/IQSr rukeBKMa7zx+bi7ynBm7lFV0TH02uDLOK3rZvY/ZOVnwoB0x+18Jexw39lpOJS83xf tcMs9ZL2cOo0VR/qOUZO4qsVdvrZhDWY4WByE1ozbI5CtKoRIHM7SOKUInYgJNxoZO R6nkVVlTvOndA== 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.7 422/713] clk: samsung: exynos850: Propagate SPI IPCLK rate change Date: Sun, 24 Mar 2024 18:42:28 -0400 Message-ID: <20240324224720.1345309-423-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 32CA21E6F63; Sun, 24 Mar 2024 22:54: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=1711320860; cv=none; b=E9X4XT8Ih25m1vST10XaMPtg9Nhc7Y9S7cUQcmyYzL426I77rN82auvORnrnht6bbnViwq8sqvsZSMW36zjsCEAGBLyjJDRu1nM8f2OmLJwfEiv/P0W033R/MOpsSJlwfO2dOYjjJ5jvnLC+9QDgkixdigxRti057iZ29vnQBdI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320860; c=relaxed/simple; bh=i6qbJ0YigLE3yuZNNmqK6Rf7CvUlWxagcLz5SoaV904=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=YKoFhu6V79oZnKkzmawiA8u5VUQw9qdvJ8okaM80osXiQLDwy8CHFdTP3HaSHoGj9aDR1rQDNMA20d/e+0Nh72MjN37AH1EJoS0fSb2NBiBh04f8/A/UwPNyzpyLQG7Urs8DkTC12H+eWX1JdFQM+TmE1cVE0eAYfXNfY0OQMZQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=kp3/y+vi; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="kp3/y+vi" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 47F1EC433C7; Sun, 24 Mar 2024 22:54:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320859; bh=i6qbJ0YigLE3yuZNNmqK6Rf7CvUlWxagcLz5SoaV904=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=kp3/y+viON++vhJ5pyj6xUu/81TrwiduBEBIr4ED8nMuXi2Sz0NVB6eRupWRP6jrv kY6Xb54H+TSX40jy8a9Yn9JvpUU5u899dDEssvf0IfFXMM8iVvynQ5iCYGCys9jmNq s2T54/0Tnn2cfhBCrd3LFZWlDfiAUcrNf7qR6MtRKSWTV0iHx8I+EPCeJxPEFIR5b2 IzCdo4PA5fRuvU9byy/1P43OcKv5r5KSon+2j5oEBQQCgg0ijj1yne08GRkfn9ivIj e3HpXt8MVSqULnMYnOJGz9wqfPuXJKjatW9+z9G8AR3haknMRiIA1+L+C62YAiiFlt 3lEetsEhbDWNA== 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.7 423/713] media: v4l2: cci: print leading 0 on error Date: Sun, 24 Mar 2024 18:42:29 -0400 Message-ID: <20240324224720.1345309-424-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 48A161E6F64; Sun, 24 Mar 2024 22:54: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=1711320860; cv=none; b=gYicsmg1kgkDd8psNP+EhXfCdHZqZzZ0uDhcNXdeChA+3B7VOLQP6VjcH1mq87Ek3MDhCUxCOweBFdJib8bBx4BJLGF3Kq4SQQojN0yjc1zFdBaRIj1W2q8O+oAwjqGStAYeuolSiwcHE0Jir7/OvXCLGWwt+w/Y9rdr0xPYHYc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320860; c=relaxed/simple; bh=jx0xK9bQSIqIXUTuzqS9ze3n8taOEz3hd/Ivco0cQfc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=D2O/h93hMHmmlwgkYtqo62G6oVJA03tlDkyaCbkdf/mnDBh2+6NxMid/BkCC2fC7vnjC5GKuTtWv3z81v+ciQFnWSkE+6NVUVVoA3KLP5yKpZyd5qiza2dryOVTLlj9baih0CkPZlT5ndrA/Ob4dlavA5YzGYqqYBMYcTxouTW4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Hr6WlFqm; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Hr6WlFqm" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5A457C433F1; Sun, 24 Mar 2024 22:54:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320860; bh=jx0xK9bQSIqIXUTuzqS9ze3n8taOEz3hd/Ivco0cQfc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Hr6WlFqmvzUteE+tg1DnH4t1M7RR+n0/NshgTFciMMVPnYvX1GglTK9eSmligqoQs th/T4895wKtWE2I5Up7oBde4neKNN0zIHGzQAM0U+zapRWnqvVl1luCysmVSsqwPbi dttmdcmtEdNdn1FyPjlq4RJOoidKp1qt63w9INtsxQzKXJDdwke4FTRFA37AVzK7/I y17+utY9xQeoNeZUeNdpak7arg8wf95F+V9uJf6+c0XiseyShmguV5/S2tqmAJH2k/ wFwok1Xz2saUdWtCpsPY/cxjNbCOQ3Gitr1V1t9YjjMYDamB4XNqbt4BHd9vVwH2FT rDsn5jnQlaCSA== 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.7 424/713] perf evsel: Fix duplicate initialization of data->id in evsel__parse_sample() Date: Sun, 24 Mar 2024 18:42:30 -0400 Message-ID: <20240324224720.1345309-425-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 72a5dfc38d380..1fb24ca8aea52 100644 --- a/tools/perf/util/evsel.c +++ b/tools/perf/util/evsel.c @@ -2340,7 +2340,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 333ED1E6F77; Sun, 24 Mar 2024 22:54: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=1711320862; cv=none; b=ZvjyFwDwPf3WtMHQ8OBswZo8NNqnh8/TJkGLLmbKHvFnAiJ1Lh0DCixjvVlO+hkdlXRdZ7Yy3bdN5i3/APKvZ4tVNhEzhlbQWbeMuW0GoGHlprrSdsL9TxY5DJXJg60q8uvKxrBJwxasRS6B7J3+INEPGMhn+2MOlL6RCRuiFvM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320862; c=relaxed/simple; bh=AblLMCLKhGeVcNTlP4GxhDoq/j9RcxhSil5RYWBtqm4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=px37Ue0gpuns1c5VCVeynUR1vy3AWO3kg0m1bred6S7mJATi8OhcK9zj6SKqz3Oj8+Lna6ygzb0bfoS8jhUarG2/QFfV+7ZU0ZmSyZOzcvXaDghYd2CfXyUYIu/xp893JvmdFtOYhogCAeQPWK+RhmcRiDd3XeM1Hu2IrKB0O6Q= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=hCYDg74F; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="hCYDg74F" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 70859C433C7; Sun, 24 Mar 2024 22:54:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320861; bh=AblLMCLKhGeVcNTlP4GxhDoq/j9RcxhSil5RYWBtqm4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=hCYDg74F2NQ1r7E3ucpCFbLwqiEn8G6GRnBqbHcdHHAqIReCmWxHxTHRmf+NX1e8V 3MaqticQZXSOdbAm0DgGir0k7YczphaPyJOR1QyUlPy0Y5UTb0l8pN/WVooO+RUT6Q B97wfxOOTVFSwrRXzi9EhhJtbsgxxUxkF88jiFUyLNawe4zBOq41NaqWaOC0LKp/X4 RcrAquF7JS+ahlAcY9beG0xh0iSl50/HaxNdKWpHWKfTwMeAGQAfVbRCUJd8BKRlGF z6aW3FpmxHlsoJtMBhfRpkT/lpOglA24byGmN0R7yszvRyTh+VS4V41zD6mQCbv2sv 96L+mYPwj/tCQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Johan Hovold , Bjorn Helgaas , Sasha Levin Subject: [PATCH 6.7 425/713] PCI/AER: Fix rootport attribute paths in ABI docs Date: Sun, 24 Mar 2024 18:42:31 -0400 Message-ID: <20240324224720.1345309-426-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BA7A31E6F7B; Sun, 24 Mar 2024 22:54: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=1711320862; cv=none; b=SkAt+AVOrM4GbbcFpMNwLg+yUznr2ijfY7hqoNIJR4r8FHyObeFlPBBH5TFNWxM8oZic9E3RxmuQQlpswiRax+b+oAIuwmtJY6qtWgwOG7d/xxrR+hOu6nlhgHyaC2EGtxN679C3JEsEHz0P3ioo+F2rlQwSVSk0CSrWcRJTMyQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320862; c=relaxed/simple; bh=DmHL2s2aNhW573x0aObu6nLA5eBAXAtj/L9r7KCQk1w=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Xar2OA4OT796wrYIzoIIlCgsjHJZ8OXiaqvZwHD9VfJYjlibR2wGt7bUsbjVi8fnaqPUgimIuOQOLvoFoynh9S1GOL/deGD1bc/wYufNM7GNSn0pZWuwEJB/0EUMq3QzbTpfAt+7rrxo1mNCsoALaOAWNELsCmuvVkZdMYglqt4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=YRLttMB3; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="YRLttMB3" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 57E26C43394; Sun, 24 Mar 2024 22:54:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320862; bh=DmHL2s2aNhW573x0aObu6nLA5eBAXAtj/L9r7KCQk1w=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=YRLttMB3ZuqKkg63Fp7U2lgm2OQWF5iFeoP6byzWjn85fq6R3yGBLCgU1DAWC2FSd ecMfApDOHgwYo4RZjt4Up66bg9+k7GrHTwYwjn8Kh94775g/83mJ22SuNI3BYolKaA adxZhCBtpjCOoAqvotv6bljczDa70yoaFmUxvlfex4QrzAA7U3oBsb4V23QqvdgXEp R4DI9O11J0UpM9QrrM8qQtwc9Jgez/x3poMW2O4EaKDKsEapFE8G+hlW16Z0IWfcCT fVqlwPF8Dueqe/+GPef1KBjT1slr9XWfg+zODaerJ2wlZD0ol8kZyTDew7XfEDYYyP FNLrHB0v4IxGQ== 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.7 426/713] perf bpf: Clean up the generated/copied vmlinux.h Date: Sun, 24 Mar 2024 18:42:32 -0400 Message-ID: <20240324224720.1345309-427-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 058c9aecf6087..af22d539f31e2 100644 --- a/tools/perf/Makefile.perf +++ b/tools/perf/Makefile.perf @@ -1148,7 +1148,7 @@ bpf-skel: endif # CONFIG_PERF_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 arm64-sysreg-defs-clean fixdep-clean python-clean bpf-= skel-clean tests-coresight-targets-clean $(call QUIET_CLEAN, core-objs) $(RM) $(LIBPERF_A) $(OUTPUT)perf-archive = $(OUTPUT)perf-iostat $(LANG_BINDINGS) --=20 2.43.0 From nobody Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A00C8129A61; Sun, 24 Mar 2024 22:54: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=1711320863; cv=none; b=sVX4J7iWt/umuMaEIbEkkeWHB1BSQRkOdspH9mAlQqvmQPWKwFt1do2V9vGoA1HF9Dah2lJcpFPh8T8kzti091QxqhLqcGSJkD8bDFzyC23x7VNv/GihRy2qRF+gUskgXzpTpQC3UJ/nmYaB4q5N4cf31ckpvJX4w/NZlmQOGKg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320863; c=relaxed/simple; bh=8aj/goXBmUnz9yrgHDqGWbx3hqheBb4xsQdBsUfe4oM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=c7PfVnxd2f+Wyb0ll2Sj/Z5Uzi+GUJ2clqV8f6QTMH4JYIQANdd29QZ4Fj4NGTI6IcRu2HiKS4GxuZzSc51lE5cuzqDfIF80Hj7F6y2DQ2PhWV0kLwr+PCtu11z1CuAjKUAw3JrEJNm5k9bEEnBw6haCPZ/xus2Arh2Yfu7X06c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=kz0s3qIN; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="kz0s3qIN" Received: by smtp.kernel.org (Postfix) with ESMTPSA id DC348C43390; Sun, 24 Mar 2024 22:54:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320863; bh=8aj/goXBmUnz9yrgHDqGWbx3hqheBb4xsQdBsUfe4oM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=kz0s3qINGJu2nIcl31E30O/s6H/yi7xqiL0d2Oq4cZROg3iQkXSwIzydmWPG5wFDb rCcCH2A1SrUeTRkpQAuaMUcDLKJh0TioR/b2u66ock+gvR+ZYsf9WjSlJUPNQ0ZgeT vNHhRExOpMY+NQSbmxdsLK4vqo08d/FpSoyUNezwry/U7Ie18NGa8ULN7pDbW6oHRV 3kcYHNvBONJxuYLqKXV+5n6apB5DGsorS5xVXEF+E+RtvyjkmD8wGKCyj0UjLYL/Ao wprvJuvZEYPU9reknoqU2DQoSd3NcqQGuD0WiLF1DYYsoEBO5MW/fqG5mivi/NAdiR Qe/WzR+OVkn2A== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Igor Prusov , Jerome Brunet , Sasha Levin Subject: [PATCH 6.7 427/713] clk: meson: Add missing clocks to axg_clk_regmaps Date: Sun, 24 Mar 2024 18:42:33 -0400 Message-ID: <20240324224720.1345309-428-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9CC89144D1F; Sun, 24 Mar 2024 22:54: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=1711320864; cv=none; b=rhArO/jX4bKRNv9ZNg+wAIz8+hHib5SW4LXdQf6T3unPvQa3dhF3joRgUFVofkmsQf9vkxlRTf+QgBdK5h/Tu8i3FBhDHj/o1HfWBPH6GUoGQsc3vF+yPNtLgiqZUtWhAhmyv8rIy3vL2KXQ2X0wWMOrSG/j7M7IE3tC9fHFl/s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320864; c=relaxed/simple; bh=CwWwXVhHyKnLQ10moKJIyAHUeLsBYRK/aKO6LwRtc0U=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=hI2/qnw/7gpLE8Hr+J6CT2gY1s/ikwCEGU26Xc3fakZyzh3v5JzNt6W5IVndIlpL/EoRllSn6sGjSjF/iMSI7nH3pMqSyigeL08t0IevuQToVTh2qwsqi6AtPUefs/tbl6ABjXB1V9JCDqlBCsiQcAPhaAbISFQkjurhdOTJ9vE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=od3EqcTu; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="od3EqcTu" Received: by smtp.kernel.org (Postfix) with ESMTPSA id C2188C433C7; Sun, 24 Mar 2024 22:54:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320864; bh=CwWwXVhHyKnLQ10moKJIyAHUeLsBYRK/aKO6LwRtc0U=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=od3EqcTukUCe20CqSH6h0/Vv9171ImSqslz5oOahccCIqJx/3/1JImyFVNbY5kg9d kv/FhRAn3+u61CS9OtN0OFKYMaglJT3jNJBwdNTTfMxxMkC2l4crJ6i0US5ywigMLM XEhbs9e7B039MeJWEiL3uNIxmrJSvRK88zK1/FEu4NLd7l4fdKKZSAJuRbu/TuV/1D RReANefuM7uWJCFG5xLLeymXI7o1Y41htDNNk69PGpUOM8Oe30zPyaBs6hM2u8VKw5 hHDbicLEBwl855/APMO/4PtrmH5guEk7bw/75UsVlZIRcDGtNyUY2At5bTKG58SGYZ T9zQ/bYiUSikw== 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.7 428/713] media: em28xx: annotate unchecked call to media_device_register() Date: Sun, 24 Mar 2024 18:42:34 -0400 Message-ID: <20240324224720.1345309-429-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7FE6D1E7712; Sun, 24 Mar 2024 22:54: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=1711320866; cv=none; b=ncTZDpLzl7r8OPecYlbX9VdP+RtsUK2aoZK5KAUNCi7auMSGtN2aVuohf/ALFqkJJFsy1gQQOUzT5FnEN7eF7Bc0xXiQ0+piqX4wU5t5qrqb4mpMRA7jQdc5wFmZwkhl8ZQ1RAPhFUkoV7aRk7k0iq5HlYHtDuUshfXPCT5FUiI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320866; c=relaxed/simple; bh=EWgKnN4Jo0bf+oXAc5grq6JHSvSF9OfBeXnKDb9HOws=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=oDvOMDPqq1wUmDzAknzozDGzN1bc0gmCGUC1RZpvr55EEHTrIMavR6xnGfYdllgQnt8OPF0WYlZOBM++mh/uphVmEOByiCFDIxQQENa9NB0+BlAZ/4Pk48enLBcHwv1VnbinX8h9MCB0Vf+mauDkC9NpcaEDxOmrPFe8BYYlq+8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=BzwexvH+; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="BzwexvH+" Received: by smtp.kernel.org (Postfix) with ESMTPSA id BF602C43394; Sun, 24 Mar 2024 22:54:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320865; bh=EWgKnN4Jo0bf+oXAc5grq6JHSvSF9OfBeXnKDb9HOws=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=BzwexvH+GQIdZBtm0Ht2GRegtBRAivvnSrvTxxRIL7ap63otfj4LQ3JtFS9O3JeM+ xUDOxtXDFTXFSXeJ123Tew/ZP6gfo2aP/kxD/+nk/LUweWyriVxVz+ZYleu6p23v8p x6FzAS3Jbnwov4oMTJRW+Cu5bKD3P2cXvoUKADDjWlwzKXn81cOrAxeOF1tJKXKFDc ttDf3mQw7a/zBpwLzCYHc4R3oFfh1lv3+Bu3RleuMQXOeTFmcYoLDnbNpU9zlHoWnX 8AUykiV6Xjm4k6cvXh5xzUFyre5sGQh/2dDF7hAM+L74ZeOmb70Hzd/t12+JqQHMIK q05nHzK8lR6ew== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Zhipeng Lu , Hans Verkuil , Sasha Levin Subject: [PATCH 6.7 429/713] media: v4l2-tpg: fix some memleaks in tpg_alloc Date: Sun, 24 Mar 2024 18:42:35 -0400 Message-ID: <20240324224720.1345309-430-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 62B231E770D; Sun, 24 Mar 2024 22:54: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=1711320866; cv=none; b=UxNgdD0pt/YiXwxon35uPeGj6+JG8Xo0z0vh7w0FGidwNejWXqwjo2crU5PsO1435K9ry4Tw6vxi48Htl+Mw9cAiMPRu06scTOnmKigirxNxn7IZU4PECZPA2bhoLZGX59NlHiEVY3dw+1UOSi/1HTJ39iKaSRSDzIKynM4V2XY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320866; c=relaxed/simple; bh=8POOEHMBodqPxKTRL+FZX71hTSWmfb8XiVKdy1zhITA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=srW1W5DJ0C/PUbycMCM7YsgebJV1c+LchHlJ4/ixufndVq+LVapGKWumaFvFAuWsIih3CQnJnLJJWGHvjvZiNU4VdJ95S2wSFF8twdjR1l0NuhnuKLBM6OQ709/DlHfCIk1fms00QO0cw9okdY3KxX9T+BvzZ8KJTlrzqH+x/eo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=dZeJPLbg; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="dZeJPLbg" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A4050C433C7; Sun, 24 Mar 2024 22:54:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320866; bh=8POOEHMBodqPxKTRL+FZX71hTSWmfb8XiVKdy1zhITA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=dZeJPLbg4ZvZTIvXV++2eZFofUih5w5+dJKVfOrnbH3/Xtj09kPU4h1JPXC02rHlg 1lqviXH1s/6AtgfsJrTUJ5f3WgfGCn1yLX4Xtkfnad3k9DzMSuUKihP4coixs7nnZT EyKrJ0fQT7iTM2i0MSn9dj8c15cZw3594Bf8fNJBNS79ltMTAKOAShztkaskXEbtIi PhrePkv7FcP1mRtbmkU8hrEgYj/U6C3oc1brOP3gFCKj+Ebm5RI9vnb0bLiLAobrk5 Sg5Q8Exn80z2eN3fhTLYQHLq7QghAmIZTKnu3Lhr69DB2RScqd2ynSGVIPsgEtPgKz ouYoju4hC3P9w== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Zhipeng Lu , Hans Verkuil , Sasha Levin Subject: [PATCH 6.7 430/713] media: v4l2-mem2mem: fix a memleak in v4l2_m2m_register_entity Date: Sun, 24 Mar 2024 18:42:36 -0400 Message-ID: <20240324224720.1345309-431-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5D3AE1E7726; Sun, 24 Mar 2024 22:54: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=1711320868; cv=none; b=PhIjVmjOMDyDVylHjSnkTPknp87cEGw2ORB+nQhjpyAWIvCmD+n59DEatYvbYyC6fMfyzYpLNxhRsO/575BWbTjf+DZzb2ALJTMj6ADbx/lDGnVag5ghQC3DbGWqcoeB/aPntvUwgYySG8DcKCLPj6c2nnBquTYJAyKW2T1xBd4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320868; c=relaxed/simple; bh=YZPj3TCyeuHzFbALh1S/QKMJWCXWAsaZ839msyp0NqU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=cspFzXP/xNoV2FJ91TnNLhRCcsfQJatChAga8AgEnC96Z5GQ3k+r02CFgqfXpvqbul5cG4iS8F60N3cWR+c72c6v7NQz+Q9j9jtkQdV8uYC+ePkBOF+UOIYbEckuHj25oehAwoqa5QSVdQLDsiL5uU3+k9bJtHLwbGmZorFTavY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ihexRjqO; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ihexRjqO" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 87496C43399; Sun, 24 Mar 2024 22:54:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320867; bh=YZPj3TCyeuHzFbALh1S/QKMJWCXWAsaZ839msyp0NqU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ihexRjqOk0cUYbiEKCOfPEHM6k2OC7qmc8+0E7mFZ4XQe9jTUtelMZIcAH1C+Ea6I X+K1fvZCsD4XBYUPnJY1AKx/iRk9wCPXhih5TI/27Rg1FvKepdsBkcrQHi9rvcQ3F8 Ib8DGcSvfvA6U7NfZLeXEB9OZNY3ATPT51V/EcTmdfkV3NlorBwmMP9fXmtuGNL4iZ j2NujFPiBKC/YRuXOIEvJ+HoV+c5pw9+dZnxSZRgZfJiXySc2AQXhqwvKPwUKLBVqI M0nl7YX2qvGTPIQrVAj9KcBcEXJjw3TVhACPRcUSJb0GKlywkGJKf66E5KPReq0Enr GARlhmWXdkvLQ== 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.7 431/713] mtd: spinand: esmt: Extend IDs to 5 bytes Date: Sun, 24 Mar 2024 18:42:37 -0400 Message-ID: <20240324224720.1345309-432-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 40AF41E770A; Sun, 24 Mar 2024 22:54: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=1711320868; cv=none; b=Jh+/67LogiSjFIlJMyixofGXPANAkj6cMaUUucxx975HJN5UtiB+MRR/XsapKLE2CMn1O8V/Dy+Dx1KoWK5MDdr3vZqlSmL+p1qQ9g8Mpm9tEqz4umyYlLV8dQBqrNinsASEgBC4g/pnnMQVQBz6uRwTYOeO+OgzqcVysbdoCpM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320868; c=relaxed/simple; bh=ScxSW6UgPUsVoztvMsj+KZEAdBvd7VPwubsif2s549w=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZCIQnSvmccRwxHAxs7nEkkCAlJFHHcMy0dcVRq1DmIYAhlWhIwQxFcTxvv36Rd2pNggd4onhnpK3j5N3TjxgLKn4F+g1eeqh9JcwI4wIdD77MKFR8pN4W4Q60Aip4MPW0meD9KBGqKIYnpqfh9mJV7TiukKNFPAH1SvbUA1wols= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=qRmAIQkX; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="qRmAIQkX" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 80CD5C433F1; Sun, 24 Mar 2024 22:54:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320868; bh=ScxSW6UgPUsVoztvMsj+KZEAdBvd7VPwubsif2s549w=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qRmAIQkX1kmF199ZJLTYueRqF4ZE7LQ0W+VAnQTzq3otYNHt3nnGzVEK6Q1X3AIGW QApx3rOgdxY1tu+RNvZieR3HnHTaCvcvB+JP3ZYUcHDyPVanGPLyGeTAfQMpFr1TYi 0WZ/Ow95PoehSjCYd5/6dNm0WfZAvVQBS6AuVyD9MLPojYMx6pBgU3WtrQnEd/JeLZ eWWwMiNolInKn2jlAe6M7outOgqWiou2yRS8S8J8GdWbBG152ff6w05oR7C8I4Rfxf KOy7auM9KzmrLiFrdNbnhw5tIxBMOdH49QxGWnepbVvWv9Nhp71iSacGwHDwqzgRsk V0vNBv3PSc09w== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Zhipeng Lu , Mauro Carvalho Chehab , Sasha Levin Subject: [PATCH 6.7 432/713] media: edia: dvbdev: fix a use-after-free Date: Sun, 24 Mar 2024 18:42:38 -0400 Message-ID: <20240324224720.1345309-433-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 49B4C129A70; Sun, 24 Mar 2024 22:54: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=1711320870; cv=none; b=Kwd65z6zGFfaERFJ7e74Qyw3DWZ1MQMtKBVMFLJvvFeMGuSMM2r8fCJCZu+EQrvSdsAu0R9hOPv97FF82NDYAsy5AIGQmj6Hx3Fi3GfYUiAJQmBMIe0Tc+SZgST6/vyWiXa0e2VAc1j6pzuoN7nbY/s5p+aQaKGamyX5f33Zr7A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320870; c=relaxed/simple; bh=RjDm9ULGYGXR/Ui5vm0FWksgcl8NMVnW5oGvvsNB4/4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ib8SP44F0lJIEjGAPZQ0ahkHzCf/FJMTRKCyADrxOGsD8JtjPbWdvOtu/ci+8k6ek/aeBANezC0OIo7KB8G/qs7hQYQTBys/fIkcumLf3aiXIDxA+qy3be8YgGOSVblvBFykJliWRNHiAQTM39O98sD2lSsMTiQ3W+L3t1zpvpI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=WRMcPzXG; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="WRMcPzXG" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 65F48C43394; Sun, 24 Mar 2024 22:54:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320869; bh=RjDm9ULGYGXR/Ui5vm0FWksgcl8NMVnW5oGvvsNB4/4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=WRMcPzXGhmtTnjfIr5JEyB8xJwy5CV5PlLGkKLEnLEtON3k6YqqMML0jDVBWuzVXM OZLkN6VmucjhlSPgbCuhbAbNal5TXtPRz6j5nLtn6Gj/bli+EzTjUyWxv+l6mww6oH zI80dxFZaB4oJXezQAVXJA6O9nOddLlFRUmgQg7W98Vz2Zn5h/pxRV/fLfPMP1robN ek2/TcyL0DtyLITvEIkNkIMqXVK+OHyAkdVskrGIIwVTr82AeWmXcD+AbnfdYcU6cE AUng6wsI7L/hZ+WC9EY88w/IK0cLaFs/epMGfCekqRIjn04yRt0HUvn6OM4awdilR1 MKtnje7ylIxhA== 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.7 433/713] pinctrl: mediatek: Drop bogus slew rate register range for MT8186 Date: Sun, 24 Mar 2024 18:42:39 -0400 Message-ID: <20240324224720.1345309-434-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3D8DC129A6C; Sun, 24 Mar 2024 22:54: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=1711320870; cv=none; b=oIyIJCJwjP/cfMuyhXaqyCncQkwfTEIoRj+VLlXXs1jesIlWBK+CZG1pSqcaS1ZBPjjq8zqgdLzZH8osx6V8IM/PrxYkmRtYCzgxdNyjZ3JEf6I8glrdfpIhwWIbjCjr0h6HIzO8VeEBSMd2CpGVSPdx90wDQYfniBaQYHRDau4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320870; c=relaxed/simple; bh=CppLPCfjU49vHu7bNWvje6/foOrxod7vVRZITwIj2fk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=X0xE6a51Qi+/Jyjom/PYg2meHTiuV8nnFqutsEYq4mzkuopzoOAvLdvOJAi7KRGxSNomsWqZRA8RngSxQZSpWILvaLuBA/5VxZ1JgLRJglTcY+uab1N18iZfOw+iZ82ITRFWZ6Qlrb6gGzYuTdxr/sutg4zx83/cy7ai6nwohu0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=kxd3dzmO; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="kxd3dzmO" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 63BD9C43399; Sun, 24 Mar 2024 22:54:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320870; bh=CppLPCfjU49vHu7bNWvje6/foOrxod7vVRZITwIj2fk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=kxd3dzmO4aYtTAXZ6AA/jlDjDZP8jAnF3E3AQOZ5nsONqmR4ArCs5AQxmYmFzDKOb rhnhCS4MfLG3lyWMXPvaky4CiMCQD0gMHRxtvv3bNDMnYRp6zKjfuQ6xozkjrAKBpW mGHkdDDgDaUiufc+usGwmZQM1N1VKEXrIJYi4Fl9pGaPPmv7KqUVKDO+KYuW6S0LSf XBOYLfA2gHzSTL3mfAFB0/C1pgL8dlFe2jKNGk94rjTGdXqzUe2uE/AX+KHe6JxUUY c/r9yn/v9ozArwINGGSw451QPilyqI/2YseJ2QoVxSKxRM71ZF5clIy+20SFJgDmeP TXfeOFWFFx9UA== 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.7 434/713] pinctrl: mediatek: Drop bogus slew rate register range for MT8192 Date: Sun, 24 Mar 2024 18:42:40 -0400 Message-ID: <20240324224720.1345309-435-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A7B33129A71; Sun, 24 Mar 2024 22:54: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=1711320872; cv=none; b=YodrcYZoWwEpbzpEiUaaak5j7qvkCB5hdGYvW31LxDcNQq7XWmV7QHREBNzd2yvDAIYC7rY3D+JYI659cDfvEYY3+UY0Z9X129qsdF10H4M6c9rO9S95IyoUBFCJp8ilKPX/B5f8eAvzpyy7evE+keo3b19NHSOA32X580qDpUo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320872; c=relaxed/simple; bh=FeJ7rRD6Pl0PL3JQV059ZhHkAnbDL0udLtd1lvou/3w=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=OjPiagzbgOsOZu2BNC3fRt47O52mz9E9uXjqgCpo4+S7ntFoOE7f9vDnyakjTSf/kjXwvfNiua4doKd5+DP/NdpwCwJ60E+FfaI5jEN0QgHDg5E8io9vD+BdsZpgdnpUcHIVfnIMlesMA4OcIM+4dpuY4OZzi89/WyuGP+9NPhU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=BnC697HX; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="BnC697HX" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 63AF8C433C7; Sun, 24 Mar 2024 22:54:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320871; bh=FeJ7rRD6Pl0PL3JQV059ZhHkAnbDL0udLtd1lvou/3w=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=BnC697HXP0zQzFugApuUW4fQ+xzTH5q6mSyvrIZgjfxdQv/m5tbZg30YJZy1DQrn1 FpfgcEgqsKOWOI9vKVkDsdzoF5DZDCzS0npPC27qCV1wsUS5ncQx44GoCao1738YO2 P/egCdzSeb+XlWHUvb0uafLi5BUquPwPKKRzzXwch/FEbbraiA2vmBCyYUCaIbOavP XfBrhwiADIgT8WgkTcLWEKdC8wVGtTMeWdKvpCmgAOH3L+WXCNfIeFmeqkkR0uXgli 8Oq/GvcREgWxVLOkJVo3X3AuvdLtCqZ93khEQwXWphOcpGWXRLEOdqx5N7Zx0h/yde zFHDNJ10Iipjg== 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.7 435/713] drm/amdgpu: Fix potential out-of-bounds access in 'amdgpu_discovery_reg_base_init()' Date: Sun, 24 Mar 2024 18:42:41 -0400 Message-ID: <20240324224720.1345309-436-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-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: Bagas Sanjaya --- 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 c7d60dd0fb975..4f9900779ef9e 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c @@ -1278,11 +1278,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); @@ -1293,6 +1292,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3C4BB1DB41F; Sun, 24 Mar 2024 22:54: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=1711320873; cv=none; b=Z1kmEBzbgclgUrZr5PpU7sn7kPeAyqsLLGeKxDaqboScnV8VdXi+ZidsvKka4gBfEqW0dwdcwOe/v5nbrPFpvubflj49I9EopL7OTOI7blphsEJu0q5U+XOOTK6AfliPnl/noxkliBJ5foBgoCkoJDwlx3kedwcRpmpzxAbT3iM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320873; c=relaxed/simple; bh=uIDSKaGEKevri4m+701P4fwqcj5BZkuhrTLKSp6QbB8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=XRl/ec0s0tUDzPJ0aY+0+SMIvGBn95bK8pogI1UgkO7cM8tNefCn0KEV00SWqIKSMgm3ucHcftJUYpb9u4oXU/IH7dzXTnW0NJSl+US2ZnbZ5ZJFdr5oxeSl7aVTy+XfZxbFOXCxFWL4+xKQG3bfSFolgQ3HBwFPT2GEa8P9QU8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=CEPv+t/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="CEPv+t/E" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 631A0C43390; Sun, 24 Mar 2024 22:54:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320872; bh=uIDSKaGEKevri4m+701P4fwqcj5BZkuhrTLKSp6QbB8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=CEPv+t/E1RJ2gXjgjMKeuA7Z2r5EzP3hAbXE58muoJ1RdeBoyLa/f591lm5RSU01d DRUupzH7NOPYbdjQ7oaQfvaedD6r4l9aq6IbyoT/YxDTuotX2YqFGTYi+OYW7olJnl CWIxdtm/y67PHZf5xVDArfSTPFeBySqg20KO1HlrVBBJOcghPvO8J6MphWTuZNBUwD f0K96CuAZrb+myq+Jib2tsA+RhNn2Sb1SXK7p1Jd1TbGWbfBJa8/jj8vPfjnWhz1kP 6kva1fKFahGnUIctW7jOk9LeuEqGXBDwy6FqvY2EXT+t/mvCXj2n1vfMashurC2OGh aMPH+WtK+pJFQ== 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.7 436/713] clk: qcom: reset: Commonize the de/assert functions Date: Sun, 24 Mar 2024 18:42:42 -0400 Message-ID: <20240324224720.1345309-437-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 26E0A147C64; Sun, 24 Mar 2024 22:54: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=1711320874; cv=none; b=YMPhLxtZaJPlVUTFc6QcN8togUKjI2yiruKugGyKlnntccBBnyH5drq814kO0T35brcHp9nxZNO8T3YiLlG6jdqe//vh6F30VKGnLKOqAalsxD6J0NsL+3WKVXYKKOJ6fToy4tlcgfvdzuRP+91yOymIAxGyj6T9Linw1LB0C1E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320874; c=relaxed/simple; bh=pCc5yRqiW7zrM8WJbTTAP0OTtZg+beqdp63g2hcZTaQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=c7euOzq2I8HbqxTrw6p3/fQevf5HaNfLmzjxNe3D0PuVo1zqgIAlZ8IXpkcCWVDwQ4Sv+Di34Fr0fpr8IXgtg13an3WEXiKYyLjCUDjBpzbIYblK0vOfLUB7AfLHqdwxIDYG2NB0aCMfg61+wCxNWjKk9143zOnjQKvksQIZfZQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=n6FmOdJj; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="n6FmOdJj" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 618D0C433F1; Sun, 24 Mar 2024 22:54:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320873; bh=pCc5yRqiW7zrM8WJbTTAP0OTtZg+beqdp63g2hcZTaQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=n6FmOdJjggZzjLEyNe+x0i14awO9HzgIdIzYJsK/IEgBkVysEUEI5nku5E5dNlrVR ekYYeLmt/BaPsAnoySMw/Vi2zpKihi5BPBeAIT1GuSxyzmQdpqCFkJKUBwqNMx0sYj w71Lv0sW5vPQg5Xr+Qzn6vmybUuHSN8ps+5cBdXltKHdvPkdBjlK2Dy3TqtQSQMht7 LmYPAtgwKPaQTuJwMMJLVAIAkFHKXqHsttSbIO0ej0zqIMACY3VDdA/U5zKwkZv/yZ JQhge7GP8HVp5C5GrqLo4W9iVm+w3OmfneDmA6YNq2PdG1X41VCvSW6e2dNC3ZpXcP N58fY4xlaEy2w== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Konrad Dybcio , Bjorn Andersson , Sasha Levin Subject: [PATCH 6.7 437/713] clk: qcom: reset: Ensure write completion on reset de/assertion Date: Sun, 24 Mar 2024 18:42:43 -0400 Message-ID: <20240324224720.1345309-438-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0E9FD147C72; Sun, 24 Mar 2024 22:54: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=1711320875; cv=none; b=YfGJlJ5+DumbHrWzi7x/6ciMB+WdetR1mkFEOjl4Dg1kYrDCyUYEL2FWDQg4RyiLPqBW5rb1h5k7HLCNBadpdyHPQ3PTAeJgBjRnUrk6HUuB/hkEEgS10U/4DTwjCkM5AZ0I/rqDBAfMmaOUgH53ceRWI9BfW835bxX8bnc643w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320875; c=relaxed/simple; bh=MykVGku7Hlnuk2yY7PZKx3YQCq5XlqrMcpkJfsT/uW8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=YWvDF13r3aAVLtZZDhARyBVmT/hA09Rxrs+02JEoIHd5rruieEvdWZ3yFRuEwVWLSQFkczKkLReINSj1MjbYK9Oy98yuxT37xNEa9EYBDDtOvG+XvvRihUKso/226GvSoOup8gKNE+XQpvrx5yQANI1NC1G/jCA5pC1bZiQf1eE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=YACNA9i2; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="YACNA9i2" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4A077C433C7; Sun, 24 Mar 2024 22:54:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320873; bh=MykVGku7Hlnuk2yY7PZKx3YQCq5XlqrMcpkJfsT/uW8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=YACNA9i2ID2Qt2YxHcThSwkWbrx3m/ZSpmTrxZHoXjx8X9zLMFyLTyUnFDWJE3rYA TKmH0LJWthQXtMMoep12Y7Hz4Y+vu6GQ0JCqyoCHIDTjWNPKaCcatZTALrqtBySZ2J 8rV2O+k+SAE7telyxjuZoIBuIObXIbf+1PM0pqF+pyhFcF/rUZp8y+l5MhnISMK2FC cV+KDYsbGq9QH4gbiyOwuoRyPpbv60dK/mOaqig5O7O1vi5x8eXXjQXGKZ5VMVnb4e Q8M+KcXw9cIHzwVYM1BF6A4FMWyDCRmZtKbWcUpfXNxV+JwPB3y2JXzPLCzF5j/rS0 QBl8rZyXJwDgw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Wang Jianjian , Jan Kara , Sasha Levin Subject: [PATCH 6.7 438/713] quota: Fix potential NULL pointer dereference Date: Sun, 24 Mar 2024 18:42:44 -0400 Message-ID: <20240324224720.1345309-439-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 58b5de081b571..86597a03a8733 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; } @@ -1678,6 +1680,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) { @@ -1697,27 +1700,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; @@ -1748,6 +1750,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; @@ -1758,17 +1761,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; } @@ -1790,6 +1795,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)) { @@ -1805,9 +1811,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; @@ -1832,6 +1837,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)) { @@ -1847,9 +1853,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; @@ -1876,6 +1881,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)) { @@ -1896,17 +1902,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; @@ -1931,6 +1938,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)) @@ -1941,16 +1949,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); @@ -1977,7 +1985,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]; @@ -2066,8 +2074,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E6732147C6A; Sun, 24 Mar 2024 22:54: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=1711320876; cv=none; b=nplTTBcjHi8uWOftaCYiCrcrlEsdzscMDBJM8XUP5TmTXKpUvAVeWK/p3L01KzIZ8703mMLve/IkQcaQwgxXmg8JYzdyGQsB6tELzkc/Oa9OEZP+TTylkCvFNAQOav2f+YUNZanVMlzJVUtkDpEjfwPvPRs4y13bGAsq/EkEjwU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320876; c=relaxed/simple; bh=2/xaXASAsDj83Na+Cj6kAqH8HOeYccxlawMxneOvcRg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ju4A9RyqwHCAK2Rph/DKu6JlFOj4cTS8URQnN04Ng3GZm+6D/5/qWJYXqKwrKgqXbtxmnygnumpkoKUhmhGq6tOA8Mb6H0f/Bhv7OglIIVpJiQYeG5piaqOv8Z6AsmZcwEpUs+YxZJ/owBCFo8FEGTGMjq0UVTtLCOOsVkELqgc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=WXephHDc; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="WXephHDc" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 32A1EC43394; Sun, 24 Mar 2024 22:54:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320874; bh=2/xaXASAsDj83Na+Cj6kAqH8HOeYccxlawMxneOvcRg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=WXephHDcCCD45jyDl12JEN07qe5uin/MUSBdRhMcAUt4cy012aS/zYzPezKj2u5vc UV8f6gkBJRRrJGkMQiLRh1ZmS/Fi3pwpKigLV24S1TA+qmcAinnSliLRwFK3m4oOqH E0is1mTs62zkPUAJvQj5KEUA9PvDTvcwQlbvWgh5CwqOYAdfzaJyoGVCxkbTtKx4S7 PC8C/LlqE+C60e6FhGiw6tw9/yEjCTocpe1D0+sfc7j3VKA7IsoM+MSKeptN/ug5r7 8k9vdIussC+tTAth5/6PsRS+UH1MSzx+Nh1Jnbcov6y5xjGV/Cn1KQ7HojQcL6ax0i JXgFykWtj1aNg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jan Kara , kernel test robot , Sasha Levin Subject: [PATCH 6.7 439/713] quota: Fix rcu annotations of inode dquot pointers Date: Sun, 24 Mar 2024 18:42:45 -0400 Message-ID: <20240324224720.1345309-440-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 86597a03a8733..6509aae445582 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; @@ -1000,14 +1000,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)) @@ -1097,14 +1098,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); } @@ -1457,7 +1460,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; @@ -1532,7 +1536,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 @@ -1540,12 +1544,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); } } @@ -1567,7 +1575,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)) @@ -1592,13 +1600,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); @@ -1606,7 +1615,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)) @@ -1679,7 +1688,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)) { @@ -1749,7 +1758,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)) @@ -1794,7 +1803,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 @@ -1836,7 +1845,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 @@ -1880,7 +1889,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 @@ -1937,7 +1946,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 @@ -1984,6 +1993,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 {}; @@ -2016,6 +2026,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. @@ -2030,7 +2041,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) @@ -2069,7 +2081,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); @@ -2080,8 +2092,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B1B5512882C; Sun, 24 Mar 2024 22:54: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=1711320876; cv=none; b=XjoicycLPugOHeKeyT773Lh302FOqkPrpiULwEqfx9yo9vtMUmOX85Cm16o5wNpwLct0WvtLSuEYBQ1IgiSB1LUkMbjRY8Wz1LNonDUuGUSe5EC6rTwEXKGxfAPeA9iH8eDHTFk19lb6y1s2DHcEhHqflvEtNy0hTbHV2K2PC8Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320876; c=relaxed/simple; bh=ipvEHZgmnpnUCmUL6D8dIsK9zHv0+EhhVDE4rN0J0r8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=bMMvXXGYiBMUXULfoGEN/8brG0NNdtjOY/5DNw4RRE7NNrzhNeD/6vVMp9s7hNKrAmCgyHYChTxnnxKjPUTJx+BhQeki0qRR+3gMp0jnGmP6F0nGt5Na2areJR8n9bhlrY+F+kx74e33JuuTgaS3edAefxPvbrem/2Wy0hYNjMU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Q/Vyuwse; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Q/Vyuwse" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 176D2C43390; Sun, 24 Mar 2024 22:54:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320875; bh=ipvEHZgmnpnUCmUL6D8dIsK9zHv0+EhhVDE4rN0J0r8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Q/VyuwseMzohsBTSiyDIQTQLoXoXZl6hrCX2oG7pfOB5lxwYmPc5mOGhxD6zezh4D Eb0KQ4dX7o6pTIPiutRF9tMbT89pT7z34Vf/zp345fmitAMHoyPLNBjE1B8qGxUozz v6pB/OdYU/bUzhjfsdcxIRa2hVAcxhaup7a0r3eNzSxridNUBD/0NPfGXiuGOBITbV DzAJyPJjP/U2PoMfwTqDPpWU7AeVilOdsierNjOQTLJrj9jfigxxsU2WLn91eU+ZfE chu/M6rGdW51TqZuEXTHKpRzVA5utysYoGeE04zl+uXVvLBZ4fiqpy01oMxHQ3a05s Hbyqtx8GruChg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jan Kara , Sasha Levin Subject: [PATCH 6.7 440/713] quota: Properly annotate i_dquot arrays with __rcu Date: Sun, 24 Mar 2024 18:42:46 -0400 Message-ID: <20240324224720.1345309-441-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 677a9ad45dcb7..f38bdd46e4f77 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 01f9addc8b1f6..6d8587505cea3 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 a5d784872303d..3205d46bc9673 100644 --- a/fs/ext4/ext4.h +++ b/fs/ext4/ext4.h @@ -1156,7 +1156,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 c5fcf377ab1fa..3f1fa5d182e24 100644 --- a/fs/ext4/super.c +++ b/fs/ext4/super.c @@ -1600,7 +1600,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 9043cedfa12ba..46ad7604a8b62 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 5dfbc6b4c0ac8..b0d6a643c9ef1 100644 --- a/fs/f2fs/super.c +++ b/fs/f2fs/super.c @@ -2776,7 +2776,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 dd4264aa9bedd..10934f9a11be3 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 8d8e556bd6104..ff135a43b5b7b 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 6509aae445582..6f2fa7889daf3 100644 --- a/fs/quota/dquot.c +++ b/fs/quota/dquot.c @@ -1002,8 +1002,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 725667880e626..b65549164590c 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 67b5510beded2..7b3d5aeb2a6fe 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 98c718b0fe532..3226a1d47be11 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -2084,7 +2084,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 2caa6b86106aa..66828dfc6e74e 100644 --- a/include/linux/shmem_fs.h +++ b/include/linux/shmem_fs.h @@ -37,7 +37,7 @@ struct shmem_inode_info { unsigned int fsflags; /* for FS_IOC_[SG]ETFLAGS */ atomic_t stop_eviction; /* hold when working on inode */ #ifdef CONFIG_TMPFS_QUOTA - struct dquot *i_dquot[MAXQUOTAS]; + struct dquot __rcu *i_dquot[MAXQUOTAS]; #endif struct inode vfs_inode; }; diff --git a/mm/shmem.c b/mm/shmem.c index 0d1ce70bce380..fb2daf89e2f2a 100644 --- a/mm/shmem.c +++ b/mm/shmem.c @@ -310,7 +310,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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AF445147C8D; Sun, 24 Mar 2024 22:54: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=1711320877; cv=none; b=e0f0uGT4fpuqA9C0FAiCSytO7hNVbYCSAy5Lzkx4iYH5DbU8yJaXxEeDNOlQhedRv/BsoNPChPa38VPoBjOcnl0LLcj5+m1LAeb0e/boX7Qui30hsFaIV2ko+rxcnoTIVDmsi7E/dDLhIa3Sj6/L8wmtxEBP5SOyM6NmJFfpN78= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320877; c=relaxed/simple; bh=TlP6/AQtNqw7rwGx8wZwwQ5PsKZq/5mbyDLs6BK6zYA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=TsxtPLxfnQf5NCcJ+91m/YkwvMkHa7RaiXNYWp2Ma+hR4A8DV2KmfwrY5EF0Fo8ereLzzFpZGZ8Nd3sWt1aCHw9u4wwjhiv9ksHHLfAzMOivX/nODzCZCFP6ARMZIR1FjLSEyELPTnL+PvxZZee78yklWzaK6cNatutjABoySSc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=gCwNO1HQ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="gCwNO1HQ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D918DC433F1; Sun, 24 Mar 2024 22:54:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320876; bh=TlP6/AQtNqw7rwGx8wZwwQ5PsKZq/5mbyDLs6BK6zYA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=gCwNO1HQkOM4Dz5X6PgWutXvDjsgejCMpycO9OyQ+SOmoQ5tTByuVx0oPBP6fL4e3 Y+qVqVv8kJk4WvhtVmhwf+iqN/Qu8oHobnxUqLQxOoklBMmH9wz69v7PuSao9m2drS SW/zmquY9DhtGGVqHEbeJrOFtHKsHSSNUWCZj6iA+65MdisJIQCt4fnXCB/E6y00US /BMraX3n+QpT+R8lPLD3OFODZSwyG8er0zvnFSz9qxF/MyrYnhWLsFBvKGjiMOUJig qX2ZFOHu9oSmPDjTo9iN3UWk+I99PNFDO88+hYCZ950IGgM7qhHoCjMyY7CF5MchK8 8cECbzYeWiM7Q== 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.7 441/713] PCI/P2PDMA: Fix a sleeping issue in a RCU read section Date: Sun, 24 Mar 2024 18:42:47 -0400 Message-ID: <20240324224720.1345309-442-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 0c361561b855c..4f47a13cb500f 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 936F1147C9B; Sun, 24 Mar 2024 22:54: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=1711320878; cv=none; b=NjwCLzjgki83Z0lp+pD0z+4Afj1GJrZ+fG3uQ5S3wIY31Wea2xRk/Mf5jaNCXUv7pGhEip1zrWwyDHf/LRbP874YzySG/j3rsHB2GWzU4a40e0oOyDnMjPmAQzhQhHctbifnVuzq1gp9RS0wzAScKGJnLpLwYcE9s5g/8tt4uZY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320878; c=relaxed/simple; bh=+9L2sOYcn70slea3K+0x6ySDW9NT356ZLSJHuWQ40e4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=O7qNxNnOoIo8LI9ItAI+A/AX8a8rAhaw5YyaKrmlbFpVDsf3X2RQLo4NVxFk6IoJ+EIQSLGz/9CuFVSkvtcQhtKCWxSWs9qmCfa1N7t5gho/shTIhmjhzx7CvEtuv9LO5Eulhk5awF2VVyL9UTxS8jtYgmLx4tX9GtQXUqSUXww= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=mD7Ge3zx; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="mD7Ge3zx" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D577CC43390; Sun, 24 Mar 2024 22:54:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320877; bh=+9L2sOYcn70slea3K+0x6ySDW9NT356ZLSJHuWQ40e4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=mD7Ge3zxfnR0HTIjAfJVbgHOBY0OmqZxhMOMlGgX8ktvEEX2fcdycsI01/b4vGnET axkmH82/yovHpdSRyRZElzdIKgqnp6PwLieP3+2Xh6R/LI7noD5FtmHyodKjvO2kSK Z1AKjvvHriWHc0xHTZ97N3mEZxBf3O3jqAUxXGTFfcXpJLvxmIrznPX6xHeTOy8pvY EvBgrFqZ+L0B+uy134Ez5X/R2Wm63ltwv/Yq/E9UY1zanCauHpLvnlr9fy92P24xP2 QPJMnXOGl+8wKAiGyWBN05QrmyY2cWisJy6gV1G0wW5yAYS7Yn0XWIl8FSDnsuhBle toaih+QKxV5Xw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Christophe JAILLET , Bjorn Helgaas , Sasha Levin Subject: [PATCH 6.7 442/713] PCI: switchtec: Fix an error handling path in switchtec_pci_probe() Date: Sun, 24 Mar 2024 18:42:48 -0400 Message-ID: <20240324224720.1345309-443-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 771D7129A82; Sun, 24 Mar 2024 22:54: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=1711320879; cv=none; b=Svt938EgsLFzfXT7ZrkdqY8xUEfWN+z3K3X69rJVRDvPumeu7rI1/+hKXGcYLfoEwlzIYYvDMeT/hheO/6N4IADxfyU+xnrGd++iDcpZE2g3+bYsmfS5Cu0KbvLNFP+kAj/r+7XCobjVHlxjfzyxcSLnRLbgzr7PeKTCP1B+WNo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320879; c=relaxed/simple; bh=jmu23GktzhpBdA3rPY3ZLQOVWrFuA9mTgWTolJwlTE0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=izXgruHonUY8281Tgz8AuXqEx+T2xEq/nwdLRkRZcARwWdofOQT6AxXV8KXk2vo7vD+sap0M7rfwyU2uI9yBE5E8QN3nauv7MsB78SewQL7PQJGgpVtM9WZypNqSya9ZeFOorlA0bwYue98l4l+ZCm4ZtAfrnSiWmyj8JijmPeg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=V2mHQTtv; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="V2mHQTtv" Received: by smtp.kernel.org (Postfix) with ESMTPSA id BBB5AC43394; Sun, 24 Mar 2024 22:54:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320878; bh=jmu23GktzhpBdA3rPY3ZLQOVWrFuA9mTgWTolJwlTE0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=V2mHQTtv3XPLl9xOzVDvd6aqCa5ZNIOfPYZPezJS6fCDGggQIgsTXz6vQBc27ofj1 1CtwqsmdACww7ZBrdMQm8bjT/3u68oHE9QFALd6EMuLVeRiWLfdBtkqqErcGVb4UJB j+0wmxR5bJp8dTlZO4Ad3EFgTzqI56/MQknJ8ugeL5TIqnHA8PlmOxmqdSbemgLRtW 4UTgC5cSjSZFYxWgvMnGGFzLoYLCGmGvaDAj/hYO+sLO5nDcogUaTyvbJ1lAJWO7Y5 KXJHWIYboVVIPDhAhDn2GE8/Ym0e679HGp6iOHb3rhzVsMMlZ+xZ90X0cBxb1opyGV 0xeUWhJL1+YxQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Quanyang Wang , Herbert Xu , Sasha Levin Subject: [PATCH 6.7 443/713] crypto: xilinx - call finalize with bh disabled Date: Sun, 24 Mar 2024 18:42:49 -0400 Message-ID: <20240324224720.1345309-444-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: Bagas Sanjaya --- 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 3c205324b22b6..e614057188409 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 Fri Dec 19 00:33:44 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 362BD1E85A3; Sun, 24 Mar 2024 22:54: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=1711320881; cv=none; b=HAUQQn+mf264rB9JF2iLLrP87bf0K9mu1D51e1Ruhsx2IxaK/yAQrTT3srum8FPMJRVp7Y5/WhpSWsvg1qHkmrNUAZ1TK56uhhfUhWp8Pdqdtl+/hwmAkhpiPxmjRR0DgkyBj+bzps8HdQVwwZm5/dHaPtML7ec1ueoQv/ZFMfA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320881; c=relaxed/simple; bh=Vql+8js91BRX0rn5qU3meYIvkq3/iZebYzGwS509XTc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=BIW+fn+wkDUQ14UxBMnnSv/lmzmkAd0TOzONmb+7XWehLInjjyG6JytsUUbSSaGByhMbg573kKrDqyrSbEdFas94f54D/ELf+yEZme9Hp+n+ENgLDHv+MTBdk27U6yUNJbaN5HDbVBrYcWoxeJ/8SCJoaMoUsmUu1pej+zsp5o4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=XH0PZUU/; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="XH0PZUU/" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9F9E0C43330; Sun, 24 Mar 2024 22:54:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320880; bh=Vql+8js91BRX0rn5qU3meYIvkq3/iZebYzGwS509XTc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=XH0PZUU/46IFy8sp/+S5J2rWTXJcondn8GwtpQ6j2PcAO4JftmUyhtMoBm8y8xmZr nJT1PggckArlgyaFJseQHRKMSTLT8Q8EMeu4O0EFrsYIcCWIaS+qQCtAOV+MDe7I9s Fww8XlgD3i5NEG9pax/uQeuiF0Dok6MDFkHzgPnNgVFCfMtcQQFS9L/pSK/lzTNifm eVHba0MMrcPYWG+yjUmp1SwXOab8LmJEAMRW3OElxQ9gNLGq8dnicv+otg1UJD562O w1bX2UbvY8YajhxVPWIrYyX62G+w81kp/BTkgWZlbLcGQcrSfYL8N7ovfr/WXq7s36 zQ+z3p4GVRdow== 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.7 444/713] drivers/ps3: select VIDEO to provide cmdline functions Date: Sun, 24 Mar 2024 18:42:50 -0400 Message-ID: <20240324224720.1345309-445-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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