Received: by 2002:a17:90a:bc8d:0:0:0:0 with SMTP id x13csp1571688pjr; Mon, 18 May 2020 16:43:55 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwobfAXZ5ikq4RmHPrvN3PIsno647gNNEz2iVW0iGOCKbj8JLDtlvSF18emmb8bHEKOZIXZ X-Received: by 2002:a50:d50f:: with SMTP id u15mr15655199edi.244.1589845435429; Mon, 18 May 2020 16:43:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1589845435; cv=none; d=google.com; s=arc-20160816; b=Js/KRlf52w8ATrB66rfml/YBVeXvrSWqAoAVH8tPBbcxIxwssEwrtQAnJkm1ys6bDf CpIlEZudlD5vEZQ4PbLiwfJ8RfwPM19gMd5jxWAZTQaVl5bkXuQYYwac7WAdG/LPYmw9 2DcL0ED+hwsGJMs2tsDjOXITpL5DVJ4ir/AcDe/YUWONPHEwZxg7NYa3afiMdHGfX9Ok 5cQtdcGbAlOeahPSijsGfJJOxvW5EbaibQz3A61zgr0gcsFjpXrNIwax+ZAMZR4yR1iw ynclIKINXKawDllEgLziXwB7HNJThQyIiV3qcQ4nkqE7o4xnIG/eOcfhqiWR0/xBdISp K/jg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:date:cc:to:from:subject :message-id; bh=5yWLiVQFvNP9ywmFCmrj+Y9S41ubVW3w2fW+k3s/xUQ=; b=eAWDUsU4Ey5iv4jMGOleskqK+OtR3UNbKZxasLbZyGvRESghMF4AwuH6HrAq2bCVhO Dz/+yWPOXBEOHvuL2xfVseVEqck4iM/Nvx7gksWVld1l9j3YYEtgRzbUmScApYN4FwCg yeDd8EJM9anAaM4LJiKRr4p1eQ3ORrzzx/vp5PyR+okAz3if6H0hdbaWPtNBgBUTNSFd Ojbhlb7IlFWUQQ7irlfFKjmdrJrtpMx05pXOKoq2N5+4t1V4p8cLp9+pX0xhlU9f8IzO F42NUErGVqWwhXnwbv7NxnpLPoFXQ7fFa+d0zzz9ZXtNNZoPveRiRC0uyKWPMyVQ/Vop 5VHw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id m30si8080204edb.193.2020.05.18.16.43.32; Mon, 18 May 2020 16:43:55 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730675AbgERRuV (ORCPT + 99 others); Mon, 18 May 2020 13:50:21 -0400 Received: from smtprelay0091.hostedemail.com ([216.40.44.91]:47570 "EHLO smtprelay.hostedemail.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1730659AbgERRuS (ORCPT ); Mon, 18 May 2020 13:50:18 -0400 Received: from filter.hostedemail.com (clb03-v110.bra.tucows.net [216.40.38.60]) by smtprelay03.hostedemail.com (Postfix) with ESMTP id C5566837F24C; Mon, 18 May 2020 17:50:17 +0000 (UTC) X-Session-Marker: 6A6F6540706572636865732E636F6D X-Spam-Summary: 2,0,0,,d41d8cd98f00b204,joe@perches.com,,RULES_HIT:41:69:355:379:800:960:973:988:989:1260:1277:1311:1313:1314:1345:1359:1437:1515:1516:1518:1534:1543:1593:1594:1711:1730:1747:1777:1792:2393:2559:2562:2828:2914:3138:3139:3140:3141:3142:3355:3866:3867:3872:3873:4605:5007:8531:8603:9036:10004:10400:10848:11026:11473:11658:11914:12043:12291:12296:12297:12438:12555:12683:12760:13146:13230:13439:14181:14394:14659:14721:21080:21121:21627:21740:21990:30054:30083,0,RBL:none,CacheIP:none,Bayesian:0.5,0.5,0.5,Netcheck:none,DomainCache:0,MSF:not bulk,SPF:,MSBL:0,DNSBL:none,Custom_rules:0:0:0,LFtime:1,LUA_SUMMARY:none X-HE-Tag: pies21_1f8ccfdebe71f X-Filterd-Recvd-Size: 4208 Received: from XPS-9350.home (unknown [47.151.136.130]) (Authenticated sender: joe@perches.com) by omf07.hostedemail.com (Postfix) with ESMTPA; Mon, 18 May 2020 17:50:16 +0000 (UTC) Message-ID: Subject: [PATCH] tty: n_gsm: gsm_print_packet: use scnprintf to avoid pr_cont From: Joe Perches To: Greg Kroah-Hartman , Gregory CLEMENT Cc: Jiri Slaby , linux-kernel@vger.kernel.org, Thomas Petazzoni Date: Mon, 18 May 2020 10:50:15 -0700 In-Reply-To: <20200518074803.GA3095136@kroah.com> References: <20200512115323.1447922-1-gregory.clement@bootlin.com> <20200512115323.1447922-2-gregory.clement@bootlin.com> <87tv0dg0ii.fsf@FE-laptop> <20200518073829.GA3055513@kroah.com> <87o8qlg00b.fsf@FE-laptop> <20200518074803.GA3095136@kroah.com> Content-Type: text/plain; charset="ISO-8859-1" User-Agent: Evolution 3.36.1-2 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Use a temporary buffer to avoid multiple pr_cont uses. Signed-off-by: Joe Perches --- > > > Ugh, as I already applied this series, should I just revert them all, or > > > are you going to send fix-ups on top of what I have applied instead? > > > > I was about to send a new series, but I can just send fix-ups. It's up > > to you. > > fix-ups are less work for me :) Perhaps use something like this instead? It does increase object size a tiny bit. drivers/tty/n_gsm.c | 71 +++++++++++++++++++++++++++++++---------------------- 1 file changed, 42 insertions(+), 29 deletions(-) diff --git a/drivers/tty/n_gsm.c b/drivers/tty/n_gsm.c index 69200bd411f7..7d7820aeb57b 100644 --- a/drivers/tty/n_gsm.c +++ b/drivers/tty/n_gsm.c @@ -454,58 +454,71 @@ static u8 gsm_encode_modem(const struct gsm_dlci *dlci) */ static void gsm_print_packet(const char *hdr, int addr, int cr, - u8 control, const u8 *data, int dlen) + u8 control, const u8 *data, int dlen) { + char buf[100]; + char *p; + char *type; + if (!(debug & 1)) return; - pr_info("%s %d) %c: ", hdr, addr, "RC"[cr]); + p = buf; + p += scnprintf(p, buf - p, "%s %d) %c: ", hdr, addr, "RC"[cr]); switch (control & ~PF) { case SABM: - pr_cont("SABM"); + type = "SABM"; break; case UA: - pr_cont("UA"); + type = "UA"; break; case DISC: - pr_cont("DISC"); + type = "DISC"; break; case DM: - pr_cont("DM"); + type = "DM"; break; case UI: - pr_cont("UI"); + type = "UI"; break; case UIH: - pr_cont("UIH"); + type = "UIH"; break; default: - if (!(control & 0x01)) { - pr_cont("I N(S)%d N(R)%d", - (control & 0x0E) >> 1, (control & 0xE0) >> 5); - } else switch (control & 0x0F) { - case RR: - pr_cont("RR(%d)", (control & 0xE0) >> 5); - break; - case RNR: - pr_cont("RNR(%d)", (control & 0xE0) >> 5); - break; - case REJ: - pr_cont("REJ(%d)", (control & 0xE0) >> 5); - break; - default: - pr_cont("[%02X]", control); + type = NULL; + break; + } + + if (type) { + p += scnprintf(p, buf - p, "%s", type); + } else if (!(control & 0x01)) { + p += scnprintf(p, buf - p, "I N(S)%d N(R)%d", + (control & 0x0E) >> 1, (control & 0xE0) >> 5); + } else { + switch (control & 0x0F) { + case RR: + p += scnprintf(p, buf - p, "RR(%d)", + (control & 0xE0) >> 5); + break; + case RNR: + p += scnprintf(p, buf - p, "RNR(%d)", + (control & 0xE0) >> 5); + break; + case REJ: + p += scnprintf(p, buf - p, "REJ(%d)", + (control & 0xE0) >> 5); + break; + default: + p += scnprintf(p, buf - p, "[%02X]", control); + break; } } - if (control & PF) - pr_cont("(P)"); - else - pr_cont("(F)"); + p += scnprintf(p, buf - p, "(%c)", control & PF ? 'P' : 'F'); - if (dlen) - print_hex_dump_bytes("", DUMP_PREFIX_NONE, data, dlen); + pr_info("%s\n", buf); + print_hex_dump_bytes("", DUMP_PREFIX_NONE, data, dlen); }