ol@vger.kernel.org>) for ; Thu, 23 Oct 2025 21:40:49 +0000 Return-path: Envelope-to: hi@josie.lol Delivery-date: Thu, 23 Oct 2025 21:40:49 +0000 Received: from am.mirrors.kernel.org ([147.75.80.249]) by witcher.mxrouting.net with esmtps (TLS1.3) tls TLS_AES_256_GCM_SHA384 (Exim 4.98) (envelope-from ) id 1vC33A-0000000AYI9-3NkC for hi@josie.lol; Thu, 23 Oct 2025 21:40: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 am.mirrors.kernel.org (Postfix) with ESMTPS id EC81B189DCDA for ; Thu, 23 Oct 2025 21:41:11 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 3F1C72C21CA; Thu, 23 Oct 2025 21:40:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="qPOgB7Zb" 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 157C12C0F81; Thu, 23 Oct 2025 21:40: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=1761255631; cv=none; b=TWMmO4wY0rXJ/NEHpNNR9lYOgwwJ0EPBamT1XYXsCF54XsIUchOe/qO5e1uJLNzO6v96QO4JPzq6zTt5cWJKFQWDu1t6md+scISNvDjLKYR6ynKHhg6/PvMfrSFO74asWERoePvtFoye2Sr4/TwHeTwrxF7lx7IYnKTPum/M7vk= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761255631; c=relaxed/simple; bh=d31fxEionGDqWxCah++7HR8uos8Wm0b0XhvSzDRCHT0=; h=Content-Type:MIME-Version:Subject:From:Message-Id:Date:References: In-Reply-To:To:Cc; b=LJicgvsnIP/cJIEKoQYjy+6bSn1BVlWYolebqSGXBo0vfgBkL780udKUdZVQ2C/WB9gxWbrKTT3MP5aRMECmUZn8l38Ctec0a69CeBpDg+fkhnC6CudnCn2s6NGti6HI0AyQPD24TR66Eg2D5rKrbo8AKnH/95I65407O/+ziJA= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=qPOgB7Zb; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id A0A16C4CEE7; Thu, 23 Oct 2025 21:40:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1761255630; bh=d31fxEionGDqWxCah++7HR8uos8Wm0b0XhvSzDRCHT0=; h=Subject:From:Date:References:In-Reply-To:To:Cc:From; b=qPOgB7ZbFrY3w8SGFNGEVY3qHsgEQZBaVWStjO8GytPOCuGTs/29Yix86h+nZvfw4 TlHBZgU1Hn+en1rzl/Qy8sbWF0La65GujMV1VETpdqkNL74GxoCPMjurny/1DPOOW/ gL0y6gsoWHQwS/kpdiCbkxKympGWiq3aKltAFsVm6AjC2kMH7lFQ2+lCKRrRB8ENLP NB3s98if5mblIB7UGVc8x2+h7QKECOcv4BxXpax3MgVw6g2+MkVdwSkqkNAa8aOF5J zKgVWeIa3OMC3KiDXzFVGWgY+utRJCsdNQS/zaajam7/I3VSpaDMkwaU7kZ0pcZKVv L1neGlxRyU+rg== Received: from [10.30.226.235] (localhost [IPv6:::1]) by aws-us-west-2-korg-oddjob-rhel9-1.codeaurora.org (Postfix) with ESMTP id 33D41380A960; Thu, 23 Oct 2025 21:40:12 +0000 (UTC) Content-Type: text/plain; charset="utf-8" Precedence: bulk X-Mailing-List: stable@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: Re: [PATCH v2] Bluetooth: rfcomm: fix modem control handling From: patchwork-bot+bluetooth@kernel.org Message-Id: <176125561099.3260295.2414265996830531276.git-patchwork-notify@kernel.org> Date: Thu, 23 Oct 2025 21:40:10 +0000 References: <20251023120530.5685-1-johan@kernel.org> In-Reply-To: <20251023120530.5685-1-johan@kernel.org> To: Johan Hovold Cc: luiz.dentz@gmail.com, marcel@holtmann.org, johan.hedberg@gmail.com, linux-bluetooth@vger.kernel.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org 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. [147.75.80.249 listed in list.dnswl.org] -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain 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.0 DKIMWL_WL_HIGH DKIMwl.org - High trust sender SpamTally: Final spam score: -11 Hello: This patch was applied to bluetooth/bluetooth-next.git (master) by Luiz Augusto von Dentz : On Thu, 23 Oct 2025 14:05:30 +0200 you wrote: > The RFCOMM driver confuses the local and remote modem control signals, > which specifically means that the reported DTR and RTS state will > instead reflect the remote end (i.e. DSR and CTS). > > This issue dates back to the original driver (and a follow-on update) > merged in 2002, which resulted in a non-standard implementation of > TIOCMSET that allowed controlling also the TS07.10 IC and DV signals by > mapping them to the RI and DCD input flags, while TIOCMGET failed to > return the actual state of DTR and RTS. > > [...] Here is the summary with links: - [v2] Bluetooth: rfcomm: fix modem control handling https://git.kernel.org/bluetooth/bluetooth-next/c/8d2c47aeb078 You are awesome, thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/patchwork/pwbot.html From - Thu Oct 23 21:48:01 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 MAa0Lo2i+mgsPiYAYBR5ng (envelope-from ) for ; Thu, 23 Oct 2025 21:47:57 +0000 Return-path: Envelope-to: hi@josie.lol Delivery-date: Thu, 23 Oct 2025 21:47:57 +0000 Received: from am.mirrors.kernel.org ([147.75.80.249]) by witcher.mxrouting.net with esmtps (TLS1.3) tls TLS_AES_256_GCM_SHA384 (Exim 4.98) (envelope-from ) id 1vC3A5-0000000Akds-1A13 for hi@josie.lol; Thu, 23 Oct 2025 21:47:57 +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 am.mirrors.kernel.org (Postfix) with ESMTPS id 6E52E189C558 for ; Thu, 23 Oct 2025 21:48:20 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 4368B3D3B3; Thu, 23 Oct 2025 21:47:53 +0000 (UTC) X-Original-To: stable@vger.kernel.org Received: from air.basealt.ru (air.basealt.ru [193.43.8.18]) (using TLSv1.2\n await page.getByRole('textbox', { name: 'Password' }).fill('');\n await sleep(300);\n await typeIntoRole(page, 'textbox', 'Username or email', KC_USER);\n await sleep(400);\n await typeIntoRole(page, 'textbox', 'Password', KC_PASS);\n await sleep(500);\n } else {\n // Keycloak may have pre-filled credentials from session; just pause to show the page\n await sleep(1000);\n }\n\n await hoverAndClick(page.getByRole('button', { name: 'Sign In' }), 500);\n await page.waitForURL(baseUrl + '/**', { timeout: 20000 });\n}\n\n(async () => {\n const browser = await chromium.launch({ headless: true });\n const context = await browser.newContext({\n viewport: { width: 1280, height: 800 },\n recordVideo: {\n dir: '/tmp/archweb-demo/raw-aurweb/',\n size: { width: 1280, height: 800 },\n },\n });\n\n const page = await context.newPage();\n\n // =============================================\n // FLOW 1: SSO Login\n // =============================================\n console.log('--- Flow 1: SSO Login ---');\n\n setSsoAccountId(KC_SUB);\n\n await page.goto(AURWEB + '/login');\n await sleep(2000);\n\n await hoverAndClick(page.getByRole('link', { name: 'Login with SSO' }), 700);\n await page.waitForURL('**/auth.josie.cloud/**', { timeout: 15000 });\n await sleep(1500);\n\n // First Keycloak visit: type credentials naturally\n await typeIntoRole(page, 'textbox', 'Username or email', KC_USER);\n await sleep(500);\n await typeIntoRole(page, 'textbox', 'Password', KC_PASS);\n await sleep(700);\n await hoverAndClick(page.getByRole('button', { name: 'Sign In' }), 500);\n await page.waitForURL(AURWEB + '/**', { timeout: 15000 });\n await sleep(2500);\n\n console.log('Flow 1 complete');\n\n // =============================================\n // FLOW 2: SSO Account Linking\n // =============================================\n console.log('--- Flow 2: SSO Account Linking ---');\n\n // Logout via navbar button (POST form)\n await hoverAndClick(page.getByRole('button', { name: 'Logout' }), 600);\n await sleep(1500);\n\n setSsoAccountId(null);\n\n await page.goto(AURWEB + '/login');\n await sleep(1200);\n\n // Use CSS selectors for the login form\n const userField = page.locator('input[name=\"user\"]');\n const passField = page.locator('input[name=\"passwd\"]');\n\n await userField.click();\n await sleep(200);\n await userField.pressSequentially(AUR_USER, { delay: 55 + Math.random() * 40 });\n await sleep(400);\n await passField.click();\n await sleep(200);\n await passField.pressSequentially(AUR_PASS, { delay: 55 + Math.random() * 40 });\n await sleep(600);\n\n await hoverAndClick(page.getByRole('button', { name: 'Login' }), 400);\n await page.waitForURL(AURWEB + '/**');\n await sleep(1500);\n\n await page.goto(AURWEB + '/account/link-sso');\n await sleep(2000);\n\n await hoverAndClick(page.getByRole('button', { name: 'Link my account to SSO' }), 600);\n\n // Keycloak will show with prompt=login, pre-filled creds -- just click Sign In\n await handleKeycloak(page, AURWEB, false);\n await sleep(2500);\n\n console.log('Flow 2 complete');\n\n // =============================================\n // FLOW 3: SSO Account Unlinking\n // =============================================\n console.log('--- Flow 3: SSO Account Unlinking ---');\n\n await sleep(1500);\n\n await hoverAndClick(page.getByRole('button', { name: 'Unlink my SSO account' }), 800);\n await sleep(2500);\n\n console.log('Flow 3 complete');\n\n await sleep(2000);\n await context.close();\n await browser.close();\n console.log('Done. Video in /tmp/archweb-demo/raw-aurweb/');\n})();\n"},"caller":{"type":"direct"}}],"stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":1,"cache_creation_input_tokens":171,"cache_read_input_tokens":157744,"output_tokens":1848,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":171,"ephemeral_5m_input_tokens":0},"inference_geo":"","iterations":[],"speed":"standard"}},"requestId":"req_011CYPQRovnUjMu5atCuztjB","type":"assistant","uuid":"1adbb618-72ec-442d-a5bf-be7cf5fbd2d9","timestamp":"2026-02-22T16:14:57.429Z"} {"parentUuid":"1adbb618-72ec-442d-a5bf-be7cf5fbd2d9","isSidechain":false,"userType":"external","cwd":"/home/josie/development/archlinux/archweb","sessionId":"bb0e7921-ab26-4c14-af35-7127133be00b","version":"2.1.50","gitBranch":"feature/oidc-sso","slug":"typed-prancing-candle","type":"progress","data":{"type":"hook_progress","hookEvent":"PreToolUse","hookName":"PreToolUse:Write","command":"python3 ${CLAUDE_PLUGIN_ROOT}/hooks/pretooluse.py"},"toolUseID":"toolu_01Um4iDmZwPEwxy57rMpQGjg","parentToolUseID":"toolu_01Um4iDmZwPEwxy57rMpQGjg","uuid":"a3189127-3b01-4feb-a716-da2bc21c7106","timestamp":"2026-02-22T16:14:57.433Z"} {"parentUuid":"a3189127-3b01-4feb-a716-da2bc21c7106","isSidechain":false,"userType":"external","cwd":"/home/josie/development/archlinux/archweb","sessionId":"bb0e7921-ab26-4c14-af35-7127133be00b","version":"2.1.50","gitBranch":"feature/oidc-sso","slug":"typed-prancing-candle","type":"progress","data":{"type":"hook_progress","hookEvent":"PostToolUse","hookName":"PostToolUse:Write","command":"python3 ${CLAUDE_PLUGIN_ROOT}/hooks/posttooluse.py"},"parentToolUseID":"toolu_01Um4iDmZwPEwxy57rMpQGjg","toolUseID":"toolu_01Um4iDmZwPEwxy57rMpQGjg","timestamp":"2026-02-22T16:15:18.060Z","uuid":"caf38439-80e8-4d81-935d-cb56398cf9e4"} {"parentUuid":"caf38439-80e8-4d81-935d-cb56398cf9e4","isSidechain":false,"userType":"external","cwd":"/home/josie/development/archlinux/archweb","sessionId":"bb0e7921-ab26-4c14-af35-7127133be00b","version":"2.1.50","gitBranch":"feature/oidc-sso","slug":"typed-prancing-candle","type":"progress","data":{"type":"hook_progress","hookEvent":"PostToolUse","hookName":"PostToolUse:Write","command":"callback"},"parentToolUseID":"toolu_01Um4iDmZwPEwxy57rMpQGjg","toolUseID":"toolu_01Um4iDmZwPEwxy57rMpQGjg","timestamp":"2026-02-22T16:15:18.060Z","uuid":"a8dec9bb-c54f-468b-82ac-80439897b758"} {"parentUuid":"1adbb618-72ec-442d-a5bf-be7cf5fbd2d9","isSidechain":false,"userType":"external","cwd":"/home/josie/development/archlinux/archweb","sessionId":"bb0e7921-ab26-4c14-af35-7127133be00b","version":"2.1.50","gitBranch":"feature/oidc-sso","slug":"typed-prancing-candle","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01Um4iDmZwPEwxy57rMpQGjg","type":"tool_result","content":"The file /tmp/archweb-demo/record-aurweb.mjs has been updated successfully."}]},"uuid":"d8d93890-16da-4194-84a4-69a07f29bdd1","timestamp":"2026-02-22T16:15:18.057Z","toolUseResult":{"type":"update","filePath":"/tmp/archweb-demo/record-aurweb.mjs","content":"import { chromium } from 'playwright';\nimport { execSync } from 'child_process';\n\nconst AURWEB = 'http://127.0.0.1:8082';\nconst KC_USER = 'testdev';\nconst KC_PASS = 'testpass';\nconst KC_SUB = 'a135bad2-5164-44bc-a5e9-c6ff4cc21af9';\nconst AUR_USER = 'testuser';\nconst AUR_PASS = 'testuser123';\n\nfunction dbExec(sql) {\n return execSync(\n `docker exec aurweb-mariadb mariadb -u aurweb -paurweb aurweb -e \"${sql}\"`,\n { encoding: 'utf8' }\n ).trim();\n}\n\nfunction setSsoAccountId(value) {\n const val = value === null ? 'NULL' : `'${value}'`;\n dbExec(`UPDATE Users SET SSOAccountID = ${val} WHERE Username = '${AUR_USER}';`);\n console.log(` SSOAccountID -> ${val}`);\n}\n\nasync function sleep(ms) {\n return new Promise(r => setTimeout(r, ms));\n}\n\nasync function typeIntoRole(page, role, name, text) {\n const el = page.getByRole(role, { name });\n await el.click();\n await sleep(150 + Math.random() * 200);\n await el.pressSequentially(text, { delay: 55 + Math.random() * 40 });\n}\n\nasync function hoverAndClick(el, pauseMs = 500) {\n await el.hover();\n await sleep(pauseMs + Math.random() * 300);\n await el.click();\n}\n\nasync function handleKeycloak(page, baseUrl, forceType = false) {\n await sleep(2000);\n if (!page.url().includes('auth.josie.cloud')) return;\n console.log(' On Keycloak login page');\n\n const kcUser = page.getByRole('textbox', { name: 'Username or email' });\n if