From patchwork Thu Oct 26 05:58:43 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "D. Starke" X-Patchwork-Id: 158406 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:d641:0:b0:403:3b70:6f57 with SMTP id cy1csp451729vqb; Wed, 25 Oct 2023 23:01:33 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEDfVApmdAXvHKhRMKRq0sj5P6II80z++wLdOVu4XWJGfRhOjN3zH5aFA0jejbz/iAIDoPq X-Received: by 2002:a05:6808:110:b0:3a7:b4e8:563e with SMTP id b16-20020a056808011000b003a7b4e8563emr16936009oie.38.1698300093353; Wed, 25 Oct 2023 23:01:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1698300093; cv=none; d=google.com; s=arc-20160816; b=sn+P7x5++BqxsipRuGK6A4n+ShY8Re5vB5deaOILbSYkQvhelHc8pLKBDlPUlIAil0 eGDob2L5nDeoN0IAmsc7YOrg6LEg3QLIfF1CgmnEasx98RQKK88SgyhR3Pht2GZDJCdk TuwjUZwXLIAtHMhTyycYnUnXkTTe+gTifz+XXEgikStVx47xw71aaWW493xCGjqHTJJm NGY0MpRnklMdpQmqH7+2jNfyYetqeJ9UBdoD8KOzELt30HCTyg5XvC+7eZOfOjjQ4KTh jiru7calwrW6ZTazv00IxEdN6kByLTARDoszUCVfhRwIpHSvshyN0aSNbhJaTDi9oQ74 9GFw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:feedback-id:content-transfer-encoding :mime-version:message-id:date:subject:cc:to:from:dkim-signature; bh=i3xb5thx0MStC8QddfRm44mVBZo7gXtRg05zVb8PFKg=; fh=5YXR7RtUzZ11YkjdXTzgd3M62+HIxQ5O+Fdh381pAu0=; b=sXi90+sPaGwGIYxEXZzPP/mOkGyQQw65YzNk025b9vZU5uvoe40zvP1MXsw9z/6Zrf NcTnmEsCnUKa4kpm0k8IQ+ZzGf7I+AdyoQRod8vYWAUkysd/CnbyRwyulaCmoj3T5Axx ufjrqfWwCa66B98kUHS3/Dvg7qsm2+Y8XxZFv9Lo4SB0q41kXz9M4caubscjJRwgTLhg erVN69iGoneEWjre/5NYJgTgnj42/2HQChTM4LPBzYZBxJYlVvaYe7EF/iU/zgUIOzns 5jPYJkASR++v7E5W7Z1/bfvVe/SaOOAFoSnBlZ9+2DTjuiqcL7OIHqFvIlEfxWBIjurF eWFA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@siemens.com header.s=fm1 header.b=Yk9TWcAb; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:4 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com Received: from howler.vger.email (howler.vger.email. [2620:137:e000::3:4]) by mx.google.com with ESMTPS id p135-20020a25428d000000b00d9a63d1d310si13624019yba.109.2023.10.25.23.01.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Oct 2023 23:01:33 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:4 as permitted sender) client-ip=2620:137:e000::3:4; Authentication-Results: mx.google.com; dkim=pass header.i=@siemens.com header.s=fm1 header.b=Yk9TWcAb; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:4 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by howler.vger.email (Postfix) with ESMTP id BF3178116E5F; Wed, 25 Oct 2023 23:01:29 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at howler.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1343862AbjJZGBN (ORCPT + 26 others); Thu, 26 Oct 2023 02:01:13 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53260 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230478AbjJZGBM (ORCPT ); Thu, 26 Oct 2023 02:01:12 -0400 X-Greylist: delayed 62 seconds by postgrey-1.37 at lindbergh.monkeyblade.net; Wed, 25 Oct 2023 23:01:09 PDT Received: from mta-65-225.siemens.flowmailer.net (mta-65-225.siemens.flowmailer.net [185.136.65.225]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6776213A for ; Wed, 25 Oct 2023 23:01:09 -0700 (PDT) Received: by mta-65-225.siemens.flowmailer.net with ESMTPSA id 202310260600042c81036199cfc14f67 for ; Thu, 26 Oct 2023 08:00:04 +0200 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; s=fm1; d=siemens.com; i=daniel.starke@siemens.com; h=Date:From:Subject:To:Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding:Cc; bh=i3xb5thx0MStC8QddfRm44mVBZo7gXtRg05zVb8PFKg=; b=Yk9TWcAbRChesErzaiTjGYrKUXMFp+QoYKQtTK3Vu7Thfiou1vhn8n3v2UZJODaJVssXlD DY8CRagUEvSAZAe7FF3GzAG2zFmN42qjnRtch0dVeP7YTrLVbytL36gbu6IRkWuN+58XlrTM KCIC2V4hXgD3CRpelYBJQ8Iiwlck8=; From: "D. Starke" To: linux-serial@vger.kernel.org, gregkh@linuxfoundation.org, jirislaby@kernel.org, ilpo.jarvinen@linux.intel.com Cc: linux-kernel@vger.kernel.org, Daniel Starke Subject: [PATCH 1/2] tty: n_gsm: fix race condition in status line change on dead connections Date: Thu, 26 Oct 2023 07:58:43 +0200 Message-Id: <20231026055844.3127-1-daniel.starke@siemens.com> MIME-Version: 1.0 X-Flowmailer-Platform: Siemens Feedback-ID: 519:519-314044:519-21489:flowmailer X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on howler.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (howler.vger.email [0.0.0.0]); Wed, 25 Oct 2023 23:01:29 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1780796718612609853 X-GMAIL-MSGID: 1780796718612609853 From: Daniel Starke gsm_cleanup_mux() cleans up the gsm by closing all DLCIs, stopping all timers, removing the virtual tty devices and clearing the data queues. This procedure, however, may cause subsequent changes of the virtual modem status lines of a DLCI. More data is being added the outgoing data queue and the deleted kick timer is restarted to handle this. At this point many resources have already been removed by the cleanup procedure. Thus, a kernel panic occurs. Fix this by proving in gsm_modem_update() that the cleanup procedure has not been started and the mux is still alive. Note that writing to a virtual tty is already protected by checks against the DLCI specific connection state. Fixes: c568f7086c6e ("tty: n_gsm: fix missing timer to handle stalled links") Signed-off-by: Daniel Starke --- drivers/tty/n_gsm.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/tty/n_gsm.c b/drivers/tty/n_gsm.c index 1f3aba607cd5..0ee7531c9201 100644 --- a/drivers/tty/n_gsm.c +++ b/drivers/tty/n_gsm.c @@ -4108,6 +4108,8 @@ static int gsm_modem_upd_via_msc(struct gsm_dlci *dlci, u8 brk) static int gsm_modem_update(struct gsm_dlci *dlci, u8 brk) { + if (dlci->gsm->dead) + return -EL2HLT; if (dlci->adaption == 2) { /* Send convergence layer type 2 empty data frame. */ gsm_modem_upd_via_data(dlci, brk); From patchwork Thu Oct 26 05:58:44 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "D. Starke" X-Patchwork-Id: 158407 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:d641:0:b0:403:3b70:6f57 with SMTP id cy1csp451789vqb; Wed, 25 Oct 2023 23:01:38 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHFKbz5L2vZ9+Sae1tq/g/DUXWJzXL7zfY3TR/Y7LlFCrw3q3ddjxY04jaXydevt/YULlYr X-Received: by 2002:a25:bccc:0:b0:d86:74e5:9469 with SMTP id l12-20020a25bccc000000b00d8674e59469mr16936943ybm.16.1698300098026; Wed, 25 Oct 2023 23:01:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1698300098; cv=none; d=google.com; s=arc-20160816; b=Xs7efkWm4BxnvpPufVGGIjtxWGbW4Fi4W61C3zIY4yR2ucMe3VTkNS8dZRJ3Hf7b/8 sM3GCdsYG8x7YOkrEipDdFhH0Xz9M9/mrq4CidJzJF3MSqYwi4hve8qgRmJV7YDtbLvk 7ZVm68jkbM6FS3yGNsoVUbbJShu6dMTgrYvvbhhFcu9hoqOZMCY/d55uTlY2RHdii8rX 4+qnEHp4sdlAOBpchdXtY4kOi4upbY0VfjZ7wz+rxHjMcF4yWdMZFshjyt8++IU2D/0J wptT73dztPdKzmRHcOH5jD9Nb/ACsqWktJoJnI53QxPOH6F5BVOor6PFJMNghGG+cLXw lpww== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:feedback-id:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=Ehf7ZoxhNwvyjbjNC6YvzY1HxEdyvvTlSs2j8bgf0+s=; fh=5YXR7RtUzZ11YkjdXTzgd3M62+HIxQ5O+Fdh381pAu0=; b=bco3MUcu3i+hpQ6/Kl8fuEdAZRHA1kdjChrFQ4/6TdCC8T+/8dFes7ZUnt/cxcZDPL oNx9qKWlvDWa61n1dnq4xQp9NQNKNTUCYhAt2tiGrtLRJWF3kbBJB+KOeLYUp7JMk948 3EUyVQt31msYtj0LI/iLhHyboiXqzDrBk1sxh/jk5KHSZG9TLxGFGgFbV/PA1RioKJTY nVmUMhviK6yOKSA/ktu+ut86LU/i4LM2CnivSR1D/lujL2dHkEhARFtv9SHP1SuGsCIZ BdZbu7bYCy2GbOPgW4uv7lWKNA/1qFrX9d4QDbhgFsVlWnlqDSbnrJ3/JZF7oeQHe6H6 3wTg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@siemens.com header.s=fm1 header.b=FKeDpJWr; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:5 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com Received: from groat.vger.email (groat.vger.email. [2620:137:e000::3:5]) by mx.google.com with ESMTPS id w138-20020a25c790000000b00d9abc7dc26fsi13577228ybe.301.2023.10.25.23.01.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Oct 2023 23:01:38 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:5 as permitted sender) client-ip=2620:137:e000::3:5; Authentication-Results: mx.google.com; dkim=pass header.i=@siemens.com header.s=fm1 header.b=FKeDpJWr; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:5 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by groat.vger.email (Postfix) with ESMTP id 1BDD280D6505; Wed, 25 Oct 2023 23:01:35 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at groat.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1343958AbjJZGBR (ORCPT + 26 others); Thu, 26 Oct 2023 02:01:17 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53268 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231383AbjJZGBM (ORCPT ); Thu, 26 Oct 2023 02:01:12 -0400 X-Greylist: delayed 62 seconds by postgrey-1.37 at lindbergh.monkeyblade.net; Wed, 25 Oct 2023 23:01:09 PDT Received: from mta-65-227.siemens.flowmailer.net (mta-65-227.siemens.flowmailer.net [185.136.65.227]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 67870184 for ; Wed, 25 Oct 2023 23:01:09 -0700 (PDT) Received: by mta-65-227.siemens.flowmailer.net with ESMTPSA id 202310260600043b5d97ac111d722b4b for ; Thu, 26 Oct 2023 08:00:05 +0200 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; s=fm1; d=siemens.com; i=daniel.starke@siemens.com; h=Date:From:Subject:To:Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding:Cc:References:In-Reply-To; bh=Ehf7ZoxhNwvyjbjNC6YvzY1HxEdyvvTlSs2j8bgf0+s=; b=FKeDpJWrpItw6P0tc4gV9tGCbIFQhwg+Onxgm/h2ioO10za/ysyxAnDWcTOVI0jlcOtfn2 LaBsBQUMS7/snyiVmTvlFc474JMER5P+WYikBa2tNg3PCkQfGWUnZsesg3Mjli4j/yKflQ7Y KOuKrbb45QV74Y+99oVUqyVjugs+w=; From: "D. Starke" To: linux-serial@vger.kernel.org, gregkh@linuxfoundation.org, jirislaby@kernel.org, ilpo.jarvinen@linux.intel.com Cc: linux-kernel@vger.kernel.org, Daniel Starke Subject: [PATCH 2/2] tty: n_gsm: add partial copyright Siemens Mobility GmbH Date: Thu, 26 Oct 2023 07:58:44 +0200 Message-Id: <20231026055844.3127-2-daniel.starke@siemens.com> In-Reply-To: <20231026055844.3127-1-daniel.starke@siemens.com> References: <20231026055844.3127-1-daniel.starke@siemens.com> MIME-Version: 1.0 X-Flowmailer-Platform: Siemens Feedback-ID: 519:519-314044:519-21489:flowmailer X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on groat.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (groat.vger.email [0.0.0.0]); Wed, 25 Oct 2023 23:01:35 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1780796723435640924 X-GMAIL-MSGID: 1780796723435640924 From: Daniel Starke More than 1/3 of the n_gsm code has been contributed by us in the last 1.5 years, completing conformance with the standard and stabilizing the driver: - added UI (unnumbered information) frame support - added PN (parameter negotiation) message handling and function support - added optional keep-alive control link supervision via test messages - added TIOCM_OUT1 and TIOCM_OUT2 to allow responder to operate as modem - added TIOCMIWAIT support on virtual ttys - added additional ioctls and parameters to configure the new functions - added overall locking mechanism to avoid data race conditions - added outgoing data flow to decouple physical from virtual tty handling for better performance and to avoid dead-locks - fixed advanced option mode implementation - fixed convergence layer type 2 implementation - fixed handling of CLD (multiplexer close down) messages - fixed broken muxer close down procedure - and many more bug fixes With this most of our initial RFC has been implemented. It gives the driver a quality boost unseen in the decade before. Add a partial copyright notice to the n_gsm files to highlight this contribution. Link: https://lore.kernel.org/all/20220225080758.2869-1-daniel.starke@siemens.com/ Signed-off-by: Daniel Starke --- drivers/tty/n_gsm.c | 1 + include/uapi/linux/gsmmux.h | 1 + 2 files changed, 2 insertions(+) diff --git a/drivers/tty/n_gsm.c b/drivers/tty/n_gsm.c index 0ee7531c9201..fa882c7f4770 100644 --- a/drivers/tty/n_gsm.c +++ b/drivers/tty/n_gsm.c @@ -2,6 +2,7 @@ /* * n_gsm.c GSM 0710 tty multiplexor * Copyright (c) 2009/10 Intel Corporation + * Portions Copyright (c) 2022/23 Siemens Mobility GmbH * * * THIS IS A DEVELOPMENT SNAPSHOT IT IS NOT A FINAL RELEASE * * diff --git a/include/uapi/linux/gsmmux.h b/include/uapi/linux/gsmmux.h index 4c878d84dbda..101ebd15954e 100644 --- a/include/uapi/linux/gsmmux.h +++ b/include/uapi/linux/gsmmux.h @@ -1,4 +1,5 @@ /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ +/* Portions Copyright (c) 2022/23 Siemens Mobility GmbH */ #ifndef _LINUX_GSMMUX_H #define _LINUX_GSMMUX_H