2026 09:47:50 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1771609669; cv=none; d=google.com; s=arc-20240605; b=Y9ctDcZt0VutnvY3xAVEvDQ3TR5pAI+r1acYGBcED0MuKz95F+7o2bpC/nZsOzvg9F XcXFScNIFH1YUtv6v+5uK3+IW1VLK8HysPnY6Fk+7zAMFsHObWCtNk7TP1FeCdNEPjuR qpAkWH0ctHqugM7x/7wUNgOWAm2yahAPbAdVJuvHiruUzYU5ascoSflrdDC93xb35uAt jGkoZ0jeL1pcEnbWcbwJt3DDEvP1DQZOLDtuYX4922BNpGOuNG7glXXGE7oruigXK1Nm IGZxaYXta4uz7Q5r3R8/FkAPwmsVztPvPt6xYmojKCZ7cl6OxsS7yCAewiMI+cf0wu2p 5Gbg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=Y9eb+2i/y/0rmFF/uI6d9CeWg5pAv5OelEQTpGFPeJM=; fh=2KLrhX83hifvDkGXDHtD266+iOEzkW84A8aDYKv7rYk=; b=XunZABTN5jCNC+0EBBHzoxieJZxAFlypANBlqjZOEMbtuc3wsugNZPP0fMk2LDn3J2 C3UIS2y8O6XimbaX+0hA++6EMrXN+UcwjFxZTp6sQ5vmVZxgSlfdbpOTZmr6XRCfPyhc xdiym61eYGOPE9hP7+EpU2K4SCql/8kfywMvILW416gtQtrM2NeeYkh8B0HHZhYTKoc4 3vvhg6+TjrO/Z4TElZd6hDRhCIeehLWuVcqpYLb9qRf4r7ym369LlMRHXr3ewxtgqerS zGjVQQoHP/15YYEzQk8oSCcpI3PBt3pAOwgRwY1RchL6WBx6IvcEI6nNFnbj/006LE6l B57Q==; darn=vger.kernel.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=purestorage.com; s=google2022; t=1771609669; x=1772214469; darn=vger.kernel.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=Y9eb+2i/y/0rmFF/uI6d9CeWg5pAv5OelEQTpGFPeJM=; b=NEKHxRpczgU+UDLJmX0ntPHBwYzm0siD/hI6t/J7X6JtEqRvkKNYAAqpwn5v8KZ7pd o3nX29cz8o4ANlf3krvPhEFv8XMfl72WXpRyl09MDyavzJ9lFPm4pYsLDLT/0e6IZiuw +1bxnFi/nyhexA+2wu2eWBlE8f9wPIjK+HS+raQFIOi+3W5uBNxqT7D1W9Je9/wc2iOf AiDEU1g+TcmPJnpJrOKbjhvgWSFUu4duR/qoL3GotfQqSp9mTn/hks+wU5Cb/l6PCcu9 u/wAIqcSmcxNt1uVtg8MHhrM/SzILZJFdOIzoBOJHfqtgyiyqSKBBx8/FLrRYKTH//md pYkQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771609669; x=1772214469; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=Y9eb+2i/y/0rmFF/uI6d9CeWg5pAv5OelEQTpGFPeJM=; b=JDgrm8WeK9JiKAMUOl4+KG/gjEqyh7GFaQs2Hcwsrcw+wFYxl+uHsBAYHBBvSBGfRR G2hQYmRnTWp8KEP7jbkPrDZSOsKbioV32gYJAFM4fSQZvXGmYHGpJmwl0TLCM4n1KgM+ 6rAX+dwWRwtSmBi5Ovs0bnmE0oM62lV9ZDpZX+/Q20OEXuK9YtNy0TlfiGcyj1N3ZfAB nIKWjy8eelki288AoJdz3ozX6tLOCKcXwfBb3fYELZJd15QsW+KTA9SV5cdqvTj5Z/Cn c+QXTu/9b7i4/iPfw0Vjgn9w4NVfNzjC+PmhHLDg4nBNEtLH0HMa0Jt5Be7mV/iC6Xfu 3BbQ== X-Forwarded-Encrypted: i=1; AJvYcCVT186cy87bc0a0reBxCPGKOHP35lJTazPA36Mwfvcn9HQYMC0LqjomAY/k/JT5vRGZar3KvT4dhw==@vger.kernel.org X-Gm-Message-State: AOJu0YyLiAu4r0689IB+3Iw9c3t2Pvm9RGJU14bW5G58qOO/If6O2AXa iwsHxQt5ukYnD6qqyJJ+x3ZI+kDAGEM3dQNgOf6CGMVoSkzwrLg2jYLAH91gdPPG9Ik4WK23rwI IgRL8+LzTivgEuA+BR8q5WCSdjC63Uo7lSa/oLT+mCQ== X-Gm-Gg: AZuq6aLky/n3Hqd7iTpgYle7qqmnQIn36B6HncUGMGBT60RhOkYtQdXWNaboyF4JOj/ rLCftUYuUL2tQnPiv6xXxzdqdGSB+PiNxvqyIkgjNZ0YuKsMgR7YhbAsi5muPEOpPfeGMZ8vXpr jM/2wnYWVi/xTIhBphKi/nwt/jvvRmYRvKDDNgnlpHkvrAcQOAYBZOza6kWUl1jEMr4TpJjHdG/ g1ZNXd49C33gjb437hVQ0MshNXk0I1LO+HulnK5DVqgpZcSoiqDEgg8gKinD6J0EdHVtxf57TnV +1//G3b2rXPNQjgRQR0= X-Received: by 2002:a05:6402:518b:b0:659:7edb:17b4 with SMTP id 4fb4d7f45d1cf-65ea4f288eamr132202a12.5.1771609669372; Fri, 20 Feb 2026 09:47:49 -0800 (PST) Precedence: bulk X-Mailing-List: io-uring@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 References: <20260219172228.429479-1-csander@purestorage.com> In-Reply-To: From: Caleb Sander Mateos Date: Fri, 20 Feb 2026 09:47:38 -0800 X-Gm-Features: AaiRm53s86E4gHXC0k34rdUE13VMMBnLURvZ1nvvNYQnBupQcBAWT-zzyK13aNY Message-ID: Subject: Re: [PATCH v3 0/4] io_uring/uring_cmd: allow non-iopoll cmds with IORING_SETUP_IOPOLL To: Ming Lei Cc: Jens Axboe , Christoph Hellwig , Keith Busch , Sagi Grimberg , io-uring@vger.kernel.org, linux-nvme@lists.infradead.org, linux-kernel@vger.kernel.org, Anuj gupta , Kanchan Joshi Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-DKIM: signer='purestorage.com' status='pass' reason='' DKIMCheck: Server passes DKIM test, 0 Spam score X-Spam-Score: 0.4 (/) X-Spam-Report: Spam detection software, running on the system "witcher.mxrouting.net", has performed the tests listed below against this email. Information: https://docs.mxroute.com/docs/expert-spam-filtering.html --- Content analysis details: (0.4 points) --- pts rule name description ---- ---------------------- ----------------------------------------- 0.0 URIBL_BLOCKED ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [URIs: purestorage.com] 0.0 URIBL_DBL_BLOCKED_OPENDNS ADMINISTRATOR NOTICE: The query to dbl.spamhaus.org was blocked due to usage of an open resolver. See https://www.spamhaus.org/returnc/pub/ [URIs: purestorage.com] 0.0 RCVD_IN_ZEN_BLOCKED_OPENDNS RBL: ADMINISTRATOR NOTICE: The query to zen.spamhaus.org was blocked due to usage of an open resolver. See https://www.spamhaus.org/returnc/pub/ [172.232.135.74 listed in zen.spamhaus.org] 1.5 HEADER_FROM_DIFFERENT_DOMAINS From and EnvelopeFrom 2nd level mail domains are different 0.0 URIBL_ZEN_BLOCKED_OPENDNS ADMINISTRATOR NOTICE: The query to zen.spamhaus.org was blocked due to usage of an open resolver. See https://www.spamhaus.org/returnc/pub/ [URIs: purestorage.com] 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager SpamTally: Final spam score: 4 On Fri, Feb 20, 2026 at 8:31=E2=80=AFAM Ming Lei wrot= e: > > On Fri, Feb 20, 2026 at 08:22:29AM -0800, Caleb Sander Mateos wrote: > > On Fri, Feb 20, 2026 at 8:11=E2=80=AFAM Ming Lei = wrote: > > > > > > On Fri, Feb 20, 2026 at 07:55:33AM -0800, Caleb Sander Mateos wrote: > > > > On Fri, Feb 20, 2026 at 6:25=E2=80=AFAM Ming Lei wrote: > > > > > > > > > > On Thu, Feb 19, 2026 at 10:22:23AM -0700, Caleb Sander Mateos wro= te: > > > > > > Currently, creating an io_uring with IORING_SETUP_IOPOLL requir= es all > > > > > > requests issued to it to support iopoll. This prevents, for exa= mple, > > > > > > using ublk zero-copy together with IORING_SETUP_IOPOLL, as ublk > > > > > > zero-copy buffer registrations are performed using a uring_cmd.= There's > > > > > > no technical reason why these non-iopoll uring_cmds can't be su= pported. > > > > > > They will either complete synchronously or via an external mech= anism > > > > > > that calls io_uring_cmd_done(), so they don't need to be polled= . > > > > > > > > > > For sync uring command, it is fine to support for IOPOLL. > > > > > > > > > > However, there are async uring command, which may be completed in= irq > > > > > context, or in multishot way, at least the later isn't supported = in > > > > > io_do_iopoll() yet. > > > > > > > > Can you describe the issues you envision in more detail? > > > > > > Basically IOPOLL doesn't support multishot request yet. > > > > > > For example, when io_uring_mshot_cmd_post_cqe() is called and new cqe= is > > > queued, it can't be found from io_iopoll_check()<-io_uring_enter(IORI= NG_ENTER_GETEVENTS). > > > > I don't think that's a new issue, though. You're right that > > io_uring_mshot_cmd_post_cqe() assumes a non-REQ_F_IOPOLL request, so > > it's up to the ->uring_cmd() implementation to ensure that (which ublk > > already does). Since ublk's struct file_operations don't provide > > ->uring_cmd_iopoll(), any ublk uring_cmds issued to an > > IORING_SETUP_IOPOLL io_uring won't have REQ_F_IOPOLL set, so > > io_uring_mshot_cmd_post_cqe() should work just fine. > > Please look in the following way: > > 1) without patch of `io_uring/uring_cmd: allow non-iopoll cmds with IORIN= G_SETUP_IOPOLL`, > multishot command submission can't succeed > > 2) with patch of "io_uring/uring_cmd: allow non-iopoll cmds with IORING_S= ETUP_IOPOLL", people > may see hang forever in io_uring_enter() if multishot command is submitte= d > in context IORING_SETUP_IOPOLL. Okay, I see what you mean. If ctx->iopoll_list is nonempty and a non-REQ_F_IOPOLL request posts a completion without going through task work, io_iopoll_check() won't check for CQEs already posted outside of iopoll. I think it should be simple enough to check for CQEs unconditionally in the io_iopoll_check() loop. Thanks, Caleb From - Fri Feb 20 17:50:43 2026 X-Mozilla-Status: 0001 X-Mozilla-Status2: 00000000 Return-Path: Delivered-To: hi@josie.lol Received: from witcher.mxrouting.net by witcher.mxrouting.net with LMTP id IGfxJ++emGn1DwQAYBR5ng (envelope-from ) for ; Fri, 20 Feb 2026 17:50:39 +0000 Return-path: Envelope-to: hi@josie.lol Delivery-date: Fri, 20 Feb 2026 17:50:39 +0000 Received: from tor.lore.kernel.org ([172.105.105.114]) by witcher.mxrouting.net with esmtps (TLS1.3) tls TLS_AES_256_GCM_SHA384 (Exim 4.98) (envelope-from ) id 1vtUeF-00000001Khp-00Xp for hi@josie.lol; Fri, 20 Feb 2026 17:50:39 +0000 Received: from smtp.subspace.kernel.org (conduit.subspace.kernel.org [100.90.174.1]) by tor.lore.kernel.org (Postfix) with ESMTP id 6755D3007955 for ; Fri, 20 Feb 2026 17:50:01 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 4A78035EDBA; Fri, 20 Feb 2026 17:49:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="M7fiwkBK"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="UIZZ5Jg4" X-Original-To: stable@vger.kernel.org Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D8A1B33D512 for Bumps github.com/IBM/platform-services-go-sdk from 0.88.0 to 0.89.0.

Release notes

Sourced from github.com/IBM/platform-services-go-sdk's releases.

v0.89.0

0.89.0 (2025-10-10)

Features

  • IAM Policy Management: add enterprise custom role (#410) (634a3e7)
Changelog

Sourced from github.com/IBM/platform-services-go-sdk's changelog.

0.89.0 (2025-10-10)

Features

  • IAM Policy Management: add enterprise custom role (#410) (634a3e7)
Commits
  • b3fce7f chore(release): 0.89.0 release notes [skip ci]
  • e87b630 Update version 0.88.0 -> 0.89.0 [skip ci]
  • 634a3e7 feat(IAM Policy Management): add enterprise custom role (#410)
  • See full diff in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

You can view, comment on, or merge this pull request online at:

  https://github.com/kubernetes-sigs/karpenter-provider-ibm-cloud/pull/364

Commit Summary

  • 17400ab chore(deps): bump github.com/IBM/platform-services-go-sdk

File Changes

(2 files)

Patch Links:


Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because your review was requested.Message ID: <kubernetes-sigs/karpenter-provider-ibm-cloud/pull/364@github.com>

----==_mimepart_68ed7c34c72f6_23e6a10d8130f6-- From - Mon Oct 13 22:25:02 2025 X-Mozilla-Status: 0001 X-Mozilla-Status2: 00000000 Return-Path: Delivered-To: hi@josie.lol Received: from witcher.mxrouting.net by witcher.mxrouting.net with LMTP id OG7hGDx87Wgf+C4AYBR5ng (envelope-from ) for ; Mon, 13 Oct 2025 22:25:00 +0000 Return-path: Envelope-to: github@josie.lol Delivery-date: Mon, 13 Oct 2025 22:25:00 +0000 Received: from out-23.smtp.github.com ([192.30.252.206]) by witcher.mxrouting.net with esmtps (TLS1.3) tls TLS_AES_256_GCM_SHA384 (Exim 4.98) (envelope-from ) id 1v8QyS-0000000D6zB-16ce for github@josie.lol; Mon, 13 Oct 2025 22:25:00 +0000 Received: from github.com (hubbernetes-node-982c3bf.ac4-iad.github.net [10.52.177.47]) by smtp.github.com (Postfix) with ESMTPA id C6E4A203D8 for ; Mon, 13 Oct 2025 15:24:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2023; t=1760394299; bh=qMYTWmz//0Pj1VP7luWN8yULdV3hlVJCHPC7/6EU1PQ=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:List-Unsubscribe-Post: From; b=KtzP9WcQ/CZLWuBE7XTiNUnIXfEav6UFDBcxuWsjk21qG2LE/KFaqsIkefxPI4Fsz LB5Jq1Fjgyd6qSoCLRYjHkzUWkmFJ+H5zI7oLjFh/2CJYCQohvsRu7+qVLAIlYSPo/ UyS9QN+LZlN2AlbHNC4wuk9iesn6vA8LjH7BqwCs= Date: Mon, 13 Oct 2025 15:24:59 -0700 From: Kubernetes Prow Robot Reply-To: kubernetes-sigs/karpenter-provider-ibm-cloud To: kubernetes-sigs/karpenter-provider-ibm-cloud Cc: Josephine Pfeiffer , Review requested Message-ID: In-Reply-To: References: Subject: Re: [kubernetes-sigs/karpenter-provider-ibm-cloud] chore(deps): bump github.com/IBM/platform-services-go-sdk from 0.88.0 to 0.89.0 (PR #364) Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="--==_mimepart_68ed7c3bc2f2c_bb10d88d9"; charset=UTF-8 Content-Transfer-Encoding: 7bit Precedence: list X-GitHub-Sender: k8s-ci-robot X-GitHub-Recipient: pfeifferj X-GitHub-Reason: review_requested List-ID: kubernetes-sigs/karpenter-provider-ibm-cloud List-Archive: https://github.com/kubernetes-sigs/karpenter-provider-ibm-cloud List-Post: List-Unsubscribe: , List-Unsubscribe-Post: List-Unsubscribe=One-Click X-GitHub-Notify-Platform: newsies X-GitHub-Labels: dependencies; go; cncf-cla: yes; size/XS X-GitHub-Assignees: X-GitHub-PullRequestStatus: open X-Auto-Response-Suppress: All destinations: github@josie.lol X-GitHub-Recipient-Address: github@josie.lol X-DKIM: signer='github.com' status='pass' reason='' DKIMCheck: Server passes DKIM test, 0 Spam score X-Spam-Score: -0.7 (/) X-Spam-Report: Spam detection software, running on the system "witcher.mxrouting.net", has performed the tests listed below against this email. Information: https://mxroutedocs.com/directadmin/spamfilters/ --- Content analysis details: (-0.7 points) --- pts rule name description ---- ---------------------- ----------------------------------------- -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, medium trust [192.30.252.206 listed in list.dnswl.org] 1.5 HTML_MESSAGE BODY: HTML included in message 1.3 HTML_IMAGE_ONLY_28 BODY: HTML: images with 2400-2800 bytes of words 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.0 RCVD_IN_MSPIKE_H4 RBL: Very Good reputation (+4) [192.30.252.206 listed in wl.mailspike.net] 0.0 T_KAM_HTML_FONT_INVALID Test for Invalidly Named or Formatted Colors in HTML 0.0 RCVD_IN_MSPIKE_WL Mailspike good senders -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager -0.0 DKIMWL_WL_HIGH DKIMwl.org - High trust sender SpamTally: Final spam score: -6 ----==_mimepart_68ed7c3bc2f2c_bb10d88d9 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit @k8s-ci-robot requested your review on: kubernetes-sigs/karpenter-provider-ibm-cloud#364 chore(deps): bump github.com/IBM/platform-services-go-sdk from 0.88.0 to 0.89.0. -- Reply to this email directly or view it on GitHub: https://github.com/kubernetes-sigs/karpenter-provider-ibm-cloud/pull/364#event-20256490406 You are receiving this because your review was requested. Message ID: ----==_mimepart_68ed7c3bc2f2c_bb10d88d9 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable

@k8s-ci-robot requested your r= eview on: #364 chore(deps): bump github.com/IBM/platform-services-go= -sdk from 0.88.0 to 0.89.0.

&m= dash;
Reply to this email directly, vi= ew it on GitHub, or unsub= scribe.
You are receiving this because your review was requested= .3D""Message ID: <kub= ernetes-sigs/karpenter-provider-ibm-cloud/pull/364/issue_event/2025649040= 6@github.com>

= ----==_mimepart_68ed7c3bc2f2c_bb10d88d9-- From - Mon Oct 13 22:25:05 2025 X-Mozilla-Status: 0001 X-Mozilla-Status2: 00000000 Return-Path: Delivered-To: hi@josie.lol Received: from witcher.mxrouting.net by witcher.mxrouting.net with LMTP id 0LEqFz187Wg1nysAYBR5ng (envelope-from ) for ; Mon, 13 Oct 2025 22:25:01 +0000 Return-path: Envelope-to: github@josie.lol Delivery-date: Mon, 13 Oct 2025 22:25:01 +0000 Received: from out-17.smtp.github.com ([192.30.252.200]) by witcher.mxrouting.net with esmtps (TLS1.3) tls TLS_AES_256_GCM_SHA384 (Exim 4.98) (envelope-from ) id 1v8QyT-0000000D75y-0gWJ for github@josie.lol; Mon, 13 Oct 2025 22:25:01 +0000 Received: from github.com (hubbernetes-node-06c1704.va3-iad.github.net [10.48.125.52]) by smtp.github.com (Postfix) with ESMTPA id D7C9C4E082C for ; Mon, 13 Oct 2025 15:25:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2023; t=1760394300; bh=CNgaRg9i/ELQW60i08OA1hFq13SYgTQFBfwumyQKn+M=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:List-Unsubscribe-Post: From; b=ipT+9mXVOQkXR82kruhougZ5zMUuaQT7+ShpPneXWEY0HsASiF7J/ijHMpxMoaTXM pgOv1f6mne+GvlkT5omkS5Rdck+sqtX5kTtvo2pt685PvNEPW49s/f42vLpt4hA/qV DgLbBoky7Lz0A5JhAibROstgWiMokDhLuLY9Ni0A= Date: Mon, 13 Oct 2025 15:25:00 -0700 From: Kubernetes Prow Robot Reply-To: kubernetes-sigs/karpenter-provider-ibm-cloud To: kubernetes-sigs/karpenter-provider-ibm-cloud Cc: Josephine Pfeiffer , Review requested Message-ID: In-Reply-To: References: Subject: Re: [kubernetes-sigs/karpenter-provider-ibm-cloud] chore(deps): bump github.com/IBM/platform-services-go-sdk from 0.88.0 to 0.89.0 (PR #364) Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="--==_mimepart_68ed7c3cd4057_1031110d8148656"; charset=UTF-8 Content-Transfer-Encoding: 7bit Precedence: list X-GitHub-Sender: k8s-ci-robot X-GitHub-Recipient: pfeifferj X-GitHub-Reason: review_requested List-ID: kubernetes-sigs/karpenter-provider-ibm-cloud List-Archive: https://github.com/kubernetes-sigs/karpenter-provider-ibm-cloud List-Post: List-Unsubscribe: , List-Unsubscribe-Post: List-Unsubscribe=One-Click X-GitHub-Notify-Platform: newsies X-GitHub-Labels: dependencies; go; cncf-cla: yes; size/XS X-GitHub-Assignees: X-GitHub-PullRequestStatus: open X-Auto-Response-Suppress: All destinations: github@josie.lol X-GitHub-Recipient-Address: github@josie.lol X-DKIM: signer='github.com' status='pass' reason='' DKIMCheck: Server passes DKIM test, 0 Spam score X-Spam-Score: 0.3 (/) X-Spam-Report: Spam detection software, running on the system "witcher.mxrouting.net", has performed the tests listed below against this email. Information: https://mxroutedocs.com/directadmin/spamfilters/ --- Content analysis details: (0.3 points) --- pts rule name description ---- ---------------------- ----------------------------------------- 0.0 URIBL_BLOCKED ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [URIs: githubusercontent.com] 0.0 RCVD_IN_DNSWL_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to DNSWL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#DnsBlocklists-dnsbl-block for more information. [192.30.252.200 listed in list.dnswl.org] 0.0 RCVD_IN_MSPIKE_H4 RBL: Very Good reputation (+4) [192.30.252.200 listed in wl.mailspike.net] 1.5 HTML_MESSAGE BODY: HTML included in message 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.0 T_KAM_HTML_FONT_INVALID Test for Invalidly Named or Formatted Colors in HTML 0.0 RCVD_IN_MSPIKE_WL Mailspike good senders -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager -0.0 DKIMWL_WL_HIGH DKIMwl.org - High trust sender SpamTally: Final spam score: 3 ----==_mimepart_68ed7c3cd4057_1031110d8148656 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit k8s-ci-robot left a comment (kubernetes-sigs/karpenter-provider-ibm-cloud#364) [APPROVALNOTIFIER] This PR is **NOT APPROVED** This pull-request has been approved by: *dependabot[bot]* **Once this PR has been reviewed and has the lgtm label**, please assign [pfeifferj](https://github.com/pfeifferj) for approval. For more information see [the Code Review Process](https://git.k8s.io/community/contributors/guide/owners.md#the-code-review-process). The full list of commands accepted by this bot can be found [here](https://go.k8s.io/bot-commands?repo=kubernetes-sigs%2Fkarpenter-provider-ibm-cloud).
Needs approval from an approver in each of these files: - **[OWNERS](https://github.com/kubernetes-sigs/karpenter-provider-ibm-cloud/blob/main/OWNERS)** Approvers can indicate their approval by writing `/approve` in a comment Approvers can cancel approval by writing `/approve cancel` in a comment
-- Reply to this email directly or view it on GitHub: https://github.com/kubernetes-sigs/karpenter-provider-ibm-cloud/pull/364#issuecomment-3399239616 You are receiving this because your review was requested. Message ID: ----==_mimepart_68ed7c3cd4057_1031110d8148656 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: dependabot[bot]
Once this PR has been reviewed and has the lgtm label, p= lease assign pfeifferj for a= pproval. For more information see t= he Code Review Process.

The full list of commands accepted by this bot can be fou= nd here.

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /app= rove cancel in a comment

&m= dash;
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because your review was requested.3D""Message ID: <kubernetes-sigs/karpenter-provider-ibm-c= loud/pull/364/c3399239616@github.<= /span>com>

----==_mimepart_68ed7c3cd4057_1031110d8148656-- From - Mon Oct 13 22:25:05 2025 X-Mozilla-Status: 0001 X-Mozilla-Status2: 00000000 Return-Path: Delivered-To: hi@josie.lol Received: from witcher.mxrouting.net by witcher.mxrouting.net with LMTP id 6LewMT987WgeZC0AYBR5ng (envelope-from ) for ; Mon, 13 Oct 2025 22:25:03 +0000 Return-path: Envelope-to: github@josie.lol Delivery-date: Mon, 13 Oct 2025 22:25:03 +0000 Received: from out-27.smtp.github.com ([192.30.252.210]) by witcher.mxrouting.net with esmtps (TLS1.3) tls TLS_AES_256_GCM_SHA384 (Exim 4.98) (envelope-from ) id 1v8QyV-0000000D7AB-1Vy4 for github@josie.lol; Mon, 13 Oct 2025 22:25:03 +0000 Received: from github.com (hubbernetes-node-68bbfa3.ash1-iad.github.net [10.56.144.35]) by smtp.github.com (Postfix) with ESMTPA id 0C9CA60063C for ; Mon, 13 Oct 2025 15:25:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2023; t=1760394303; bh=VZ5m6Z+kUnHKpeJl1jVjmSXY/p9YT0kFnro0ZCNQGH0=; h=Date:From:Reply-To:To:Cc:Subject:List-ID:List-Archive:List-Post: List-Unsubscribe:List-Unsubscribe-Post:From; b=dcF3O/sxz+wrSFZtizVLpbYxB+JBYZbwCHwosR90j4/iinXWyyeUsTA5MfjiYOWtZ ohVSWA3wN9JR9SKRgV3EtOu+hDdRf5mESQqpUN+mRZELYfuxfii4ohmID3dg6I+fHw SisPmdZLTUXBo/jYa4dF9Qt4mDsfY36RriCXj9zY= Date: Mon, 13 Oct 2025 15:25:03 -0700 From: "dependabot[bot]" Reply-To: kubernetes-sigs/karpenter-provider-ibm-cloud To: kubernetes-sigs/karpenter-provider-ibm-cloud Cc: Josephine Pfeiffer , Review requested Message-ID: Subject: [kubernetes-sigs/karpenter-provider-ibm-cloud] chore(deps): bump k8s.io/apimachinery from 0.35.0-alpha.0 to 0.35.0-alpha.1 (PR #365) Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="--==_mimepart_68ed7c3f84c7_ee10d889055"; charset=UTF-8 Content-Transfer-Encoding: 7bit Precedence: list X-GitHub-Sender: dependabot[bot] X-GitHub-Recipient: pfeifferj X-GitHub-Reason: review_requested List-ID: kubernetes-sigs/karpenter-provider-ibm-cloud List-Archive: https://github.com/kubernetes-sigs/karpenter-provider-ibm-cloud List-Post: List-Unsubscribe: , List-Unsubscribe-Post: List-Unsubscribe=One-Click X-GitHub-Notify-Platform: newsies X-GitHub-Labels: dependencies; go; cncf-cla: yes; size/S X-GitHub-Assignees: X-GitHub-PullRequestStatus: open X-Auto-Response-Suppress: All destinations: github@josie.lol X-GitHub-Recipient-Address: github@josie.lol X-DKIM: signer='github.com' status='pass' reason='' DKIMCheck: Server passes DKIM test, 0 Spam score X-Spam-Score: 1.3 (+) X-Spam-Report: Spam detection software, running on the system "witcher.mxrouting.net", has performed the tests listed below against this email. Information: https://mxroutedocs.com/directadmin/spamfilters/ --- Content analysis details: (1.3 points) --- pts rule name description ---- ---------------------- ----------------------------------------- 0.0 URIBL_BLOCKED ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [URIs: githubusercontent.com] 0.0 RCVD_IN_DNSWL_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to DNSWL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#DnsBlocklists-dnsbl-block for more information. [192.30.252.210 listed in list.dnswl.org] 0.0 RCVD_IN_MSPIKE_H4 RBL: Very Good reputation (+4) [192.30.252.210 listed in wl.mailspike.net] 1.5 HTML_MESSAGE BODY: HTML included in message 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.0 T_KAM_HTML_FONT_INVALID Test for Invalidly Named or Formatted Colors in HTML 0.0 RCVD_IN_MSPIKE_WL Mailspike good senders -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager 1.0 LONG_HEX_URI Very long purely hexadecimal URI -0.0 DKIMWL_WL_HIGH DKIMwl.org - High trust sender SpamTally: Final spam score: 13 ----==_mimepart_68ed7c3f84c7_ee10d889055 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Bumps [k8s.io/apimachinery](https://github.com/kubernetes/apimachinery) from 0.35.0-alpha.0 to 0.35.0-alpha.1. <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/kubernetes/apimachinery/commit/9137522523dd636bf8e188bed8cf5c9ff93ab371"><code>9137522</code></a> Merge pull request <a href="https://redirect.github.com/kubernetes/apimachinery/issues/134368">#134368</a> from aaron-prindle/error-matcher-path-normalization</li> <li><a href="https://github.com/kubernetes/apimachinery/commit/d59a6d67daf42176180c5499e4c968dcd8341877"><code>d59a6d6</code></a> Merge pull request <a href="https://redirect.github.com/kubernetes/apimachinery/issues/134302">#134302</a> from lalitc375/device-class-selectors</li> <li><a href="https://github.com/kubernetes/apimachinery/commit/a4598ab37b5d6afa9ebf27148b40fefc4b6891fc"><code>a4598ab</code></a> feat: add path normalization support to error matcher</li> <li><a href="https://github.com/kubernetes/apimachinery/commit/b431053ef3f062f8d8b1d264b9a93b93cbe6b7ff"><code>b431053</code></a> apply feedback</li> <li><a href="https://github.com/kubernetes/apimachinery/commit/268a6d0fb19c92c9665e8f5cd85b564557038dc1"><code>268a6d0</code></a> Merge pull request <a href="https://redirect.github.com/kubernetes/apimachinery/issues/134347">#134347</a> from yongruilin/master_vg-cleanup</li> <li><a href="https://github.com/kubernetes/apimachinery/commit/f417f5d80fb7010d98abe026db8afea4cfe86337"><code>f417f5d</code></a> Merge pull request <a href="https://redirect.github.com/kubernetes/apimachinery/issues/134211">#134211</a> from aaron-prindle/resourceclaim_maxitems</li> <li><a href="https://github.com/kubernetes/apimachinery/commit/b3b1076e45ada93c7e211a2a2e1893c502ee4347"><code>b3b1076</code></a> fix typo in comment for namespace validation to appease verify-spelling</li> <li><a href="https://github.com/kubernetes/apimachinery/commit/11e920b56ed27376ea5dc69b0e601530fa78d2d9"><code>11e920b</code></a> Merge pull request <a href="https://redirect.github.com/kubernetes/apimachinery/issues/134139">#134139</a> from aojea/better_error_httpstream_handshae</li> <li><a href="https://github.com/kubernetes/apimachinery/commit/5543ac1329908be6fc945920ca128b2bfd2600c9"><code>5543ac1</code></a> add +k8s:maxItems tag logic and tests</li> <li><a href="https://github.com/kubernetes/apimachinery/commit/b26e85558ba517b472b43b94e83bea52fed743db"><code>b26e855</code></a> improve httpstream handshake error logging</li> <li>Additional commits viewable in <a href="https://github.com/kubernetes/apimachinery/compare/v0.35.0-alpha.0...v0.35.0-alpha.1">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=k8s.io/apimachinery&package-manager=go_modules&previous-version=0.35.0-alpha.0&new-version=0.35.0-alpha.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> You can view, comment on, or merge this pull request online at: https://github.com/kubernetes-sigs/karpenter-provider-ibm-cloud/pull/365 -- Commit Summary -- * chore(deps): bump k8s.io/apimachinery -- File Changes -- M go.mod (12) M go.sum (10) -- Patch Links -- https://github.com/kubernetes-sigs/karpenter-provider-ibm-cloud/pull/365.patch https://github.com/kubernetes-sigs/karpenter-provider-ibm-cloud/pull/365.diff -- Reply to this email directly or view it on GitHub: https://github.com/kubernetes-sigs/karpenter-provider-ibm-cloud/pull/365 You are receiving this because your review was requested. Message ID: <kubernetes-sigs/karpenter-provider-ibm-cloud/pull/365@github.com> ----==_mimepart_68ed7c3f84c7_ee10d889055 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 7bit

Bumps k8s.io/apimachinery from 0.35.0-alpha.0 to 0.35.0-alpha.1.

Commits
  • 9137522 Merge pull request #134368 from aaron-prindle/error-matcher-path-normalization
  • d59a6d6 Merge pull request #134302 from lalitc375/device-class-selectors
  • a4598ab feat: add path normalization support to error matcher
  • b431053 apply feedback
  • 268a6d0 Merge pull request #134347 from yongruilin/master_vg-cleanup
  • f417f5d Merge pull request #134211 from aaron-prindle/resourceclaim_maxitems
  • b3b1076 fix typo in comment for namespace validation to appease verify-spelling
  • 11e920b Merge pull request #134139 from aojea/better_error_httpstream_handshae
  • 5543ac1 add +k8s:maxItems tag logic and tests
  • b26e855 improve httpstream handshake error logging
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

You can view, comment on, or merge this pull request online at:

  https://github.com/kubernetes-sigs/karpenter-provider-ibm-cloud/pull/365

Commit Summary

  • 2b25d8c chore(deps): bump k8s.io/apimachinery

File Changes

(2 files)

Patch Links:


Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because your review was requested.Message ID: <kubernetes-sigs/karpenter-provider-ibm-cloud/pull/365@github.com>

----==_mimepart_68ed7c3f84c7_ee10d889055-- From - Mon Oct 13 22:25:13 2025 X-Mozilla-Status: 0001 X-Mozilla-Status2: 00000000 Return-Path: Delivered-To: hi@josie.lol Received: from witcher.mxrouting.net by witcher.mxrouting.net with LMTP id 6tXxJUZ87Wg6Py8AYBR5ng (envelope-from ) for ; Mon, 13 Oct 2025 22:25:10 +0000 Return-path: Envelope-to: github@josie.lol Delivery-date: Mon, 13 Oct 2025 22:25:10 +0000 Received: from out-26.smtp.github.com ([192.30.252.209]) by witcher.mxrouting.net with esmtps (TLS1.3) tls TLS_AES_256_GCM_SHA384 (Exim 4.98) (envelope-from ) id 1v8Qyc-0000000D7LQ-22bN for github@josie.lol; Mon, 13 Oct 2025 22:25:10 +0000 Received: from github.com (hubbernetes-node-54e7da6.ash1-iad.github.net [10.56.200.17]) by smtp.github.com (Postfix) with ESMTPA id 157EE6000A7 for ; Mon, 13 Oct 2025 15:25:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2023; t=1760394310; bh=YgQG0eE5Inqu46opBwjaT2oAJRGFR9SLAw0vQlQr/+E=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:List-Unsubscribe-Post: From; b=aciKBz0aYseGRpYZkaOOApSRFT8T6Hhw0AjxTftN/GzxGwm7Gn0V15/FbfSqhtZ5d UY0T+PWNM74agcwVxuktg+r1stEDXjGN/l0qTDILCe2K2dS7TSCgAQoY4yZp+7naKh 46N2Q4EhqvuZOzcwoOPRIYbX4zqz7jYVeLGDz2X0= Date: Mon, 13 Oct 2025 15:25:10 -0700 From: Kubernetes Prow Robot Reply-To: kubernetes-sigs/karpenter-provider-ibm-cloud To: kubernetes-sigs/karpenter-provider-ibm-cloud Cc: Josephine Pfeiffer , Review requested Message-ID: In-Reply-To: References: Subject: Re: [kubernetes-sigs/karpenter-provider-ibm-cloud] chore(deps): bump k8s.io/apimachinery from 0.35.0-alpha.0 to 0.35.0-alpha.1 (PR #365) Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="--==_mimepart_68ed7c46f252_156fe10d857311"; charset=UTF-8 Content-Transfer-Encoding: 7bit Precedence: list X-GitHub-Sender: k8s-ci-robot X-GitHub-Recipient: pfeifferj X-GitHub-Reason: review_requested List-ID: kubernetes-sigs/karpenter-provider-ibm-cloud List-Archive: https://github.com/kubernetes-sigs/karpenter-provider-ibm-cloud List-Post: List-Unsubscribe: , List-Unsubscribe-Post: List-Unsubscribe=One-Click X-GitHub-Notify-Platform: newsies X-GitHub-Labels: dependencies; go; cncf-cla: yes; size/S X-GitHub-Assignees: X-GitHub-PullRequestStatus: open X-Auto-Response-Suppress: All destinations: github@josie.lol X-GitHub-Recipient-Address: github@josie.lol X-DKIM: signer='github.com' status='pass' reason='' DKIMCheck: Server passes DKIM test, 0 Spam score X-Spam-Score: -0.7 (/) X-Spam-Report: Spam detection software, running on the system "witcher.mxrouting.net", has performed the tests listed below against this email. Information: https://mxroutedocs.com/directadmin/spamfilters/ --- Content analysis details: (-0.7 points) --- pts rule name description ---- ---------------------- ----------------------------------------- -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, medium trust [192.30.252.209 listed in list.dnswl.org] 1.5 HTML_MESSAGE BODY: HTML included in message 1.3 HTML_IMAGE_ONLY_28 BODY: HTML: images with 2400-2800 bytes of words 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.0 RCVD_IN_MSPIKE_H4 RBL: Very Good reputation (+4) [192.30.252.209 listed in wl.mailspike.net] 0.0 T_KAM_HTML_FONT_INVALID Test for Invalidly Named or Formatted Colors in HTML 0.0 RCVD_IN_MSPIKE_WL Mailspike good senders -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager -0.0 DKIMWL_WL_HIGH DKIMwl.org - High trust sender SpamTally: Final spam score: -6 ----==_mimepart_68ed7c46f252_156fe10d857311 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit @k8s-ci-robot requested your review on: kubernetes-sigs/karpenter-provider-ibm-cloud#365 chore(deps): bump k8s.io/apimachinery from 0.35.0-alpha.0 to 0.35.0-alpha.1. -- Reply to this email directly or view it on GitHub: https://github.com/kubernetes-sigs/karpenter-provider-ibm-cloud/pull/365#event-20256492432 You are receiving this because your review was requested. Message ID: ----==_mimepart_68ed7c46f252_156fe10d857311 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable

@k8s-ci-robot requested your r= eview on: #365 chore(deps): bump k8s.io/apimachinery from 0.35.0-alp= ha.0 to 0.35.0-alpha.1.

&m= dash;
Reply to this email directly, vi= ew it on GitHub, or unsub= scribe.
You are receiving this because your review was requested= .3D""Message ID: <kub= ernetes-sigs/karpenter-provider-ibm-cloud/pull/365/issue_event/2025649243= 2@github.com>

= ----==_mimepart_68ed7c46f252_156fe10d857311-- From - Mon Oct 13 22:25:31 2025 X-Mozilla-Status: 0001 X-Mozilla-Status2: 00000000 Return-Path: Delivered-To: hi@josie.lol Received: from witcher.mxrouting.net by witcher.mxrouting.net with LMTP id IGDRMEd87Wg6Py8AYBR5ng (envelope-from ) for ; Mon, 13 Oct 2025 22:25:11Date:Message-ID:In-Reply-To:References: MIME-Version; b=DW893mmiTEqCyxMeJMWE+KBbONf+IGbuxpkJHOiwxGer8QQNhYWkYsifRzm4MG1e9dc8CMDx7wkd2p25evDmDnCCnfYPjP5ohpZBFyRrzdKoKLwWBiS8MPtdom1w5GzvfT+Irb01C74M9/VxBRzPa0vHvuAkkS5veqdCjteCR5Q= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b=eGivUXTl; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id 629A6C4CEF8; Thu, 27 Nov 2025 14:49:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1764254997; bh=sX4JdTQKo8yosdp5XJtgE2GI7PGzAr/nA7v8KnOpeBo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=eGivUXTl3AhVyKfaHKa7z5lfZhLmzMoOn7ZVErWPvyV6NaZQVTNwq+UwD+RO+JOew OkgYvR4OpBAlq4P6W4yhNZu9FqueDoksy8r+JZz6+DSC1aiiSrhYkE3/YPk6XBoU0D kZOPQxVgM6T6CL7NPrch/7SH/n3rsfa9eymKx7Po= From: Greg Kroah-Hartman To: stable@vger.kernel.org Cc: Greg Kroah-Hartman , patches@lists.linux.dev, "Maciej W. Rozycki" , Thomas Bogendoerfer Subject: [PATCH 6.6 25/86] MIPS: Malta: Fix !EVA SOC-it PCI MMIO Date: Thu, 27 Nov 2025 15:45:41 +0100 Message-ID: <20251127144028.741061553@linuxfoundation.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20251127144027.800761504@linuxfoundation.org> References: <20251127144027.800761504@linuxfoundation.org> User-Agent: quilt/0.69 X-stable: review X-Patchwork-Hint: ignore Precedence: bulk X-Mailing-List: stable@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-DKIM: signer='linuxfoundation.org' status='pass' reason='' DKIMCheck: Server passes DKIM test, 0 Spam score X-Spam-Score: 0.2 (/) X-Spam-Report: Spam detection software, running on the system "witcher.mxrouting.net", has performed the tests listed below against this email. Information: https://mxroutedocs.com/directadmin/spamfilters/ --- Content analysis details: (0.2 points) --- pts rule name description ---- ---------------------- ----------------------------------------- 0.0 URIBL_BLOCKED ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [URIs: linuxfoundation.org] 0.0 RCVD_IN_DNSWL_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to DNSWL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#DnsBlocklists-dnsbl-block for more information. [142.0.200.124 listed in list.dnswl.org] 1.5 HEADER_FROM_DIFFERENT_DOMAINS From and EnvelopeFrom 2nd level mail domains are different 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager -0.2 DKIMWL_WL_HIGH DKIMwl.org - High trust sender SpamTally: Final spam score: 2 6.6-stable review patch. If anyone has any objections, please let me know. ------------------ From: Maciej W. Rozycki commit ebd729fef31620e0bf74cbf8a4c7fda73a2a4e7e upstream. Fix a regression that has caused accesses to the PCI MMIO window to complete unclaimed in non-EVA configurations with the SOC-it family of system controllers, preventing PCI devices from working that use MMIO. In the non-EVA case PHYS_OFFSET is set to 0, meaning that PCI_BAR0 is set with an empty mask (and PCI_HEAD4 matches addresses starting from 0 accordingly). Consequently all addresses are matched for incoming DMA accesses from PCI. This seems to confuse the system controller's logic and outgoing bus cycles targeting the PCI MMIO window seem not to make it to the intended devices. This happens as well when a wider mask is used with PCI_BAR0, such as 0x80000000 or 0xe0000000, that makes addresses match that overlap with the PCI MMIO window, which starts at 0x10000000 in our configuration. Set the mask in PCI_BAR0 to 0xf0000000 for non-EVA then, covering the non-EVA maximum 256 MiB of RAM, which is what YAMON does and which used to work correctly up to the offending commit. Set PCI_P2SCMSKL to match PCI_BAR0 as required by the system controller's specification, and match PCI_P2SCMAPL to PCI_HEAD4 for identity mapping. Verified with: Core board type/revision = 0x0d (Core74K) / 0x01 System controller/revision = MIPS SOC-it 101 OCP / 1.3 SDR-FW-4:1 Processor Company ID/options = 0x01 (MIPS Technologies, Inc.) / 0x1c Processor ID/revision = 0x97 (MIPS 74Kf) / 0x4c for non-EVA and with: Core board type/revision = 0x0c (CoreFPGA-5) / 0x00 System controller/revision = MIPS ROC-it2 / 0.0 FW-1:1 (CLK_unknown) GIC Processor Company ID/options = 0x01 (MIPS Technologies, Inc.) / 0x00 Processor ID/revision = 0xa0 (MIPS interAptiv UP) / 0x20 for EVA/non-EVA, fixing: defxx 0000:00:12.0: assign IRQ: got 10 defxx: v1.12 2021/03/10 Lawrence V. Stefani and others 0000:00:12.0: Could not read adapter factory MAC address! vs: defxx 0000:00:12.0: assign IRQ: got 10 defxx: v1.12 2021/03/10 Lawrence V. Stefani and others 0000:00:12.0: DEFPA at MMIO addr = 0x10142000, IRQ = 10, Hardware addr = 00-00-f8-xx-xx-xx 0000:00:12.0: registered as fddi0 for non-EVA and causing no change for EVA. Signed-off-by: Maciej W. Rozycki Fixes: 422dd256642b ("MIPS: Malta: Allow PCI devices DMA to lower 2GB physical") Cc: stable@vger.kernel.org # v4.9+ Signed-off-by: Thomas Bogendoerfer Signed-off-by: Greg Kroah-Hartman --- arch/mips/mti-malta/malta-init.c | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) --- a/arch/mips/mti-malta/malta-init.c +++ b/arch/mips/mti-malta/malta-init.c @@ -241,16 +241,22 @@ mips_pci_controller: #endif /* - * Setup the Malta max (2GB) memory for PCI DMA in host bridge - * in transparent addressing mode. + * Set up memory mapping in host bridge for PCI DMA masters, + * in transparent addressing mode. For EVA use the Malta + * maximum of 2 GiB memory in the alias space at 0x80000000 + * as per PHYS_OFFSET. Otherwise use 256 MiB of memory in + * the regular space, avoiding mapping the PCI MMIO window + * for DMA as it seems to confuse the system controller's + * logic, causing PCI MMIO to stop working. */ - mask = PHYS_OFFSET | PCI_BASE_ADDRESS_MEM_PREFETCH; - MSC_WRITE(MSC01_PCI_BAR0, mask); - MSC_WRITE(MSC01_PCI_HEAD4, mask); + mask = PHYS_OFFSET ? PHYS_OFFSET : 0xf0000000; + MSC_WRITE(MSC01_PCI_BAR0, + mask | PCI_BASE_ADDRESS_MEM_PREFETCH); + MSC_WRITE(MSC01_PCI_HEAD4, + PHYS_OFFSET | PCI_BASE_ADDRESS_MEM_PREFETCH); - mask &= MSC01_PCI_BAR0_SIZE_MSK; MSC_WRITE(MSC01_PCI_P2SCMSKL, mask); - MSC_WRITE(MSC01_PCI_P2SCMAPL, mask); + MSC_WRITE(MSC01_PCI_P2SCMAPL, PHYS_OFFSET); /* Don't handle target retries indefinitely. */ if ((data & MSC01_PCI_CFG_MAXRTRY_MSK) == From - Thu Nov 27 14:52:20 2025 X-Mozilla-Status: 0001 X-Mozilla-Status2: 00000000 Return-Path: Delivered-To: hi@josie.lol Received: from witcher.mxrouting.net by witcher.mxrouting.net with LMTP id 2D7REqFlKGl0cA8AYBR5ng (envelope-from ) for ; Thu, 27 Nov 2025 14:52:17 +0000 Return-path: Envelope-to: hi@josie.lol Delivery-date: Thu, 27 Nov 2025 14:52:17 +0000 Received: from dfw.mirrors.kernel.org ([142.0.200.124]) by witcher.mxrouting.net with esmtps (TLS1.3) tls TLS_AES_256_GCM_SHA384 (Exim 4.98) (envelope-from ) id 1vOdM1-00000004Wuk-0JXF for hi@josie.lol; Thu, 27 Nov 2025 14:52:17 +0000 Received: from smtp.subspace.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.mirrors.kernel.org (Postfix) with ESMTPS id 922994E0734 for ; Thu, 27 Nov 2025 14:50:15 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id B5B4F333442; Thu, 27 Nov 2025 14:50:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b="PME4RtJ2" X-Original-To: stable@vger.kernel.org Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B960828CF7C; Thu, 27 Nov 2025 14: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=1764255000; cv=none; b=r3B2IuiOWZRdJ+L597VeLRS1seB4BV/cnHnCVLvsTdKvf8pgIA3B7PWyPzkRRATnkr8Atm+FRnvfi2h/rwDwhCSj5+htEypNb3J/xkMiebrRtHu4nxRd7w2lSQeTCoFrhk3tOp9RWhhZr/FqJjN9zfbm1xtfsRbIUIQabfQlQJU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764255000; c=relaxed/simple; bh=BhUvM8TCKIi69h0p4B0ScdYwZ0Jwle01+f4c3vi1enw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PS2knYpgYFu4kvMH2mBErXlqLZQr8G0pb+P6NiPcNUpenOhFFogU5GJAGZ4Ou2E3ZK+MekFODOVtDIFxuhMecyA9ghWeNtqYj/RVcxuH9tfHSuTKbqZbdnERmin44aPXSvBsG+ukJ50WGDtLtoZOrNoX0kXcX9H2T4kLlpG8a5w= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b=PME4RtJ2; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3E042C113D0; Thu, 27 Nov 2025 14:50:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1764255000; bh=BhUvM8TCKIi69h0p4B0ScdYwZ0Jwle01+f4c3vi1enw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=PME4RtJ2ZihM1vuhAL8D2TyxuoJKAj/Rnb38/c7u7VxgaZ1YJM+yHMItO1LGBW4yH gWfeBWDdDKbA5MnvcrvWk2FaGYgZys6r2Y7MXY+DqxSPAMYHo3ojJkkhb6sYn7QP+D e7nR/h8TYLhj7Y2+THuBrBfK8tGwpcStnivGI27U= From: Greg Kroah-Hartman To: stable@vger.kernel.org Cc: Greg Kroah-Hartman , patches@lists.linux.dev, Krzysztof Kozlowski , Conor Dooley , Linus Walleij Subject: [PATCH 6.6 26/86] dt-bindings: pinctrl: toshiba,visconti: Fix number of items in groups Date: Thu, 27 Nov 2025 15:45:42 +0100 Message-ID: <20251127144028.778665428@linuxfoundation.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20251127144027.800761504@linuxfoundation.org> References: <20251127144027.800761504@linuxfoundation.org> User-Agent: quilt/0.69 X-stable: review X-Patchwork-Hint: ignore Precedence: bulk X-Mailing-List: stable@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-DKIM: signer='linuxfoundation.org' status='pass' reason='' DKIMCheck: Server passes DKIM test, 0 Spam score X-Spam-Score: 0.2 (/) X-Spam-Report: Spam detection software, running on the system "witcher.mxrouting.net", has performed the tests listed below against this email. Information: https://mxroutedocs.com/directadmin/spamfilters/ --- Content analysis details: (0.2 points) --- pts rule name description ---- ---------------------- ----------------------------------------- 0.0 URIBL_BLOCKED ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [URIs: linuxfoundation.org] 0.0 RCVD_IN_DNSWL_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to DNSWL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#DnsBlocklists-dnsbl-block for more information. [142.0.200.124 listed in list.dnswl.org] 1.5 HEADER_FROM_DIFFERENT_DOMAINS From and EnvelopeFrom 2nd level mail domains are different 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager -0.2 DKIMWL_WL_HIGH DKIMwl.org - High trust sender SpamTally: Final spam score: 2 6.6-stable review patch. If anyone has any objections, please let me know. ------------------ From: Krzysztof Kozlowski commit 316e361b5d2cdeb8d778983794a1c6eadcb26814 upstream. The "groups" property can hold multiple entries (e.g. toshiba/tmpv7708-rm-mbrc.dts file), so allow that by dropping incorrect type (pinmux-node.yaml schema already defines that as string-array) and adding constraints for items. This fixes dtbs_check warnings like: toshiba/tmpv7708-rm-mbrc.dtb: pinctrl@24190000 (toshiba,tmpv7708-pinctrl): pwm-pins:groups: ['pwm0_gpio16_grp', 'pwm1_gpio17_grp', 'pwm2_gpio18_grp', 'pwm3_gpio19_grp'] is too long Fixes: 1825c1fe0057 ("pinctrl: Add DT bindings for Toshiba Visconti TMPV7700 SoC") Cc: stable@vger.kernel.org Signed-off-by: Krzysztof Kozlowski Acked-by: Conor Dooley Signed-off-by: Linus Walleij Signed-off-by: Greg Kroah-Hartman --- Documentation/devicetree/bindings/pinctrl/toshiba,visconti-pinctrl.yaml | 26 +++++----- 1 file changed, 14 insertions(+), 12 deletions(-) --- a/Documentation/devicetree/bindings/pinctrl/toshiba,visconti-pinctrl.yaml +++ b/Documentation/devicetree/bindings/pinctrl/toshiba,visconti-pinctrl.yaml @@ -50,18 +50,20 @@ patternProperties: groups: description: Name of the pin group to use for the functions. - $ref: /schemas/types.yaml#/definitions/string - enum: [i2c0_grp, i2c1_grp, i2c2_grp, i2c3_grp, i2c4_grp, - i2c5_grp, i2c6_grp, i2c7_grp, i2c8_grp, - spi0_grp, spi0_cs0_grp, spi0_cs1_grp, spi0_cs2_grp, - spi1_grp, spi2_grp, spi3_grp, spi4_grp, spi5_grp, spi6_grp, - uart0_grp, uart1_grp, uart2_grp, uart3_grp, - pwm0_gpio4_grp, pwm0_gpio8_grp, pwm0_gpio12_grp, - pwm0_gpio16_grp, pwm1_gpio5_grp, pwm1_gpio9_grp, - pwm1_gpio13_grp, pwm1_gpio17_grp, pwm2_gpio6_grp, - pwm2_gpio10_grp, pwm2_gpio14_grp, pwm2_gpio18_grp, - pwm3_gpio7_grp, pwm3_gpio11_grp, pwm3_gpio15_grp, - pwm3_gpio19_grp, pcmif_out_grp, pcmif_in_grp] + items: + enum: [i2c0_grp, i2c1_grp, i2c2_grp, i2c3_grp, i2c4_grp, + i2c5_grp, i2c6_grp, i2c7_grp, i2c8_grp, + spi0_grp, spi0_cs0_grp, spi0_cs1_grp, spi0_cs2_grp, + spi1_grp, spi2_grp, spi3_grp, spi4_grp, spi5_grp, spi6_grp, + uart0_grp, uart1_grp, uart2_grp, uart3_grp, + pwm0_gpio4_grp, pwm0_gpio8_grp, pwm0_gpio12_grp, + pwm0_gpio16_grp, pwm1_gpio5_grp, pwm1_gpio9_grp, + pwm1_gpio13_grp, pwm1_gpio17_grp, pwm2_gpio6_grp, + pwm2_gpio10_grp, pwm2_gpio14_grp, pwm2_gpio18_grp, + pwm3_gpio7_grp, pwm3_gpio11_grp, pwm3_gpio15_grp, + pwm3_gpio19_grp, pcmif_out_grp, pcmif_in_grp] + minItems: 1 + maxItems: 8 drive-strength: enum: [2, 4, 6, 8, 16, 24, 32] From - Thu Nov 27 14:52:33 2025 X-Mozilla-Status: 0001 X-Mozilla-Status2: 00000000 Return-Path: Delivered-To: hi@josie.lol Received: from witcher.mxrouting.net by witcher.mxrouting.net with LMTP id UHcKOK1lKGmhcA8AYBR5ng (envelope-from ) for ; Thu, 27 Nov 2025 14:52:29 +0000 Return-path: Envelope-to: hi@josie.lol Delivery-date: Thu, 27 Nov 2025 14:52:30 +0000 Received: from dfw.mirrors.kernel.org ([142.0.200.124]) by witcher.mxrouting.net with esmtps (TLS1.3) tls TLS_AES_256_GCM_SHA384 (Exim 4.98) (envelope-from ) id 1vOdMD-00000004XJw-2mgI for hi@josie.lol; Thu, 27 Nov 2025 14:52:29 +0000 Received: from smtp.subspace.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.mirrors.kernel.org (Postfix) with ESMTPS id 3A6A34EB706 for ; Thu, 27 Nov 2025 14:50:26 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id B76F7312807; Thu, 27 Nov 2025 14:50:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b="QJh8/4Ow" X-Original-To: stable@vger.kernel.org Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8E0F02F8BC9; Thu, 27 Nov 2025 14: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=1764255015; cv=none; b=fvRP2fvlbTzLPTEq53bM8TTc6tX32cKl+Q66GSOCMlVW7pPJz6AMOdgZU1LJ+PyPxfQpZHltSU7ey6Tc77AFiYiEUJWI9onl3JuGTdS0ksO4XIGvPsOpT6LXQJjoAT6teR39teQKWTyFJovGf2iXAO6IATwxakJeGmaYmMxMCIE= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764255015; c=relaxed/simple; bh=jVk3RTPIIm+mm5zrncPJ08eTCkPQCwJiMAaDonwIUi0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=RDhKuBnS4/inffxgPYU9yhRqRF6/9rwECCYit1wG4uhBWVfE6I8oaq7NviDqK7NqmNyRY+jlCTbjdgOkU/14fwl/bmongtH+8WlWfxR+ltJEF6TeIoFeidRgb7up39VIasgAJR+5C0NAbIkk9RHYdfme4t2eJ8dz2G04UJWXrPc= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b=QJh8/4Ow; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id A0D65C4CEF8; Thu, 27 Nov 2025 14:50:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1764255015; bh=jVk3RTPIIm+mm5zrncPJ08eTCkPQCwJiMAaDonwIUi0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=QJh8/4OwhaIoU9ibbwtB5+C0s6clSsL/sjp4RHOMDeDp8z5F/yPupuFJmu2XLKo78 hPveBFjWVUx14k0+H407fKnFfnch1Y+wW6LlleDTmeuxb/MUy/w+IeA8XS+ygYWsHC bmwQJfLrrxrGqMiOQXL5lBd3kJhQu/hd8c3QAir0= From: Greg Kroah-Hartman To: stable@vger.kernel.org Cc: Greg Kroah-Hartman , patches@lists.linux.dev, Marco Patalano , Ewan Milne , James Smart , Sagi Grimberg , Ming Lei , Justin Tee , Keith Busch Subject: [PATCH 6.6 21/86] nvme: nvme-fc: move tagset removal to nvme_fc_delete_ctrl() Date: Thu, 27 Nov 2025 15:45:37 +0100 Message-ID: <20251127144028.593463762@linuxfoundation.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20251127144027.800761504@linuxfoundation.org> References: <20251127144027.800761504@linuxfoundation.org> User-Agent: quilt/0.69 X-stable: review X-Patchwork-Hint: ignore Precedence: bulk X-Mailing-List: stable@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-DKIM: signer='linuxfoundation.org' status='pass' reason='' DKIMCheck: Server passes DKIM test, 0 Spam score X-Spam-Score: 0.2 (/) X-Spam-Report: Spam detection software, running on the system "witcher.mxrouting.net", has performed the tests listed below against this email. Information: https://mxroutedocs.com/directadmin/spamfilters/ --- Content analysis details: (0.2 points) --- pts rule name description ---- ---------------------- ----------------------------------------- 0.0 URIBL_BLOCKED ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [URIs: linuxfoundation.org] 1.5 HEADER_FROM_DIFFERENT_DOMAINS From and EnvelopeFrom 2nd level mail domains are different 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager -0.2 DKIMWL_WL_HIGH DKIMwl.org - High trust sender SpamTally: Final spam score: 2 6.6-stable review patch. If anyone has any objections, please let me know. ------------------ From: Ewan D. Milne commit ea3442efabd0aa3930c5bab73c3901ef38ef6ac3 upstream. Now target is removed from nvme_fc_ctrl_free() which is the ctrl->ref release handler. And even admin queue is unquiesced there, this way is definitely wrong because the ctr->ref is grabbed when submitting command. And Marco observed that nvme_fc_ctrl_free() can be called from request completion code path, and trigger kernel warning since request completes from softirq context. Fix the issue by moveing target removal into nvme_fc_delete_ctrl(), which is also aligned with nvme-tcp and nvme-rdma. Patch originally proposed by Ming Lei, then modified to move the tagset removal down to after nvme_fc_delete_association() after further testing. Cc: Marco Patalano Cc: Ewan Milne Cc: James Smart Cc: Sagi Grimberg Signed-off-by: Ming Lei Cc: stable@vger.kernel.org Tested-by: Marco Patalano Reviewed-by: Justin Tee Signed-off-by: Ewan D. Milne Signed-off-by: Keith Busch Signed-off-by: Greg Kroah-Hartman --- drivers/nvme/host/fc.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) --- a/drivers/nvme/host/fc.c +++ b/drivers/nvme/host/fc.c @@ -2349,17 +2349,11 @@ nvme_fc_ctrl_free(struct kref *ref) container_of(ref, struct nvme_fc_ctrl, ref); unsigned long flags; - if (ctrl->ctrl.tagset) - nvme_remove_io_tag_set(&ctrl->ctrl); - /* remove from rport list */ spin_lock_irqsave(&ctrl->rport->lock, flags); list_del(&ctrl->ctrl_list); spin_unlock_irqrestore(&ctrl->rport->lock, flags); - nvme_unquiesce_admin_queue(&ctrl->ctrl); - nvme_remove_admin_tag_set(&ctrl->ctrl); - kfree(ctrl->queues); put_device(ctrl->dev); @@ -3250,11 +3244,18 @@ nvme_fc_delete_ctrl(struct nvme_ctrl *nc cancel_work_sync(&ctrl->ioerr_work); cancel_delayed_work_sync(&ctrl->connect_work); + /* * kill the association on the link side. this will block * waiting for io to terminate */ nvme_fc_delete_association(ctrl); + + if (ctrl->ctrl.tagset) + nvme_remove_io_tag_set(&ctrl->ctrl); + + nvme_unquiesce_admin_queue(&ctrl->ctrl); + nvme_remove_admin_tag_set(&ctrl->ctrl); } static void From - Thu Nov 27 14:52:36 2025 X-Mozilla-Status: 0001 X-Mozilla-Status2: 00000000 Return-Path: Delivered-To: hi@josie.lol Received: from witcher.mxrouting.net by witcher.mxrouting.net with LMTP id MDOrD7BlKGmTZw4AYBR5ng (envelope-from ) for ; Thu, 27 Nov 2025 14:52:32 +0000 Return-path: Envelope-to: hi@josie.lol Delivery-date: Thu, 27 Nov 2025 14:52:32 +0000 Received: from dfw.mirrors.kernel.org ([142.0.200.124]) by witcher.mxrouting.net with esmtps (TLS1.3) tls TLS_AES_256_GCM_SHA384 (Exim 4.98) (envelope-from ) id 1vOdMG-00000004XPz-0Bdl for hi@josie.lol; Thu, 27 Nov 2025 14:52:32 +0000 Received: from smtp.subspace.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.mirrors.kernel.org (Postfix) with ESMTPS id 437214EB7CC for ; Thu, 27 Nov 2025 14:50:28 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 43ED72F8BC9; Thu, 27 Nov 2025 14:50:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b="s0f/Zel7" X-Original-To: stable@vger.kernel.org Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1AC3D28D8E8; Thu, 27 Nov 2025 14: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=1764255018; cv=none; b=EUVHhAMYOb4GDurgXbObtPVaQzvnDoFluwzT2mwS2N3L94Ma8CGPQ5G7YOjSGkhoGfKnlCS1TkGEtXZal5TNxFI7st3pQnH2bGgb5SR3MzTN1U87Adawxc/g3Fz32sVYiFsJmNR6cbGTA3T36NCyFIr8PbxAhYvLM+72GijnDBA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764255018; c=relaxed/simple; bh=NipJ5OPeKjushSC6D7xGBZWhs85S7LvIx2YP5zt0A3o=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Q3IGpCBaDOff9abgsOM6uWXH/hHYZ7t4acBGmH4PqpqLodvVMyNGJrmz3uO4Y6e3XMjtgmECJKGieHFB2fFTUweJhPVOmzDO/1hII3jqJxa93qWDa6tZuJCfvP+z6mqkxW+E/CSdvDJao/aLui8ELtO/M/JxmVeGkdGwixh5tz0= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b=s0f/Zel7; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id 96856C4CEF8; Thu, 27 Nov 2025 14:50:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1764255018; bh=NipJ5OPeKjushSC6D7xGBZWhs85S7LvIx2YP5zt0A3o=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=s0f/Zel79O01S/eZ3l29ZsNS7GwDX7OxHm+m22K4qcZUYkpDqqrysNi3m45Um37jo uQ1eVy1UGPPPmFm+tuwQpMKa6yIDJjheeTaRlB4qjSaZUWt/MhegWNivt8T+r2xMiJ BuTh4jZUY8r09RMhL5h1N1Ph7JrVAiO0m3yla+44= From: Greg Kroah-Hartman To: stable@vger.kernel.org Cc: Greg Kroah-Hartman , patches@lists.linux.dev, =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= , Florian Fainelli , Johannes Berg , Sasha Levin Subject: [PATCH 6.6 58/86] bcma: dont register devices disabled in OF Date: Thu, 27 Nov 2025 15:46:14 +0100 Message-ID: <20251127144029.951485166@linuxfoundation.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20251127144027.800761504@linuxfoundation.org> References: <20251127144027.800761504@linuxfoundation.org> User-Agent: quilt/0.69 X-stable: review X-Patchwork-Hint: ignore Precedence: bulk X-Mailing-List: stable@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-DKIM: signer='linuxfoundation.org' status='pass' reason='' DKIMCheck: Server passes DKIM test, 0 Spam score X-Spam-Score: 0.2 (/) X-Spam-Report: Spam detection software, running on the system "witcher.mxrouting.net", has performed the tests listed below against this email. Information: https://mxroutedocs.com/directadmin/spamfilters/ --- Content analysis details: (0.2 points) --- pts rule name description ---- ---------------------- ----------------------------------------- 0.0 URIBL_BLOCKED ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [URIs: msgid.link] 1.5 HEADER_FROM_DIFFERENT_DOMAINS From and EnvelopeFrom 2nd level mail domains are different 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager -0.2 DKIMWL_WL_HIGH DKIMwl.org - High trust sender SpamTally: Final spam score: 2 6.6-stable review patch. If anyone has any objections, please let me know. ------------------ From: Rafał Miłecki [ Upstream commit a2a69add80411dd295c9088c1bcf925b1f4e53d7 ] Some bus devices can be marked as disabled for specific SoCs or models. Those should not be registered to avoid probing them. Signed-off-by: Rafał Miłecki Reviewed-by: Florian Fainelli Link: https://patch.msgid.link/20251003125126.27950-1-zajec5@gmail.com Signed-off-by: Johannes Berg Signed-off-by: Sasha Levin --- drivers/bcma/main.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/bcma/main.c b/drivers/bcma/main.c index 7061d3ee836a1..c69c05256b59f 100644 --- a/drivers/bcma/main.c +++ b/drivers/bcma/main.c @@ -294,6 +294,8 @@ static int bcma_register_devices(struct bcma_bus *bus) int err; list_for_each_entry(core, &bus->cores, list) { + struct device_node *np; + /* We support that core ourselves */ switch (core->id.id) { case BCMA_CORE_4706_CHIPCOMMON: @@ -311,6 +313,10 @@ static int bcma_register_devices(struct bcma_bus *bus) if (bcma_is_core_needed_early(core->id.id)) continue; + np = core->dev.of_node; + if (np && !of_device_is_available(np)) + continue; + /* Only first GMAC core on BCM4706 is connected and working */ if (core->id.id == BCMA_CORE_4706_MAC_GBIT && core->core_unit > 0) -- 2.51.0 From - Thu Nov 27 14:52:40 2025 X-Mozilla-Status: 0001 X-Mozilla-Status2: 00000000 Return-Path: Delivered-To: hi@josie.lol Received: from witcher.mxrouting.net by witcher.mxrouting.net with LMTP id mFdJNbRlKGkrsA0AYBR5ng (envelope-from ) for ; Thu, 27 Nov 2025 14:52:36 +0000 Return-path: Envelope-to: hi@josie.lol Delivery-date: Thu, 27 Nov 2025 14:52:37 +0000 Received: from dfw.mirrors.kernel.org ([142.0.200.124]) by witcher.mxrouting.net with esmtps (TLS1.3) tls TLS_AES_256_GCM_SHA384 (Exim 4.98) (envelope-from ) id 1vOdMK-00000004XZE-1zSj for hi@josie.lol; Thu, 27 Nov 2025 14:52:36 +0000 Received: from smtp.subspace.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.mirrors.kernel.org (Postfix) with ESMTPS id 714154EDCCE for ; Thu, 27 Nov 2025 14:50:30 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id EB90428B4FE; Thu, 27 Nov 2025 14:50:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b="Z3BYQgRa" X-Original-To: stable@vger.kernel.org Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C34ED2882BB; Thu, 27 Nov 2025 14: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=1764255023; cv=none; b=Zwu3/d2P9N3jVIVKuhrvEcAszRTnsonblYyyxv/uW/CCDrSCByiP700P6OtRFmOzS7vhGb3Fxck6s9t6pHxu+Zo61GEutyFb9h5E6H8Qsb7sM9osE4zKD8ARwEQFMUaJMLiAV9MKzkToQUV+yjmW8gRGYtZe0woGsYo1Hqaoh2s= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764255023; c=relaxed/simple; bh=hK/qYLmUTPVWgbNdvegebY9Ezrq+KHz4QrUDjSxpKYk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZYTTskxddCGOAmKYgf5c3XvnuFROFZV7U/LvzqpQ9VmVbnyanvxFhZIDzBWsyzYCaBnz8chD/hxCvDO1DUsACUjP7LpxySAkO85ydQGAeZkQksluhkFCoTC+LJEIP4EI1YDhHqKbzIQ6CE4LshCglf7DOeHtXMfe7J2gCRWstpA= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b=Z3BYQgRa; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4B4BBC4CEF8; Thu, 27 Nov 2025 14:50:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1764255023; bh=hK/qYLmUTPVWgbNdvegebY9Ezrq+KHz4QrUDjSxpKYk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Z3BYQgRadt1eUaOTbUs0egGgQG92b86/UBmWP8NAeW2fc+DZeEF2OgRIoMU0EI2Gm jSsxLQna6YM+B/G45IQz/BFISnP49b215P/et0K+xNHuqTrivA42WqfavZiEnPgpYO uQ/R2QCwb0ltQviPqi84C4oVvOnpBcuX4uLH9Pco= From: Greg Kroah-Hartman To: stable@vger.kernel.org Cc: Greg Kroah-Hartman , patches@lists.linux.dev, Daeho Jeong , Zhiguo Niu , Baocong Liu , Chao Yu , Jaegeuk Kim , Bin Lan , Sasha Levin Subject: [PATCH 6.6 68/86] f2fs: compress: fix UAF of f2fs_inode_info in f2fs_free_dic Date: Thu, 27 Nov 2025 15:46:24 +0100 Message-ID: <20251127144030.317555881@linuxfoundation.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20251127144027.800761504@linuxfoundation.org> References: <20251127144027.800761504@linuxfoundation.org> User-Agent: quilt/0.69 X-stable: review X-Patchwork-Hint: ignore Precedence: bulk X-Mailing-List: stable@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-DKIM: signer='linuxfoundation.org' status='pass' reason='' DKIMCheck: Server passes DKIM test, 0 Spam score X-Spam-Score: 0.2 (/) X-Spam-Report: Spam detection software, running on the system "witcher.mxrouting.net", has performed the tests listed below against this email. Information: https://mxroutedocs.com/directadmin/spamfilters/ --- Content analysis details: (0.2 points) --- pts rule name description ---- ---------------------- ----------------------------------------- 0.0 URIBL_BLOCKED ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [URIs: linuxfoundation.org] 0.0 RCVD_IN_DNSWL_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to DNSWL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#DnsBlocklists-dnsbl-block for more information. [142.0.200.124 listed in list.dnswl.org] 1.5 HEADER_FROM_DIFFERENT_DOMAINS From and EnvelopeFrom 2nd level mail domains are different 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager -0.2 DKIMWL_WL_HIGH DKIMwl.org - High trust sender SpamTally: Final spam score: 2 6.6-stable review patch. If anyone has any objections, please let me know. ------------------ From: Zhiguo Niu [ Upstream commit 39868685c2a94a70762bc6d77dc81d781d05bff5 ] The decompress_io_ctx may be released asynchronously after I/O completion. If this file is deleted immediately after read, and the kworker of processing post_read_wq has not been executed yet due to high workloads, It is possible that the inode(f2fs_inode_info) is evicted and freed before it is used f2fs_free_dic. The UAF case as below: Thread A Thread B - f2fs_decompress_end_io - f2fs_put_dic - queue_work add free_dic work to post_read_wq - do_unlink - iput - evict - call_rcu This file is deleted after read. Thread C kworker to process post_read_wq - rcu_do_batch - f2fs_free_inode - kmem_cache_free inode is freed by rcu - process_scheduled_works - f2fs_late_free_dic - f2fs_free_dic - f2fs_release_decomp_mem read (dic->inode)->i_compress_algorithm This patch store compress_algorithm and sbi in dic to avoid inode UAF. In addition, the previous solution is deprecated in [1] may cause system hang. [1] https://lore.kernel.org/all/c36ab955-c8db-4a8b-a9d0-f07b5f426c3f@kernel.org Cc: Daeho Jeong Fixes: bff139b49d9f ("f2fs: handle decompress only post processing in softirq") Signed-off-by: Zhiguo Niu Signed-off-by: Baocong Liu Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim [ In Linux 6.6.y, the f2fs_vmalloc() function parameters are not related to the f2fs_sb_info structure, the code changes for f2fs_vmalloc() have not been backported. ] Signed-off-by: Bin Lan Signed-off-by: Sasha Levin --- fs/f2fs/compress.c | 38 +++++++++++++++++++------------------- fs/f2fs/f2fs.h | 2 ++ 2 files changed, 21 insertions(+), 19 deletions(-) diff --git a/fs/f2fs/compress.c b/fs/f2fs/compress.c index 3bf7a6b40cbed..df7404214f34e 100644 --- a/fs/f2fs/compress.c +++ b/fs/f2fs/compress.c @@ -209,13 +209,13 @@ static int lzo_decompress_pages(struct decompress_io_ctx *dic) ret = lzo1x_decompress_safe(dic->cbuf->cdata, dic->clen, dic->rbuf, &dic->rlen); if (ret != LZO_E_OK) { - f2fs_err_ratelimited(F2FS_I_SB(dic->inode), + f2fs_err_ratelimited(dic->sbi, "lzo decompress failed, ret:%d", ret); return -EIO; } if (dic->rlen != PAGE_SIZE << dic->log_cluster_size) { - f2fs_err_ratelimited(F2FS_I_SB(dic->inode), + f2fs_err_ratelimited(dic->sbi, "lzo invalid rlen:%zu, expected:%lu", dic->rlen, PAGE_SIZE << dic->log_cluster_size); return -EIO; @@ -289,13 +289,13 @@ static int lz4_decompress_pages(struct decompress_io_ctx *dic) ret = LZ4_decompress_safe(dic->cbuf->cdata, dic->rbuf, dic->clen, dic->rlen); if (ret < 0) { - f2fs_err_ratelimited(F2FS_I_SB(dic->inode), + f2fs_err_ratelimited(dic->sbi, "lz4 decompress failed, ret:%d", ret); return -EIO; } if (ret != PAGE_SIZE << dic->log_cluster_size) { - f2fs_err_ratelimited(F2FS_I_SB(dic->inode), + f2fs_err_ratelimited(dic->sbi, "lz4 invalid ret:%d, expected:%lu", ret, PAGE_SIZE << dic->log_cluster_size); return -EIO; @@ -423,7 +423,7 @@ static int zstd_init_decompress_ctx(struct decompress_io_ctx *dic) stream = zstd_init_dstream(max_window_size, workspace, workspace_size); if (!stream) { - f2fs_err_ratelimited(F2FS_I_SB(dic->inode), + f2fs_err_ratelimited(dic->sbi, "%s zstd_init_dstream failed", __func__); vfree(workspace); return -EIO; @@ -459,14 +459,14 @@ static int zstd_decompress_pages(struct decompress_io_ctx *dic) ret = zstd_decompress_stream(stream, &outbuf, &inbuf); if (zstd_is_error(ret)) { - f2fs_err_ratelimited(F2FS_I_SB(dic->inode), + f2fs_err_ratelimited(dic->sbi, "%s zstd_decompress_stream failed, ret: %d", __func__, zstd_get_error_code(ret)); return -EIO; } if (dic->rlen != outbuf.pos) { - f2fs_err_ratelimited(F2FS_I_SB(dic->inode), + f2fs_err_ratelimited(dic->sbi, "%s ZSTD invalid rlen:%zu, expected:%lu", __func__, dic->rlen, PAGE_SIZE << dic->log_cluster_size); @@ -726,7 +726,7 @@ static void f2fs_release_decomp_mem(struct decompress_io_ctx *dic, void f2fs_decompress_cluster(struct decompress_io_ctx *dic, bool in_task) { - struct f2fs_sb_info *sbi = F2FS_I_SB(dic->inode); + struct f2fs_sb_info *sbi = dic->sbi; struct f2fs_inode_info *fi = F2FS_I(dic->inode); const struct f2fs_compress_ops *cops = f2fs_cops[fi->i_compress_algorithm]; @@ -799,7 +799,7 @@ void f2fs_end_read_compressed_page(struct page *page, bool failed, { struct decompress_io_ctx *dic = (struct decompress_io_ctx *)page_private(page); - struct f2fs_sb_info *sbi = F2FS_I_SB(dic->inode); + struct f2fs_sb_info *sbi = dic->sbi; dec_page_count(sbi, F2FS_RD_DATA); @@ -1579,14 +1579,13 @@ static inline bool allow_memalloc_for_decomp(struct f2fs_sb_info *sbi, static int f2fs_prepare_decomp_mem(struct decompress_io_ctx *dic, bool pre_alloc) { - const struct f2fs_compress_ops *cops = - f2fs_cops[F2FS_I(dic->inode)->i_compress_algorithm]; + const struct f2fs_compress_ops *cops = f2fs_cops[dic->compress_algorithm]; int i; - if (!allow_memalloc_for_decomp(F2FS_I_SB(dic->inode), pre_alloc)) + if (!allow_memalloc_for_decomp(dic->sbi, pre_alloc)) return 0; - dic->tpages = page_array_alloc(F2FS_I_SB(dic->inode), dic->cluster_size); + dic->tpages = page_array_alloc(dic->sbi, dic->cluster_size); if (!dic->tpages) return -ENOMEM; @@ -1616,10 +1615,9 @@ static int f2fs_prepare_decomp_mem(struct decompress_io_ctx *dic, static void f2fs_release_decomp_mem(struct decompress_io_ctx *dic, bool bypass_destroy_callback, bool pre_alloc) { - const struct f2fs_compress_ops *cops = - f2fs_cops[F2FS_I(dic->inode)->i_compress_algorithm]; + const struct f2fs_compress_ops *cops = f2fs_cops[dic->compress_algorithm]; - if (!allow_memalloc_for_decomp(F2FS_I_SB(dic->inode), pre_alloc)) + if (!allow_memalloc_for_decomp(dic->sbi, pre_alloc)) return; if (!bypass_destroy_callback && cops->destroy_decompress_ctx) @@ -1654,6 +1652,8 @@ struct decompress_io_ctx *f2fs_alloc_dic(struct compress_ctx *cc) dic->magic = F2FS_COMPRESSED_PAGE_MAGIC; dic->inode = cc->inode; + dic->sbi = sbi; + dic->compress_algorithm = F2FS_I(cc->inode)->i_compress_algorithm; atomic_set(&dic->remaining_pages, cc->nr_cpages); dic->cluster_idx = cc->cluster_idx; dic->cluster_size = cc->cluster_size; @@ -1697,7 +1697,8 @@ static void f2fs_free_dic(struct decompress_io_ctx *dic, bool bypass_destroy_callback) { int i; - struct f2fs_sb_info *sbi = F2FS_I_SB(dic->inode); + /* use sbi in dic to avoid UFA of dic->inode*/ + struct f2fs_sb_info *sbi = dic->sbi; f2fs_release_decomp_mem(dic, bypass_destroy_callback, true); @@ -1740,8 +1741,7 @@ static void f2fs_put_dic(struct decompress_io_ctx *dic, bool in_task) f2fs_free_dic(dic, false); } else { INIT_WORK(&dic->free_work, f2fs_late_free_dic); - queue_work(F2FS_I_SB(dic->inode)->post_read_wq, - &dic->free_work); + queue_work(dic->sbi->post_read_wq, &dic->free_work); } } } diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h index ab2ddd09d8131..406243395b943 100644 --- a/fs/f2fs/f2fs.h +++ b/fs/f2fs/f2fs.h @@ -1493,6 +1493,7 @@ struct compress_io_ctx { struct decompress_io_ctx { u32 magic; /* magic number to indicate page is compressed */ struct inode *inode; /* inode the context belong to */ + struct f2fs_sb_info *sbi; /* f2fs_sb_info pointer */ pgoff_t cluster_idx; /* cluster index number */ unsigned int cluster_size; /* page count in cluster */ unsigned int log_cluster_size; /* log of cluster size */ @@ -1533,6 +1534,7 @@ struct decompress_io_ctx { bool failed; /* IO error occurred before decompression? */ bool need_verity; /* need fs-verity verification after decompression? */ + unsigned char compress_algorithm; /* backup algorithm type */ void *private; /* payload buffer for specified decompression algorithm */ void *private2; /* extra payload buffer */ struct work_struct verity_work; /* work to verify the decompressed pages */ -- 2.51.0 From - Thu Nov 27 14:52:45 2025 X-Mozilla-Status: 0001 X-Mozilla-Status2: 00000000 Return-Path: Delivered-To: hi@josie.lol Received: from witcher.mxrouting.net by witcher.mxrouting.net with LMTP id 4IDsB7plKGl7URAAYBR5ng (envelope-from ) for ; Thu, 27 Nov 2025 14:52:42 +0000 Return-path: Envelope-to: hi@josie.lol Delivery-date: Thu, 27 Nov 2025 14:52:42 +0000 Received: from ams.mirrors.kernel.org ([213.196.21.55]) by witcher.mxrouting.net with esmtps (TLS1.3) tls TLS_AES_256_GCM_SHA384 (Exim 4.98) (envelope-from ) id 1vOdMP-00000004XnS-3AeR for hi@josie.lol; Thu, 27 Nov 2025 14:52:42 +0000 Received: from smtp.subspace.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.mirrors.kernel.org (Postfix) with ESMTPS id 062B334B9ED for ; Thu, 27 Nov 2025 14:52:40 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 6FD95296BD1; Thu, 27 Nov 2025 14:52:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b="PGwYsz7H" X-Original-To: stable@vger.kernel.org Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4756E28C84D; Thu, 27 Nov 2025 14: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=1764255158; cv=none; b=EfUHDeDaepVqn9iHA7zz/p7xBQ1F/Mb2ZfJaIsFQMAAZ4V85LtvW29fm8GVIAVL9rRaKaCQfre5okopnVSuguwxMfnx2uHvOixnVI5BSKK/DEBYBBdHKfuTbqDsfTiLN8If5is+oHDNI83SnDMUrHsI+azCNZQpnFGSqRHd7KA0= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764255158; c=relaxed/simple; bh=VR2dG8rlRXZGAvV0COHY/ioBmIuwM1OK+2lBs55Quos=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZDVuHtWDlyRpbTa9Ml+SkRzuaBWcas6mxmHtiwKfreZDQ4BcIqS99vrjFbgP4VsJHMi3iO5vnBgyi2btgntVcx4s9H0I/8eq88eDv6cIyiIFYEM4zR2HwruFHi73ycOek/oE+3aem0PMSfN+JFkd1w+Wl6kuweBZLlGCOLNXUBQ= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b=PGwYsz7H; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7892BC4CEF8; Thu, 27 Nov 2025 14:52:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1764255157; bh=VR2dG8rlRXZGAvV0COHY/ioBmIuwM1OK+2lBs55Quos=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=PGwYsz7H6kON89upc8ZkZrBsY3Mtwrrx8Sihg3GshmWO6pkgBOyerQkS3kDlwSf84 AaCA41DfUk8F+goHtxLsFFMbSTAf5YORG8Q7HPPfz66Z4wpjVZq6AYjHnWS43Yw9/B OSDTXbMve0xW31gTYbkT7Cj0TqVRGPJTj5/z9B3g= From: Greg Kroah-Hartman To: stable@vger.kernel.org Cc: Greg Kroah-Hartman , patches@lists.linux.dev, Quentin Schulz , Dragan Simic , Heiko Stuebner Subject: [PATCH 6.12 007/112] arm64: dts: rockchip: include rk3399-base instead of rk3399 in rk3399-op1 Date: Thu, 27 Nov 2025 15:45:09 +0100 Message-ID: <20251127144032.984191239@linuxfoundation.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20251127144032.705323598@linuxfoundation.org> References: <20251127144032.705323598@linuxfoundation.org> User-Agent: quilt/0.69 X-stable: review X-Patchwork-Hint: ignore Precedence: bulk X-Mailing-List: stable@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-DKIM: signer='linuxfoundation.org' status='pass' reason='' DKIMCheck: Server passes DKIM test, 0 Spam score X-Spam-Score: 0.2 (/) X-Spam-Report: Spam detection software, running on the system "witcher.mxrouting.net", has performed the tests listed below against this email. Information: https://mxroutedocs.com/directadmin/spamfilters/ --- Content analysis details: (0.2 points) --- pts rule name description ---- ---------------------- ----------------------------------------- 0.0 URIBL_BLOCKED ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [URIs: linuxfoundation.org] 1.5 HEADER_FROM_DIFFERENT_DOMAINS From and EnvelopeFrom 2nd level mail domains are different 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager -0.2 DKIMWL_WL_HIGH DKIMwl.org - High trust sender SpamTally: Final spam score: 2 6.12-stable review patch. If anyone has any objections, please let me know. ------------------ From: Quentin Schulz commit 08d70143e3033d267507deb98a5fd187df3e6640 upstream. In commit 296602b8e5f7 ("arm64: dts: rockchip: Move RK3399 OPPs to dtsi files for SoC variants"), everything shared between variants of RK3399 was put into rk3399-base.dtsi and the rest in variant-specific DTSI, such as rk3399-t, rk3399-op1, rk3399, etc. Therefore, the variant-specific DTSI should include rk3399-base.dtsi and not another variant's DTSI. rk3399-op1 wrongly includes rk3399 (a variant) DTSI instead of rk3399-base DTSI, let's fix this oversight by including the intended DTSI. Fortunately, this had no impact on the resulting DTB since all nodes were named the same and all node properties were overridden in rk3399-op1.dtsi. This was checked by doing a checksum of rk3399-op1 DTBs before and after this commit. No intended change in behavior. Fixes: 296602b8e5f7 ("arm64: dts: rockchip: Move RK3399 OPPs to dtsi files for SoC variants") Cc: stable@vger.kernel.org Signed-off-by: Quentin Schulz Reviewed-by: Dragan Simic Link: https://patch.msgid.link/20251029-rk3399-op1-include-v1-1-2472ee60e7f8@cherry.de Signed-off-by: Heiko Stuebner Signed-off-by: Greg Kroah-Hartman --- arch/arm64/boot/dts/rockchip/rk3399-op1.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/rockchip/rk3399-op1.dtsi b/arch/arm64/boot/dts/rockchip/rk3399-op1.dtsi index c4f4f1ff6117..9da6fd82e46b 100644 --- a/arch/arm64/boot/dts/rockchip/rk3399-op1.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk3399-op1.dtsi @@ -3,7 +3,7 @@ * Copyright (c) 2016-2017 Fuzhou Rockchip Electronics Co., Ltd */ -#include "rk3399.dtsi" +#include "rk3399-base.dtsi" / { cluster0_opp: opp-table-0 { -- 2.52.0 From - Thu Nov 27 14:52:48 2025 X-Mozilla-Status: 0001 X-Mozilla-Status2: 00000000 Return-Path: Delivered-To: hi@josie.lol Received: from witcher.mxrouting.net by witcher.mxrouting.net with LMTP id CFzmCr1lKGkrsA0AYBR5ng (envelope-from ) for ; Thu, 27 Nov 2025 14:52:45 +0000 Return-path: Envelope-to: hi@josie.lol Delivery-date: Thu, 27 Nov 2025 14:52:45 +0000 Received: from dfw.mirrors.kernel.org ([142.0.200.124]) by witcher.mxrouting.net with esmtps (TLS1.3) tls TLS_AES_256_GCM_SHA384 (Exim 4.98) (envelope-from ) id 1vOdMS-00000004Xxr-45hu for hi@josie.lol; Thu, 27 Nov 2025 14:52:45 +0000 Received: from smtp.subspace.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.mirrors.kernel.org (Postfix) with ESMTPS id 0188B4EBB2E for ; Thu, 27 Nov 2025 14:50:36 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 5005327703C; Thu, 27 Nov 2025 14:50:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b="p079ySaT" X-Original-To: stable@vger.kernel.org Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2756225BEE8; Thu, 27 Nov 2025 14:50: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=1764255035; cv=none; b=pG3X7xDctOaOXNRUFyDRgfzz10UAYqUB276040RCSlaaG58ypCPmWJS0r5+DfUqh1ehHkoXsqVUfUVLUGmAFVfghOJB595efgjJ6F1f/HNGy2nqjG8oEoRNfzywEeEX18rdxLgDjnBHHgUUBY8u3WI4P3QPa5+Pb2Cr/Fd09zdQ= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764255035; c=relaxed/simple; bh=rRC94YvnbNkWgTzkmsJIiZKRaTHPVsFE2bc48W4lpyc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=srZN0aI3bWRTBDif8bWVzycoHarFEm/9NVIQ/hE8LM1VBJxTM5ruqXhnwyuiTEigh2gDir7GGgb9RvOWDPAn6JI2L+JcjZPVEGHaDSAw6YCvyF+xUk/xpaUyvHK88PG1oArJm6XCOI3b5rj4cgOQ+RXQiisb8dJZ3hNb38zAJ7E= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b=p079ySaT; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id A4CFFC4CEF8; Thu, 27 Nov 2025 14:50:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1764255035; bh=rRC94YvnbNkWgTzkmsJIiZKRaTHPVsFE2bc48W4lpyc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=p079ySaTgd+hWfRrQMdcj+VLxZY3xsLeUQefL1tGRAPQnBEWlCH/3cv2OaWyyN8Ct hv27FVNFll/XUCQSeVn8SKxqDNbGrnohr1pRbAVc+5gyVuzVjqdKRT5iuacBpTAS9G ynIVtEjBGovb33wnn+t5CVyepAyr60x5vkFS+798= From: Greg Kroah-Hartman To: stable@vger.kernel.org Cc: Greg Kroah-Hartman , patches@lists.linux.dev, Henrique Carvalho Subject: [PATCH 6.6 72/86] smb: client: fix incomplete backport in cfids_invalidation_worker() Date: Thu, 27 Nov 2025 15:46:28 +0100 Message-ID: <20251127144030.461877904@linuxfoundation.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20251127144027.800761504@linuxfoundation.org> References: <20251127144027.800761504@linuxfoundation.org> User-Agent: quilt/0.69 X-stable: review X-Patchwork-Hint: ignore Precedence: bulk X-Mailing-List: stable@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-DKIM: signer='linuxfoundation.org' status='pass' reason='' DKIMCheck: Server passes DKIM test, 0 Spam score X-Spam-Score: 0.2 (/) X-Spam-Report: Spam detection software, running on the system "witcher.mxrouting.net", has performed the tests listed below against this email. Information: https://mxroutedocs.com/directadmin/spamfilters/ --- Content analysis details: (0.2 points) --- pts rule name description ---- ---------------------- ----------------------------------------- 0.0 URIBL_BLOCKED ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [URIs: linuxfoundation.org] 0.0 RCVD_IN_DNSWL_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to DNSWL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#DnsBlocklists-dnsbl-block for more information. [142.0.200.124 listed in list.dnswl.org] 1.5 HEADER_FROM_DIFFERENT_DOMAINS From and EnvelopeFrom 2nd level mail domains are different 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager -0.2 DKIMWL_WL_HIGH DKIMwl.org - High trust sender SpamTally: Final spam score: 2 6.6-stable review patch. If anyone has any objections, please let me know. ------------------ From: Henrique Carvalho The previous commit bdb596ceb4b7 ("smb: client: fix potential UAF in smb2_close_cached_fid()") was an incomplete backport and missed one kref_put() call in cfids_invalidation_worker() that should have been converted to close_cached_dir(). Fixes: cb52d9c86d70 ("smb: client: fix potential UAF in smb2_close_cached_fid()")" Signed-off-by: Henrique Carvalho Signed-off-by: Greg Kroah-Hartman --- fs/smb/client/cached_dir.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- a/fs/smb/client/cached_dir.c +++ b/fs/smb/client/cached_dir.c @@ -727,7 +727,7 @@ static void cfids_invalidation_worker(st list_for_each_entry_safe(cfid, q, &entry, entry) { list_del(&cfid->entry); /* Drop the ref-count acquired in invalidate_all_cached_dirs */ - kref_put(&cfid->refcount, smb2_close_cached_fid); + close_cached_dir(cfid); } } From - Thu Nov 27 14:52:52 2025 X-Mozilla-Status: 0001 X-Mozilla-Status2: 00000000 Return-Path: Delivered-To: hi@josie.lol Received: from witcher.mxrouting.net by witcher.mxrouting.net with LMTP id kGIDCsFlKGkrsA0AYBR5ng (envelope-from ) for ; Thu, 27 Nov 2025 14:52:49 +0000 Return-path: Envelope-to: hi@josie.lol Delivery-date: Thu, 27 Nov 2025 14:52:49 +0000 Received: from dfw.mirrors.kernel.org ([142.0.200.124]) by witcher.mxrouting.net with esmtps (TLS1.3) tls TLS_AES_256_GCM_SHA384 (Exim 4.98) (envelope-from ) id 1vOdMW-00000004Y7z-3xHg for hi@josie.lol; Thu, 27 Nov 2025 14:52:49 +0000 Received: from smtp.subspace.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.mirrors.kernel.org (Postfix) with ESMTPS id B4E8E4EBD49 for ; Thu, 27 Nov 2025 14:50:39 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 0E7732882C9; Thu, 27 Nov 2025 14:50:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b="KiWLJM9b" X-Original-To: stable@vger.kernel.org Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DB9E527F18B; Thu, 27 Nov 2025 14: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=1764255037; cv=none; b=m5YJX3u4aknwAX/pu2zfiMpEu7ieW+NJJvy9weDvHkDh/YoqeZbC7e6EkcvaS7JuoeL1TH1H+Q9ggY9Jf+ZmSvfW4l//x86bVKj81OnAlQMWDE618j0F6zWDKAZ6bP9D09Y+wnaejLlqyzbPzDyNJ8nlb5BpKtdsls/0i3P+dOg= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kerned":"/home/josie/development/irc-now/.claude/worktrees/bot-service","sessionId":"8c48156f-d501-4979-864d-e6d80d34bbe2","version":"2.1.63","gitBranch":"worktree-bot-service","slug":"keen-riding-sketch","type":"progress","data":{"type":"bash_progress","output":"","fullOutput":"","elapsedTimeSeconds":5,"totalLines":0,"totalBytes":0,"taskId":"b1tuc7rhn","timeoutMs":30000},"toolUseID":"bash-progress-2","parentToolUseID":"toolu_01N9x5FMMwNqRTVnkuutfRRU","uuid":"e2045e7c-4d18-447d-922f-d04e8025dec9","timestamp":"2026-03-06T08:30:02.968Z"} {"parentUuid":"e2045e7c-4d18-447d-922f-d04e8025dec9","isSidechain":false,"userType":"external","cwd":"/home/josie/development/irc-now/.claude/worktrees/bot-service","sessionId":"8c48156f-d501-4979-864d-e6d80d34bbe2","version":"2.1.63","gitBranch":"worktree-bot-service","slug":"keen-riding-sketch","type":"progress","data":{"type":"bash_progress","output":"","fullOutput":"","elapsedTimeSeconds":6,"totalLines":0,"totalBytes":0,"taskId":"b1tuc7rhn","timeoutMs":30000},"toolUseID":"bash-progress-3","parentToolUseID":"toolu_01N9x5FMMwNqRTVnkuutfRRU","uuid":"85b93640-5548-4328-bbe2-02e4704ffd0d","timestamp":"2026-03-06T08:30:03.972Z"} {"type":"queue-operation","operation":"enqueue","timestamp":"2026-03-06T08:30:04.721Z","sessionId":"8c48156f-d501-4979-864d-e6d80d34bbe2","content":"\nb7561h78t\ntoolu_01R7n16LcdJEoVYk59pHEzPt\n/tmp/claude-1000/-home-josie-development-irc-now--claude-worktrees-bot-service/tasks/b7561h78t.output\ncompleted\nBackground command \"Build and deploy pics\" completed (exit code 0)\n\nRead the output file to retrieve the result: /tmp/claude-1000/-home-josie-development-irc-now--claude-worktrees-bot-service/tasks/b7561h78t.output"} {"parentUuid":"85b93640-5548-4328-bbe2-02e4704ffd0d","isSidechain":false,"userType":"external","cwd":"/home/josie/development/irc-now/.claude/worktrees/bot-service","sessionId":"8c48156f-d501-4979-864d-e6d80d34bbe2","version":"2.1.63","gitBranch":"worktree-bot-service","slug":"keen-riding-sketch","type":"progress","data":{"type":"bash_progress","output":"","fullOutput":"","elapsedTimeSeconds":7,"totalLines":0,"totalBytes":0,"taskId":"b1tuc7rhn","timeoutMs":30000},"toolUseID":"bash-progress-4","parentToolUseID":"toolu_01N9x5FMMwNqRTVnkuutfRRU","uuid":"52933223-dd77-4f5f-a0e3-954004894cd4","timestamp":"2026-03-06T08:30:04.973Z"} {"type":"queue-operation","operation":"enqueue","timestamp":"2026-03-06T08:30:05.715Z","sessionId":"8c48156f-d501-4979-864d-e6d80d34bbe2","content":"\nb6fongh1k\ntoolu_01GxypEDH82X8A1C3rGpu4aC\n/tmp/claude-1000/-home-josie-development-irc-now--claude-worktrees-bot-service/tasks/b6fongh1k.output\ncompleted\nBackground command \"Build and deploy txt\" completed (exit code 0)\n\nRead the output file to retrieve the result: /tmp/claude-1000/-home-josie-development-irc-now--claude-worktrees-bot-service/tasks/b6fongh1k.output"} {"parentUuid":"52933223-dd77-4f5f-a0e3-954004894cd4","isSidechain":false,"userType":"external","cwd":"/home/josie/development/irc-now/.claude/worktrees/bot-service","sessionId":"8c48156f-d501-4979-864d-e6d80d34bbe2","version":"2.1.63","gitBranch":"worktree-bot-service","slug":"keen-riding-sketch","type":"progress","data":{"type":"bash_progress","output":"","fullOutput":"","elapsedTimeSeconds":8,"totalLines":0,"totalBytes":0,"taskId":"b1tuc7rhn","timeoutMs":30000},"toolUseID":"bash-progress-5","parentToolUseID":"toolu_01N9x5FMMwNqRTVnkuutfRRU","uuid":"a9b70f09-78c6-44e9-a72c-6f26c94f72c9","timestamp":"2026-03-06T08:30:05.974Z"} {"parentUuid":"a9b70f09-78c6-44e9-a72c-6f26c94f72c9","isSidechain":false,"userType":"external","cwd":"/home/josie/development/irc-now/.claude/worktrees/bot-service","sessionId":"8c48156f-d501-4979-864d-e6d80d34bbe2","version":"2.1.63","gitBranch":"worktree-bot-service","slug":"keen-riding-sketch","type":"progress","data":{"type":"bash_progress","output":"","fullOutput":"","elapsedTimeSeconds":9,"totalLines":0,"totalBytes":0,"taskId":"b1tuc7rhn","timeoutMs":30000},"toolUseID":"bash-progress-6","parentToolUseID":"toolu_01N9x5FMMwNqRTVnkuutfRRU","uuid":"c351ee74-9cfd-4cef-b7d2-1898acbe79e7","timestamp":"2026-03-06T08:30:06.975Z"} {"parentUuid":"c351ee74-9cfd-4cef-b7d2-1898acbe79e7","isSidechain":false,"userType":"external","cwd":"/home/josie/development/irc-now/.claude/worktrees/bot-service","sessionId":"8c48156f-d501-4979-864d-e6d80d34bbe2","version":"2.1.63","gitBranch":"worktree-bot-service","slug":"keen-riding-sketch","type":"progress","data":{"type":"bash_progress","output":"","fullOutput":"","elapsedTimeSeconds":10,"totalLines":0,"totalBytes":0,"taskId":"b1tuc7rhn","timeoutMs":30000},"toolUseID":"bash-progress-7","parentToolUseID":"toolu_01N9x5FMMwNqRTVnkuutfRRU","uuid":"f6397535-7454-4f41-aa9a-f1f4ef588d53","timestamp":"2026-03-06T08:30:07.976Z"} {"parentUuid":"f6397535-7454-4f41-aa9a-f1f4ef588d53","isSidechain":false,"userType":"external","cwd":"/home/josie/development/irc-now/.claude/worktrees/bot-service","sessionId":"8c48156f-d501-4979-864d-e6d80d34bbe2","version":"2.1.63","gitBranch":"worktree-bot-service","slug":"keen-riding-sketch","type":"progress","data":{"type":"hook_progress","hookEvent":"PostToolUse","hookName":"PostToolUse:Bash","command":"python3 ${CLAUDE_PLUGIN_ROOT}/hooks/posttooluse.py"},"parentToolUseID":"toolu_01N9x5FMMwNqRTVnkuutfRRU","toolUseID":"toolu_01N9x5FMMwNqRTVnkuutfRRU","timestamp":"2026-03-06T08:30:08.407Z","uuid":"d5bd6eec-5c41-4919-99c6-8ad1c920d514"} {"parentUuid":"a1196d29-32e4-4c77-b4c6-8428c4f81f6c","isSidechain":false,"userType":"external","cwd":"/home/josie/development/irc-now/.claude/worktrees/bot-service","sessionId":"8c48156f-d501-4979-864d-e6d80d34bbe2","version":"2.1.63","gitBranch":"worktree-bot-service","slug":"keen-riding-sketch","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01N9x5FMMwNqRTVnkuutfRRU","type":"tool_result","content":"Warning: would violate PodSecurity \"restricted:latest\": host namespaces (hostPID=true), privileged (container \"setup\" must not set securityContext.privileged=true), allowPrivilegeEscalation != false (container \"setup\" must set securityContext.allowPrivilegeEscalation=false), unrestricted capabilities (container \"setup\" must set securityContext.capabilities.drop=[\"ALL\"]), runAsNonRoot != true (pod or container \"setup\" must set securityContext.runAsNonRoot=true)\npod/host-setup created","is_error":false}]},"uuid":"96eefe76-de78-4015-a913-4fe5c842c5e9","timestamp":"2026-03-06T08:30:08.406Z","toolUseResult":{"stdout":"Warning: would violate PodSecurity \"restricted:latest\": host namespaces (hostPID=true), privileged (container \"setup\" must not set securityContext.privileged=true), allowPrivilegeEscalation != false (container \"setup\" must set securityContext.allowPrivilegeEscalation=false), unrestricted capabilities (container \"setup\" must set securityContext.capabilities.drop=[\"ALL\"]), runAsNonRoot != true (pod or container \"setup\" must set securityContext.runAsNonRoot=true)\npod/host-setup created","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"a1196d29-32e4-4c77-b4c6-8428c4f81f6c"} {"type":"queue-operation","operation":"remove","timestamp":"2026-03-06T08:30:08.545Z","sessionId":"8c48156f-d501-4979-864d-e6d80d34bbe2"} {"type":"queue-operation","operation":"remove","timestamp":"2026-03-06T08:30:08.545Z","sessionId":"8c48156f-d501-4979-864d-e6d80d34bbe2"} {"parentUuid":"96eefe76-de78-4015-a913-4fe5c842c5e9","isSidechain":false,"userType":"external","cwd":"/home/josie/development/irc-now/.claude/worktrees/bot-service","sessionId":"8c48156f-d501-4979-864d-e6d80d34bbe2","version":"2.1.63","gitBranch":"worktree-bot-service","slug":"keen-riding-sketch","message":{"model":"claude-opus-4-6","id":"msg_01R7sHRzdZohq2vhzWbyUQkh","type":"message","role":"assistant","content":[{"type":"text","text":"Pics and txt builds completed. Let me check if the pod ran and the web-api build status."}],"stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":900,"cache_read_input_tokens":101828,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":900},"output_tokens":2,"service_tier":"standard","inference_geo":"not_available"}},"requestId":"req_011CYmWj3ZqDy9mG9m7BBTxq","type":"assistant","uuid":"1674ebfc-dc91-4154-8ec8-f8fc31bc615a","timestamp":"2026-03-06T08:30:12.175Z"} {"parentUuid":"1674ebfc-dc91-4154-8ec8-f8fc31bc615a","isSidechain":false,"userType":"external","cwd":"/home/josie/development/irc-now/.claude/worktrees/bot-service","sessionId":"8c48156f-d501-4979-864d-e6d80d34bbe2","version":"2.1.63","gitBranch":"worktree-bot-service","slug":"keen-riding-sketch","message":{"model":"claude-opus-4-6","id":"msg_01R7sHRzdZohq2vhzWbyUQkh","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01CkAvyEG3ZNJ4rHfkz63Qxz","name":"Bash","input":{"command":"oc logs host-setup -n irc-josie-cloud 2>&1 && oc delete pod host-setup -n irc-josie-cloud 2>&1","description":"Check host-setup pod output and clean up","timeout":30000},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":900,"cache_read_input_tokens":101828,"output_tokens":158,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":900,"ephemeral_5m_input_tokens":0},"inference_geo":"","iterations":[],"speed":"standard"}},"requestId":"req_011CYmWj3ZqDy9mG9m7BBTxq","type":"assistant","uuid":"3498371e-fa7d-4d96-a77e-ef25b402c38b","timestamp":"2026-03-06T08:30:13.368Z"} {"parentUuid":"3498371e-fa7d-4d96-a77e-ef25b402c38b","isSidechain":false,"userType":"external","cwd":"/home/josie/development/irc-now/.claude/worktrees/bot-service","sessionId":"8c48156f-d501-4979-864d-e6d80d34bbe2","version":"2.1.63","gitBranch":"worktree-bot-service","slug":"keen-riding-sketch","type":"progress","data":{"type":"hook_progress","hookEvent":"PreToolUse","hookName":"PreToolUse:Bash","command":"python3 ${CLAUDE_PLUGIN_ROOT}/hooks/pretooluse.py"},"toolUseID":"toolu_01CkAvyEG3ZNJ4rHfkz63Qxz","parentToolUseID":"toolu_01CkAvyEG3ZNJ4rHfkz63Qxz","uuid":"29286729-d5b4-468b-8f88-6efe20fa8069","timestamp":"2026-03-06T08:30:13.370Z"} {"parentUuid":"29286729-d5b4-468b-8f88-6efe20fa8069","isSidechain":false,"userType":"external","cwd":"/home/josie/development/irc-now/.claude/worktrees/bot-service","sessionId":"8c48156f-d501-4979-864d-e6d80d34bbe2","version":"2.1.63","gitBranch":"worktree-bot-service","slug":"keen-riding-sketch","type":"progress","data":{"type":"bash_progress","output":"","fullOutput":"","elapsedTimeSeconds":3,"totalLines":0,"totalBytes":0,"taskId":"b1scenngt","timeoutMs":30000},"toolUseID":"bash-progress-0","parentToolUseID":"toolu_01CkAvyEG3ZNJ4rHfkz63Qxz","uuid":"a45ff9af-5601-4f5d-9729-0b50f29d0a6b","timestamp":"2026-03-06T08:30:21.498Z"} {"parentUuid":"3498371e-fa7d-4d96-a77e-ef25b402c38b","isSidechain":false,"userType":"external","cwd":"/home/josie/development/irc-now/.claude/worktrees/bot-service","sessionId":"8c48156f-d501-4979-864d-e6d80d34bbe2","version":"2.1.63","gitBranch":"worktree-bot-service","slug":"keen-riding-sketch","type":"user","message":{"role":"user","content":[{"type":"tool_result","content":"Exit code 1\nError from server (BadRequest): container \"setup\" in pod \"host-setup\" is waiting to start: ContainerCreating\n\nError from server (BadRequest): container \"setup\" in pod \"host-setup\" is waiting to start: ContainerCreating","is_error":true,"tool_use_id":"toolu_01CkAvyEG3ZNJ4rHfkz63Qxz"}]},"uuid":"41130b1e-54ad-4454-b917-37f3e1ec52dd","timestamp":"2026-03-06T08:30:21.732Z","toolUseResult":"Error: Exit code 1\nError from server (BadRequest): container \"setup\" in pod \"host-setup\" is waiting to start: ContainerCreating\n\nError from server (BadRequest): container \"setup\" in pod \"host-setup\" is waiting to start: ContainerCreating","sourceToolAssistantUUID":"3498371e-fa7d-4d96-a77e-ef25b402c38b"} {"parentUuid":"41130b1e-54ad-4454-b917-37f3e1ec52dd","isSidechain":false,"userType":"external","cwd":"/home/josie/development/irc-now/.claude/worktrees/bot-service","sessionId":"8c48156f-d501-4979-864d-e6d80d34bbe2","version":"2.1.63","gitBranch":"worktree-bot-service","slug":"keen-riding-sketch","message":{"model":"claude-opus-4-6","id":"msg_01AeWNksKkHn45gZixnxAcpq","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_016nE3G7VzwH5M42gW9qnhDU","name":"Bash","input":{"command":"oc wait pod/host-setup -n irc-josie-cloud --for=condition=Ready --timeout=30s 2>&1 || true && oc get pod host-setup -n irc-josie-cloud --no-headers 2>&1","description":"Wait for host-setup pod","timeout":45000},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":238,"cache_read_input_tokens":102728,"output_tokens":151,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":238,"ephemeral_5m_input_tokens":0},"inference_geo":"","iterations":[],"speed":"standard"}},"requestId":"req_011CYmWk2LwCuocMCqk4vZpv","type":"assistant","uuid":"d987d901-5123-419e-ac7a-45ff6fb824e1","timestamp":"2026-03-06T08:30:25.567Z"} {"parentUuid":"d987d901-5123-419e-ac7a-45ff6fb824e1","isSidechain":false,"userType":"external","cwd":"/home/josie/development/irc-now/.claude/worktrees/bot-service","sessionId":"8c48156f-d501-4979-864d-e6d80d34bbe2","version":"2.1.63","gitBranch":"worktree-bot-service","slug":"keen-riding-sketch","type":"progress","data":{"type":"hook_progress","hookEvent":"PreToolUse","hookName":"PreToolUse:Bash","command":"python3 ${CLAUDE_PLUGIN_ROOT}/hooks/pretooluse.py"},"toolUseID":"toolu_016nE3G7VzwH5M42gW9qnhDU","parentToolUseID":"toolu_016nE3G7VzwH5M42gW9qnhDU","uuid":"71f434d9-bc6d-4767-9cb8-7f3f4364c27e","timestamp":"2026-03-06T08:30:25.570Z"} {"parentUuid":"71f434d9-bc6d-4767-9cb8-7f3f4364c27e","isSidechain":false,"userType":"external","cwd":"/home/josie/development/irc-now/.claude/worktrees/bot-service","sessionId":"8c48156f-d501-4979-864d-e6d80d34bbe2","version":"2.1.63","gitBranch":"worktree-bot-service","slug":"keen-riding-sketch","type":"progress","data":{"type":"bash_progress","output":"","fullOutput":"","elapsedTimeSeconds":3,"totalLines":0,"totalBytes":0,"taskId":"b8a3f5j80","timeoutMs":45000},"toolUseID":"bash-progress-0","parentToolUseID":"toolu_016nE3G7VzwH5M42gW9qnhDU","uuid":"f2d3226b-73e4-444e-b776-b856ef7bd7ec","timestamp":"2026-03-06T08:30:29.988Z"} {"parentUuid":"f2d3226b-73e4-444e-b776-b856ef7bd7ec","isSidechain":false,"userType":"external","cwd":"/home/josie/development/irc-now/.claude/worktrees/bot-service","sessionId":"8c48156f-d501-4979-864d-e6d80d34bbe2","version":"2.1.63","gitBranch":"worktree-bot-service","slug":"keen-riding-sketch","type":"progress","data":{"type":"bash_progress","output":"","fullOutput":"","elapsedTimeSeconds":4,"totalLines":0,"totalBytes":0,"taskId":"b8a3f5j80","timeoutMs":45000},"toolUseID":"bash-progress-1","parentToolUseID":"toolu_016nE3G7VzwH5M42gW9qnhDU","uuid":"c1de4ff1-8696-4eac-aa74-9c94c1b61ff9","timestamp":"2026-03-06T08:30:30.988Z"} {"parentUuid":"c1de4ff1-8696-4eac-aa74-9c94c1b61ff9","isSidechain":false,"userType":"external","cwd":"/home/josie/development/irc-now/.claude/worktrees/bot-service","sessionId":"8c48156f-d501-4979-864d-e6d80d34bbe2","version":"2.1.63","gitBranch":"worktree-bot-service","slug":"keen-riding-sketch","type":"progress","data":{"type":"bash_progress","output":"","fullOutput":"","elapsedTimeSeconds":5,"totalLines":0,"totalBytes":0,"taskId":"b8a3f5j80","timeoutMs":45000},"toolUseID":"bash-progress-2","parentToolUseID":"toolu_016nE3G7VzwH5M42gW9qnhDU","uuid":"8e43e549-8e7a-474f-ac8d-cae94edde120","timestamp":"2026-03-06T08:30:31.990Z"} {"parentUuid":"8e43e549-8e7a-474f-ac8d-cae94edde120","isSidechain":false,"userType":"external","cwd":"/home/josie/development/irc-now/.claude/worktrees/bot-service","sessionId":"8c48156f-d501-4979-864d-e6d80d34bbe2","version":"2.1.63","gitBranch3-06T08:33:21.963Z [DEBUG] Fast mode unavailable: Fast mode requires extra usage billing · /extra-usage to enable 2026-03-06T08:33:22.224Z [DEBUG] Getting matching hook commands for PostToolUse with query: Bash 2026-03-06T08:33:22.224Z [DEBUG] Found 6 hook matchers in settings 2026-03-06T08:33:22.224Z [DEBUG] Matched 1 unique hooks for query "Bash" (1 before deduplication) 2026-03-06T08:33:22.236Z [DEBUG] Fast mode unavailable: Fast mode requires extra usage billing · /extra-usage to enable 2026-03-06T08:33:22.272Z [DEBUG] High write ratio: blit=0, write=48342 (100.0% writes), screen=880x221 2026-03-06T08:33:22.299Z [DEBUG] Hooks: Checking initial response for async: {} 2026-03-06T08:33:22.299Z [DEBUG] Hooks: Parsed initial response: {} 2026-03-06T08:33:22.299Z [DEBUG] Hooks: Initial response is not async, continuing normal processing 2026-03-06T08:33:22.302Z [DEBUG] Successfully parsed and validated hook JSON output 2026-03-06T08:33:22.302Z [DEBUG] Hook PostToolUse:Bash (PostToolUse) success: {} 2026-03-06T08:33:22.304Z [DEBUG] LSP Diagnostics: getLSPDiagnosticAttachments called 2026-03-06T08:33:22.304Z [DEBUG] LSP Diagnostics: Checking registry - 0 pending 2026-03-06T08:33:22.304Z [DEBUG] Hooks: Found 0 total hooks in registry 2026-03-06T08:33:22.304Z [DEBUG] Hooks: checkForNewResponses returning 0 responses 2026-03-06T08:33:22.305Z [DEBUG] [useDeferredValue] Messages deferred by 4 (1256→1260) 2026-03-06T08:33:22.317Z [DEBUG] Fast mode unavailable: Fast mode requires extra usage billing · /extra-usage to enable 2026-03-06T08:33:22.347Z [DEBUG] High write ratio: blit=37791, write=40000 (51.4% writes), screen=883x221 2026-03-06T08:33:22.357Z [DEBUG] Fast mode unavailable: Fast mode requires extra usage billing · /extra-usage to enable 2026-03-06T08:33:22.361Z [DEBUG] Auto tool search enabled: 39176 tokens (threshold: 20000, 10% of context) [source: query] 2026-03-06T08:33:22.363Z [DEBUG] Dynamic tool loading: 0/198 deferred tools included 2026-03-06T08:33:22.364Z [DEBUG] attribution header x-anthropic-billing-header: cc_version=2.1.63.0a5; cc_entrypoint=cli; cch=00000; 2026-03-06T08:33:22.365Z [DEBUG] Fast mode unavailable: Fast mode requires extra usage billing · /extra-usage to enable 2026-03-06T08:33:22.365Z [DEBUG] [API:request] Creating client, ANTHROPIC_CUSTOM_HEADERS present: false, has Authorization header: false 2026-03-06T08:33:22.365Z [DEBUG] [API:auth] OAuth token check starting 2026-03-06T08:33:22.365Z [DEBUG] Fast mode unavailable: Fast mode requires extra usage billing · /extra-usage to enable 2026-03-06T08:33:22.365Z [DEBUG] [API:auth] OAuth token check complete 2026-03-06T08:33:22.365Z [DEBUG] Fast mode unavailable: Fast mode requires extra usage billing · /extra-usage to enable 2026-03-06T08:33:22.370Z [DEBUG] Fast mode unavailable: Fast mode requires extra usage billing · /extra-usage to enable 2026-03-06T08:33:22.895Z [DEBUG] Fast mode unavailable: Fast mode requires extra usage billing · /extra-usage to enable 2026-03-06T08:33:22.923Z [DEBUG] Fast mode unavailable: Fast mode requires extra usage billing · /extra-usage to enable 2026-03-06T08:33:23.887Z [DEBUG] Fast mode unavailable: Fast mode requires extra usage billing · /extra-usage to enable 2026-03-06T08:33:24.851Z [DEBUG] Fast mode unavailable: Fast mode requires extra usage billing · /extra-usage to enable 2026-03-06T08:33:25.620Z [DEBUG] Stream started - received first chunk 2026-03-06T08:33:25.621Z [DEBUG] [useDeferredValue] Messages deferred by 1 (1260→1261) 2026-03-06T08:33:25.634Z [DEBUG] Fast mode unavailable: Fast mode requires extra usage billing · /extra-usage to enable 2026-03-06T08:33:25.666Z [DEBUG] High write ratio: blit=37791, write=40060 (51.5% writes), screen=885x221 2026-03-06T08:33:25.680Z [DEBUG] Fast mode unavailable: Fast mode requires extra usage billing · /extra-usage to enable 2026-03-06T08:33:25.811Z [DEBUG] Fast mode unavailable: Fast mode requires extra usage billing · /extra-usage to enable 2026-03-06T08:33:26.069Z [DEBUG] Fast mode unavailable: Fast mode requires extra usage billing · /extra-usage to enable 2026-03-06T08:33:26.073Z [DEBUG] Fast mode unavailable: Fast mode requires extra usage billing · /extra-usage to enable 2026-03-06T08:33:26.325Z [DEBUG] Fast mode unavailable: Fast mode requires extra usage billing · /extra-usage to enable 2026-03-06T08:33:26.330Z [DEBUG] Fast mode unavailable: Fast mode requires extra usage billing · /extra-usage to enable 2026-03-06T08:33:26.335Z [DEBUG] Fast mode unavailable: Fast mode requires extra usage billing · /extra-usage to enable 2026-03-06T08:33:26.338Z [DEBUG] Fast mode unavailable: Fast mode requires extra usage billing · /extra-usage to enable 2026-03-06T08:33:26.341Z [DEBUG] executePreToolHooks called for tool: Bash 2026-03-06T08:33:26.342Z [DEBUG] Getting matching hook commands for PreToolUse with query: Bash 2026-03-06T08:33:26.342Z [DEBUG] Found 1 hook matchers in settings 2026-03-06T08:33:26.342Z [DEBUG] Matched 1 unique hooks for query "Bash" (1 before deduplication) 2026-03-06T08:33:26.344Z [DEBUG] [useDeferredValue] Messages deferred by 1 (1261→1262) 2026-03-06T08:33:26.354Z [DEBUG] Fast mode unavailable: Fast mode requires extra usage billing · /extra-usage to enable 2026-03-06T08:33:26.392Z [DEBUG] High write ratio: blit=0, write=48769 (100.0% writes), screen=888x221 2026-03-06T08:33:26.394Z [DEBUG] Hooks: Checking initial response for async: {} 2026-03-06T08:33:26.394Z [DEBUG] Hooks: Parsed initial response: {} 2026-03-06T08:33:26.394Z [DEBUG] Hooks: Initial response is not async, continuing normal processing 2026-03-06T08:33:26.395Z [DEBUG] Successfully parsed and validated hook JSON output 2026-03-06T08:33:26.395Z [DEBUG] Hook PreToolUse:Bash (PreToolUse) success: {} 2026-03-06T08:33:26.398Z [DEBUG] Permission suggestions for Bash: [ { "type": "addRules", "rules": [ { "toolName": "Bash", "ruleContent": "oc delete pod host-setup -n irc-josie-cloud --force" } ], "behavior": "allow", "destination": "localSettings" } ] 2026-03-06T08:33:26.398Z [DEBUG] executePermissionRequestHooks called for tool: Bash 2026-03-06T08:33:26.398Z [DEBUG] Getting matching hook commands for PermissionRequest with query: Bash 2026-03-06T08:33:26.398Z [DEBUG] Found 0 hook matchers in settings 2026-03-06T08:33:26.399Z [DEBUG] Matched 0 unique hooks for query "Bash" (0 before deduplication) 2026-03-06T08:33:26.407Z [DEBUG] [useDeferredValue] Messages deferred by 2 (1261→1263) 2026-03-06T08:33:26.448Z [DEBUG] High write ratio: blit=37791, write=40127 (51.5% writes), screen=898x221 2026-03-06T08:33:26.450Z [DEBUG] [useDeferredValue] Messages deferred by 2 (1261→1263) 2026-03-06T08:33:32.452Z [DEBUG] Getting matching hook commands for Notification with query: permission_prompt 2026-03-06T08:33:32.452Z [DEBUG] Found 0 hook matchers in settings 2026-03-06T08:33:32.452Z [DEBUG] Matched 0 unique hooks for query "permission_prompt" (0 before deduplication) 2026-03-06T08:34:09.368Z [DEBUG] Writing to temp file: /home/josie/.claude.json.tmp.527791.1772786049368 2026-03-06T08:34:09.368Z [DEBUG] Preserving file permissions: 100644 2026-03-06T08:34:09.384Z [DEBUG] Temp file written successfully, size: 175844 bytes 2026-03-06T08:34:09.384Z [DEBUG] Applied original permissions to temp file 2026-03-06T08:34:09.384Z [DEBUG] Renaming /home/josie/.claude.json.tmp.527791.1772786049368 to /home/josie/.claude.json 2026-03-06T08:34:09.384Z [DEBUG] File /home/josie/.claude.json written atomically 2026-03-06T08:34:29.484Z [DEBUG] High write ratio: blit=37791, write=40178 (51.5% writes), screen=888x221 2026-03-06T08:34:29.491Z [DEBUG] Fast mode unavailable: Fast mode requires extra usage billing · /extra-usage to enable 2026-03-06T08:34:29.495Z [DEBUG] AutoUpdaterWrapper: Installation type: package-manager 2026-03-06T08:34:29.499Z [DEBUG] Spawning shell without login (-l flag skipped) 2026-03-06T08:34:29.504Z [DEBUG] Fast mode unavailable: Fast mode requires extra usage billing · /extra-usage to enable 2026-03-06T08:34:30.452Z [DEBUG] Fast mode unavailable: Fast mode requires extra usage billing · /extra-usage to enable 2026-03-06T08:3 git-send-email 2.43.7 Precedence: bulk X-Mailing-List: stable@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.5 (/) X-Spam-Report: Spam detection software, running on the system "witcher.mxrouting.net", has performed the tests listed below against this email. Information: https://docs.mxroute.com/docs/expert-spam-filtering.html --- Content analysis details: (0.5 points) --- pts rule name description ---- ---------------------- ----------------------------------------- 0.0 RCVD_IN_ZEN_BLOCKED_OPENDNS RBL: ADMINISTRATOR NOTICE: The query to zen.spamhaus.org was blocked due to usage of an open resolver. See https://www.spamhaus.org/returnc/pub/ [172.234.253.10 listed in zen.spamhaus.org] 0.0 RCVD_IN_DNSWL_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to DNSWL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#DnsBlocklists-dnsbl-block for more information. [172.234.253.10 listed in list.dnswl.org] 1.5 HEADER_FROM_DIFFERENT_DOMAINS From and EnvelopeFrom 2nd level mail domains are different -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager SpamTally: Final spam score: 5 MANA hardware requires at least one doorbell ring every 8 wraparounds of the CQ. The driver rings the doorbell as a form of flow control to inform hardware that CQEs have been consumed. The NAPI poll functions mana_poll_tx_cq() and mana_poll_rx_cq() can poll up to CQE_POLLING_BUFFER (512) completions per call. If the CQ has fewer than 512 entries, a single poll call can process more than 4 wraparounds without ringing the doorbell. The doorbell threshold check also uses ">" instead of ">=", delaying the ring by one extra CQE beyond 4 wraparounds. Combined, these issues can cause the driver to exceed the 8-wraparound hardware limit, leading to missed completions and stalled queues. Fix this by capping the number of CQEs polled per call to 4 wraparounds of the CQ in both TX and RX paths. Also change the doorbell threshold from ">" to ">=" so the doorbell is rung as soon as 4 wraparounds are reached. Cc: stable@vger.kernel.org Fixes: 58a63729c957 ("net: mana: Fix doorbell out of order violation and avoid unnecessary doorbell rings") Signed-off-by: Long Li --- drivers/net/ethernet/microsoft/mana/mana_en.c | 23 +++++++++++++++---- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/drivers/net/ethernet/microsoft/mana/mana_en.c b/drivers/net/ethernet/microsoft/mana/mana_en.c index 9919183ad39e..fe667e0d930d 100644 --- a/drivers/net/ethernet/microsoft/mana/mana_en.c +++ b/drivers/net/ethernet/microsoft/mana/mana_en.c @@ -1770,8 +1770,14 @@ static void mana_poll_tx_cq(struct mana_cq *cq) ndev = txq->ndev; apc = netdev_priv(ndev); + /* Limit CQEs polled to 4 wraparounds of the CQ to ensure the + * doorbell can be rung in time for the hardware's requirement + * of at least one doorbell ring every 8 wraparounds. + */ comp_read = mana_gd_poll_cq(cq->gdma_cq, completions, - CQE_POLLING_BUFFER); + min_t(u32, (cq->gdma_cq->queue_size / + COMP_ENTRY_SIZE) * 4, + CQE_POLLING_BUFFER)); if (comp_read < 1) return; @@ -2156,7 +2162,14 @@ static void mana_poll_rx_cq(struct mana_cq *cq) struct mana_rxq *rxq = cq->rxq; int comp_read, i; - comp_read = mana_gd_poll_cq(cq->gdma_cq, comp, CQE_POLLING_BUFFER); + /* Limit CQEs polled to 4 wraparounds of the CQ to ensure the + * doorbell can be rung in time for the hardware's requirement + * of at least one doorbell ring every 8 wraparounds. + */ + comp_read = mana_gd_poll_cq(cq->gdma_cq, comp, + min_t(u32, (cq->gdma_cq->queue_size / + COMP_ENTRY_SIZE) * 4, + CQE_POLLING_BUFFER)); WARN_ON_ONCE(comp_read > CQE_POLLING_BUFFER); rxq->xdp_flush = false; @@ -2201,11 +2214,11 @@ static int mana_cq_handler(void *context, struct gdma_queue *gdma_queue) mana_gd_ring_cq(gdma_queue, SET_ARM_BIT); cq->work_done_since_doorbell = 0; napi_complete_done(&cq->napi, w); - } else if (cq->work_done_since_doorbell > - cq->gdma_cq->queue_size / COMP_ENTRY_SIZE * 4) { + } else if (cq->work_done_since_doorbell >= + (cq->gdma_cq->queue_size / COMP_ENTRY_SIZE) * 4) { /* MANA hardware requires at least one doorbell ring every 8 * wraparounds of CQ even if there is no need to arm the CQ. - * This driver rings the doorbell as soon as we have exceeded + * This driver rings the doorbell as soon as it has processed * 4 wraparounds. */ mana_gd_ring_cq(gdma_queue, 0); -- 2.43.0 From - Wed Feb 25 19:31:46 2026 X-Mozilla-Status: 0001 X-Mozilla-Status2: 00000000 Return-Path: Delivered-To: hi@josie.lol Received: from witcher.mxrouting.net by witcher.mxrouting.net with LMTP id oElHOBxOn2kFrSoAYBR5ng (envelope-from ) for ; Wed, 25 Feb 2026 19:31:40 +0000 Return-path: Envelope-to: hi@josie.lol Delivery-date: Wed, 25 Feb 2026 19:31:41 +0000 Received: from sin.lore.kernel.org ([104.64.211.4]) by witcher.mxrouting.net with esmtps (TLS1.3) tls TLS_AES_256_GCM_SHA384 (Exim 4.98) (envelope-from ) id 1vvKbi-0000000Bl4R-2OBt for hi@josie.lol; Wed, 25 Feb 2026 19:31:40 +0000 Received: from smtp.subspace.kernel.org (conduit.subspace.kernel.org [100.90.174.1]) by sin.lore.kernel.org (Postfix) with ESMTP id DCE1A300C7E8 for ; Wed, 25 Feb 2026 19:31:34 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 093833AE6F4; Wed, 25 Feb 2026 19:31:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=cmpxchg.org header.i=@cmpxchg.org header.b="gvMKoedl" X-Original-To: stable@vger.kernel.org Received: from mail-qv1-f41.google.com (mail-qv1-f41.google.com [209.85.219.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DB8AC23EA89 for ; Wed, 25 Feb 2026 19:31:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.41 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772047892; cv=none; b=q5rJIxisEF7JeP3z9NfmzZQAIMxL6pIJwbaWrM6+dnsAgJdTDHh904OL5bX0zwFGPVPVEIVbUNO5JxkQfM7S23L5ia3jGC0Nqmmi0yExuQUPO42x8vCjg0LGEYM84uh0Bi0CmQfKJve+cwnk6qFzqtio2NNYIake45+GAt/KC04= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772047892; c=relaxed/simple; bh=nBqF4w+CUs5G0Dk674hPgFrbQ9Ruua2n7FSfL7WEBlo=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=UOv64cBOgyFpNF55rFajF+o87o865IDJfhLXjz3gNWr19HsOXsiRjcRRjmkktMYvQBr4D3jTAl8wDIN9afego7tOM1S7Nx/AicYtrebXhdIQQ2C5OXGZgB33w/Nw3AgLz9LzUPH/J9o2plDU3yVrCEYJN6dDjmg0PvAtsuuaw0E= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=cmpxchg.org; spf=pass smtp.mailfrom=cmpxchg.org; dkim=pass (2048-bit key) header.d=cmpxchg.org header.i=@cmpxchg.org header.b=gvMKoedl; arc=none smtp.client-ip=209.85.219.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=cmpxchg.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=cmpxchg.org Received: by mail-qv1-f41.google.ce: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2023; t=1765911999; bh=GImojk5C1qAIKFJLJ1S4f+0bWH9Vnozbrfun02/Bl20=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:List-Unsubscribe-Post: From; b=GCSwnSngXWK4LATm491SZMnWHXVffO/KkD7Cw13n4deeYpc2cCRiJa4HNUC90yXVG bRMm5ZodbemBPhRtcARTQsvU02iKO8pCCRLuFaJHP3CROpU4wvQHQH4SjQ9xag5ImX x6qunvd9WqCWpN37rkBIw0tDobKMnVuNqQP1xN7w= Date: Tue, 16 Dec 2025 11:06:39 -0800 From: Arthur Bacci Reply-To: Morganamilo/paru To: Morganamilo/paru Cc: Subscribed Message-ID: In-Reply-To: References: Subject: Re: [Morganamilo/paru] Support for libalpm v16.0.0 (Issue #1454) Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="--==_mimepart_6941adbf88088_bc1118664a6"; charset=UTF-8 Content-Transfer-Encoding: 7bit Precedence: list X-GitHub-Sender: arthurbacci X-GitHub-Recipient: pfeifferj X-GitHub-Reason: subscribed List-ID: Morganamilo/paru List-Archive: https://github.com/Morganamilo/paru List-Post: List-Unsubscribe: , List-Unsubscribe-Post: List-Unsubscribe=One-Click X-GitHub-Notify-Platform: newsies X-GitHub-Labels: X-GitHub-Assignees: X-GitHub-IssueState: open X-Auto-Response-Suppress: All destinations: github@josie.lol X-GitHub-Recipient-Address: github@josie.lol X-DKIM: signer='github.com' status='pass' reason='' DKIMCheck: Server passes DKIM test, 0 Spam score X-Spam-Score: 1.6 (+) X-Spam-Report: Spam detection software, running on the system "witcher.mxrouting.net", has performed the tests listed below against this email. Information: https://mxroutedocs.com/directadmin/spamfilters/ --- Content analysis details: (1.6 points) --- pts rule name description ---- ---------------------- ----------------------------------------- 0.0 URIBL_BLOCKED ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [URIs: githubusercontent.com] 0.0 RCVD_IN_DNSWL_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to DNSWL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#DnsBlocklists-dnsbl-block for more information. [192.30.252.207 listed in list.dnswl.org] 1.5 HTML_MESSAGE BODY: HTML included in message 1.3 HTML_IMAGE_ONLY_24 BODY: HTML: images with 2000-2400 bytes of words 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) [192.30.252.207 listed in wl.mailspike.net] 0.0 T_KAM_HTML_FONT_INVALID Test for Invalidly Named or Formatted Colors in HTML 0.0 RCVD_IN_MSPIKE_WL Mailspike good senders -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager -0.0 DKIMWL_WL_HIGH DKIMwl.org - High trust sender SpamTally: Final spam score: 16 ----==_mimepart_6941adbf88088_bc1118664a6 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit arthurbacci left a comment (Morganamilo/paru#1454) I just reinstalled `paru` from the AUR repo and it is working normally with libalpm v16.0.1 Image -- Reply to this email directly or view it on GitHub: https://github.com/Morganamilo/paru/issues/1454#issuecomment-3661980084 You are receiving this because you are subscribed to this thread. Message ID: ----==_mimepart_6941adbf88088_bc1118664a6 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
arthurbacci left a comment (Morganamilo/paru#1454)

I just reinstalled paru from the AUR repo and it is working normally with libalpm v16.0.1

image.png (view on web)

&m= dash;
Reply to this email directly, view it on GitHub= , or unsubscribe.
You are receiving this = because you are subscribed to this thread.3D""Messag= e ID: <Morganamilo/paru/issues/1454/3661980084@github.com>

----==_mimepart_6941adbf88088_bc1118664a6-- From - Tue Dec 16 23:02:40 2025 X-Mozilla-Status: 0001 X-Mozilla-Status2: 00000000 Return-Path: Delivered-To: hi@josie.lol Received: from witcher.mxrouting.net by witcher.mxrouting.net with LMTP id OMD+A4quQWmXET4AYBR5ng (envelope-from ) for ; Tue, 16 Dec 2025 19:10:02 +0000 Return-path: Envelope-to: github@josie.lol Delivery-date: Tue, 16 Dec 2025 19:10:02 +0000 Received: from out-25.smtp.github.com ([192.30.252.208]) by witcher.mxrouting.net with esmtps (TLS1.3) tls TLS_AES_256_GCM_SHA384 (Exim 4.98) (envelope-from ) id 1vVaQr-0000000H4ud-3l2H for github@josie.lol; Tue, 16 Dec 2025 19:10:02 +0000 Received: from github.com (hubbernetes-node-f933146.ash1-iad.github.net [10.56.203.119]) by snt certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3A0B127AC5C; Wed, 17 Dec 2025 09:15:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=159.226.251.21 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765962968; cv=none; b=SirTQCzuC91SH0HjQ7hHYcg+UpeRdMtd3swTycYFrVvaWHM0yZTnJd4/4K0ZulfbbS2Eo6Eo33pDPn++Ggn7T56YE9AOQ9JiQwxJ/KH4Lf25ThU6uM5dHDFxXg1KDtiN4oVRudSUetXlug0/SYd04+ffg1p1WphFIBIoerZF28s= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765962968; c=relaxed/simple; bh=6DzFipEzWj4y0T/wSMWEFVVnrsWvqWUeNnKm3Cx5Ooo=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=KPvzUk3AA3tZTGvkTBvLbXfhEIT6wf20UjY6BWE9bLBiFGdozjS+0Wc58khyC8JpVyQMGxjzP6jq7DTySCWHqrruNxhC/f1wdmS2kAHt+QC1RHG4ODC7uw2OrGl6RWiULaEp9eqj8EeUwvH5sn9mTbVGKP3izly9pIjmgkQp3/I= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=isrc.iscas.ac.cn; spf=pass smtp.mailfrom=isrc.iscas.ac.cn; arc=none smtp.client-ip=159.226.251.21 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=isrc.iscas.ac.cn Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=isrc.iscas.ac.cn Received: from localhost.localdomain (unknown [36.112.3.223]) by APP-01 (Coremail) with SMTP id qwCowADHbmrFdEJpPd7mAA--.15846S2; Wed, 17 Dec 2025 17:15:50 +0800 (CST) From: Haoxiang Li To: mporter@kernel.crashing.org, alex.bou9@gmail.com, akpm@linux-foundation.org Cc: linux-kernel@vger.kernel.org, Haoxiang Li , stable@vger.kernel.org Subject: [PATCH] rapidio: replace rio_free_net() with kfree() in rio_scan_alloc_net() Date: Wed, 17 Dec 2025 17:15:48 +0800 Message-Id: <20251217091548.482358-1-lihaoxiang@isrc.iscas.ac.cn> X-Mailer: git-send-email 2.25.1 Precedence: bulk X-Mailing-List: stable@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-CM-TRANSID:qwCowADHbmrFdEJpPd7mAA--.15846S2 X-Coremail-Antispam: 1UD129KBjvdXoW7JFWkGrWfZr4Uur4rCryxuFg_yoW3Krg_WF 18Xrs7Ars0yF40kw45uw4SvFWF9r48XrWkuFW5t39xtFy3Zw1FkF4qgrs8Z34xXr4kJrn3 A34qqr1kCr47CjkaLaAFLSUrUUUUjb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT 9fnUUIcSsGvfJTRUUUbcAFF20E14v26r1j6r4UM7CY07I20VC2zVCF04k26cxKx2IYs7xG 6r1S6rWUM7CIcVAFz4kK6r1j6r18M28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48ve4kI8w A2z4x0Y4vE2Ix0cI8IcVAFwI0_Jr0_JF4l84ACjcxK6xIIjxv20xvEc7CjxVAFwI0_Jr0_ Gr1l84ACjcxK6I8E87Iv67AKxVWUJVW8JwA2z4x0Y4vEx4A2jsIEc7CjxVAFwI0_Gr0_Gr 1UM2AIxVAIcxkEcVAq07x20xvEncxIr21l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xII jxv20xvE14v26r1j6r18McIj6I8E87Iv67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr 1lF7xvr2IYc2Ij64vIr41lF7I21c0EjII2zVCS5cI20VAGYxC7MxkF7I0En4kS14v26r12 6r1DMxAIw28IcxkI7VAKI48JMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrVAFwI 0_Jr0_Jr4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVWUAVWUtwCIc40Y 0x0EwIxGrwCI42IY6xIIjxv20xvE14v26r1j6r1xMIIF0xvE2Ix0cI8IcVCY1x0267AKxV WUJVW8JwCI42IY6xAIw20EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Jr0_Gr1l IxAIcVC2z280aVCY1x0267AKxVWUJVW8JbIYCTnIWIevJa73UjIFyTuYvjfUehL0UUUUU X-CM-SenderInfo: 5olkt0x0ld0ww6lv2u4olvutnvoduhdfq/1tbiCRETE2lCRwmvhQAAsX X-Spam-Score: 0.5 (/) X-Spam-Report: Spam detection software, running on the system "witcher.mxrouting.net", has performed the tests listed below against this email. Information: https://mxroutedocs.com/directadmin/spamfilters/ --- Content analysis details: (0.5 points) --- pts rule name description ---- ---------------------- ----------------------------------------- 1.5 HEADER_FROM_DIFFERENT_DOMAINS From and EnvelopeFrom 2nd level mail domains are different -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager SpamTally: Final spam score: 5 When idtab allocation fails, net is not registered with rio_add_net() yet, so kfree(net) is sufficient to release the memory. Fixes: e6b585ca6e81 ("rapidio: move net allocation into core code") Cc: stable@vger.kernel.org Signed-off-by: Haoxiang Li --- drivers/rapidio/rio-scan.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/rapidio/rio-scan.c b/drivers/rapidio/rio-scan.c index c12941f71e2c..03615eb2d3d7 100644 --- a/drivers/rapidio/rio-scan.c +++ b/drivers/rapidio/rio-scan.c @@ -854,7 +854,7 @@ static struct rio_net *rio_scan_alloc_net(struct rio_mport *mport, if (idtab == NULL) { pr_err("RIO: failed to allocate destID table\n"); - rio_free_net(net); + kfree(net); net = NULL; } else { net->enum_data = idtab; -- 2.25.1 From - Wed Dec 17 10:26:04 2025 X-Mozilla-Status: 0001 X-Mozilla-Status2: 00000000 Return-Path: Delivered-To: hi@josie.lol Received: from witcher.mxrouting.net by witcher.mxrouting.net with LMTP id GOdeEDiFQmn8TSUAYBR5ng (envelope-from ) for ; Wed, 17 Dec 2025 10:26:00 +0000 Return-path: Envelope-to: hi@josie.lol Delivery-date: Wed, 17 Dec 2025 10:26:00 +0000 Received: from tor.lore.kernel.org ([172.105.105.114]) by witcher.mxrouting.net with esmtps (TLS1.3) tls TLS_AES_256_GCM_SHA384 (Exim 4.98) (envelope-from ) id 1vVojH-0000000AJz4-46tV for hi@josie.lol; Wed, 17 Dec 2025 10:26:00 +0000 Received: from smtp.subspace.kernel.org (conduit.subspace.kernel.org [100.90.174.1]) by tor.lore.kernel.org (Postfix) with ESMTP id 364EE300F1B9 for ; Wed, 17 Dec 2025 10:25:55 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 94B6729993F; Wed, 17 Dec 2025 10:10:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="KYPfLFKx" X-Original-To: stable@vger.kernel.org Received: from mail-pl1-f180.google.com (mail-pl1-f180.google.com [209.85.214.180]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C20D9237163 for ; Wed, 17 Dec 2025 10:10:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.180 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765966243; cv=none; b=LKzc0wwPxhPvLh/23wR0akh8kRNnFd4YTK3Kwgm9cUJeDwTfeMzJ4CbadkCKSB7VVM4bjAcG7yT9D1dGKVITUEcUao3DXFY7IqomBN2o7MidCg3OG6eUeWSqQtUOPunEavUFARH21uOoKAK9pCYfUcrv6MjJymD7iao+Looq7fU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765966243; c=relaxed/simple; bh=SMvRzUudMwE9gh+QI3p78IKx2rZRmC3QOeEAGSMOXbE=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=FENFYHb56gfg7cAHrstWHCbfFX0+dnrxw9w7eokbiwStKjqBfSfnRimzZND+2LvvnlCzUuCi9jxMM3pYJOk8hMvSMSIOk/Qe66ae/gAV6YxIpLIA99h3k4zWULpU8/OhLteJ5sVuqZmfAA7rZ+J4Guczjbol+WAlwP2jetqEJaE= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=KYPfLFKx; arc=none smtp.client-ip=209.85.214.180 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-pl1-f180.google.com with SMTP id d9443c01a7336-2a0c20ee83dso41608695ad.2 for ; Wed, 17 Dec 2025 02:10:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765966241; x=176pending 2026-02-21T15:24:34.705Z [DEBUG] Hooks: Found 0 total hooks in registry 2026-02-21T15:24:34.705Z [DEBUG] Hooks: checkForNewResponses returning 0 responses 2026-02-21T15:24:34.706Z [DEBUG] Tool search disabled via experiment (tengu_tst_kx7): below threshold, deferred tools present [source: query] 2026-02-21T15:24:34.713Z [DEBUG] Writing to temp file: /home/josie/.claude.json.tmp.138424.1771687474713 2026-02-21T15:24:34.713Z [DEBUG] Preserving file permissions: 100644 2026-02-21T15:24:34.713Z [DEBUG] Temp file written successfully, size: 148892 bytes 2026-02-21T15:24:34.713Z [DEBUG] Applied original permissions to temp file 2026-02-21T15:24:34.713Z [DEBUG] Renaming /home/josie/.claude.json.tmp.138424.1771687474713 to /home/josie/.claude.json 2026-02-21T15:24:34.713Z [DEBUG] File /home/josie/.claude.json written atomically 2026-02-21T15:24:34.714Z [DEBUG] attribution header x-anthropic-billing-header: cc_version=2.1.50.f15; cc_entrypoint=cli; cch=00000; 2026-02-21T15:24:34.715Z [DEBUG] [API:request] Creating client, ANTHROPIC_CUSTOM_HEADERS present: false, has Authorization header: false 2026-02-21T15:24:34.715Z [DEBUG] [API:auth] OAuth token check starting 2026-02-21T15:24:34.715Z [DEBUG] [API:auth] OAuth token check complete 2026-02-21T15:24:34.718Z [DEBUG] [useDeferredValue] Messages deferred by 4 (72→76) 2026-02-21T15:24:35.489Z [DEBUG] Stream started - received first chunk 2026-02-21T15:24:36.184Z [ERROR] Error: Error: File does not exist. Note: your current working directory is /home/josie/development/kubernetes/karpenter-ibm. at Object.call (file:///home/josie/.config/nvm/versions/node/v20.19.1/lib/node_modules/@anthropic-ai/claude-code/cli.js:4898:6227) at async file:///home/josie/.config/nvm/versions/node/v20.19.1/lib/node_modules/@anthropic-ai/claude-code/cli.js:5078:1728 2026-02-21T15:24:36.187Z [ERROR] Error: Error: File does not exist. Note: your current working directory is /home/josie/development/kubernetes/karpenter-ibm. at Object.call (file:///home/josie/.config/nvm/versions/node/v20.19.1/lib/node_modules/@anthropic-ai/claude-code/cli.js:4898:6227) at async file:///home/josie/.config/nvm/versions/node/v20.19.1/lib/node_modules/@anthropic-ai/claude-code/cli.js:5078:1728 2026-02-21T15:24:36.427Z [DEBUG] Stream started - received first chunk 2026-02-21T15:24:45.131Z [DEBUG] [useDeferredValue] Messages deferred by 1 (76→77) 2026-02-21T15:24:50.252Z [DEBUG] [useDeferredValue] Messages deferred by 1 (77→78) 2026-02-21T15:24:50.286Z [DEBUG] Getting matching hook commands for Stop with query: undefined 2026-02-21T15:24:50.286Z [DEBUG] Found 2 hook matchers in settings 2026-02-21T15:24:50.286Z [DEBUG] Matched 2 unique hooks for query "no match query" (2 before deduplication) 2026-02-21T15:24:50.286Z [DEBUG] Tool search disabled via experiment (tengu_tst_kx7): below threshold, deferred tools present [source: query] 2026-02-21T15:24:50.301Z [DEBUG] Writing to temp file: /home/josie/.claude.json.tmp.138424.1771687490301 2026-02-21T15:24:50.301Z [DEBUG] Preserving file permissions: 100644 2026-02-21T15:24:50.301Z [DEBUG] Temp file written successfully, size: 148892 bytes 2026-02-21T15:24:50.301Z [DEBUG] Applied original permissions to temp file 2026-02-21T15:24:50.301Z [DEBUG] Renaming /home/josie/.claude.json.tmp.138424.1771687490301 to /home/josie/.claude.json 2026-02-21T15:24:50.301Z [DEBUG] File /home/josie/.claude.json written atomically 2026-02-21T15:24:50.303Z [DEBUG] attribution header x-anthropic-billing-header: cc_version=2.1.50.f15; cc_entrypoint=cli; cch=00000; 2026-02-21T15:24:50.303Z [DEBUG] [API:request] Creating client, ANTHROPIC_CUSTOM_HEADERS present: false, has Authorization header: false 2026-02-21T15:24:50.303Z [DEBUG] [API:auth] OAuth token check starting 2026-02-21T15:24:50.303Z [DEBUG] [API:auth] OAuth token check complete 2026-02-21T15:24:50.309Z [DEBUG] [useDeferredValue] Messages deferred by 2 (78→80) 2026-02-21T15:24:50.326Z [DEBUG] Hook output does not start with {, treating as plain text 2026-02-21T15:24:50.327Z [DEBUG] [useDeferredValue] Messages deferred by 3 (78→81) 2026-02-21T15:24:50.334Z [DEBUG] Hooks: Checking initial response for async: {} 2026-02-21T15:24:50.334Z [DEBUG] Hooks: Parsed initial response: {} 2026-02-21T15:24:50.334Z [DEBUG] Hooks: Initial response is not async, continuing normal processing 2026-02-21T15:24:50.341Z [DEBUG] Successfully parsed and validated hook JSON output 2026-02-21T15:24:50.342Z [DEBUG] Hook Stop (Stop) success: {} 2026-02-21T15:24:50.346Z [DEBUG] Writing to temp file: /home/josie/.claude.json.tmp.138424.1771687490346 2026-02-21T15:24:50.346Z [DEBUG] Preserving file permissions: 100644 2026-02-21T15:24:50.347Z [DEBUG] Temp file written successfully, size: 148892 bytes 2026-02-21T15:24:50.347Z [DEBUG] Applied original permissions to temp file 2026-02-21T15:24:50.347Z [DEBUG] Renaming /home/josie/.claude.json.tmp.138424.1771687490346 to /home/josie/.claude.json 2026-02-21T15:24:50.347Z [DEBUG] File /home/josie/.claude.json written atomically 2026-02-21T15:24:50.348Z [DEBUG] [useDeferredValue] Messages deferred by 2 (81→83) 2026-02-21T15:24:50.354Z [DEBUG] Writing to temp file: /home/josie/.claude.json.tmp.138424.1771687490354 2026-02-21T15:24:50.354Z [DEBUG] Preserving file permissions: 100644 2026-02-21T15:24:50.354Z [DEBUG] Temp file written successfully, size: 148892 bytes 2026-02-21T15:24:50.354Z [DEBUG] Applied original permissions to temp file 2026-02-21T15:24:50.354Z [DEBUG] Renaming /home/josie/.claude.json.tmp.138424.1771687490354 to /home/josie/.claude.json 2026-02-21T15:24:50.354Z [DEBUG] File /home/josie/.claude.json written atomically 2026-02-21T15:24:50.357Z [DEBUG] [useDeferredValue] Messages deferred by 2 (81→83) 2026-02-21T15:24:52.256Z [DEBUG] Stream started - received first chunk 2026-02-21T15:24:52.712Z [DEBUG] Forked agent [prompt_suggestion] received message: type=assistant 2026-02-21T15:24:52.752Z [DEBUG] Getting matching hook commands for SubagentStop with query: 2026-02-21T15:24:52.752Z [DEBUG] Found 0 hook matchers in settings 2026-02-21T15:24:52.752Z [DEBUG] Matched 0 unique hooks for query "no match query" (0 before deduplication) 2026-02-21T15:24:52.752Z [DEBUG] Forked agent [prompt_suggestion] finished: 1 messages, types=[assistant], totalUsage: input=295 output=13 cacheRead=67879 cacheCreate=722 2026-02-21T15:24:52.753Z [DEBUG] [Speculation] enabled=false 2026-02-21T15:25:50.356Z [DEBUG] Getting matching hook commands for Notification with query: idle_prompt 2026-02-21T15:25:50.356Z [DEBUG] Found 0 hook matchers in settings 2026-02-21T15:25:50.356Z [DEBUG] Matched 0 unique hooks for query "idle_prompt" (0 before deduplication) 2026-02-21T15:33:54.037Z [DEBUG] Cleaned up old paste: /home/josie/.claude/paste-cache/b1a2fe492e14660f.txt 2026-02-21T15:35:45.881Z [DEBUG] High write ratio: blit=168, write=9742 (98.3% writes), screen=245x84 2026-02-21T15:35:45.947Z [DEBUG] Full reset (scrollback changes): scrollbackRows=179, firstChangeY=165 prev: " ⎿  78:+ delay = time.Duration(secs) * time.S" next: " ⎿  78:+ delay = time.Duration(secs) " 2026-02-21T15:35:48.666Z [DEBUG] High write ratio: blit=168, write=10586 (98.4% writes), screen=215x189 2026-02-21T15:36:48.678Z [DEBUG] Getting matching hook commands for Notification with query: idle_prompt 2026-02-21T15:36:48.678Z [DEBUG] Found 0 hook matchers in settings 2026-02-21T15:36:48.679Z [DEBUG] Matched 0 unique hooks for query "idle_prompt" (0 before deduplication) 2026-02-21T15:38:12.856Z [DEBUG] High write ratio: blit=168, write=10034 (98.4% writes), screen=228x110 2026-02-21T15:39:12.874Z [DEBUG] Getting matching hook commands for Notification with query: idle_prompt 2026-02-21T15:39:12.874Z [DEBUG] Found 0 hook matchers in settings 2026-02-21T15:39:12.874Z [DEBUG] Matched 0 unique hooks for query "idle_prompt" (0 before deduplication) 2026-02-21T15:42:20.035Z [DEBUG] [LSP PROTOCOL plugin:gopls-lsp:gopls] Sending request 'shutdown - (1)'. 2026-02-21T15:42:20.037Z [DEBUG] MCP server "obsidian": Sending SIGINT to MCP server process 2026-02-21T15:42:20.037Z [DEBUG] hiB24ICBJy16UvX6tFwENQKCZo0nDADg1OWa Xmnj8qpRDFk058PXLTxPj5lPHSPPVPcTtg0ygz1K3bvnLpW6NgnsOhMzlBf/+IzbgpzKLZ 8wryTISTgv3pJbUw+fg5+ahqmewts78moAedDlSKepqfRN+t62HMYX85T1Tm9ZUxG7QKU6 NpAsH6TKr4vv1gBXQ38InTtDA4Kyqj9+dPePCh6EfrHRhR1P7cv7zxsqYCJs4lQZacxxC1 sYt+blM0KIn3Mh/EMX2I6YuKVonANc55vIXxmYUGZJtEF5Xrl/4avUe7976YKSJSJYFI39 Oce4QdtF+hnjy/isb3zGAFwFiCXfH9lAD1dkgSSgCVmkAmx/a14pc= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=lists.archlinux.org; s=dkim-ed25519; t=1766304702; h=from:from:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding:list-id:list-help: list-owner:list-unsubscribe:list-subscribe:list-post; bh=z66yXmEZZMRMP2FAoLGN8/72vGUeWgf1bV6Q5/L+7Bw=; b=DuHCqMCCkLMfTwloOcS4xB7NjdUueArTKIEnICdFkBFJqv0lt7jyuJt4fYKfMQdEETBqXc Y+ei9UJ4JC9aB3Dw== From: arch-announce-request@lists.archlinux.org Subject: Arch-announce Digest, Vol 25, Issue 1 To: arch-announce@lists.archlinux.org Reply-To: arch-announce@lists.archlinux.org Date: Sun, 21 Dec 2025 08:09:26 +0000 Message-ID: <176630456616.2476.205429104933663673@lists> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailman-Version: 3.3.10 Precedence: list List-Id: "This mailing list is for official announcements for the Arch Linux distribution." List-Archive: List-Help: List-Owner: List-Post: NO List-Subscribe: List-Unsubscribe: X-DKIM: signer='lists.archlinux.org' status='pass' reason='' DKIMCheck: Server passes DKIM test, 0 Spam score X-Spam-Score: -101.1 (---------------------------------------------------) X-Spam-Report: Spam detection software, running on the system "witcher.mxrouting.net", has performed the tests listed below against this email. Information: https://mxroutedocs.com/directadmin/spamfilters/ --- Content analysis details: (-101.1 points) --- pts rule name description ---- ---------------------- ----------------------------------------- -0.0 USER_IN_WELCOMELIST User is listed in 'welcomelist_from' -100 USER_IN_WHITELIST DEPRECATED: See USER_IN_WELCOMELIST 0.0 RCVD_IN_DNSWL_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to DNSWL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#DnsBlocklists-dnsbl-block for more information. [95.217.236.249 listed in list.dnswl.org] -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager SpamTally: Final spam score: -1010 Send Arch-announce mailing list submissions to arch-announce@lists.archlinux.org To subscribe or unsubscribe via email, send a message with subject or body 'help' to arch-announce-request@lists.archlinux.org You can reach the person managing the list at arch-announce-owner@lists.archlinux.org When replying, please edit your Subject line so it is more specific than "Re: Contents of Arch-announce digest..." Today's Topics: 1. [arch-announce] NVIDIA 590 driver drops Pascal support; main packages switch to Open Kernel Modules (Arch Linux: Recent news updates: Peter Jung) ---------------------------------------------------------------------- Message: 1 Date: Sat, 20 Dec 2025 18:53:42 -0000 From: "Arch Linux: Recent news updates: Peter Jung" Subject: [arch-announce] NVIDIA 590 driver drops Pascal support; main packages switch to Open Kernel Modules To: arch-announce@lists.archlinux.org Message-ID: <176625682246.435.6753100557681571739@archlinux> Content-Type: text/plain; charset="utf-8" With the update to driver version 590, the NVIDIA driver no longer supports Pascal (GTX 10xx) GPUs or older. We will replace the `nvidia` package with `nvidia-open`, `nvidia-dkms` with `nvidia-open-dkms`, and `nvidia-lts` with `nvidia-lts-open`. **Impact:** Updating the NVIDIA packages on systems with Pascal, Maxwell, or older cards will fail to load the driver, which may result in a broken graphical environment. **Intervention required for Pascal/older users:** Users with GTX 10xx series and older cards must switch to the legacy proprietary branch to maintain support: * Uninstall the official `nvidia`, `nvidia-lts`, or `nvidia-dkms` packages. * Install `nvidia-580xx-dkms` from the AUR Users with Turing (20xx and GTX 1650 series) and newer GPUs will automatically transition to the open kernel modules on upgrade and require no manual intervention. URL: https://archlinux.org/news/nvidia-590-driver-drops-pascal-support-main-packages-switch-to-open-kernel-modules/ ------------------------------ Subject: Digest Footer _______________________________________________ Arch-announce mailing list -- arch-announce@lists.archlinux.org To unsubscribe send an email to arch-announce-leave@lists.archlinux.org ------------------------------ End of Arch-announce Digest, Vol 25, Issue 1 ******************************************** From - Sun Dec 21 13:48:42 2025 X-Mozilla-Status: 0001 X-Mozilla-Status2: 00000000 Return-Path: Delivered-To: hi@josie.lol Received: from witcher.mxrouting.net by witcher.mxrouting.net with LMTP id uEZiMEz5R2mu3gkAYBR5ng (envelope-from ) for ; Sun, 21 Dec 2025 13:42:36 +0000 Return-path: Envelope-to: sf@josie.lol Delivery-date: Sun, 21 Dec 2025 13:42:36 +0000 Received: from sp0112.mtaspg.email ([54.236.87.202]) by witcher.mxrouting.net with esmtps (TLS1.3) tls TLS_AES_256_GCM_SHA384 (Exim 4.98) (envelope-from ) id 1vXJhk-000000034nQ-1bZC for sf@josie.lol; Sun, 21 Dec 2025 13:42:36 +0000 Received: from sp0112.mtaspg.email (SendPost) by witcher.mxrouting.net with SMTP id sp0112.mtaspg.email-1766324556; Sun, 21 Dec 2025 13:42:36 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; s=sp-dkim; d=deals.secretflying.com; h=from:subject:date:message-id: list-unsubscribe-post:list-unsubscribe; bh=RbTFxXp1BqTGUejIUsGlJQKsrOO49BBfzFJ8Co72gRI=; b=aVEQIOO7BJ3+7QbjJJ0URNztRAtGl8SblwiXG1h/Z6qF/4uBfmPHKm9vC1D/EWMA+ksGXg AOnm2vhxqiOYbvHjSrH2p0N6BaCG1QTnDaKCCDr9JdmE9mHpXgNcB5Nv4q6P1J5a673boM OJ79+RjpzUBm9p+iDsDdseKXtqm2mW8= MIME-Version: 1.0 Date: Sun, 21 Dec 2025 13:41:09 +0000 From: "Secret Flying" Reply-To: "Secret Flying" To: "Foo" Subject: =?UTF-8?q?Amsterdam,_Netherlands_to_Kuala_Lumpur,_Malaysia_for_only_?= =?UTF-8?q?=E2=82=AC485_roundtrip?= Message-ID: <65ae46d0-c0b2-4dbd-8734-e21c9729600b@sp-bounce.deals.secretflying.com> List-Unsubscribe: List-Unsubscribe-Post: List-Unsubscribe=One-Click Feedback-ID: 29799:deals.secretflying.com:20251221:sendpost X-Campaign-Id: 53752 X-Sendpost-Return-Path: bounces+65ae46d0-c0b2-4dbd-8734-e21c9729600b+419@sp-bounce.deals.secretflying.com X-Sendpost-Subest.fixture\ndef client() -> TestClient:\n client = TestClient(app=app)\n client.follow_redirects = False\n yield client\n\n\n@pytest.fixture\ndef user() -> User:\n with db.begin():\n user = db.create(\n User,\n Username=\"testuser\",\n Email=\"test@example.org\",\n RealName=\"Test User\",\n Passwd=\"testPassword\",\n AccountTypeID=USER_ID,\n )\n yield user\n\n\n@pytest.fixture\ndef linked_user() -> User:\n with db.begin():\n user = db.create(\n User,\n Username=\"linkeduser\",\n Email=\"linked@example.org\",\n RealName=\"Linked User\",\n Passwd=\"testPassword\",\n AccountTypeID=USER_ID,\n SSOAccountID=\"existing-sso-sub-id\",\n )\n yield user\n\n\ndef mock_sso_authenticate(sub=\"test-sso-sub-123\", groups=None, email=None):\n \"\"\"Return mock functions for OAuth token exchange and ID token parsing.\"\"\"\n token = {\"access_token\": \"mock-access-token\", \"id_token\": \"mock-id-token\"}\n userinfo = {\"sub\": sub}\n if groups is not None:\n userinfo[\"groups\"] = groups\n if email is not None:\n userinfo[\"email\"] = email\n\n async def mock_authorize_access_token(request):\n return token\n\n async def mock_parse_id_token(request, token_):\n return userinfo\n\n return mock_authorize_access_token, mock_parse_id_token\n\n\n# ---------- Group mapping unit tests ----------\n\n\ndef test_map_groups_developer_only():\n assert _map_groups_to_account_type([\"Developers\"]) == DEVELOPER_ID\n\n\ndef test_map_groups_pm_only():\n assert _map_groups_to_account_type([\"Package Maintainers\"]) == PACKAGE_MAINTAINER_ID\n\n\ndef test_map_groups_both():\n groups = [\"Developers\", \"Package Maintainers\"]\n assert _map_groups_to_account_type(groups) == PACKAGE_MAINTAINER_AND_DEV_ID\n\n\ndef test_map_groups_none():\n assert _map_groups_to_account_type([]) == USER_ID\n\n\ndef test_map_groups_unrelated():\n assert _map_groups_to_account_type([\"SomeOtherGroup\"]) == USER_ID\n\n\ndef test_map_groups_empty_config():\n with mock.patch(\"aurweb.config.get_with_fallback\", return_value=\"\"):\n assert _map_groups_to_account_type([\"Developers\"]) is None\n\n\ndef test_map_groups_null_input():\n assert _map_groups_to_account_type(None) == USER_ID\n\n\n# ---------- SSO authenticate route tests ----------\n\n\ndef test_sso_authenticate_user_found(client: TestClient, linked_user: User):\n \"\"\"Valid token with matching SSOAccountID creates a session.\"\"\"\n mock_auth, mock_parse = mock_sso_authenticate(sub=\"existing-sso-sub-id\")\n\n with mock.patch(\n \"aurweb.routers.sso.oauth.sso.authorize_access_token\",\n side_effect=mock_auth,\n ), mock.patch(\n \"aurweb.routers.sso.oauth.sso.parse_id_token\",\n side_effect=mock_parse,\n ):\n with client as request:\n resp = request.get(\"/sso/authenticate\")\n\n assert resp.status_code == int(HTTPStatus.SEE_OTHER)\n assert resp.headers.get(\"location\") == \"/\"\n assert \"AURSID\" in resp.cookies\n\n session = db.query(Session).filter(Session.UsersID == linked_user.ID).first()\n assert session is not None\n\n\ndef test_sso_authenticate_no_matching_user(client: TestClient):\n \"\"\"Valid token but no matching SSOAccountID returns error page.\"\"\"\n mock_auth, mock_parse = mock_sso_authenticate(sub=\"unknown-sub-id\")\n\n with mock.patch(\n \"aurweb.routers.sso.oauth.sso.authorize_access_token\",\n side_effect=mock_auth,\n ), mock.patch(\n \"aurweb.routers.sso.oauth.sso.parse_id_token\",\n side_effect=mock_parse,\n ):\n with client as request:\n resp = request.get(\"/sso/authenticate\")\n\n assert resp.status_code == int(HTTPStatus.NOT_FOUND)\n assert \"No AUR account is linked\" in resp.text\n\n\ndef test_sso_authenticate_suspended_user(client: TestClient, linked_user: User):\n \"\"\"Suspended user gets 403.\"\"\"\n with db.begin():\n linked_user.Suspended = 1\n\n mock_auth, mock_parse = mock_sso_authenticate(sub=\"existing-sso-sub-id\")\n\n with mock.patch(\n \"aurweb.routers.sso.oauth.sso.authorize_access_token\",\n side_effect=mock_auth,\n ), mock.patch(\n \"aurweb.routers.sso.oauth.sso.parse_id_token\",\n side_effect=mock_parse,\n ):\n with client as request:\n resp = request.get(\"/sso/authenticate\")\n\n assert resp.status_code == int(HTTPStatus.FORBIDDEN)\n assert \"suspended\" in resp.text.lower()\n\n\ndef test_sso_authenticate_banned_ip(client: TestClient):\n \"\"\"Banned IP gets 403.\"\"\"\n from datetime import UTC, datetime, timedelta\n\n from aurweb.models.ban import Ban\n\n with db.begin():\n db.create(\n Ban, IPAddress=\"testclient\", BanTS=datetime.now(UTC) + timedelta(hours=1)\n )\n\n with client as request:\n resp = request.get(\"/sso/authenticate\")\n\n assert resp.status_code == int(HTTPStatus.FORBIDDEN)\n\n\ndef test_sso_authenticate_bad_token(client: TestClient):\n \"\"\"Bad OAuth token returns 400.\"\"\"\n from authlib.integrations.starlette_client import OAuthError\n\n async def mock_raise(request):\n raise OAuthError(error=\"invalid_grant\")\n\n with mock.patch(\n \"aurweb.routers.sso.oauth.sso.authorize_access_token\",\n side_effect=mock_raise,\n ):\n with client as request:\n resp = request.get(\"/sso/authenticate\")\n\n assert resp.status_code == int(HTTPStatus.BAD_REQUEST)\n assert \"Bad OAuth token\" in resp.text\n\n\ndef test_sso_authenticate_group_mapping(client: TestClient, linked_user: User):\n \"\"\"Group mapping updates account type on SSO login.\"\"\"\n assert linked_user.AccountTypeID == USER_ID\n\n mock_auth, mock_parse = mock_sso_authenticate(\n sub=\"existing-sso-sub-id\",\n groups=[\"Developers\"],\n )\n\n with mock.patch(\n \"aurweb.routers.sso.oauth.sso.authorize_access_token\",\n side_effect=mock_auth,\n ), mock.patch(\n \"aurweb.routers.sso.oauth.sso.parse_id_token\",\n side_effect=mock_parse,\n ):\n with client as request:\n resp = request.get(\"/sso/authenticate\")\n\n assert resp.status_code == int(HTTPStatus.SEE_OTHER)\n db.refresh(linked_user)\n assert linked_user.AccountTypeID == DEVELOPER_ID\n\n\ndef test_sso_authenticate_group_mapping_demotion(client: TestClient, linked_user: User):\n \"\"\"Group mapping demotes user when groups are removed.\"\"\"\n with db.begin():\n linked_user.AccountTypeID = DEVELOPER_ID\n\n mock_auth, mock_parse = mock_sso_authenticate(\n sub=\"existing-sso-sub-id\",\n groups=[],\n )\n\n with mock.patch(\n \"aurweb.routers.sso.oauth.sso.authorize_access_token\",\n side_effect=mock_auth,\n ), mock.patch(\n \"aurweb.routers.sso.oauth.sso.parse_id_token\",\n side_effect=mock_parse,\n ):\n with client as request:\n resp = request.get(\"/sso/authenticate\")\n\n assert resp.status_code == int(HTTPStatus.SEE_OTHER)\n db.refresh(linked_user)\n assert linked_user.AccountTypeID == USER_ID\n\n\n# ---------- User.sso_login() tests ----------\n\n\ndef test_sso_login_creates_session(user: User):\n \"\"\"sso_login creates a session and updates LastLogin.\"\"\"\n fake_request = FakeRequest()\n fake_request.client.host = \"192.168.1.1\"\n\n sid = user.sso_login(fake_request)\n assert sid is not None\n\n session = db.query(Session).filter(Session.UsersID == user.ID).first()\n assert session is not None\n assert session.SessionID == sid\n assert user.authenticated is True\n\n\ndef test_sso_login_banned_user(user: User):\n \"\"\"sso_login returns None for banned IP.\"\"\"\n from datetime import UTC, datetime, timedelta\n\n from aurweb.models.ban import Ban\n\n with db.begin():\n db.create(\n Ban, IPAddress=\"127.0.0.1\", BanTS=datetime.now(UTC) + timedelta(hours=1)\n )\n\n fake_request = FakeRequest()\n fake_request.client.host = \"127.0.0.1\"\n\n sid = user.sso_login(fake_request)\n assert sid is None\n\n\ndef test_sso_login_suspended_user(user: User):\n \"\"\"sso_login returns None for suspended user.\"\"\"\n with db.begin():\n user.Suspended = 1\n\n fake_request = FakeRequest()\n sid = user.sso_login(fake_request)\n assert sid is None\n\n\n# ---------- Account linking route tests ----------\n\n\ndef _login_user(client, user):\n \"\"\"Helper to log in a user and return cookies.\"\"\"\n referer = aurweb.config.get(\"options\", \"aur_location\") + \"/login\"\n client.headers.update({\"referer\": referer})\n resp = client.post(\n \"/login\",\n data={\"user\": user.Username, \"passwd\": \"testPassword\", \"next\": \"/\"},\n )\n return resp.cookies\n\n\ndef test_link_sso_status_unlinked(client: TestClient, user: User):\n \"\"\"GET /account/link-sso shows unlinked status.\"\"\"\n with client as request:\n cookies = _login_user(request, user)\n request.cookies = cookies\n resp = request.get(\"/account/link-sso\")\n\n assert resp.status_code == int(HTTPStatus.OK)\n assert \"not yet linked\" in resp.text\n\n\ndef test_link_sso_status_linked(client: TestClient, linked_user: User):\n \"\"\"GET /account/link-sso shows linked status.\"\"\"\n with client as request:\n cookies = _login_user(request, linked_user)\n request.cookies = cookies\n resp = request.get(\"/account/link-sso\")\n\n assert resp.status_code == int(HTTPStatus.OK)\n assert \"linked to your SSO identity\" in resp.text\n\n\ndef test_link_sso_requires_auth(client: TestClient):\n \"\"\"GET /account/link-sso requires authentication.\"\"\"\n with client as request:\n resp = request.get(\"/account/link-sso\")\n\n # requires_auth returns SEE_OTHER redirect to /login or UNAUTHORIZED\n assert resp.status_code in (\n int(HTTPStatus.SEE_OTHER),\n int(HTTPStatus.UNAUTHORIZED),\n )\n\n\ndef test_link_sso_start_redirects(client: TestClient, user: User):\n \"\"\"POST /account/link-sso/start redirects to SSO provider.\"\"\"\n\n async def mock_authorize_redirect(request, url, **kwargs):\n from fastapi.responses import RedirectResponse\n\n return RedirectResponse(\"https://accounts.archlinux.org/auth?state=test\")\n\n with mock.patch(\n \"aurweb.routers.sso_link.oauth.sso.authorize_redirect\",\n side_effect=mock_authorize_redirect,\n ):\n with client as request:\n cookies = _login_user(request, user)\n request.cookies = cookies\n resp = request.post(\"/account/link-sso/start\")\n\n assert resp.status_code in (\n int(HTTPStatus.TEMPORARY_REDIRECT),\n int(HTTPStatus.SEE_OTHER),\n int(HTTPStatus.FOUND),\n )\n\n\ndef test_link_sso_callback_invalid_state(client: TestClient, user: User):\n \"\"\"Callback with invalid state returns 400.\"\"\"\n with client as request:\n cookies = _login_user(request, user)\n request.cookies = cookies\n resp = request.get(\"/account/link-sso/callback?state=bad-state\")\n\n assert resp.status_code == int(HTTPStatus.BAD_REQUEST)\n assert \"Invalid state\" in resp.text\n\n\ndef test_link_sso_callback_duplicate_sub(\n client: TestClient, user: User, linked_user: User\n):\n \"\"\"Callback when sub is already linked to another account returns conflict.\"\"\"\n mock_auth, mock_parse = mock_sso_authenticate(sub=\"existing-sso-sub-id\")\n\n with mock.patch(\n \"aurweb.routers.sso_link.oauth.sso.authorize_access_token\",\n side_effect=mock_auth,\n ), mock.patch(\n \"aurweb.routers.sso_link.oauth.sso.parse_id_token\",\n side_effect=mock_parse,\n ):\n with client as request:\n cookies = _login_user(request, user)\n request.cookies = cookies\n with mock.patch(\n \"starlette.requests.Request.session\",\n new_callable=mock.PropertyMock,\n return_value={\"sso_link_state\": \"valid-state\"},\n ):\n resp = request.get(\n \"/account/link-sso/callback?state=valid-state\"\n )\n\n assert resp.status_code == int(HTTPStatus.CONFLICT)\n assert \"already linked\" in resp.text.lower()\n\n\n# ---------- Login page SSO button test ----------\n\n\ndef test_login_page_shows_sso_button(client: TestClient):\n \"\"\"Login page shows SSO button when SSO is configured.\"\"\"\n sso_url = \"https://accounts.archlinux.org/.well-known/openid-configuration\"\n\n with mock.patch.dict(\n \"aurweb.config._get_parser\",\n ) if False else mock.patch(\n \"aurweb.config.get\",\n ) as mock_get:\n original_get = aurweb.config._get_parser().get\n\n def patched_get(section, option, **kwargs):\n if section == \"sso\" and option == \"openid_configuration\":\n return sso_url\n return original_get(section, option, **kwargs)\n\n mock_get.side_effect = patched_get\n\n with client as request:\n resp = request.get(\"/login\")\n\n assert resp.status_code == int(HTTPStatus.OK)\n assert \"/sso/login\" in resp.text\n assert \"Login with SSO\" in resp.text\n"},"caller":{"type":"direct"}}],"stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":215,"cache_read_input_tokens":146482,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":215},"output_tokens":2,"service_tier":"standard","inference_geo":"not_available"}},"requestId":"req_011CYMrVAokMhCB8TQyyLeXp","type":"assistant","uuid":"05ffcd62-fc90-47fe-bcc8-72444d1af601","timestamp":"2026-02-21T20:35:47.276Z"} {"parentUuid":"05ffcd62-fc90-47fe-bcc8-72444d1af601","isSidechain":false,"userType":"external","cwd":"/home/josie/development/archlinux/sso","sessionId":"2600a593-d55c-4c8d-9f87-ac6c28996a43","version":"2.1.50","gitBranch":"HEAD","slug":"sprightly-knitting-thimble","type":"progress","data":{"type":"hook_progress","hookEvent":"PreToolUse","hookName":"PreToolUse:Write","command":"python3 ${CLAUDE_PLUGIN_ROOT}/hooks/pretooluse.py"},"toolUseID":"toolu_011N31ziGuVWR1GRo8YxFFZ1","parentToolUseID":"toolu_011N31ziGuVWR1GRo8YxFFZ1","uuid":"d0b6f660-73ae-4833-8815-6b73ce3ddd78","timestamp":"2026-02-21T20:35:47.278Z"} {"parentUuid":"d0b6f660-73ae-4833-8815-6b73ce3ddd78","isSidechain":false,"userType":"external","cwd":"/home/josie/development/archlinux/sso","sessionId":"2600a593-d55c-4c8d-9f87-ac6c28996a43","version":"2.1.50","gitBranch":"HEAD","slug":"sprightly-knitting-thimble","type":"progress","data":{"type":"hook_progress","hookEvent":"PostToolUse","hookName":"PostToolUse:Write","command":"python3 ${CLAUDE_PLUGIN_ROOT}/hooks/posttooluse.py"},"parentToolUseID":"toolu_011N31ziGuVWR1GRo8YxFFZ1","toolUseID":"toolu_011N31ziGuVWR1GRo8YxFFZ1","timestamp":"2026-02-21T20:35:49.195Z","uuid":"d3619e3d-efb1-42cf-8eda-9e37816f25ab"} {"parentUuid":"d3619e3d-efb1-42cf-8eda-9e37816f25ab","isSidechain":false,"userType":"external","cwd":"/home/josie/development/archlinux/sso","sessionId":"2600a593-d55c-4c8d-9f87-ac6c28996a43","version":"2.1.50","gitBranch":"HEAD","slug":"sprightly-knitting-thimble","type":"progress","data":{"type":"hook_progress","hookEvent":"PostToolUse","hookName":"PostToolUse:Write","command":"callback"},"parentToolUseID":"toolu_011N31ziGuVWR1GRo8YxFFZ1","toolUseID":"toolu_011N31ziGuVWR1GRo8YxFFZ1","timestamp":"2026-02-21T20:35:49.195Z","uuid":"3928fcdd-73d8-41ad-ab4f-db1ae7366627"} {"parentUuid":"05ffcd62-fc90-47fe-bcc8-72444d1af601","isSidechain":false,"userType":"external","cwd":"/home/josie/development/archlinux/sso","sessionId":"2600a593-d55c-4c8d-9f87-ac6c28996a43","version":"2.1.50","gitBranch":"HEAD","slug":"sprightly-knitting-thimble","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_011N31ziGuVWR1GRo8YxFFZ1","type":"tool_result","content":"The file /home/josie/development/archlinux/packaging/aurweb/test/test_sso.py has been updated successfully."}]},"uuid":"d49102cf-7b76-467e-ae12-bf8a6b94b213","timestamp":"2026-02-21T20:35:49.193Z","toolUseResult":{"type":"update","filePath":"/home/josie/development/archlinux/packaging/aurweb/test/test_sso.py","content":"from http import HTTPStatus\nfrom unittest import mock\n\nimport pytest\nfrom fastapi.testclient import TestClient\n\nimport aurweb.config\nfrom aurweb import db\nfrom aurweb.asgi import app\nfrom aurweb.models.account_type import (\n DEVELOPER_ID,\n PACKAGE_MAINTAINER_AND_DEV_ID,\n PACKAGE_MAINTAINER_ID,\n USER_ID,\n)\nfrom aurweb.models.session import Session\nfrom aurweb.models.user import User\nfrom aurweb.routers.sso import _map_groups_to_account_type\nfrom aurweb.testing.requests import Request as FakeRequest\n\n\n@pytest.fixture(autouse=True)\ndef setup(db_test):\n return\n\n\n@pytest.fixture\ndef client() -> TestClient:\n client = TestClient(app=app)\n client.follow_redirects = False\n yield client\n\n\n@pytest.fixture\ndef user() -> User:\n with db.begin():\n user = db.create(\n User,\n Username=\"testuser\",\n Email=\"test@example.org\",\n RealName=\"Test User\",\n Passwd=\"testPassword\",\n AccountTypeID=USER_ID,\n )\n yield user\n\n\n@pytest.fixture\ndef linked_user() -> User:\n with db.begin():\n user = db.create(\n User,\n Username=\"linkeduser\",\n Email=\"linked@example.org\",\n RealName=\"Linked User\",\n Passwd=\"testPassword\",\n AccountTypeID=USER_ID,\n SSOAccountID=\"existing-sso-sub-id\",\n )\n yield user\n\n\ndef mock_sso_authenticate(sub=\"test-sso-sub-123\", groups=None, email=None):\n \"\"\"Return mock functions for OAuth token exchange and ID token parsing.\"\"\"\n token = {\"access_token\": \"mock-access-token\", \"id_token\": \"mock-id-token\"}\n userinfo = {\"sub\": sub}\n if groups is not None:\n userinfo[\"groups\"] = groups\n if email is not None:\n userinfo[\"email\"] = email\n\n async def mock_authorize_access_token(request):\n return token\n\n async def mock_parse_id_token(request, token_):\n return userinfo\n\n return mock_authorize_access_token, mock_parse_id_token\n\n\n# ---------- Group mapping unit tests ----------\n\n\ndef test_map_groups_developer_only():\n assert _map_groups_to_account_type([\"Developers\"]) == DEVELOPER_ID\n\n\ndef test_map_groups_pm_only():\n assert _map_groups_to_account_type([\"Package Maintainers\"]) == PACKAGE_MAINTAINER_ID\n\n\ndef test_map_groups_both():\n groups = [\"Developers\", \"Package Maintainers\"]\n assert _map_groups_to_account_type(groups) == PACKAGE_MAINTAINER_AND_DEV_ID\n\n\ndef test_map_groups_none():\n assert _map_groups_to_account_type([]) == USER_ID\n\n\ndef test_map_groups_unrelated():\n assert _map_groups_to_account_type([\"SomeOtherGroup\"]) == USER_ID\n\n\ndef test_map_groups_empty_config():\n with mock.patch(\"aurweb.config.get_with_fallback\", return_value=\"\"):\n assert _map_groups_to_account_type([\"Developers\"]) is None\n\n\ndef test_map_groups_null_input():\n assert _map_groups_to_account_type(None) == USER_ID\n\n\n# ---------- SSO authenticate route tests ----------\n\n\ndef test_sso_authenticate_user_found(client: TestClient, linked_user: User):\n \"\"\"Valid token with matching SSOAccountID creates a session.\"\"\"\n mock_auth, mock_parse = mock_sso_authenticate(sub=\"existing-sso-sub-id\")\n\n with mock.patch(\n \"aurweb.routers.sso.oauth.sso.authorize_access_token\",\n side_effect=mock_auth,\n ), mock.patch(\n \"aurweb.routers.sso.oauth.sso.parse_id_token\",\n side_effect=mock_parse,\n ):\n with client as request:\n resp = request.get(\"/sso/authenticate\")\n\n assert resp.status_code == int(HTTPStatus.SEE_OTHER)\n assert resp.headers.get(\"location\") == \"/\"\n assert \"AURSID\" in resp.cookies\n\n session = db.query(Session).filter(Session.UsersID == linked_user.ID).first()\n assert session is not None\n\n\ndef test_sso_authenticate_no_matching_user(client: TestClient):\n \"\"\"Valid token but no matching SSOAccountID returns error page.\"\"\"\n mock_auth, mock_parse = mock_sso_authenticate(sub=\"unknown-sub-id\")\n\n with mock.patch(\n \"aurweb.routers.sso.oauth.sso.authorize_access_token\",\n side_effect=mock_auth,\n ), mock.patch(\n \"aurweb.routers.sso.oauth.sso.parse_id_token\",\n side_effect=mock_parse,\n ):\n with client as request:\n resp = request.get(\"/sso/authenticate\")\n\n assert resp.status_code == int(HTTPStatus.NOT_FOUND)\n assert \"No AUR account is linked\" in resp.text\n\n\ndef test_sso_authenticate_suspended_user(client: TestClient, linked_user: User):\n \"\"\"Suspended user gets 403.\"\"\"\n with db.begin():\n linked_user.Suspended = 1\n\n mock_auth, mock_parse = mock_sso_authenticate(sub=\"existing-sso-sub-id\")\n\n with mock.patch(\n \"aurweb.routers.sso.oauth.sso.authorize_access_token\",\n side_effect=mock_auth,\n ), mock.patch(\n \"aurweb.routers.sso.oauth.sso.parse_id_token\",\n side_effect=mock_parse,\n ):\n with client as request:\n resp = request.get(\"/sso/authenticate\")\n\n assert resp.status_code == int(HTTPStatus.FORBIDDEN)\n assert \"suspended\" in resp.text.lower()\n\n\ndef test_sso_authenticate_banned_ip(client: TestClient):\n \"\"\"Banned IP gets 403.\"\"\"\n from datetime import UTC, datetime, timedelta\n\n from aurweb.models.ban import Ban\n\n with db.begin():\n db.create(\n Ban, IPAddress=\"testclient\", BanTS=datetime.now(UTC) + timedelta(hours=1)\n )\n\n with client as request:\n resp = request.get(\"/sso/authenticate\")\n\n assert resp.status_code == int(HTTPStatus.FORBIDDEN)\n\n\ndef test_sso_authenticate_bad_token(client: TestClient):\n \"\"\"Bad OAuth token returns 400.\"\"\"\n from authlib.integrations.starlette_client import OAuthError\n\n async def mock_raise(request):\n raise OAuthError(error=\"invalid_grant\")\n\n with mock.patch(\n \"aurweb.routers.sso.oauth.sso.authorize_access_token\",\n side_effect=mock_raise,\n ):\n with client as request:\n resp = request.get(\"/sso/authenticate\")\n\n assert resp.status_code == int(HTTPStatus.BAD_REQUEST)\n assert \"Bad OAuth token\" in resp.text\n\n\ndef test_sso_authenticate_group_mapping(client: TestClient, linked_user: User):\n \"\"\"Group mapping updates account type on SSO login.\"\"\"\n assert linked_user.AccountTypeID == USER_ID\n\n mock_auth, mock_parse = mock_sso_authenticate(\n sub=\"existing-sso-sub-id\",\n groups=[\"Developers\"],\n )\n\n with mock.patch(\n \"aurweb.routers.sso.oauth.sso.authorize_access_token\",\n side_effect=mock_auth,\n ), mock.patch(\n \"aurweb.routers.sso.oauth.sso.parse_id_token\",\n side_effect=mock_parse,\n ):\n with client as request:\n resp = request.get(\"/sso/authenticate\")\n\n assert resp.status_code == int(HTTPStatus.SEE_OTHER)\n db.refresh(linked_user)\n assert linked_user.AccountTypeID == DEVELOPER_ID\n\n\ndef test_sso_authenticate_group_mapping_demotion(client: TestClient, linked_user: User):\n \"\"\"Group mapping demotes user when groups are removed.\"\"\"\n with db.begin():\n linked_user.AccountTypeID = DEVELOPER_ID\n\n mock_auth, mock_parse = mock_sso_authenticate(\n sub=\"existing-sso-sub-id\",\n groups=[],\n )\n\n with mock.patch(\n \"aurweb.routers.sso.oauth.sso.authorize_access_token\",\n side_effect=mock_auth,\n ), mock.patch(\n \"aurweb.routers.sso.oauth.sso.parse_id_token\",\n side_effect=mock_parse,\n ):\n with client as request:\n resp = request.get(\"/sso/authenticate\")\n\n assert resp.status_code == int(HTTPStatus.SEE_OTHER)\n db.refresh(linked_user)\n assert linked_user.AccountTypeID == USER_ID\n\n\n# ---------- User.sso_login() tests ----------\n\n\ndef test_sso_login_creates_session(user: User):\n \"\"\"sso_login creates a session and updates LastLogin.\"\"\"\n fake_request = FakeRequest()\n fake_request.client.host = \"192.168.1.1\"\n\n sid = user.sso_login(fake_request)\n assert sid is not None\n\n session = db.query(Session).filter(Session.UsersID == user.ID).first()\n assert session is not None\n assert session.SessionID == sid\n assert user.authenticated is True\n\n\ndef test_sso_login_banned_user(user: User):\n \"\"\"sso_login returns None for banned IP.\"\"\"\n from datetime import UTC, datetime, timedelta\n\n from aurweb.models.ban import Ban\n\n with db.begin():\n db.create(\n Ban, IPAddress=\"127.0.0.1\", BanTS=datetime.now(UTC) + timedelta(hours=1)\n )\n\n fake_request = FakeRequest()\n fake_request.client.host = \"127.0.0.1\"\n\n sid = user.sso_login(fake_request)\n assert sid is None\n\n\ndef test_sso_login_suspended_user(user: User):\n \"\"\"sso_login returns None for suspended user.\"\"\"\n with db.begin():\n user.Suspended = 1\n\n fake_request = FakeRequest()\n sid = user.sso_login(fake_request)\n assert sid is None\n\n\n# ---------- Account linking route tests ----------\n\n\ndef _login_user(client, user):\n \"\"\"Helper to log in a user and return cookies.\"\"\"\n referer = aurweb.config.get(\"options\", \"aur_location\") + \"/login\"\n client.headers.update({\"referer\": referer})\n resp = client.post(\n \"/login\",\n data={\"user\": user.Username, \"passwd\": \"testPassword\", \"next\": \"/\"},\n )\n return resp.cookies\n\n\ndef test_link_sso_status_unlinked(client: TestClient, user: User):\n \"\"\"GET /account/link-sso shows unlinked status.\"\"\"\n with client as request:\n cookies = _login_user(request, user)\n request.cookies = cookies\n resp = request.get(\"/account/link-sso\")\n\n assert resp.status_code == int(HTTPStatus.OK)\n assert \"not yet linked\" in resp.text\n\n\ndef test_link_sso_status_linked(client: TestClient, linked_user: User):\n \"\"\"GET /account/link-sso shows linked status.\"\"\"\n with client as request:\n cookies = _login_user(request, linked_user)\n request.cookies = cookies\n resp = request.get(\"/account/link-sso\")\n\n assert resp.status_code == int(HTTPStatus.OK)\n assert \"linked to your SSO identity\" in resp.text\n\n\ndef test_link_sso_requires_auth(client: TestClient):\n \"\"\"GET /account/link-sso requires authentication.\"\"\"\n with client as request:\n resp = request.get(\"/account/link-sso\")\n\n # requires_auth returns SEE_OTHER redirect to /login or UNAUTHORIZED\n assert resp.status_code in (\n int(HTTPStatus.SEE_OTHER),\n int(HTTPStatus.UNAUTHORIZED),\n )\n\n\ndef test_link_sso_start_redirects(client: TestClient, user: User):\n \"\"\"POST /account/link-sso/start redirects to SSO provider.\"\"\"\n\n async def mock_authorize_redirect(request, url, **kwargs):\n from fastapi.responses import RedirectResponse\n\n return RedirectResponse(\"https://accounts.archlinux.org/auth?state=test\")\n\n with mock.patch(\n \"aurweb.routers.sso_link.oauth.sso.authorize_redirect\",\n side_effect=mock_authorize_redirect,\n ):\n with client as request:\n cookies = _login_user(request, user)\n request.cookies = cookies\n resp = request.post(\"/account/link-sso/start\")\n\n assert resp.status_code in (\n int(HTTPStatus.TEMPORARY_REDIRECT),\n int(HTTPStatus.SEE_OTHER),\n int(HTTPStatus.FOUND),\n )\n\n\ndef test_link_sso_callback_invalid_state(client: TestClient, user: User):\n \"\"\"Callback with invalid state returns 400.\"\"\"\n with client as request:\n cookies = _login_user(request, user)\n request.cookies = cookies\n resp = request.get(\"/account/link-sso/callback?state=bad-state\")\n\n assert resp.status_code == int(HTTPStatus.BAD_REQUEST)\n assert \"Invalid state\" in resp.text\n\n\ndef test_link_sso_callback_duplicate_sub(\n client: TestClient, user: User, linked_user: User\n):\n \"\"\"Callback when sub is already linked to another account returns conflict.\"\"\"\n mock_auth, mock_parse = mock_sso_authenticate(sub=\"existing-sso-sub-id\")\n\n with mock.patch(\n \"aurweb.routers.sso_link.oauth.sso.authorize_access_token\",\n side_effect=mock_auth,\n ), mock.patch(\n \"aurweb.routers.sso_link.oauth.sso.parse_id_token\",\n side_effect=mock_parse,\n ):\n with client as request:\n cookies = _login_user(request, user)\n request.cookies = cookies\n with mock.patch(\n \"starlette.requests.Request.session\",\n new_callable=mock.PropertyMock,\n return_value={\"sso_link_state\": \"valid-state\"},\n ):\n resp = request.get(\n \"/account/link-sso/callback?state=valid-state\"\n )\n\n assert resp.status_code == int(HTTPStatus.CONFLICT)\n assert \"already linked\" in resp.text.lower()\n\n\n# ---------- Login page SSO button test ----------\n\n\ndef test_login_page_shows_sso_button(client: TestClient):\n \"\"\"Login page shows SSO button when SSO is configured.\"\"\"\n sso_url = \"https://accounts.archlinux.org/.well-known/openid-configuration\"\n\n with mock.patch.dict(\n \"aurweb.config._get_parser\",\n ) if False else mock.patch(\n \"aurweb.config.get\",\n ) as mock_get:\n original_get = aurweb.config._get_parser().get\n\n def patched_get(section, option, **kwargs):\n if section == \"sso\" and option == \"openid_configuration\":\n return sso_url\n return original_get(section, option, **kwargs)\n\n mock_get.side_effect = patched_get\n\n with client as request:\n resp = request.get(\"/login\")\n\n assert resp.status_code == int(HTTPStatus.OK)\n assert \"/sso/login\" in resp.text\n assert \"Login with SSO\" in resp.text\n","structuredPatch":[{"oldStart":136,"oldLines":7,"newStart":136,"newLines":7,"lines":[" assert session is not None"," "," ","-def test_sso_authenticate_no_matching_user(client: TestClient, user: User):","+def test_sso_authenticate_no_matching_user(client: TestClient):"," \"\"\"Valid token but no matching SSOAccountID returns error page.\"\"\""," mock_auth, mock_parse = mock_sso_authenticate(sub=\"unknown-sub-id\")"," "]},{"oldStart":175,"oldLines":7,"newStart":175,"newLines":7,"lines":[" assert \"suspended\" in resp.text.lower()"," "," ","-def test_sso_authenticate_banned_ip(client: TestClient, linked_user: User):","+def test_sso_authenticate_banned_ip(client: TestClient):"," \"\"\"Banned IP gets 403.\"\"\""," from datetime import UTC, datetime, timedelta"," "]},{"oldStart":186,"oldLines":18,"newStart":186,"newLines":9,"lines":[" Ban, IPAddress=\"testclient\", BanTS=datetime.now(UTC) + timedelta(hours=1)"," )"," ","- mock_auth, mock_parse = mock_sso_authenticate(sub=\"existing-sso-sub-id\")","+ with client as request:","+ resp = request.get(\"/sso/authenticate\")"," ","- with mock.patch(","- \"aurweb.routers.sso.oauth.sso.authorize_access_token\",","- side_effect=mock_auth,","- ), mock.patch(","- \"aurweb.routers.sso.oauth.sso.parse_id_token\",","- side_effect=mock_parse,","- ):","- with client as request:","- resp = request.get(\"/sso/authenticate\")","-"," assert resp.status_code == int(HTTPStatus.FORBIDDEN)"," "," "]},{"oldStart":335,"oldLines":7,"newStart":326,"newLines":7,"lines":[" resp = request.get(\"/account/link-sso\")"," "," assert resp.status_code == int(HTTPStatus.OK)","- assert \"Not linked\" in resp.text or \"not yet linked\" in resp.text","+ assert \"not yet linked\" in resp.text"," "," "," def test_link_sso_status_linked(client: TestClient, linked_user: User):"]},{"oldStart":346,"oldLines":17,"newStart":337,"newLines":19,"lines":[" resp = request.get(\"/account/link-sso\")"," "," assert resp.status_code == int(HTTPStatus.OK)","- assert \"linked to your SSO\" in resp.text.lower() or \"linked\" in resp.text.lower()","+ assert \"linked to your SSO identity\" in resp.text"," "," "," def test_link_sso_requires_auth(client: TestClient):","- \"\"\"GET /account/link-sso redirects to login when not authenticated.\"\"\"","+ \"\"\"GET /account/link-sso requires authentication.\"\"\""," with client as request:"," resp = request.get(\"/account/link-sso\")"," ","- assert resp.status_code == int(HTTPStatus.SEE_OTHER)","- location = resp.headers.get(\"location\", \"\")","- assert \"/login\" in location","+ # requires_auth returns SEE_OTHER redirect to /login or UNAUTHORIZED","+ assert resp.status_code in (","+ int(HTTPStatus.SEE_OTHER),","+ int(HTTPStatus.UNAUTHORIZED),","+ )"," "," "," def test_link_sso_start_redirects(client: TestClient, user: User):"]},{"oldStart":410,"oldLines":17,"newStart":403,"newLines":14,"lines":[" with client as request:"," cookies = _login_user(request, user)"," request.cookies = cookies","- # Set a valid state in the session","- request.get(\"/account/link-sso\")","- # We need to simulate the state -- for the callback test,","- # we'd need to go through the full flow. Since we can't easily","- # set session state in TestClient, we mock the state check."," with mock.patch("," \"starlette.requests.Request.session\","," new_callable=mock.PropertyMock,"," return_value={\"sso_link_state\": \"valid-state\"},"," ):","- resp = request.get(\"/account/link-sso/callback?state=valid-state\")","+ resp = request.get(","+ \"/account/link-sso/callback?state=valid-state\"","+ )"," "," assert resp.status_code == int(HTTPStatus.CONFLICT)"," assert \"already linked\" in resp.text.lower()"]},{"oldStart":431,"oldLines":16,"newStart":421,"newLines":18,"lines":[" "," def test_login_page_shows_sso_button(client: TestClient):"," \"\"\"Login page shows SSO button when SSO is configured.\"\"\"","- with mock.patch(","+ sso_url = \"https://accounts.archlinux.org/.well-known/openid-configuration\"","+","+ with mock.patch.dict(","+ \"aurweb.config._get_parser\",","+ ) if False else mock.patch("," \"aurweb.config.get\",","- wraps=aurweb.config.get,"," ) as mock_get:","- # Ensure sso openid_configuration returns a truthy value","- original_get = aurweb.config.get","+ original_get = aurweb.config._get_parser().get"," "," def patched_get(section, option, **kwargs):"," if section == \"sso\" and option == \"openid_configuration\":","- return \"https://accounts.archlinux.org/.well-known/openid-configuration\"","+ return sso_url"," return original_get(section, option, **kwargs)"," "," mock_get.side_effect = patched_get"]}],"originalFile":"from http import HTTPStatus\nfrom unittest import mock\n\nimport pytest\nfrom fastapi.testclient import TestClient\n\nimport aurweb.config\nfrom aurweb import db\nfrom aurweb.asgi import app\nfrom aurweb.models.account_type import (\n DEVELOPER_ID,\n PACKAGE_MAINTAINER_AND_DEV_ID,\n PACKAGE_MAINTAINER_ID,\n USER_ID,\n)\nfrom aurweb.models.session import Session\nfrom aurweb.models.user import User\nfrom aurweb.routers.sso import _map_groups_to_account_type\nfrom aurweb.testing.requests import Request as FakeRequest\n\n\n@pytest.fixture(autouse=True)\ndef setup(db_test):\n return\n\n\n@pytest.fixture\ndef client() -> TestClient:\n client = TestClient(app=app)\n client.follow_redirects = False\n yield client\n\n\n@pytest.fixture\ndef user() -> User:\n with db.begin():\n user = db.create(\n User,\n Username=\"testuser\",\n Email=\"test@example.org\",\n RealName=\"Test User\",\n Passwd=\"testPassword\",\n AccountTypeID=USER_ID,\n )\n yield user\n\n\n@pytest.fixture\ndef linked_user() -> User:\n with db.begin():\n user = db.create(\n User,\n Username=\"linkeduser\",\n Email=\"linked@example.org\",\n RealName=\"Linked User\",\n Passwd=\"testPassword\",\n AccountTypeID=USER_ID,\n SSOAccountID=\"existing-sso-sub-id\",\n )\n yield user\n\n\ndef mock_sso_authenticate(sub=\"test-sso-sub-123\", groups=None, email=None):\n \"\"\"Return mock functions for OAuth token exchange and ID token parsing.\"\"\"\n token = {\"access_token\": \"mock-access-token\", \"id_token\": \"mock-id-token\"}\n userinfo = {\"sub\": sub}\n if groups is not None:\n userinfo[\"groups\"] = groups\n if email is not None:\n userinfo[\"email\"] = email\n\n async def mock_authorize_access_token(request):\n return token\n\n async def mock_parse_id_token(request, token_):\n return userinfo\n\n return mock_authorize_access_token, mock_parse_id_token\n\n\n# ---------- Group mapping unit tests ----------\n\n\ndef test_map_groups_developer_only():\n assert _map_groups_to_account_type([\"Developers\"]) == DEVELOPER_ID\n\n\ndef test_map_groups_pm_only():\n assert _map_groups_to_account_type([\"Package Maintainers\"]) == PACKAGE_MAINTAINER_ID\n\n\ndef test_map_groups_both():\n groups = [\"Developers\", \"Package Maintainers\"]\n assert _map_groups_to_account_type(groups) == PACKAGE_MAINTAINER_AND_DEV_ID\n\n\ndef test_map_groups_none():\n assert _map_groups_to_account_type([]) == USER_ID\n\n\ndef test_map_groups_unrelated():\n assert _map_groups_to_account_type([\"SomeOtherGroup\"]) == USER_ID\n\n\ndef test_map_groups_empty_config():\n with mock.patch(\"aurweb.config.get_with_fallback\", return_value=\"\"):\n assert _map_groups_to_account_type([\"Developers\"]) is None\n\n\ndef test_map_groups_null_input():\n assert _map_groups_to_account_type(None) == USER_ID\n\n\n# ---------- SSO authenticate route tests ----------\n\n\ndef test_sso_authenticate_user_found(client: TestClient, linked_user: User):\n \"\"\"Valid token with matching SSOAccountID creates a session.\"\"\"\n mock_auth, mock_parse = mock_sso_authenticate(sub=\"existing-sso-sub-id\")\n\n with mock.patch(\n \"aurweb.routers.sso.oauth.sso.authorize_access_token\",\n side_effect=mock_auth,\n ), mock.patch(\n \"aurweb.routers.sso.oauth.sso.parse_id_token\",\n side_effect=mock_parse,\n ):\n with client as request:\n resp = request.get(\"/sso/authenticate\")\n\n assert resp.status_code == int(HTTPStatus.SEE_OTHER)\n assert resp.headers.get(\"location\") == \"/\"\n assert \"AURSID\" in resp.cookies\n\n session = db.query(Session).filter(Session.UsersID == linked_user.ID).first()\n assert session is not None\n\n\ndef test_sso_authenticate_no_matching_user(client: TestClient, user: User):\n \"\"\"Valid token but no matching SSOAccountID returns error page.\"\"\"\n mock_auth, mock_parse = mock_sso_authenticate(sub=\"unknown-sub-id\")\n\n with mock.patch(\n \"aurweb.routers.sso.oauth.sso.authorize_access_token\",\n side_effect=mock_auth,\n ), mock.patch(\n \"aurweb.routers.sso.oauth.sso.parse_id_token\",\n side_effect=mock_parse,\n ):\n with client as request:\n resp = request.get(\"/sso/authenticate\")\n\n assert resp.status_code == int(HTTPStatus.NOT_FOUND)\n assert \"No AUR account is linked\" in resp.text\n\n\ndef test_sso_authenticate_suspended_user(client: TestClient, linked_user: User):\n \"\"\"Suspended user gets 403.\"\"\"\n with db.begin():\n linked_user.Suspended = 1\n\n mock_auth, mock_parse = mock_sso_authenticate(sub=\"existing-sso-sub-id\")\n\n with mock.patch(\n \"aurweb.routers.sso.oauth.sso.authorize_access_token\",\n side_effect=mock_auth,\n ), mock.patch(\n \"aurweb.routers.sso.oauth.sso.parse_id_token\",\n side_effect=mock_parse,\n ):\n with client as request:\n resp = request.get(\"/sso/authenticate\")\n\n assert resp.status_code == int(HTTPStatus.FORBIDDEN)\n assert \"suspended\" in resp.text.lower()\n\n\ndef test_sso_authenticate_banned_ip(client: TestClient, linked_user: User):\n \"\"\"Banned IP gets 403.\"\"\"\n from datetime import UTC, datetime, timedelta\n\n from aurweb.models.ban import Ban\n\n with db.begin():\n db.create(\n Ban, IPAddress=\"testclient\", BanTS=datetime.now(UTC) + timedelta(hours=1)\n )\n\n mock_auth, mock_parse = mock_sso_authenticate(sub=\"existing-sso-sub-id\")\n\n with mock.patch(\n \"aurweb.routers.sso.oauth.sso.authorize_access_token\",\n side_effect=mock_auth,\n ), mock.patch(\n \"aurweb.routers.sso.oauth.sso.parse_id_token\",\n side_effect=mock_parse,\n ):\n with client as request:\n resp = request.get(\"/sso/authenticate\")\n\n assert resp.status_code == int(HTTPStatus.FORBIDDEN)\n\n\ndef test_sso_authenticate_bad_token(client: TestClient):\n \"\"\"Bad OAuth token returns 400.\"\"\"\n from authlib.integrations.starlette_client import OAuthError\n\n async def mock_raise(request):\n raise OAuthError(error=\"invalid_grant\")\n\n with mock.patch(\n \"aurweb.routers.sso.oauth.sso.authorize_access_token\",\n side_effect=mock_raise,\n ):\n with client as request:\n resp = request.get(\"/sso/authenticate\")\n\n assert resp.status_code == int(HTTPStatus.BAD_REQUEST)\n assert \"Bad OAuth token\" in resp.text\n\n\ndef test_sso_authenticate_group_mapping(client: TestClient, linked_user: User):\n \"\"\"Group mapping updates account type on SSO login.\"\"\"\n assert linked_user.AccountTypeID == USER_ID\n\n mock_auth, mock_parse = mock_sso_authenticate(\n sub=\"existing-sso-sub-id\",\n groups=[\"Developers\"],\n )\n\n with mock.patch(\n \"aurweb.routers.sso.oauth.sso.authorize_access_token\",\n side_effect=mock_auth,\n ), mock.patch(\n \"aurweb.routers.sso.oauth.sso.parse_id_token\",\n side_effect=mock_parse,\n ):\n with client as request:\n resp = request.get(\"/sso/authenticate\")\n\n assert resp.status_code == int(HTTPStatus.SEE_OTHER)\n db.refresh(linked_user)\n assert linked_user.AccountTypeID == DEVELOPER_ID\n\n\ndef test_sso_authenticate_group_mapping_demotion(client: TestClient, linked_user: User):\n \"\"\"Group mapping demotes user when groups are removed.\"\"\"\n with db.begin():\n linked_user.AccountTypeID = DEVELOPER_ID\n\n mock_auth, mock_parse = mock_sso_authenticate(\n sub=\"existing-sso-sub-id\",\n groups=[],\n )\n\n with mock.patch(\n \"aurweb.routers.sso.oauth.sso.authorize_access_token\",\n side_effect=mock_auth,\n ), mock.patch(\n \"aurweb.routers.sso.oauth.sso.parse_id_token\",\n side_effect=mock_parse,\n ):\n with client as request:\n resp = request.get(\"/sso/authenticate\")\n\n assert resp.status_code == int(HTTPStatus.SEE_OTHER)\n db.refresh(linked_user)\n assert linked_user.AccountTypeID == USER_ID\n\n\n# ---------- User.sso_login() tests ----------\n\n\ndef test_sso_login_creates_session(user: User):\n \"\"\"sso_login creates a session and updates LastLogin.\"\"\"\n fake_request = FakeRequest()\n fake_request.client.host = \"192.168.1.1\"\n\n sid = user.sso_login(fake_request)\n assert sid is not None\n\n session = db.query(Session).filter(Session.UsersID == user.ID).first()\n assert session is not None\n assert session.SessionID == sid\n assert user.authenticated is True\n\n\ndef test_sso_login_banned_user(user: User):\n \"\"\"sso_login returns None for banned IP.\"\"\"\n from datetime import UTC, datetime, timedelta\n\n from aurweb.models.ban import Ban\n\n with db.begin():\n db.create(\n Ban, IPAddress=\"127.0.0.1\", BanTS=datetime.now(UTC) + timedelta(hours=1)\n )\n\n fake_request = FakeRequest()\n fake_request.client.host = \"127.0.0.1\"\n\n sid = user.sso_login(fake_request)\n assert sid is None\n\n\ndef test_sso_login_suspended_user(user: User):\n \"\"\"sso_login returns None for suspended user.\"\"\"\n with db.begin():\n user.Suspended = 1\n\n fake_request = FakeRequest()\n sid = user.sso_login(fake_request)\n assert sid is None\n\n\n# ---------- Account linking route tests ----------\n\n\ndef _login_user(client, user):\n \"\"\"Helper to log in a user and return cookies.\"\"\"\n referer = aurweb.config.get(\"options\", \"aur_location\") + \"/login\"\n client.headers.update({\"referer\": referer})\n resp = client.post(\n \"/login\",\n data={\"user\": user.Username, \"passwd\": \"testPassword\", \"next\": \"/\"},\n )\n return resp.cookies\n\n\ndef test_link_sso_status_unlinked(client: TestClient, user: User):\n \"\"\"GET /account/link-sso shows unlinked status.\"\"\"\n with client as request:\n cookies = _login_user(request, user)\n request.cookies = cookies\n resp = request.get(\"/account/link-sso\")\n\n assert resp.status_code == int(HTTPStatus.OK)\n assert \"Not linked\" in resp.text or \"not yet linked\" in resp.text\n\n\ndef test_link_sso_status_linked(client: TestClient, linked_user: User):\n \"\"\"GET /account/link-sso shows linked status.\"\"\"\n with client as request:\n cookies = _login_user(request, linked_user)\n request.cookies = cookies\n resp = request.get(\"/account/link-sso\")\n\n assert resp.status_code == int(HTTPStatus.OK)\n assert \"linked to your SSO\" in resp.text.lower() or \"linked\" in resp.text.lower()\n\n\ndef test_link_sso_requires_auth(client: TestClient):\n \"\"\"GET /account/link-sso redirects to login when not authenticated.\"\"\"\n with client as request:\n resp = request.get(\"/account/link-sso\")\n\n assert resp.status_code == int(HTTPStatus.SEE_OTHER)\n location = resp.headers.get(\"location\", \"\")\n assert \"/login\" in location\n\n\ndef test_link_sso_start_redirects(client: TestClient, user: User):\n \"\"\"POST /account/link-sso/start redirects to SSO provider.\"\"\"\n\n async def mock_authorize_redirect(request, url, **kwargs):\n from fastapi.responses import RedirectResponse\n\n return RedirectResponse(\"https://accounts.archlinux.org/auth?state=test\")\n\n with mock.patch(\n \"aurweb.routers.sso_link.oauth.sso.authorize_redirect\",\n side_effect=mock_authorize_redirect,\n ):\n with client as request:\n cookies = _login_user(request, user)\n request.cookies = cookies\n resp = request.post(\"/account/link-sso/start\")\n\n assert resp.status_code in (\n int(HTTPStatus.TEMPORARY_REDIRECT),\n int(HTTPStatus.SEE_OTHER),\n int(HTTPStatus.FOUND),\n )\n\n\ndef test_link_sso_callback_invalid_state(client: TestClient, user: User):\n \"\"\"Callback with invalid state returns 400.\"\"\"\n with client as request:\n cookies = _login_user(request, user)\n request.cookies = cookies\n resp = request.get(\"/account/link-sso/callback?state=bad-state\")\n\n assert resp.status_code == int(HTTPStatus.BAD_REQUEST)\n assert \"Invalid state\" in resp.text\n\n\ndef test_link_sso_callback_duplicate_sub(\n client: TestClient, user: User, linked_user: User\n):\n \"\"\"Callback when sub is already linked to another account returns conflict.\"\"\"\n mock_auth, mock_parse = mock_sso_authenticate(sub=\"existing-sso-sub-id\")\n\n with mock.patch(\n \"aurweb.routers.sso_link.oauth.sso.authorize_access_token\",\n side_effect=mock_auth,\n ), mock.patch(\n \"aurweb.routers.sso_link.oauth.sso.parse_id_token\",\n side_effect=mock_parse,\n ):\n with client as request:\n cookies = _login_user(request, user)\n request.cookies = cookies\n # Set a valid state in the session\n request.get(\"/account/link-sso\")\n # We need to simulate the state -- for the callback test,\n # we'd need to go through the full flow. Since we can't easily\n # set session state in TestClient, we mock the state check.\n with mock.patch(\n \"starlette.requests.Request.session\",\n new_callable=mock.PropertyMock,\n return_value={\"sso_link_state\": \"valid-state\"},\n ):\n resp = request.get(\"/account/link-sso/callback?state=valid-state\")\n\n assert resp.status_code == int(HTTPStatus.CONFLICT)\n assert \"already linked\" in resp.text.lower()\n\n\n# ---------- Login page SSO button test ----------\n\n\ndef test_login_page_shows_sso_button(client: TestClient):\n \"\"\"Login page shows SSO button when SSO is configured.\"\"\"\n with mock.patch(\n \"aurweb.config.get\",\n wraps=aurweb.config.get,\n ) as mock_get:\n # Ensure sso openid_configuration returns a truthy value\n original_get = aurweb.config.get\n\n def patched_get(section, option, **kwargs):\n if section == \"sso\" and option == \"openid_configuration\":\n return \"https://accounts.archlinux.org/.well-known/openid-configuration\"\n return original_get(section, option, **kwargs)\n\n mock_get.side_effect = patched_get\n\n with client as request:\n resp = request.get(\"/login\")\n\n assert resp.status_code == int(HTTPStatus.OK)\n assert \"/sso/login\" in resp.text\n assert \"Login with SSO\" in resp.text\n"},"sourceToolAssistantUUID":"05ffcd62-fc90-47fe-bcc8-72444d1af601"} {"parentUuid":"d49102cf-7b76-467e-ae12-bf8a6b94b213","isSidechain":false,"userType":"external","cwd":"/home/josie/development/archlinux/sso","sessionId":"2600a593-d55c-4c8d-9f87-ac6c28996a43","version":"2.1.50","gitBranch":"HEAD","slug":"sprightly-knitting-thimble","message":{"model":"claude-opus-4-6","id":"msg_014o2bEYRNxGEtUUeqWY6YQ4","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01HSxJsAbor5yZyCYHRWJCoy","name":"Bash","input":{"command":"cd /home/josie/development/archlinux/packaging/aurweb && podman run --rm --network aurweb-test -v \"$(pwd):/aurweb:Z\" -w /aurweb python:3.13-slim bash -c '\napt-get update -qq && apt-get install -yqq gcc libmariadb-dev git pkg-config 2>&1 | tail -1\npip install --quiet poetry mysqlclient 2>&1 | tail -1\npoetry config virtualenvs.create false\npoetry install --no-interaction 2>&1 | tail -3\ncp conf/config.dev conf/config\npython3 -c \"\nimport configparser\nc = configparser.ConfigParser()\nc.read(\\\"conf/config\\\")\nc.set(\\\"options\\\", \\\"aurwebdir\\\", \\\"/aurweb\\\")\nc.set(\\\"options\\\", \\\"localedir\\\", \\\"/aurweb/web/locale\\\")\nc.set(\\\"database\\\", \\\"host\\\", \\\"aurweb-mariadb\\\")\nc.set(\\\"database\\\", \\\"password\\\", \\\"aurweb\\\")\nc.set(\\\"database\\\", \\\"port\\\", \\\"3306\\\")\nc.set(\\\"tracing\\\", \\\"otlp_endpoint\\\", \\\"\\\")\nc.remove_option(\\\"database\\\", \\\"socket\\\")\nwith open(\\\"conf/config\\\", \\\"w\\\") as f:\n c.write(f)\n\"\nAUR_CONFIG=conf/config python -m pytest test/test_sso.py -v --tb=short -o \"addopts=\" 2>&1\n' 2>&1 | tail -50","description":"Run fixed tests","timeout":300000},"caller":{"type":"direct"}}],"stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":4234,"cache_read_input_tokens":146697,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":4234},"output_tokens":26,"service_tier":"standard","inference_geo":"not_available"}},"requestId":"req_011CYMrYiMdoVQwYH9anPUNa","type":"assistant","uuid":"bcb41096-8cb1-4b18-9f93-a84d4cac1e4a","timestamp":"2026-02-21T20:35:59.251Z"} {"parentUuid":"bcb41096-8cb1-4b18-9f93-a84d4cac1e4a","isSidechain":false,"userType":"external","cwd":"/home/josie/development/archlinux/sso","sessionId":"2600a593-d55c-4c8d-9f87-ac6c28996a43","version":"2.1.50","gitBranch":"HEAD","slug":"sprightly-knitting-thimble","type":"progress","data":{"type":"hook_progress","hookEvent":"PreToolUse","hookName":"PreToolUse:Bash","command":"python3 ${CLAUDE_PLUGIN_ROOT}/hooks/pretooluse.py"},"toolUseID":"toolu_01HSxJsAbor5yZyCYHRWJCoy","parentToolUseID":"toolu_01HSxJsAbor5yZyCYHRWJCoy","uuid":"7a6d7e3c-0072-40df-8fd4-b0b71d545317","timestamp":"2026-02-21T20:35:59.255Z"} {"type":"queue-operation","operation":"enqueue","timestamp":"2026-02-21T20:36:04.569Z","sessionId":"2600a593-d55c-4c8d-9f87-ac6c28996a43","content":"{\"task_id\":\"b0eb53a\",\"tool_use_id\":\"toolu_01HSxJsAbor5yZyCYHRWJCoy\",\"description\":\"Run fixed tests\",\"task_type\":\"local_bash\"}"} {"parentUuid":"7a6d7e3c-0072-40df-8fd4-b0b71d545317","isSidechain":false,"userType":"external","cwd":"/home/josie/development/archlinux/sso","sessionId":"2600a593-d55c-4c8d-9f87-ac6c28996a43","version":"2.1.50","gitBranch":"HEAD","slug":"sprightly-knitting-thimble","type":"progress","data":{"type":"bash_progress","output":"","fullOutput":"","elapsedTimeSeconds":3,"totalLines":0,"totalBytes":0,"taskId":"b0eb53a","timeoutMs":300000},"toolUseID":"bash-progress-0","parentToolUseID":"toolu_01HSxJsAbor5yZyCYHRWJCoy","uuid":"deda4d2f-b014-482e-8d86-aaaa0ac2f734","timestamp":"2026-02-21T20:36:04.569Z"} {"parentUuid":"deda4d2f-b014-482e-8d86-aaaa0ac2f734","isSidechain":false,"userType":"external","cwd":"/home/josie/development/archlinux/sso","sessionId":"2600a593-d55c-4c8d-9f87-ac6c28996a43","version":"2.1.50","gitBranch":"HEAD","slug":"sprightly-knitting-thimble","type":"progress","data":{"type":"bash_progress","output":"","fullOutput":"","elapsedTimeSeconds":4,"totalLines":0,"totalBytes":0,"taskId":"b0eb53a","timeoutMs":300000},"toolUseID":"bash-progress-1","parentToolUseID":"toolu_01HSxJsAbor5yZyCYHRWJCoy","uuid":"9d5a6861-0175-49c2-9a0e-e5c021c787d5","timestamp":"2026-02-21T20:36:05.567Z"} {"parentUuid":"9d5a6861-0175-49c2-9a0e-e5c021c787d5","isSidechain":false,"userType":"external","cwd":"/home/josie/development/archlinux/sso","sessionId":"2600a593-d55c-4c8d-9f87-ac6c28996a43","version":"2.1.50","gitBranch":"HEAD","slug":"sprightly-knitting-thimble","type":"progress","data":{"type":"bash_progress","output":"","fullOutput":"","elapsedTimeSeconds":5,"totalLines":0,"totalBytes":0,"taskId":"b0eb53a","timeoutMs":300000},"toolUseID":"bash-progress-2","parentToolUseID":"toolu_01HSxJsAbor5yZyCYHRWJCoy","uuid":"4b6cea5f-feed-437c-8d4c-b4d645666aee","timestamp":"2026-02-21T20:36:06.568Z"} {"parentUuid":"4b6cea5f-feed-437c-8d4c-b4d645666aee","isSidechain":false,"userType":"external","cwd":"/home/josie/development/archlinux/sso","sessionId":"2600a593-d55c-4c8d-9f87-ac6c28996a43","version":"2.1.50","gitBranch":"HEAD","slug":"sprightly-knitting-thimble","type":"progress","data":{"type":"bash_progress","output":"","fullOutput":"","elapsedTimeSeconds":6,"totalLines":0,"totalBytes":0,"taskId":"b0eb53a","timeoutMs":300000},"toolUseID":"bash-progress-3","parentToolUseID":"toolu_01HSxJsAbor5yZyCYHRWJCoy","uuid":"f1c61384-f727-49b1-a0aa-b6e7d3f7a26d","timestamp":"2026-02-21T20:36:07.570Z"} {"parentUuid":"f1c61384-f727-49b1-a0aa-b6e7d3f7a26d","isSidechain":false,"userType":"external","cwd":"/home/josie/development/archlinux/sso","sessionId":"2600a593-d55c-4c8d-9f87-ac6c28996a43","version":"2.1.50","gitBranch":"HEAD","slug":"sprightly-knitting-thimble","type":"progress","data":{"type":"bash_progress","output":"","fullOutput":"","elapsedTimeSeconds":7,"totalLines":0,"totalBytes":0,"taskId":"b0eb53a","timeoutMs":300000},"toolUseID":"bash-progress-4","parentToolUseID":"toolu_01HSxJsAbor5yZyCYHRWJCoy","uuid":"40133d32-f840-4454-983d-cc02a687ea7d","timestamp":"2026-02-21T20:36:08.572Z"} {"parentUuid":"40133d32-f840-4454-983d-cc02a687ea7d","isSidechain":false,"userType":"external","cwd":"/home/josie/development/archlinux/sso","sessionId":"2600a593-d55c-4c8d-9f87-ac6c28996a43","version":"2.1.50","gitBranch":"HEAD","slug":"sprightly-knitting-thimble","type":"progress","data":{"type":"bash_progress","output":"","fullOutput":"","elapsedTimeSeconds":8,"totalLines":0,"totalBytes":0,"taskId":"b0eb53a","timeoutMs":300000},"toolUseID":"bash-progress-5","parentToolUseID":"toolu_01HSxJsAbor5yZyCYHRWJCoy","uuid":"70cff4ca-885f-413e-b376-2d7be66a6286","timestamp":"2026-02-21T20:36:09.572Z"} {"parentUuid":"70cff4ca-885f-413e-b376-2d7be66a6286","isSidechain":false,"userType":"external","cwd":"/home/josie/development/archlinux/sso","sessionId":"2600a593-d55c-4c8d-9f87-ac6c28996a43","version":"2.1.50","gitBranch":"HEAD","slug":"sprightly-knitting-thimble","type":"progress","data":{"type":"bash_progress","output":"","fullOutput":"","elapsedTimeSeconds":9,"totalLines":0,"totalBytes":0,"taskId":"b0eb53a","timeoutMs":300000},"toolUseID":"bash-progress-6","parentToolUseID":"toolu_01HSxJsAbor5yZyCYHRWJCoy","uuid":"994f641a-ec31-4ad9-a897-6d4f1fb9af9b","timestamp":"2026-02-21T20:36:10.572Z"} {"parentUuid":"994f641a-ec31-4ad9-a897-6d4f1fb9af9b","isSidechain":false,"userType":"external","cwd":"/home/josie/development/archlinux/sso","sessionId":"2600a593-d55c-4c8d-9f87-ac6c28996a43","version":"2.1.50","gitBranch":"HEAD","slug":"sprightly-knitting-thimble","type":"progress","data":{"type":"bash_progress","output":"","fullOutput":"","elapsedTimeSeconds":10,"totalLines":0,"totalBytes":0,"taskId":"b0eb53a","timeoutMs":300000},"toolUseID":"bash-progress-7","parentToolUseID":"toolu_01HSxJsAbor5yZyCYHRWJCoy","uuid":"119cf09d-58a8-4ac5-84bc-e17fb895c052","timestamp":"2026-02-21T20:36:11.574Z"} {"parentUuid":"119cf09d-58a8-4ac5-84bc-e17fb895c052","isSidechain":false,"userType":"external","cwd":"/home/josie/development/archlinux/sso","sessionId":"2600a593-d55c-4c8d-9f87-ac6c28996a43","version":"2.1.50","gitBranch":"HEAD","slug":"sprightly-knitting-thimble","type":"progress","data":{"type":"bash_progress","output":"","fullOutput":"","elapsedTimeSeconds":11,"totalLines":0,"totalBytes":0,"taskId":"b0eb53a","timeoutMs":300000},"toolUseID":"bash-progress-8","parentToolUseID":"toolu_01HSxJsAbor5yZyCYHRWJCoy","uuid":"5ccb12b1-8daf-406a-89b3-56a65245bc23","timestamp":"2026-02-21T20:36:12.574Z"} {"parentUuid":"5ccb12b1-8daf-406a-89b3-56a65245bc23","isSidechain":false,"userType":"external","cwd":"/home/josie/development/archlinux/sso","sessionId":"2600a593-d55c-4c8d-9f87-ac6c28996a43","version":"2.1.50","gitBranch":"HEAD","slug":"sprightly-knitting-thimble","type":"progress","data":{"type":"bash_progress","output":"","fullOutput":"","elapsedTimeSeconds":12,"totalLines":0,"totalBytes":0,"taskId":"b0eb53a","timeoutMs":300000},"toolUseID":"bash-progress-9","parentToolUseID":"toolu_01HSxJsAbor5yZyCYHRWJCoy","uuid":"e4826b4c-f2f1-4f41-b578-edb2433eab4e","timestamp":"2026-02-21T20:36:13.574Z"} {"parentUuid":"e4826b4c-f2f1-4f41-b578-edb2433eab4e","isSidechain":false,"userType":"external","cwd":"/home/josie/development/archlinux/sso","sessionId":"2600a593-d55c-4c8d-9f87-ac6c28996a43","version":"2.1.50","gitBranch":"HEAD","slug":"sprightly-knitting-thimble","type":"progress","data":{"type":"bash_progress","output":"","fullOutput":"","elapsedTimeSeconds":13,"totalLines":0,"totalBytes":0,"taskId":"b0eb53a","timeoutMs":300000},"toolUseID":"bash-progress-10","parentToolUseID":"toolu_01HSxJsAbor5yZyCYHRWJCoy","uuid":"cf264f6f-7a06-4832-8544-395fe5257211","timestamp":"2026-02-21T20:36:14.573Z"} {"parentUuid":"cf264f6f-7a06-4832-8544-395fe5257211","isSidechain":false,"userType":"external","cwd":"/home/josie/development/archlinux/sso","sessionId":"2600a593-d55c-4c8d-9f87-ac6c28996a43","version":"2.1.50","gitBranch":"HEAD","slug":"sprightly-knitting-thimble","type":"progress","data":{"type":"bash_progress","output":"","fullOutput":"","elapsedTimeSeconds":14,"totalLines":0,"totalBytes":0,"taskId":"b0eb53a","timeoutMs":300000},"toolUseID":"bash-progress-11","parentToolUseID":"toolu_01HSxJsAbor5yZyCYHRWJCoy","uuid":"eca368a3-e670-4457-9ee2-bc20cf8de976","timestamp":"2026-02-21T20:36:15.577Z"} {"parentUuid":"eca368a3-e670-4457-9ee2-bc20cf8de976","isSidechain":false,"userType":"external","cwd":"/home/josie/development/archlinux/sso","sessionId":"2600a593-d55c-4c8d-9f87-ac6c28996a43","version":"2.1.50","gitBranch":"HEAD","slug":"sprightly-knitting-thimble","type":"progress","data":{"type":"bash_progress","output":"","fullOutput":"","elapsedTimeSeconds":15,"totalLines":0,"totalBytes":0,"taskId":"b0eb53a","timeoutMs":300000},"toolUseID":"bash-progress-12","parentToolUseID":"toolu_01HSxJsAbor5yZyCYHRWJCoy","uuid":"07385390-e3d3-4735-941b-71c15a92d1a8","timestamp":"2026-02-21T20:36:16.578Z"} {"parentUuid":"07385390-e3d3-4735-941b-71c15a92d1a8","isSidechain":false,"userType":"external","cwd":"/home/josie/development/archlinux/sso","sessionId":"2600a593-d55c-4c8d-9f87-ac6c28996a43","version":"2.1.50","gitBranch":"HEAD","slug":"sprightly-knitting-thimble","type":"progress","data":{"type":"bash_progress","output":"","fullOutput":"","elapsedTimeSeconds":16,"totalLines":0,"totalBytes":0,"taskId":"b0eb53a","timeoutMs":300000},"toolUseID":"bash-progress-13","parentToolUseID":"toolu_01HSxJsAbor5yZyCYHRWJCoy","uuid":"e22b9169-e2c7-4f85-ab25-e5673040fdf4","timestamp":"2026-02-21T20:36:17.579Z"} {"parentUuid":"e22b9169-e2c7-4f85-ab25-e5673040fdf4","isSidechain":false,"userType":"external","cwd":"/home/josie/development/archlinux/sso","sessionId":"2600a593-d55c-4c8d-9f87-ac6c28996a43","version":"2.1.50","gitBranch":"HEAD","slug":"sprightly-knitting-thimble","type":"progress","data":{"type":"bash_progress","output":"","fullOutput":"","elapsedTimeSeconds":17,"totalLines":0,"totalBytes":0,"taskId":"b0eb53a","timeoutMs":300000},"toolUseID":"bash-progress-14","parentToolUseID":"toolu_01HSxJsAbor5yZyCYHRWJCoy","uuid":"d570603e-d369-4fca-9c95-18e0b021bd70","timestamp":"2026-02-21T20:36:18.578Z"} {"parentUuid":"d570603e-d369-4fca-9c95-18e0b021bd70","isSidechain":false,"userType":"external","cwd":"/home/josie/development/archlinux/sso","sessionId":"2600a593-d55c-4c8d-9f87-ac6c28996a43","version":"2.1.50","gitBranch":"HEAD","slug":"sprightly-knitting-thimble","type":"progress","data":{"type":"bash_progress","output":"","fullOutput":"","elapsedTimeSeconds":18,"totalLines":0,"totalBytes":0,"taskId":"b0eb53a","timeoutMs":300000},"toolUseID":"bash-progress-15","parentToolUseID":"toolu_01HSxJsAbor5yZyCYHRWJCoy","uuid":"ec9745d2-57b8-4ca4-9bcb-6f9f7ad53ee6","timestamp":"2026-02-21T20:36:19.578Z"} {"parentUuid":"ec9745d2-57b8-4ca4-9bcb-6f9f7ad53ee6","isSidechain":false,"userType":"external","cwd":"/home/josie/development/archlinux/sso","sessionId":"2600a593-d55c-4c8d-9f87-ac6c28996a43","version":"2.1.50","gitBranch":"HEAD","slug":"sprightly-knitting-thimble","type":"progress","data":{"type":"bash_progress","output":"","fullOutput":"","elapsedTimeSeconds":19,"totalLines":0,"totalBytes":0,"taskId":"b0eb53a","timeoutMs":300000},"toolUseID":"bash-progress-16","parentToolUseID":"toolu_01HSxJsAbor5yZyCYHRWJCoy","uuid":"f8359c6a-ec1f-4cad-86ef-81e06a774d82","timestamp":"2026-02-21T20:36:20.578Z"} {"parentUuid":"f8359c6a-ec1f-4cad-86ef-81e06a774d82","isSidechain":false,"userType":"external","cwd":"/home/josie/development/archlinux/sso","sessionId":"2600a593-d55c-4c8d-9f87-ac6c28996a43","version":"2.1.50","gitBranch":"HEAD","slug":"sprightly-knitting-thimble","type":"progress","data":{"type":"bash_progress","output":"","fullOutput":"","elapsedTimeSeconds":20,"totalLines":0,"totalBytes":0,"taskId":"b0eb53a","timeoutMs":300000},"toolUseID":"bash-progress-17","parentToolUseID":"toolu_01HSxJsAbor5yZyCYHRWJCoy","uuid":"30c60028-6aeb-4ecd-9340-e7b6fa0bf13f","timestamp":"2026-02-21T20:36:21.578Z"} {"parentUuid":"30c60028-6aeb-4ecd-9340-e7b6fa0bf13f","isSidechain":false,"userType":"external","cwd":"/home/josie/development/archlinux/sso","sessionId":"2600a593-d55c-4c8d-9f87-ac6c28996a43","version":"2.1.50","gitBranch":"HEAD","slug":"sprightly-knitting-thimble","type":"progress","data":{"type":"bash_progress","output":"","fullOutput":"","elapsedTimeSeconds":21,"totalLines":0,"totalBytes":0,"taskId":"b0eb53a","timeoutMs":300000},"toolUseID":"bash-progress-18","parentToolUseID":"toolu_01HSxJsAbor5yZyCYHRWJCoy","uuid":"88f54827-8453-4b42-b9b0-b0765a8b76c7","timestamp":"2026-02-21T20:36:22.577Z"} {"parentUuid"G+o7G6yZinAWAHteAtxcGXn68uAMcAXBO sfkoCFlbcpGRY+ei2+LLxb3UUZUMTWbhLxawAiCkuPDfmwY2dAw5BfcCLDv/OkYfOu N5G1aufIox0KriX+gogYdyraxI94BwkeEvcseqYgnJ+Ha4T3LteEDksgRLJVHEIBfo althkKg1aeCGg== From: Sasha Levin To: patches@lists.linux.dev, stable@vger.kernel.org Cc: Dirk Su , Mark Brown , Sasha Levin , alex.andries.aa@gmail.com, oliver.schramm97@gmail.com, zhangheng@kylinos.cn, elantsew.andrew@gmail.com, talhah.peerbhai@gmail.com, pipocavsobake@gmail.com, ravenblack@gmail.com, laodenbach@gmail.com, santesegabriel@gmail.com, keenplify@gmail.com Subject: [PATCH AUTOSEL 6.18-6.6] ASoC: amd: yc: Add quirk for HP 200 G2a 16 Date: Mon, 9 Feb 2026 07:26:45 -0500 Message-ID: <20260209122714.1037915-6-sashal@kernel.org> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260209122714.1037915-1-sashal@kernel.org> References: <20260209122714.1037915-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: stable@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore X-stable-base: Linux 6.18.9 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-DKIM: signer='kernel.org' status='pass' reason='' DKIMCheck: Server passes DKIM test, 0 Spam score X-Spam-Score: -1.2 (-) X-Spam-Report: Spam detection software, running on the system "witcher.mxrouting.net", has performed the tests listed below against this email. Information: https://mxroutedocs.com/directadmin/spamfilters/ --- Content analysis details: (-1.2 points) --- pts rule name description ---- ---------------------- ----------------------------------------- 0.0 URIBL_BLOCKED ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [URIs: msgid.link] 0.0 RCVD_IN_DNSWL_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to DNSWL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#DnsBlocklists-dnsbl-block for more information. [172.234.253.10 listed in list.dnswl.org] -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager -0.0 DKIMWL_WL_HIGH DKIMwl.org - High trust sender SpamTally: Final spam score: -11 From: Dirk Su [ Upstream commit 611c7d2262d5645118e0b3a9a88475d35a8366f2 ] Fix the missing mic on HP 200 G2a 16 by adding quirk with the board ID 8EE4 Signed-off-by: Dirk Su Link: https://patch.msgid.link/20260129065038.39349-1-dirk.su@canonical.com Signed-off-by: Mark Brown Signed-off-by: Sasha Levin --- LLM Generated explanations, may be completely bogus: ## Analysis ### Commit Message Analysis The commit explicitly states it fixes a missing microphone on the HP 200 G2a 16 laptop by adding a DMI quirk entry with board ID "8EE4". This is a straightforward hardware quirk addition. ### Code Change Analysis The change adds exactly one new DMI table entry to the `yc_acp_quirk_table[]` array in `sound/soc/amd/yc/acp6x-mach.c`: ```c { .driver_data = &acp6x_card, .matches = { DMI_MATCH(DMI_BOARD_VENDOR, "HP"), DMI_MATCH(DMI_BOARD_NAME, "8EE4"), }, }, ``` This is identical in structure to dozens of other entries already in the table. It simply tells the AMD Yellow Carp audio driver to match this specific HP board so the audio card is properly configured. ### Classification This falls squarely into the **hardware quirk/workaround** exception category. It: - Adds a DMI match entry to an existing driver's quirk table - Follows the exact same pattern as all other entries in the table - Fixes a real hardware issue (non-functional microphone) for a specific laptop model - Introduces zero risk of regression to any other hardware ### Scope and Risk Assessment - **Lines changed**: ~7 lines (one table entry addition) - **Files touched**: 1 - **Risk**: Essentially zero. The DMI match only triggers on the specific HP board with ID "8EE4". No other systems are affected. - **Complexity**: Trivial — copy-paste of an existing pattern ### User Impact Without this quirk, users of the HP 200 G2a 16 laptop have a non- functional microphone. This is a real usability problem — the microphone simply doesn't work. This is the kind of fix that stable users need: their hardware doesn't work, and a tiny patch makes it work. ### Stability and Dependencies - No dependencies on other commits - The AMD YC audio driver and the quirk table infrastructure exist in all recent stable trees - The patch applies cleanly as a simple table entry addition - The author is from Canonical (Ubuntu), suggesting this was found and tested on real user hardware ### Precedent This file (`acp6x-mach.c`) has had many similar quirk additions backported to stable trees. This is routine stable material. The fix is a trivial, zero-risk hardware quirk addition that fixes a non-functional microphone on a specific HP laptop model. It perfectly matches the stable kernel criteria for hardware quirks/workarounds. **YES** 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 c0a8afb42e165..3018e1a6f6f31 100644 --- a/sound/soc/amd/yc/acp6x-mach.c +++ b/sound/soc/amd/yc/acp6x-mach.c @@ -626,6 +626,13 @@ static const struct dmi_system_id yc_acp_quirk_table[] = { DMI_MATCH(DMI_BOARD_NAME, "8BD6"), } }, + { + .driver_data = &acp6x_card, + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "HP"), + DMI_MATCH(DMI_BOARD_NAME, "8EE4"), + } + }, { .driver_data = &acp6x_card, .matches = { -- 2.51.0 From - Mon Feb 09 12:28:06 2026 X-Mozilla-Status: 0001 X-Mozilla-Status2: 00000000 Return-Path: Delivered-To: hi@josie.lol Received: from witcher.mxrouting.net by witcher.mxrouting.net with LMTP id gMEQEtHSiWn0mCsAYBR5ng (envelope-from ) for ; Mon, 09 Feb 2026 12:28:01 +0000 Return-path: Envelope-to: hi@josie.lol Delivery-date: Mon, 09 Feb 2026 12:28:01 +0000 Received: from sea.lore.kernel.org ([172.234.253.10]) by witcher.mxrouting.net with esmtps (TLS1.3) tls TLS_AES_256_GCM_SHA384 (Exim 4.98) (envelope-from ) id 1vpQMy-0000000Cd2i-3q6E for hi@josie.lol; Mon, 09 Feb 2026 12:28:01 +0000 Received: from smtp.subspace.kernel.org (conduit.subspace.kernel.org [100.90.174.1]) by sea.lore.kernel.org (Postfix) with ESMTP id 39C8E301BF66 for ; Mon, 9 Feb 2026 12:27:29 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 01157374746; Mon, 9 Feb 2026 12:27:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="YpldXQ0Z" X-Original-To: stable@vger.kernel.org Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D01803019CB; Mon, 9 Feb 2026 12:27: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=1770640048; cv=none; b=IsgxkAzNf4ZRCrY5nQDJ9M0QUCtERorjAEv9lxJe4VajQVzmDZgDano//0FUomaJiBiRj2nwTeAmoXWyIPEKd2gfkqKjo9avunDzxfB+79iPW/+syeNFB+MNw8HLWhiODHcnyZS4meD084KANx18BVhif6VL05ML54wUYlj3CSQ= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770640048; c=relaxed/simple; bh=2aUL/hiwMfvZvlsr+nayjvicHZWhsyP34+a+oTHFnjA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=qYoyCSVY+nHwFaxV3Mw4WL+l/8GjPuKJGFpzKyZ7zRhL9q2lBmX/qpqiogad8r2vw1Qwz27IRvQXmaw5fX9FnNUUromqJ/3TPOa+HCw1HVQ6qrn6iRjEmsSTRN/OjbUXBNXCClsH4zUTDuTjVDgcFE5zlYAIIsmsIzkL742sWao= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=YpldXQ0Z; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id D6D4EC116C6; Mon, 9 Feb 2026 12:27:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1770640048; bh=2aUL/hiwMfvZvlsr+nayjvicHZWhsyP34+a+oTHFnjA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=YpldXQ0ZrhEVzXa36y/M7lCoUcnmHvO1Hf1MU3vsoYoMGWei9kJs3XMtD8r6bgoK1 xjkN9jTVbm3uPJSjzCxAY272Gqk145mDX/grgcvMfc6xvtWPtVw6K0+h0uNpKpm/KX Gi2k6NssYSJ6ZpBSLfpDHjsTdvXYu6GdAFLCAZEaGoY3tMtU/mV+wPZtlpORzUWWJv nkbZwz8NrYRJFdEH5h5otKnkQFsdfmZDpPSx775zyRcT+V+h/BUr+szE8tE8//D8E5 jycUpU7nNKNY5QepmyQSKMLcJoHpPHXY3Zx2xT9nqj6bEmj+REoNSobKJduylAVB6n wNkkZkcsw3OmA== From: Sasha Levin To: patches@lists.linux.dev, stable@vger.kernel.org Cc: "Rafael J. Wysocki" , =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= , Sasha Levin , kenneth.t.chan@gmail.com, hansg@kernel.org, platform-driver-x86@vger.kernel.org Subject: [PATCH AUTOSEL 6.18-5.15] platform/x86: panasonic-laptop: Fix sysfs group leak in error path Date: Mon, 9 Feb 2026 07:26:46 -0500 Message-ID: <20260209122714.1037915-7-sashal@kernel.org> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260209122714.1037915-1-sashal@kernel.org> References: <20260209122714.1037915-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: stable@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 X-stable-base: Linux 6.18.9 Content-Transfer-Encoding: 8bit X-DKIM: signer='kernel.org' status='pass' reason='' DKIMCheck: Server passes DKIM test, 0 Spam score X-Spam-Score: -1.2 (-) X-Spam-Report: Spam detection software, running on the system "witcher.mxrouting.net", has performed the tests listed below against this email. Information: https://mxroutedocs.com/directadmin/spamfilters/ --- Content analysis details: (-1.2 points) --- pts rule name description ---- ---------------------- ----------------------------------------- 0.0 URIBL_BLOCKED ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [URIs: msgid.link] 0.0 RCVD_IN_DNSWL_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to DNSWL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#DnsBlocklists-dnsbl-block for more information. [172.234.253.10 listed in list.dnswl.org] -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager -0.0 DKIMWL_WL_HIGH DKIMwl.org - High trust sender SpamTally: Final spam score: -11 From: "Rafael J. Wysocki" [ Upstream commit 43b0b7eff4b3fb684f257d5a24376782e9663465 ] The acpi_pcc_hotkey_add() error path leaks sysfs group pcc_attr_group if platform_device_register_simple() fails for the "panasonic" platform device. Address this by making it call sysfs_remove_group() in that case for the group in question. Signed-off-by: Rafael J. Wysocki Link: https://patch.msgid.link/3398370.44csPzL39Z@rafael.j.wysocki Reviewed-by: Ilpo Järvinen Signed-off-by: Ilpo Järvinen Signed-off-by: Sasha Levin --- LLM Generated explanations, may be completely bogus: ## Analysis ### Commit Message Analysis The commit message is clear and precise: it identifies a **sysfs group leak** in the error path of `acpi_pcc_hotkey_add()`. Specifically, when `platform_device_register_simple()` fails, the code jumps to `out_backlight`, which skips the `sysfs_remove_group()` cleanup for `pcc_attr_group` that was successfully created earlier. This is a classic resource leak on an error path. The author is Rafael J. Wysocki, a highly respected kernel maintainer (PM subsystem, ACPI), and the patch is reviewed by Ilpo Järvinen (Intel platform/x86 maintainer). Both are strong trust indicators. ### Code Change Analysis The fix is extremely small and surgical — exactly 3 lines changed: 1. **Changed `goto out_backlight` to `goto out_sysfs`** — When `platform_device_register_simple()` fails, instead of jumping past the sysfs cleanup, it now jumps to a new label that properly removes the sysfs group first. 2. **Added new `out_sysfs:` label** with `sysfs_remove_group(&device->dev.kobj, &pcc_attr_group)` — This ensures the sysfs group created by `sysfs_create_group()` a few lines earlier is properly cleaned up. The error path ordering is now correct: - `out_platform` → unregister platform device - `out_sysfs` → remove sysfs group (NEW) - `out_backlight` → unregister backlight - `out_input` → unregister input device - `out_sinf` → free sinf - `out_hotkey` → free pcc This follows the standard reverse-order cleanup pattern in Linux kernel drivers. ### Bug Classification This is a **resource leak fix** on an error path. The leaked sysfs group means: - Sysfs entries remain dangling after driver probe failure - Memory associated with the sysfs group attributes is leaked - Could cause issues if the driver is retried or another driver tries to use the same sysfs paths ### Scope and Risk Assessment - **Lines changed**: ~3 effective lines (one goto target change, two new lines for the label and cleanup call) - **Files touched**: 1 (drivers/platform/x86/panasonic-laptop.c) - **Risk**: Extremely low — this only affects the error path when `platform_device_register_simple()` fails. It cannot affect the normal (successful) code path at all. - **Correctness**: Obviously correct — it follows the standard cleanup ordering pattern used everywhere in the kernel. ### Stable Kernel Criteria 1. **Obviously correct and tested**: Yes — trivial fix, reviewed by subsystem maintainer 2. **Fixes a real bug**: Yes — resource leak in error path 3. **Important issue**: Moderate — resource leak in driver probe error path. While not a crash, it's a correctness issue 4. **Small and contained**: Yes — 3 lines in one file 5. **No new features**: Correct — pure bug fix 6. **Clean backport**: The code should be straightforward to backport as this driver has been stable for a long time ### User Impact This affects Panasonic laptop users. While the error path is not frequently hit (it requires `platform_device_register_simple()` to fail, which is uncommon), when it does occur, resources are leaked. The fix is zero-risk to the normal path and trivially correct. ### Conclusion This is a textbook stable-worthy fix: a small, obvious resource leak fix in an error path, written by a top kernel maintainer, reviewed by the subsystem maintainer, with zero risk of regression. It meets all stable kernel criteria. **YES** drivers/platform/x86/panasonic-laptop.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/platform/x86/panasonic-laptop.c b/drivers/platform/x86/panasonic-laptop.c index 255317e6fec88..937f1a5b78edf 100644 --- a/drivers/platform/x86/panasonic-laptop.c +++ b/drivers/platform/x86/panasonic-laptop.c @@ -1089,7 +1089,7 @@ static int acpi_pcc_hotkey_add(struct acpi_device *device) PLATFORM_DEVID_NONE, NULL, 0); if (IS_ERR(pcc->platform)) { result = PTR_ERR(pcc->platform); - goto out_backlight; + goto out_sysfs; } result = device_create_file(&pcc->platform->dev, &dev_attr_cdpower); @@ -1105,6 +1105,8 @@ static int acpi_pcc_hotkey_add(struct acpi_device *device) out_platform: platform_device_unregister(pcc->platform); +out_sysfs: + sysfs_remove_group(&device->dev.kobj, &pcc_attr_group); out_backlight: backlight_device_unregister(pcc->backlight); out_input: -- 2.51.0 From - Mon Feb 09 12:28:13 2026 X-Mozilla-Status: 0001 X-Mozilla-Status2: 00000000 Return-Path: Delivered-To: hi@josie.lol Received: from witcher.mxrouting.net by witcher.mxrouting.net with LMTP id qP3AL9jSiWnXES0AYBR5ng (envelope-from ) for ; Mon, 09 Feb 2026 12:28:08 +0000 Return-path: Envelope-to: hi@josie.lol Delivery-date: Mon, 09 Feb 2026 12:28:08 +0000 Received: from sea.lore.kernel.org ([172.234.253.10]) by witcher.mxrouting.net with esmtps (TLS1.3) tls TLS_AES_256_GCM_SHA384 (Exim 4.98) (envelope-from ) id 1vpQN6-0000000CdHf-1gKi for hi@josie.lol; Mon, 09 Feb 2026 12:28:08 +0000 Received: from smtp.subspace.kernel.org (conduit.subspace.kernel.org [100.90.174.1]) by sea.lore.kernel.org (Postfix) with ESMTP id E1145301E3C9 for ; Mon, 9 Feb 2026 12:27:30 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 74DB136EAA1; Mon, 9 Feb 2026 12:27:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="nTX/cfCS" X-Original-To: stable@vger.kernel.org Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4F9BF3019CB; Mon, 9 Feb 2026 12:27: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=1770640050; cv=none; b=A7avw6MZA1mfwywPbTjJ4uWqcMdjcxkYtctGjyU6vebJBaxqPVMNY3pT9S66R78+oxVDmw1LDJIw2uRZROhrXb3M9ng5gYOJ9GGx+K4gLmH8bK0IsfTeHiRODUuJZg0Bul4IR54wIE3i8RQqj2vOGYiJICZK5lvTcSYHWkE0q58= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770640050; c=relaxed/simple; bh=slYrVE2AFlmO1JfMmCJ5t+dzh+XdJL5sjVfhclgpwC8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=K+iy/jX2meui8wylwK0Hhq1qRpwdO2q5N0I2/0HbiE9DwZW4qIRvjZFaQlznHDNfR4r9f+oY9+ioDswhx2iKOtK22kKDrvCOn2EJyerVFgBsilVFgpPVN+TlgRhz3BCIZxAhEnAcVlzHtZFZpaDRJssLEb61802Z9hpGDc+Ietg= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=nTX/cfCS; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1673AC19423; Mon, 9 Feb 2026 12:27:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1770640050; bh=slYrVE2AFlmO1JfMmCJ5t+dzh+XdJL5sjVfhclgpwC8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nTX/cfCS1H5oAFr2okwWRULI2GNPEEOspASIsnKzIljl9VfVOZohlYnIkFu7J7jRg 4zN2VSMCvZZ0FXjicUcTnyx391eeuEQPDnVBIrUbAxrXq3VGmYNV5dM7Ra6LD2AJ1h Pt3BARCyLeJrKTOfvH9RD6s0iKYnVKzox3wYRgcMbeSGpdBezCYngr/sCA3fnay9qa tmJRJww9395cT2W6oRSxMaS691LeSi8kPLMltVgsM4vb3/FyEqph8AsVdlqCvlMLQ6 xBf56+PIoEt6Se/USy/iGZ7WiRBjemvSMKdFmegH+c1ad7Boiv5PPWzX9KenoSy1oA mOwepUldBGHjw== From: Sasha Levin To: patches@lists.linux.dev, stable@vger.kernel.org Cc: Ziyi Guo , Mark Brown , Sasha Levin , shengjiu.wang@gmail.com, Xiubo.Lee@gmail.com, linux-sound@vger.kernel.org, linuxppc-dev@lists.ozlabs.org Subject: [PATCH AUTOSEL 6.18-5.15] ASoC: fsl_xcvr: fix missing lock in fsl_xcvr_mode_put() Date: Mon, 9 Feb 2026 07:26:47 -0500 Message-ID: <20260209122714.1037915-8-sashal@kernel.org> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260209122714.1037915-1-sashal@kernel.org> References: <20260209122714.1037915-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: stable@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore X-stable-base: Linux 6.18.9 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-DKIM: signer='kernel.org' status='pass' reason='' DKIMCheck: Server passes DKIM test, 0 Spam score X-Spam-Score: -1.2 (-) X-Spam-Report: Spam detection software, running on the system "witcher.mxrouting.net", has performed the tests listed below against this email. Information: https://mxroutedocs.com/directadmin/spamfilters/ --- Content analysis details: (-1.2 points) --- pts rule name description ---- ---------------------- ----------------------------------------- 0.0 URIBL_BLOCKED ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [URIs: msgid.link] 0.0 RCVD_IN_DNSWL_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to DNSWL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#DnsBlocklists-dnsbl-block for more information. [172.234.253.10 listed in list.dnswl.org] -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager -0.0 DKIMWL_WL_HIGH DKIMwl.org - High trust sender SpamTally: Final spam score: -11 From: Ziyi Guo [ Upstream commit f514248727606b9087bc38a284ff686e0093abf1 ] fsl_xcvr_activate_ctl() has lockdep_assert_held(&card->snd_card->controls_rwsem), but fsl_xcvr_mode_put() calls it without acquiring this lock. Other callers of fsl_xcvr_activate_ctl() in fsl_xcvr_startup() and fsl_xcvr_shutdown() properly acquire the lock with down_read()/up_read(). Add the missing down_read()/up_read() calls around fsl_xcvr_activate_ctl() in fsl_xcvr_mode_put() to fix the lockdep assertion and prevent potential race conditions when multiple userspace threads access the control. Signed-off-by: Ziyi Guo Link: https://patch.msgid.link/20260202174112.2018402-1-n7l8m4@u.northwestern.edu Signed-off-by: Mark Brown Signed-off-by: Sasha Levin --- LLM Generated explanations, may be completely bogus: Line 194 confirms the `lockdep_assert_held` — this will trigger a lockdep warning when `fsl_xcvr_mode_put()` is called without the lock held. The function modifies `kctl->vd[0].access` (lines 205-207) and calls `snd_ctl_notify` — without the lock, concurrent access could corrupt the control's access flags, leading to undefined behavior. ### 3. Classification - **Bug type**: Missing locking — race condition and lockdep assertion violation - **Category**: Synchronization fix - **This is NOT**: A feature, refactoring, or cleanup — it's purely adding missing synchronization ### 4. Scope and Risk Assessment - **Lines changed**: +3 (down_read, up_read, blank line) - **Files changed**: 1 (sound/soc/fsl/fsl_xcvr.c) - **Risk**: Extremely low — the fix follows the exact same pattern as all other callers of the same function - **Could it break anything?**: The lock is a read-lock (`down_read`), and `fsl_xcvr_mode_put()` is called from the ALSA control put path which should not hold this lock already (no deadlock risk). The other callers also use `down_read`, so there's no write-lock contention introduced. ### 5. User Impact - **Who is affected**: Users of NXP i.MX SoCs with XCVR (audio transceiver) — this is used on i.MX 8MP and similar - **Trigger**: Changing the audio mode via ALSA controls (e.g., switching between SPDIF/ARC/eARC modes) - **Symptom**: lockdep WARNING at minimum; potential data race on control access flags that could cause inconsistent state - **Severity**: Medium — lockdep warnings are real bugs that indicate potential for corruption ### 6. Stability and Dependencies - **Reviewed-by**: Accepted by Mark Brown (ASoC maintainer) — strong confidence signal - **Dependencies**: None — this is a standalone fix. The `controls_rwsem` and `fsl_xcvr_activate_ctl()` function have been present for a long time - **Backport difficulty**: Trivial — the patch is small and the surrounding code is stable ### 7. Summary This is a textbook stable backport candidate: - **Obviously correct**: Follows the exact same locking pattern as the 2 other callers of the same function - **Fixes a real bug**: Missing lock causes lockdep assertion and potential race condition - **Small and contained**: 3 lines added in 1 file - **No new features**: Pure bug fix - **Low risk**: Read-lock addition following established pattern, accepted by subsystem maintainer **YES** sound/soc/fsl/fsl_xcvr.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sound/soc/fsl/fsl_xcvr.c b/sound/soc/fsl/fsl_xcvr.c index 58db4906a01d5..51669e5fe8888 100644 --- a/sound/soc/fsl/fsl_xcvr.c +++ b/sound/soc/fsl/fsl_xcvr.c @@ -223,10 +223,13 @@ static int fsl_xcvr_mode_put(struct snd_kcontrol *kcontrol, xcvr->mode = snd_soc_enum_item_to_val(e, item[0]); + down_read(&card->snd_card->controls_rwsem); fsl_xcvr_activate_ctl(dai, fsl_xcvr_arc_mode_kctl.name, (xcvr->mode == FSL_XCVR_MODE_ARC)); fsl_xcvr_activate_ctl(dai, fsl_xcvr_earc_capds_kctl.name, (xcvr->mode == FSL_XCVR_MODE_EARC)); + up_read(&card->snd_card->controls_rwsem); + /* Allow playback for SPDIF only */ rtd = snd_soc_get_pcm_runtime(card, card->dai_link); rtd->pcm->streams[SNDRV_PCM_STREAM_PLAYBACK].substream_count = -- 2.51.0 From - Mon Feb 09 12:28:24 2026 X-Mozilla-Status: 0001 X-Mozilla-Status2: 00000000 Return-Path: Delivered-To: hi@josie.lol Received: from witcher.mxrouting.net by witcher.mxrouting.net with LMTP id EJ+pH+PSiWnBKSwAYBR5ng (envelope-from ) for ; Mon, 09 Feb 2026 12:28:19 +0000 Return-path: Envelope-to: hi@josie.lol Delivery-date: Mon, 09 Feb 2026 12:28:19 +0000 Received: from sea.lore.kernel.org ([172.234.253.10]) by witcher.mxrouting.net with esmtps (TLS1.3) tls TLS_AES_256_GCM_SHA384 (Exim 4.98) (envelope-from ) id 1vpQNG-0000000CdZg-40V0 for hi@josie.lol; Mon, 09 Feb 2026 12:28:19 +0000 Received: from smtp.subspace.kernel.org (conduit.subspace.kernel.org [100.90.174.1]) by sea.lore.kernel.org (Postfix) with ESMTP id 46B5630214DC for ; Mon, 9 Feb 2026 12:27:34 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 0510F374759; Mon, 9 Feb 2026 12:27:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Uuh1ROzG" X-Original-To: stable@vger.kernel.org Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D66CA3019CB; Mon, 9 Feb 2026 12:27: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=1770640053; cv=none; b=D/+KjX5eA3n1k/M6h2umKUG9IksszrMn2BNLvv7fnQ3EMtwKyeDPNKQ7Dvi5TLHFnmQ2e8CMMAKCcUrxY3ljgzl3FceJ6Y4/aaKqW9vSCJ0mhgSaa+8Bq7cCNtXlEpMnUpPI/3FN72IKpQtdDeNDc1T0DjvX1SlKx8FI0Miu9RI= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770640053; c=relaxed/simple; bh=WgqiWVoHlPsT7FIc5ByMzq7REt3FLkvnK/cYU1bi2ZE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=tfWV3HXM46dRujXmF/mMdO/rXRMqAguQ+rdK2jXD2Bqu04XtaQ7sia4uBcg6tN44sXDn0AVn24QpsHW1VGRxkzobWfCw/4EWp1Hkxcwu7R2NIDrG3S2ROeJ46PlZ0Fqev3N8biAlhNQpT1LfIebVjsGkUlYmh0gEAntQHy2f3X0= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Uuh1ROzG; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id B735CC16AAE; Mon, 9 Feb 2026 12:27:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1770640053; bh=WgqiWVoHlPsT7FIc5ByMzq7REt3FLkvnK/cYU1bi2ZE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Uuh1ROzGRhjFu/DtTNevjfcQTG7ztxPCh1nYFv6eQnfhlP23WhZM88SNX1u3IbLwR rs2ftY8dNWGjlIcJMoo+a0yqduWhIfC12Kym8JTyMPLlQBksUwnwOntVxqQCJklanx s+ftOJ+YxAsZVzQiZaqB9TXU0G4WxgRN25PnwoRo62F38nSotrvuSHUfxeHNZWBOUk N9hPFk86drUz54TihgqcYUjSUOAgk4pSlembHJzeOiw6/290k5CYFTzLGdYv9+sANR PFVoJOasZrF64wTJlMPpdonp6AUXVIDkzKMgWSBIM9dVGgafCF1Fe20EYwndHPZ5Vh P5pcAh8+O693A== From: Sasha Levin To: patches@lists.linux.dev, stable@vger.kernel.org Cc: Brahmajit Das , Thierry Reding , Sasha Levin , thierry.reding@gmail.com, mperttunen@nvidia.com, jonathanh@nvidia.com, dri-devel@lists.freedesktop.org, linux-tegra@vger.kernel.org Subject: [PATCH AUTOSEL 6.18-5.10] =?UTF-8?q?drm/tegra:=20hdmi:=20sor:=20F?= =?UTF-8?q?ix=20error:=20variable=20=E2=80=98j=E2=80=99=20set=20but=20not?= =?UTF-8?q?=20used?= Date: Mon, 9 Feb 2026 07:26:49 -0500 Message-ID: <20260209122714.1037915-10-sashal@kernel.org> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260209122714.1037915-1-sashal@kernel.org> References: <20260209122714.1037915-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: stable@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 X-stable-base: Linux 6.18.9 Content-Transfer-Encoding: 8bit X-DKIM: signer='kernel.org' status='pass' reason='' DKIMCheck: Server passes DKIM test, 0 Spam score X-Spam-Score: -1.2 (-) X-Spam-Report: Spam detection software, running on the system "witcher.mxrouting.net", has performed the tests listed below against this email. Information: https://mxroutedocs.com/directadmin/spamfilters/ --- Content analysis details: (-1.2 points) --- pts rule name description ---- ---------------------- ----------------------------------------- 0.0 RCVD_IN_DNSWL_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to DNSWL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#DnsBlocklists-dnsbl-block for more information. [172.234.253.10 listed in list.dnswl.org] -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager -0.0 DKIMWL_WL_HIGH DKIMwl.org - High trust sender SpamTally: Final spam score: -11 From: Brahmajit Das [ Upstream commit 1beee8d0c263b3e239c8d6616e4f8bb700bed658 ] The variable j is set, however never used in or outside the loop, thus resulting in dead code. Building with GCC 16 results in a build error due to -Werror=unused-but-set-variable= enabled by default. This patch clean up the dead code and fixes the build error. Example build log: drivers/gpu/drm/tegra/sor.c:1867:19: error: variable ‘j’ set but not used [-Werror=unused-but-set-variable=] 1867 | size_t i, j; | ^ Signed-off-by: Brahmajit Das Signed-off-by: Thierry Reding Link: https://lore.kernel.org/r/20250901212020.3757519-1-listout@listout.xyz Signed-off-by: Sasha Levin --- LLM Generated explanations, may be completely bogus: ## Analysis of Commit: drm/tegra: hdmi: sor: Fix error: variable 'j' set but not used ### 1. Commit Message Analysis The commit message explicitly states this is a **build fix** for GCC 16, which enables `-Werror=unused-but-set-variable=` by default. The commit removes dead code (an unused variable `j`) to fix a compilation error. Key indicators: - "Fix error" - indicates a build failure - "Building with GCC 16 results in a build error" - explicit mention of build breakage - Provides concrete build log showing the error ### 2. Code Change Analysis The changes are minimal and purely mechanical: **In `drivers/gpu/drm/tegra/hdmi.c`:** - Line 660: Changes `size_t i, j;` to `size_t i;` - Line 693: Changes `for (i = 3, j = 0; i < size; i += 7, j += 8)` to `for (i = 3; i < size; i += 7)` **In `drivers/gpu/drm/tegra/sor.c`:** - Line 1866: Changes `size_t i, j;` to `size_t i;` - Line 1899: Changes `for (i = 3, j = 0; i < size; i += 7, j += 8)` to `for (i = 3; i < size; i += 7)` The variable `j` was: 1. Declared but never used anywhere 2. Incremented in the loop (`j += 8`) but the value was never read 3. Pure dead code that has no functional impact ### 3. Classification This is a **build fix** - one of the explicit exception categories that ARE allowed in stable: > **BUILD FIXES:** > - Fixes for compilation errors or warnings, Kconfig dependency fixes, include file fixes > - These are critical for users who need to build the kernel ### 4. Scope and Risk Assessment - **Lines changed:** ~4 lines total (2 per file) - **Files affected:** 2 files in the same subsystem (Tegra DRM driver) - **Risk level:** Extremely low - **Complexity:** None - purely removes unused code - **Behavioral change:** None - the variable was never used This is one of the lowest-risk changes possible: - No logic changes - No control flow changes - No memory management changes - Simply removing dead code that was never executed meaningfully ### 5. User Impact **Who is affected:** - Anyone trying to build the kernel with GCC 16 - Tegra (NVIDIA) platform users who need HDMI output **Severity:** - Without this fix, the kernel fails to compile with newer GCC versions - This blocks users from building the kernel entirely ### 6. Stability Indicators - Signed-off by the subsystem maintainer (Thierry Reding from NVIDIA) - Link to the mailing list discussion provided - The change is trivial and obviously correct ### 7. Dependency Check - No dependencies on other commits - The affected code (Tegra DRM HDMI/SOR drivers) exists in stable trees - The fix is self-contained ### Conclusion This commit meets all stable kernel criteria for a **build fix**: 1. **Obviously correct:** The variable `j` was declared, incremented, but never read - pure dead code 2. **Fixes a real bug:** Build failure with GCC 16 3. **Small and contained:** Only 4 lines changed across 2 related files 4. **No new features:** Removes unused code 5. **No risk of regression:** Cannot change behavior since the removed code was never used Build fixes are explicitly allowed in stable trees because they are critical for users who need to build the kernel. As GCC 16 becomes more widely used (and is now the default compiler in some distributions), this fix will become essential for anyone building the kernel. The fix is trivial, obviously correct, and fixes a real build failure. It has zero risk of causing runtime regressions since it only removes dead code. **YES** drivers/gpu/drm/tegra/hdmi.c | 4 ++-- drivers/gpu/drm/tegra/sor.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/tegra/hdmi.c b/drivers/gpu/drm/tegra/hdmi.c index 8cd2969e7d4bf..c4820f5e76581 100644 --- a/drivers/gpu/drm/tegra/hdmi.c +++ b/drivers/gpu/drm/tegra/hdmi.c @@ -658,7 +658,7 @@ static void tegra_hdmi_write_infopack(struct tegra_hdmi *hdmi, const void *data, { const u8 *ptr = data; unsigned long offset; - size_t i, j; + size_t i; u32 value; switch (ptr[0]) { @@ -691,7 +691,7 @@ static void tegra_hdmi_write_infopack(struct tegra_hdmi *hdmi, const void *data, * - subpack_low: bytes 0 - 3 * - subpack_high: bytes 4 - 6 (with byte 7 padded to 0x00) */ - for (i = 3, j = 0; i < size; i += 7, j += 8) { + for (i = 3; i < size; i += 7) { size_t rem = size - i, num = min_t(size_t, rem, 4); value = tegra_hdmi_subpack(&ptr[i], num); diff --git a/drivers/gpu/drm/tegra/sor.c b/drivers/gpu/drm/tegra/sor.c index 21f3dfdcc5c95..bc7dd562cf6b6 100644 --- a/drivers/gpu/drm/tegra/sor.c +++ b/drivers/gpu/drm/tegra/sor.c @@ -1864,7 +1864,7 @@ static void tegra_sor_hdmi_write_infopack(struct tegra_sor *sor, { const u8 *ptr = data; unsigned long offset; - size_t i, j; + size_t i; u32 value; switch (ptr[0]) { @@ -1897,7 +1897,7 @@ static void tegra_sor_hdmi_write_infopack(struct tegra_sor *sor, * - subpack_low: bytes 0 - 3 * - subpack_high: bytes 4 - 6 (with byte 7 padded to 0x00) */ - for (i = 3, j = 0; i < size; i += 7, j += 8) { + for (i = 3; i < size; i += 7) { size_t rem = size - i, num = min_t(size_t, rem, 4); value = tegra_sor_hdmi_subpack(&ptr[i], num); -- 2.51.0 From - Mon Feb 09 12:28:28 2026 X-Mozilla-Status: 0001 X-Mozilla-Status2: 00000000 Return-Path: Delivered-To: hi@josie.lol Received: from witcher.mxrouting.net by witcher.mxrouting.net with LMTP id cOuhAufSiWnhmCsAYBR5ng (envelope-from ) for ; Mon, 09 Feb 2026 12:28:23 +0000 Return-path: Envelope-to: hi@josie.lol Delivery-date: Mon, 09 Feb 2026 12:28:23 +0000 Received: from sea.lore.kernel.org ([172.234.253.10]) by witcher.mxrouting.net with esmtps (TLS1.3) tls TLS_AES_256_GCM_SHA384 (Exim 4.98) (envelope-from ) id 1vpQNK-0000000Cdhj-2dTP for hi@josie.lol; Mon, 09 Feb 2026 12:28:23 +0000 Received: from smtp.subspace.kernel.org (conduit.subspace.kernel.org [100.90.174.1]) by sea.lore.kernel.org (Postfix) with ESMTP id 605E1300AB15 for ; Mon, 9 Feb 2026 12:27:37 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 09B4C366571; Mon, 9 Feb 2026 12:27:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ivdOfdpq" X-Original-To: stable@vger.kernel.org Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DB0183019CB; Mon, 9 Feb 2026 12:27: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=1770640055; cv=none; b=lpGWjHoqaZWJVKqfY1iux85fDCaod28c2Z6ctatzDDB/3VwoZNVrcGKFRXZKZeEl9pbZfC9NXUiAiqPjrCId1a+BbyfjrqHFHySOEgFJoWEVEGVTMPqTEsKvEziWn9/SI+tgWERbgIvQcRt095UCWJjWOOKJJEIETOU3hI0PbEo= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770640055; c=relaxed/simple; bh=lRtg476s14l1t1W7R1QDOyJJ0+/3DLw1jJMaeSb5CvU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ubB2YFwN8BaKgpfjjII7NCA2sJuRAuPXE+q0Yshc+HTRDgR2A5OP+1L7VqdV1SwSzhOhf7cuS/aJLROu1gfMRAmQQ7N7+OQ+vIz2JmiinFuS8MjXO+0XIm3SvHwIIOrtekZQD9IsIy9e+bFy2VbWrbZP2OR1axPcllE2/3Bfr84= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ivdOfdpq; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id E5503C19423; Mon, 9 Feb 2026 12:27:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1770640055; bh=lRtg476s14l1t1W7R1QDOyJJ0+/3DLw1jJMaeSb5CvU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ivdOfdpq9Z4xIBAkXE/9/X7MZzQkVWhEJM4Hs33agTTIWG9JgjNrnkcZRhLBCXOGy HPvVkdZ60U4H89QfErYYY4q21YtOwPjQcHnRF8b+zz8vIubGK6HbPhr8f1lUqJXzqP RrBh9WDKfDLE2oXNCExgJ6dGzoSLxQ/pqwiA9MZzD+QjV2Q6efCDcsTEPUsvLgidiQ QvgMUWGnzR4vyhUs6mL7UaKURKoIlBC9/CX/dz1S3Z5dFFUgt9C0euN61EQKvOJYa2 WhydIfIoGL5XDWHF1OjuQLO7ddtqWK5IxIV0WxSG0+nyNOZUqHMpKyikGY2TYh3t5F 4WpJHK3k40Caw== From: Sasha Levin To: patches@lists.linux.dev, stable@vger.kernel.org Cc: Tagir Garaev , Mark Brown , Sasha Levin , kuninori.morimoto.gx@renesas.com, balamurugan.c@intel.com, liam.r.girdwood@intel.com, marco.crivellari@suse.com Subject: [PATCH AUTOSEL 6.18-6.1] ASoC: Intel: sof_es8336: Add DMI quirk for Huawei BOD-WXX9 Date: Mon, 9 Feb 2026 07:26:50 -0500 Message-ID: <20260209122714.1037915-11-sashal@kernel.org> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260209122714.1037915-1-sashal@kernel.org> References: <20260209122714.1037915-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: stable@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore X-stable-base: Linux 6.18.9 Content-Transfer-Encoding: 8bit X-DKIM: signer='kernel.org' status='pass' reason='' DKIMCheck: Server passes DKIM test, 0 Spam score X-Spam-Score: -1.2 (-) X-Spam-Report: Spam detection software, running on the system "witcher.mxrouting.net", has performed the tests listed below against this email. Information: https://mxroutedocs.com/directadmin/spamfilters/ --- Content analysis details: (-1.2 points) --- pts rule name description ---- ---------------------- ----------------------------------------- 0.0 RCVD_IN_DNSWL_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to DNSWL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#DnsBlocklists-dnsbl-block for more information. [172.234.253.10 listed in list.dnswl.org] -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager -0.0 DKIMWL_WL_HIGH DKIMwl.org - High trust sender SpamTally: Final spam score: -11 From: Tagir Garaev [ Upstream commit 6b641122d31f9d33e7d60047ee0586d1659f3f54 ] Add DMI entry for Huawei Matebook D (BOD-WXX9) with HEADPHONE_GPIO and DMIC quirks. This device has ES8336 codec with: - GPIO 16 (headphone-enable) for headphone amplifier control - GPIO 17 (speakers-enable) for speaker amplifier control - GPIO 269 for jack detection IRQ - 2-channel DMIC Hardware investigation shows that both GPIO 16 and 17 are required for proper audio routing, as headphones and speakers share the same physical output (HPOL/HPOR) and are separated only via amplifier enable signals. RFC: Seeking advice on GPIO control issue: GPIO values change in driver (gpiod_get_value() shows logical value changes) but not physically (debugfs gpio shows no change). The same gpiod_set_value_cansleep() calls work correctly in probe context with msleep(), but fail when called from DAPM event callbacks. Context information from diagnostics: - in_atomic=0, in_interrupt=0, irqs_disabled=0 - Process context: pipewire - GPIO 17 (speakers): changes in driver, no physical change - GPIO 16 (headphone): changes in driver, no physical change In Windows, audio switching works without visible GPIO changes, suggesting possible ACPI/firmware involvement. Any suggestions on how to properly control these GPIOs from DAPM events would be appreciated. Signed-off-by: Tagir Garaev Link: https://patch.msgid.link/20260201121728.16597-1-tgaraev653@gmail.com Signed-off-by: Mark Brown Signed-off-by: Sasha Levin --- LLM Generated explanations, may be completely bogus: ## Analysis of ASoC: Intel: sof_es8336: Add DMI quirk for Huawei BOD- WXX9 ### 1. Commit Message Analysis The commit adds a DMI quirk entry for the Huawei Matebook D (BOD-WXX9) laptop to the `sof_es8336` audio driver. The quirk enables `SOF_ES8336_HEADPHONE_GPIO` and `SOF_ES8336_ENABLE_DMIC` flags for this specific hardware. Notably, the commit message contains an RFC section describing an **unresolved GPIO control issue** - the GPIOs change logically but not physically when called from DAPM event callbacks. This means the quirk entry is being added, but the author acknowledges that audio switching (headphone/speaker) may not fully work yet. ### 2. Code Change Analysis The change is a pure **DMI quirk table addition**: - Adds a single new entry to the `sof_es8336_quirk_table[]` array - Matches `DMI_SYS_VENDOR = "HUAWEI"` and `DMI_PRODUCT_NAME = "BOD- WXX9"` - Sets `SOF_ES8336_HEADPHONE_GPIO | SOF_ES8336_ENABLE_DMIC` as driver data - No code logic changes, no new functions, no structural modifications The pattern is identical to the existing HUAWEI entry (BOHB-WAX9-PCB-B2) just below it, which uses `SOF_ES8336_HEADPHONE_GPIO | SOC_ES8336_HEADSET_MIC1`. ### 3. Classification This falls squarely into the **hardware quirk/workaround** exception category for stable backports. DMI quirk entries for audio codecs are one of the most common types of stable-appropriate additions. They: - Enable audio functionality on specific hardware - Are trivially small (data-only addition to an existing table) - Cannot affect any other hardware (DMI matching is device-specific) - Follow an established pattern already in the driver ### 4. Scope and Risk Assessment - **Lines changed**: ~9 lines of new code (one table entry) - **Files touched**: 1 file (`sound/soc/intel/boards/sof_es8336.c`) - **Risk**: Extremely low - the DMI match ensures this code path only activates on the specific Huawei BOD-WXX9 laptop. No other systems are affected. - **Regression potential**: Near zero for any system other than the target device. ### 5. User Impact - **Who benefits**: Users of Huawei Matebook D (BOD-WXX9) laptops running Linux - **Without this quirk**: The DMIC (internal microphone) and headphone GPIO configuration won't be properly set, potentially resulting in no audio or broken audio routing - **Severity**: Audio not working is a significant usability issue for laptop users ### 6. Concerns - The RFC section in the commit message is notable - the author reports that GPIO control from DAPM callbacks doesn't work as expected (physical GPIO state doesn't change). This suggests the quirk may provide partial functionality (DMIC works, but headphone/speaker switching may not work fully). - However, even partial functionality (enabling DMIC) is better than no quirk entry at all. - The commit was accepted by the subsystem maintainer (Mark Brown) despite the RFC, suggesting the base quirk entry is valid. ### 7. Dependency Check No dependencies on other commits. The quirk flags (`SOF_ES8336_HEADPHONE_GPIO`, `SOF_ES8336_ENABLE_DMIC`) and the quirk table infrastructure already exist in stable trees where this driver is present. ### 8. Stability Indicators - Accepted via the standard ASoC maintainer path (Mark Brown) - Follows the exact same pattern as existing entries in the same table - Data-only change with zero logic modifications ### Decision This is a textbook hardware quirk addition - a small, safe, data-only change to an existing DMI quirk table that enables audio functionality on a specific laptop model. It matches the "QUIRKS and WORKAROUNDS" exception category perfectly. The risk is essentially zero (only affects one specific hardware model), and the benefit is real (audio support for Huawei Matebook D users on stable kernels). **YES** sound/soc/intel/boards/sof_es8336.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/sound/soc/intel/boards/sof_es8336.c b/sound/soc/intel/boards/sof_es8336.c index 09acd80d23e0f..cf50de5c2edd8 100644 --- a/sound/soc/intel/boards/sof_es8336.c +++ b/sound/soc/intel/boards/sof_es8336.c @@ -332,6 +332,15 @@ static int sof_es8336_quirk_cb(const struct dmi_system_id *id) * if the topology file is modified as well. */ static const struct dmi_system_id sof_es8336_quirk_table[] = { + { + .callback = sof_es8336_quirk_cb, + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "HUAWEI"), + DMI_MATCH(DMI_PRODUCT_NAME, "BOD-WXX9"), + }, + .driver_data = (void *)(SOF_ES8336_HEADPHONE_GPIO | + SOF_ES8336_ENABLE_DMIC) + }, { .callback = sof_es8336_quirk_cb, .matches = { -- 2.51.0 From - Mon Feb 09 12:28:32 2026 X-Mozilla-Status: 0001 X-Mozilla-Status2: 00000000 Return-Path: Delivered-To: hi@josie.lol Received: from witcher.mxrouting.net by witcher.mxrouting.net with LMTP id CCZeN+rSiWko2y0AYBR5ng (envelope-from ) for ; Mon, 09 Feb 2026 12:28:26 +0000 Return-path: Envelope-to: hi@josie.lol Delivery-date: Mon, 09 Feb 2026 12:28:27 +0000 Received: from sea.lore.kernel.org ([172.234.253.10]) by witcher.mxrouting.net with esmtps (TLS1.3) tls TLS_AES_256_GCM_SHA384 (Exim 4.98) (envelope-from ) id 1vpQNO-0000000Cdo3-1yNF for hi@josie.lol; Mon, 09 Feb 2026 12:28:26 +0000 Received: from smtp.subspace.kernel.org (conduit.subspace.kernel.org [100.90.174.1]) by sea.lore.kernel.org (Postfix) with ESMTP id 9E1C5300D95C for ; Mon, 9 Feb 2026 12:27:40 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id ACB1E366571; Mon, 9 Feb 2026 12:27:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="FNYmJ6oR" X-Original-To: stable@vger.kernel.org Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 895F43019CB; Mon, 9 Feb 2026 12:27: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=1770640058; cv=none; b=b+E0IBcZTH0pXCE77d6BPsk6TmMFmDJ2XWpCqSzPzAGaoG6hN6t+GOLW+vSGvsaYKTc0NK5cTY8FUz6jxxJWcfaqixZe0AL7m07utBckgBCP0iox3BiHIcVO6EnDokvPxCv57N7QcyWwtFgD9NOWZO6o92w+Tu6n9SBENkiqaf4= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770640058; c=relaxed/simple; bh=XcI7n4Wun9l/AsF7vieNILQzEDRMWZ0MUZ9JBnzsG+8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Ihpu3TusjrJgxle0XCDbZ39Ibv6BUYYNwb3qe/0YcucR7h2ySir9hDnyhu8rIL064BeczZNBqeUe6o1oSxM5ER5MHSwqLg/6IugQGKcBGvYwk1PSHOtqcRg4i2HqrTaRn10yDJ+PyoJ3ctKjRpU1HQ+5KUwlWARQvhwuoTZgP8c= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=FNYmJ6oR; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id EC4CFC16AAE; Mon, 9 Feb 2026 12:27:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1770640058; bh=XcI7n4Wun9l/AsF7vieNILQzEDRMWZ0MUZ9JBnzsG+8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=FNYmJ6oRJFRmSkUxUKpQNXyFcmrV5C9mAKkUzIUlJSl3k9HTtuh5ziJLoz6g0If9S 8JCDew/fjHaUOFRNHU3g6pTVD+VCCVzeZ+F6FIZbZ/KbxigViPdNMfAjbBBCY8BY9c Io5Xz29Dz2DG/WcjiWx5SyPDUjwE/1gRi+yU+u8pV8VRTbnZUcxauXCA1Tja7+ixS9 qTXRGIAD9kqNQDt5mndSRc8UYgw+7OyaEO0/L+DOriMPg57tV5NNDmNkc1bKNuRXyO Pfks33E5WOJOJCBdbyi1sKY/IpZQNT5dm6+rcQbuwkNwAuQeiwEPkmi1eDZfQKYPxW OkCVW8tB7wOQQ== From: Sasha Levin To: patches@lists.linux.dev, stable@vger.kernel.org Cc: Maciej Strozek , Cezary Rojewski , Mark Brown , Sasha Levin , yung-chuan.liao@linux.intel.com, peter.ujfalusi@linux.intel.com, ranjani.sridharan@linux.intel.com, kai.vehmanen@linux.intel.com, ckeepax@opensource.cirrus.com, mac.chiang@intel.com, naveen.m@intel.com Subject: [PATCH AUTOSEL 6.18] ASoC: sof_sdw: Add a qu2605","timestamp":"2026-03-06T21:40:19.183Z"} {"parentUuid":"716bbddf-fbf6-4f20-835c-101bd5632605","isSidechain":false,"userType":"external","cwd":"/home/josie/development/irc-now/notes","sessionId":"06ff88d8-a173-446a-b126-c94d078d64d8","version":"2.1.63","gitBranch":"master","slug":"swift-stirring-river","type":"progress","data":{"type":"bash_progress","output":"","fullOutput":"","elapsedTimeSeconds":6,"totalLines":0,"totalBytes":0,"taskId":"bxu4j98u0"},"toolUseID":"bash-progress-3","parentToolUseID":"toolu_01EbU5EaVWVuwQ8dni58XmKt","uuid":"25bb7e14-951d-4272-a4de-d964b6dbc748","timestamp":"2026-03-06T21:40:20.184Z"} {"parentUuid":"25bb7e14-951d-4272-a4de-d964b6dbc748","isSidechain":false,"userType":"external","cwd":"/home/josie/development/irc-now/notes","sessionId":"06ff88d8-a173-446a-b126-c94d078d64d8","version":"2.1.63","gitBranch":"master","slug":"swift-stirring-river","type":"progress","data":{"type":"bash_progress","output":"","fullOutput":"","elapsedTimeSeconds":7,"totalLines":0,"totalBytes":0,"taskId":"bxu4j98u0"},"toolUseID":"bash-progress-4","parentToolUseID":"toolu_01EbU5EaVWVuwQ8dni58XmKt","uuid":"6f6dc3c4-5374-4c1e-8520-890112720e94","timestamp":"2026-03-06T21:40:21.185Z"} {"parentUuid":"6f6dc3c4-5374-4c1e-8520-890112720e94","isSidechain":false,"userType":"external","cwd":"/home/josie/development/irc-now/notes","sessionId":"06ff88d8-a173-446a-b126-c94d078d64d8","version":"2.1.63","gitBranch":"master","slug":"swift-stirring-river","type":"progress","data":{"type":"bash_progress","output":"","fullOutput":"","elapsedTimeSeconds":8,"totalLines":0,"totalBytes":0,"taskId":"bxu4j98u0"},"toolUseID":"bash-progress-5","parentToolUseID":"toolu_01EbU5EaVWVuwQ8dni58XmKt","uuid":"8edf458f-9fcc-4e59-839d-d4b3f573b748","timestamp":"2026-03-06T21:40:22.186Z"} {"parentUuid":"8edf458f-9fcc-4e59-839d-d4b3f573b748","isSidechain":false,"userType":"external","cwd":"/home/josie/development/irc-now/notes","sessionId":"06ff88d8-a173-446a-b126-c94d078d64d8","version":"2.1.63","gitBranch":"master","slug":"swift-stirring-river","type":"progress","data":{"type":"bash_progress","output":"","fullOutput":"","elapsedTimeSeconds":9,"totalLines":0,"totalBytes":0,"taskId":"bxu4j98u0"},"toolUseID":"bash-progress-6","parentToolUseID":"toolu_01EbU5EaVWVuwQ8dni58XmKt","uuid":"33ab8ad9-2098-4d68-a7de-ab01f7a4de76","timestamp":"2026-03-06T21:40:23.187Z"} {"parentUuid":"33ab8ad9-2098-4d68-a7de-ab01f7a4de76","isSidechain":false,"userType":"external","cwd":"/home/josie/development/irc-now/notes","sessionId":"06ff88d8-a173-446a-b126-c94d078d64d8","version":"2.1.63","gitBranch":"master","slug":"swift-stirring-river","type":"progress","data":{"type":"bash_progress","output":"","fullOutput":"","elapsedTimeSeconds":10,"totalLines":0,"totalBytes":0,"taskId":"bxu4j98u0"},"toolUseID":"bash-progress-7","parentToolUseID":"toolu_01EbU5EaVWVuwQ8dni58XmKt","uuid":"64068eae-0d5c-4e1d-b364-d7658fd331ea","timestamp":"2026-03-06T21:40:24.188Z"} {"parentUuid":"64068eae-0d5c-4e1d-b364-d7658fd331ea","isSidechain":false,"userType":"external","cwd":"/home/josie/development/irc-now/notes","sessionId":"06ff88d8-a173-446a-b126-c94d078d64d8","version":"2.1.63","gitBranch":"master","slug":"swift-stirring-river","type":"progress","data":{"type":"hook_progress","hookEvent":"PostToolUse","hookName":"PostToolUse:Bash","command":"python3 ${CLAUDE_PLUGIN_ROOT}/hooks/posttooluse.py"},"parentToolUseID":"toolu_01EbU5EaVWVuwQ8dni58XmKt","toolUseID":"toolu_01EbU5EaVWVuwQ8dni58XmKt","timestamp":"2026-03-06T21:40:24.902Z","uuid":"ced175cc-b430-491c-966e-d212624c4be9"} {"parentUuid":"d4ee4a0e-b5b7-4a22-85d0-1febbd4d5624","isSidechain":false,"userType":"external","cwd":"/home/josie/development/irc-now/notes","sessionId":"06ff88d8-a173-446a-b126-c94d078d64d8","version":"2.1.63","gitBranch":"master","slug":"swift-stirring-river","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01EbU5EaVWVuwQ8dni58XmKt","type":"tool_result","content":"irc_now_mrr_cents 0\nirc_now_subscriptions_active 0","is_error":false}]},"uuid":"3c6bec31-eeff-41d1-a8e9-f721cd02267d","timestamp":"2026-03-06T21:40:24.901Z","toolUseResult":{"stdout":"irc_now_mrr_cents 0\nirc_now_subscriptions_active 0","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false},"sourceToolAssistantUUID":"d4ee4a0e-b5b7-4a22-85d0-1febbd4d5624"} {"parentUuid":"3c6bec31-eeff-41d1-a8e9-f721cd02267d","isSidechain":false,"userType":"external","cwd":"/home/josie/development/irc-now/notes","sessionId":"06ff88d8-a173-446a-b126-c94d078d64d8","version":"2.1.63","gitBranch":"master","slug":"swift-stirring-river","message":{"model":"claude-opus-4-6","id":"msg_01WcWAdktc4467xgnhgt1LGU","type":"message","role":"assistant","content":[{"type":"text","text":"Stripe metrics are now emitting. MRR is 0 and subscriptions are 0, which is correct -- no active subscriptions on the test account yet. Once you create a Stripe product/price and someone subscribes, those gauges will populate.\n\nStill needed when you're ready:\n- **price-id**: Create a Pro plan product in Stripe, grab the price ID (`price_...`)\n- **webhook-secret**: Create a webhook endpoint in Stripe dashboard pointing at `https://my.irc.now/billing/webhook`, grab the signing secret (`whsec_...`)"}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":200,"cache_read_input_tokens":60809,"output_tokens":134,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":200,"ephemeral_5m_input_tokens":0},"inference_geo":"","iterations":[],"speed":"standard"}},"requestId":"req_011CYnYzJwTJe734st6VozbJ","type":"assistant","uuid":"50477b17-9769-4306-b55d-0ead0fa9b0ee","timestamp":"2026-03-06T21:40:29.657Z"} {"parentUuid":"50477b17-9769-4306-b55d-0ead0fa9b0ee","isSidechain":false,"userType":"external","cwd":"/home/josie/development/irc-now/notes","sessionId":"06ff88d8-a173-446a-b126-c94d078d64d8","version":"2.1.63","gitBranch":"master","slug":"swift-stirring-river","type":"progress","data":{"type":"hook_progress","hookEvent":"Stop","hookName":"Stop","command":"${CLAUDE_PLUGIN_ROOT}/hooks/stop-hook.sh"},"parentToolUseID":"3333a529-d92d-4819-a203-27675eedd088","toolUseID":"3333a529-d92d-4819-a203-27675eedd088","timestamp":"2026-03-06T21:40:29.689Z","uuid":"1ef339b9-ec00-4d30-b603-07805345993a"} {"parentUuid":"1ef339b9-ec00-4d30-b603-07805345993a","isSidechain":false,"userType":"external","cwd":"/home/josie/development/irc-now/notes","sessionId":"06ff88d8-a173-446a-b126-c94d078d64d8","version":"2.1.63","gitBranch":"master","slug":"swift-stirring-river","type":"progress","data":{"type":"hook_progress","hookEvent":"Stop","hookName":"Stop","command":"python3 ${CLAUDE_PLUGIN_ROOT}/hooks/stop.py"},"parentToolUseID":"3333a529-d92d-4819-a203-27675eedd088","toolUseID":"3333a529-d92d-4819-a203-27675eedd088","timestamp":"2026-03-06T21:40:29.690Z","uuid":"e0a9e13f-4e32-4a86-951f-0004c556814c"} {"parentUuid":"e0a9e13f-4e32-4a86-951f-0004c556814c","isSidechain":false,"userType":"external","cwd":"/home/josie/development/irc-now/notes","sessionId":"06ff88d8-a173-446a-b126-c94d078d64d8","version":"2.1.63","gitBranch":"master","slug":"swift-stirring-river","type":"system","subtype":"stop_hook_summary","hookCount":2,"hookInfos":[{"command":"${CLAUDE_PLUGIN_ROOT}/hooks/stop-hook.sh","durationMs":22},{"command":"python3 ${CLAUDE_PLUGIN_ROOT}/hooks/stop.py","durationMs":52}],"hookErrors":[],"preventedContinuation":false,"stopReason":"","hasOutput":true,"level":"suggestion","timestamp":"2026-03-06T21:40:29.742Z","uuid":"3eb281b1-2b7e-4b54-8095-ec29ab3e2c6e","toolUseID":"3333a529-d92d-4819-a203-27675eedd088"} {"parentUuid":"3eb281b1-2b7e-4b54-8095-ec29ab3e2c6e","isSidechain":false,"userType":"external","cwd":"/home/josie/development/irc-now/notes","sessionId":"06ff88d8-a173-446a-b126-c94d078d64d8","version":"2.1.63","gitBranch":"master","slug":"swift-stirring-river","type":"system","subtype":"turn_duration","durationMs":39429,"timestamp":"2026-03-06T21:40:29.744Z","uuid":"82696a49-3b8c-430e-b1da-9345247180dd","isMeta":false} {"type":"file-history-snapshot","messageId":"aa8bdb03-68cc-4eac-b9e5-7d