Received: by 2002:ac0:a581:0:0:0:0:0 with SMTP id m1-v6csp1354515imm; Tue, 3 Jul 2018 09:40:03 -0700 (PDT) X-Google-Smtp-Source: AAOMgpfPSYkuellp0SfdyYH5MJ/643sB0oVlkw7IP6PsYerxj/zx+Uz6E8hLQ57G08+T39swbvPU X-Received: by 2002:a63:8f03:: with SMTP id n3-v6mr18552897pgd.166.1530636003438; Tue, 03 Jul 2018 09:40:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1530636003; cv=none; d=google.com; s=arc-20160816; b=S+wvUqBF78yQgMs2H364q6+WY7gRkTID+ENfYQlHv7SYq+k2tDL1UpOx9lPvkGOmop uW5bN19+D31zaN4os4iEMPrFIKyBSo6Yl7zVEAOCVGzWLbwf15Vm+EJkunzW2H9mjJKO 4PR+VMX9RU45WA2R6U/RVGnUbsoLGMVSkroKRwB4aPfuRzLdHwuq9RKLnl2Sl2oOYJMZ fISqon1zQyPzhKg0uvba/M3eUjdkfUUJvoQuNRPcXOiYesYZCfoahYZmhW04XmM9a6KC otLh1MUgviB+OBuSzx5q0qZGim37R8dI+H3CM3srZakzNC/3WGIyijaGhMd4H4qgf5yg zr2w== 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 :references:in-reply-to:date:cc:to:from:subject:message-id :arc-authentication-results; bh=GceGrlg8wyyurjNo0e9j1wUZLE/gI/yRVK4v8CE2KVs=; b=qa+LBvppRiKXega3eSRsi5lM7z7tCpp4Vi9vTyWL2GS7MqtjcHa8NmFGykB3Jjt2Sv rRYRZ37A2aGCZL8IMWqkTyynk/COTwuEkwC8wFA5uwOEt7S0Tq9avwVWnGCNiMCgZtR1 qoYkv8P35vB0EgO0HI6NqzjrREY4/b0A0bRXy4V+riHZZpMoJ2T630/7eYhwFwmVieyb QNoGtUhK3iC984cR0mK3GvOgTJf7QPz79vUCEqX9HaQkJs9skLKric/COSH6QnV+G4RA wWLLtHyOy7ZdZygKlejAFcQ7p1nBqQL5veLzF9LWJumtEDTPQ65IK7qABI7cYGcmxUlQ q3hQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id y23-v6si1576475pli.389.2018.07.03.09.39.48; Tue, 03 Jul 2018 09:40:03 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933733AbeGCQic (ORCPT + 99 others); Tue, 3 Jul 2018 12:38:32 -0400 Received: from smtprelay0060.hostedemail.com ([216.40.44.60]:36738 "EHLO smtprelay.hostedemail.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932747AbeGCQib (ORCPT ); Tue, 3 Jul 2018 12:38:31 -0400 Received: from filter.hostedemail.com (clb03-v110.bra.tucows.net [216.40.38.60]) by smtprelay08.hostedemail.com (Postfix) with ESMTP id 97845182CF66E; Tue, 3 Jul 2018 16:38:30 +0000 (UTC) X-Session-Marker: 6A6F6540706572636865732E636F6D X-Spam-Summary: 2,0,0,,d41d8cd98f00b204,joe@perches.com,:::::::::::,RULES_HIT:2:41:69:355:379:541:599:800:960:968:973:988:989:1260:1277:1311:1313:1314:1345:1359:1437:1515:1516:1518:1535:1593:1594:1605:1730:1747:1777:1792:1801:2198:2199:2393:2553:2559:2562:2828:3138:3139:3140:3141:3142:3622:3865:3866:3867:3868:3870:3871:3872:3874:4050:4120:4321:4419:4560:4605:5007:7576:7904:9040:9545:10004:10848:10967:11026:11232:11233:11473:11658:11914:12043:12048:12262:12291:12295:12296:12438:12555:12679:12683:12740:12760:12895:12986:13161:13229:13439:14659:21080:21212:21433:21451:21627:30003:30054:30056:30064:30083:30090:30091,0,RBL:47.151.153.53:@perches.com:.lbl8.mailshell.net-62.8.0.100 64.201.201.201,CacheIP:none,Bayesian:0.5,0.5,0.5,Netcheck:none,DomainCache:0,MSF:not bulk,SPF:fn,MSBL:0,DNSBL:none,Custom_rules:0:0:0,LFtime:26,LUA_SUMMARY:none X-HE-Tag: sheet02_844f41cb4771b X-Filterd-Recvd-Size: 9122 Received: from XPS-9350.home (unknown [47.151.153.53]) (Authenticated sender: joe@perches.com) by omf07.hostedemail.com (Postfix) with ESMTPA; Tue, 3 Jul 2018 16:38:29 +0000 (UTC) Message-ID: <4b05b03ac6c3537d06754562efd477ba75413b62.camel@perches.com> Subject: Re: [PATCH] iommu/amd: fix missing tag from dev_err message From: Joe Perches To: "Hook, Gary" , Colin Ian King , Joerg Roedel , iommu@lists.linux-foundation.org Cc: kernel-janitors@vger.kernel.org, linux-kernel@vger.kernel.org Date: Tue, 03 Jul 2018 09:38:27 -0700 In-Reply-To: References: <20180703064005.18908-1-colin.king@canonical.com> <6763ec382f8d629f5f356f4cc023f20c2f76b26a.camel@perches.com> <6fbcf273-bc0a-5dbd-fa0e-a7f656c4ccbc@canonical.com> Content-Type: text/plain; charset="ISO-8859-1" X-Mailer: Evolution 3.28.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 On Tue, 2018-07-03 at 11:27 -0500, Hook, Gary wrote: > On 7/3/2018 11:24 AM, Colin Ian King wrote: > > On 03/07/18 17:21, Hook, Gary wrote: > > > On 7/3/2018 10:55 AM, Joe Perches wrote: > > > > On Tue, 2018-07-03 at 07:56 -0500, Gary R Hook wrote: > > > > > On 07/03/2018 05:07 AM, Joe Perches wrote: > > > > > > On Tue, 2018-07-03 at 07:40 +0100, Colin King wrote: > > > > > > > Currently tag is being assigned but not used, it is missing from > > > > > > > the dev_err message, so add it in. > > > > > > > > > > > > > > Cleans up clang warning: > > > > > > > warning: variable 'tag' set but not used [-Wunused-but-set-variable] > > > > > > > > > > > > [] > > > > > > > diff --git a/drivers/iommu/amd_iommu.c b/drivers/iommu/amd_iommu.c > > > > > > > > > > > > [] > > > > > > > @@ -616,9 +616,9 @@ static void iommu_print_event(struct amd_iommu > > > > > > > *iommu, void *__evt) > > > > > > > pasid = ((event[0] >> 16) & 0xFFFF) > > > > > > > | ((event[1] << 6) & 0xF0000); > > > > > > > tag = event[1] & 0x03FF; > > > > > > > - dev_err(dev, "INVALID_PPR_REQUEST device=%02x:%02x.%x > > > > > > > pasid=0x%05x address=0x%016llx flags=0x%04x]\n", > > > > > > > + dev_err(dev, "INVALID_PPR_REQUEST device=%02x:%02x.%x > > > > > > > pasid=0x%05x address=0x%016llx flags=0x%04x tag=0x%03x]\n", > > > > > > > PCI_BUS_NUM(devid), PCI_SLOT(devid), PCI_FUNC(devid), > > > > > > > - pasid, address, flags); > > > > > > > + pasid, address, flags, tag); > > > > > > > > > > > > Seems to have a superfluous ] that should be removed. > > > > > > > > > > Yeah, I pretty much messed up all of the log messages in that function. > > > > > My apologies. I'll create a patch for that problem; it shouldn't be > > > > > fixed here. > > > > > > Well, no, I misremembered. The extraneous square brace has been there > > > forever. Needs fixin', though. > > > > > > > The opening square bracket is much earlier: > > > > dev_err(dev, "AMD-Vi: Event logged ["); > > > > ..and all the subsequent dev_err messages have the trailing square bracket. > > Gah! Mystery solved. I'd forgotten about that. > > "Never mind." > It stems from the misconversion from printk to dev_err The initial dev_err is fine but all the dev_err uses in the switch/case should use pr_cont, not dev_err (there's a suggested patch below this commit reference) --- From 90ca3859f5ea90050d00e695355934b37357e7bb Mon Sep 17 00:00:00 2001 From: Gary R Hook Date: Thu, 8 Mar 2018 18:34:41 -0600 Subject: [PATCH] iommu/amd: Use dev_err to send events to the system log Remove printk and use a more preferable error logging function. Signed-off-by: Gary R Hook Signed-off-by: Joerg Roedel --- drivers/iommu/amd_iommu.c | 55 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 28 insertions(+), 27 deletions(-) diff --git a/drivers/iommu/amd_iommu.c b/drivers/iommu/amd_iommu.c index 997a947ddc3b..4cd19f93ca15 100644 --- a/drivers/iommu/amd_iommu.c +++ b/drivers/iommu/amd_iommu.c @@ -547,6 +547,7 @@ static void amd_iommu_report_page_fault(u16 devid, u16 domain_id, static void iommu_print_event(struct amd_iommu *iommu, void *__evt) { + struct device *dev = iommu->iommu.dev; int type, devid, domid, flags; volatile u32 *event = __evt; int count = 0; @@ -573,53 +574,53 @@ static void iommu_print_event(struct amd_iommu *iommu, void *__evt) amd_iommu_report_page_fault(devid, domid, address, flags); return; } else { - printk(KERN_ERR "AMD-Vi: Event logged ["); + dev_err(dev, "AMD-Vi: Event logged ["); } switch (type) { case EVENT_TYPE_ILL_DEV: - printk("ILLEGAL_DEV_TABLE_ENTRY device=%02x:%02x.%x " - "address=0x%016llx flags=0x%04x]\n", - PCI_BUS_NUM(devid), PCI_SLOT(devid), PCI_FUNC(devid), - address, flags); + dev_err(dev, "ILLEGAL_DEV_TABLE_ENTRY device=%02x:%02x.%x " + "address=0x%016llx flags=0x%04x]\n", + PCI_BUS_NUM(devid), PCI_SLOT(devid), PCI_FUNC(devid), + address, flags); etc... so this could be: --- drivers/iommu/amd_iommu.c | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/drivers/iommu/amd_iommu.c b/drivers/iommu/amd_iommu.c index 596b95c50051..f78cfa094301 100644 --- a/drivers/iommu/amd_iommu.c +++ b/drivers/iommu/amd_iommu.c @@ -572,43 +572,42 @@ static void iommu_print_event(struct amd_iommu *iommu, void *__evt) if (type == EVENT_TYPE_IO_FAULT) { amd_iommu_report_page_fault(devid, pasid, address, flags); return; - } else { - dev_err(dev, "AMD-Vi: Event logged ["); } + dev_err(dev, "AMD-Vi: Event logged ["); + switch (type) { case EVENT_TYPE_ILL_DEV: - dev_err(dev, "ILLEGAL_DEV_TABLE_ENTRY device=%02x:%02x.%x pasid=0x%05x address=0x%016llx flags=0x%04x]\n", + pr_cont("ILLEGAL_DEV_TABLE_ENTRY device=%02x:%02x.%x pasid=0x%05x address=0x%016llx flags=0x%04x]\n", PCI_BUS_NUM(devid), PCI_SLOT(devid), PCI_FUNC(devid), pasid, address, flags); dump_dte_entry(devid); break; case EVENT_TYPE_DEV_TAB_ERR: - dev_err(dev, "DEV_TAB_HARDWARE_ERROR device=%02x:%02x.%x " - "address=0x%016llx flags=0x%04x]\n", + pr_cont("DEV_TAB_HARDWARE_ERROR device=%02x:%02x.%x address=0x%016llx flags=0x%04x]\n", PCI_BUS_NUM(devid), PCI_SLOT(devid), PCI_FUNC(devid), address, flags); break; case EVENT_TYPE_PAGE_TAB_ERR: - dev_err(dev, "PAGE_TAB_HARDWARE_ERROR device=%02x:%02x.%x domain=0x%04x address=0x%016llx flags=0x%04x]\n", + pr_cont("PAGE_TAB_HARDWARE_ERROR device=%02x:%02x.%x domain=0x%04x address=0x%016llx flags=0x%04x]\n", PCI_BUS_NUM(devid), PCI_SLOT(devid), PCI_FUNC(devid), pasid, address, flags); break; case EVENT_TYPE_ILL_CMD: - dev_err(dev, "ILLEGAL_COMMAND_ERROR address=0x%016llx]\n", address); + pr_cont("ILLEGAL_COMMAND_ERROR address=0x%016llx]\n", address); dump_command(address); break; case EVENT_TYPE_CMD_HARD_ERR: - dev_err(dev, "COMMAND_HARDWARE_ERROR address=0x%016llx flags=0x%04x]\n", + pr_cont("COMMAND_HARDWARE_ERROR address=0x%016llx flags=0x%04x]\n", address, flags); break; case EVENT_TYPE_IOTLB_INV_TO: - dev_err(dev, "IOTLB_INV_TIMEOUT device=%02x:%02x.%x address=0x%016llx]\n", + pr_cont("IOTLB_INV_TIMEOUT device=%02x:%02x.%x address=0x%016llx]\n", PCI_BUS_NUM(devid), PCI_SLOT(devid), PCI_FUNC(devid), address); break; case EVENT_TYPE_INV_DEV_REQ: - dev_err(dev, "INVALID_DEVICE_REQUEST device=%02x:%02x.%x pasid=0x%05x address=0x%016llx flags=0x%04x]\n", + pr_cont("INVALID_DEVICE_REQUEST device=%02x:%02x.%x pasid=0x%05x address=0x%016llx flags=0x%04x]\n", PCI_BUS_NUM(devid), PCI_SLOT(devid), PCI_FUNC(devid), pasid, address, flags); break; @@ -616,12 +615,12 @@ static void iommu_print_event(struct amd_iommu *iommu, void *__evt) pasid = ((event[0] >> 16) & 0xFFFF) | ((event[1] << 6) & 0xF0000); tag = event[1] & 0x03FF; - dev_err(dev, "INVALID_PPR_REQUEST device=%02x:%02x.%x pasid=0x%05x address=0x%016llx flags=0x%04x]\n", + pr_cont("INVALID_PPR_REQUEST device=%02x:%02x.%x pasid=0x%05x address=0x%016llx flags=0x%04x]\n", PCI_BUS_NUM(devid), PCI_SLOT(devid), PCI_FUNC(devid), pasid, address, flags); break; default: - dev_err(dev, "UNKNOWN event[0]=0x%08x event[1]=0x%08x event[2]=0x%08x event[3]=0x%08x\n", + pr_cont("UNKNOWN event[0]=0x%08x event[1]=0x%08x event[2]=0x%08x event[3]=0x%08x\n", event[0], event[1], event[2], event[3]); }