From patchwork Wed Aug 14 16:59:46 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Greg KH X-Patchwork-Id: 171317 Delivered-To: patch@linaro.org Received: by 2002:a92:d204:0:0:0:0:0 with SMTP id y4csp1093100ily; Wed, 14 Aug 2019 10:04:21 -0700 (PDT) X-Google-Smtp-Source: APXvYqyqRSG/bbmginsrx49lMox45hzSuMtXtvN73xxxhNQVLf6Hp+YOvLyPpmJJiZXEt66HyAz/ X-Received: by 2002:aa7:95b8:: with SMTP id a24mr927651pfk.103.1565802261715; Wed, 14 Aug 2019 10:04:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1565802261; cv=none; d=google.com; s=arc-20160816; b=jOxbVnzVChmKZo0TTApiATUVE4wXXdeKGW2urQh3bUIHFaWC/U+LWDK6KwUMZ/2DKL HRSKlWB84nR9oxEmzTpirp3rqxI6DADXey2FZY/v39On84wtj3irVyjWxhQ17BEGYx1a 2QrueBHDqXSWoNEruwJZ8MQlaQktsH4JqwAGI5QJZ1FxksqxNxwg2hrC4V3FPxbZIK09 ssjRT8h4Z/suwa/O2G2x7WU/YYaO2p5o4RsLBlEKNIIAPDpzpzW7PX61MBb1Dd08xOn6 CIh5uJR/zFaQ0bzIdAUHdnoj/jvlKbpcuOOOa9/EheuYkxKlpYY4VfO+Ji/G/oZjUW5t 3s6Q== 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:message-id:date:subject:cc:to :from:dkim-signature; bh=LHHoiE7uifw4Bhz4cUL9ggrUYNU21gJDtGja/hSWwDU=; b=QJZJFebdvUlaPomqmtnLV2blauwLp/Ye7PvEVpP79gjQBRXRWWII8k0jlTQU8/ATjA C8/ydtsEedeg5RbmhrKwsCm3CxrS4EBtBbbHzvYZ3TC78zD1ZPMzJ6qSb2uA2B61RGbF 5QiWA16FJvssA43eHf8ukvu63bwqanWzimgMvNxwinB5xcfZiDLNIFAV5z8giyBCjHBp QZjsuDWn8lnwKWta5SWvicCxIva/Fi4A2p9h/6oR4XrKJYrripFtymNkDsBr0fzEIsIG APzcRNRIcTl38NkRbFfYGu2Wc91tzSyvg0YvX+vp3UFCC2jSerEbKyIJ8IzJGSvTZYtG UeNw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=IKa2wE9n; spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-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 o6si67364pfb.230.2019.08.14.10.04.21; Wed, 14 Aug 2019 10:04:21 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=IKa2wE9n; spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728543AbfHNREU (ORCPT + 14 others); Wed, 14 Aug 2019 13:04:20 -0400 Received: from mail.kernel.org ([198.145.29.99]:53122 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729185AbfHNRET (ORCPT ); Wed, 14 Aug 2019 13:04:19 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 26617214DA; Wed, 14 Aug 2019 17:04:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1565802258; bh=c5ECV7W2sMFmoAZauGAu8MuqRcIeMfiqCEJhGLY03KA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=IKa2wE9n+s27xjlfBzSN4CfN99Il53E4Fa+WvzvcUkf1m+JKJU464bGRiC2s6Tmmx JqBN9g/KDIZ5Tb5zbUEbQpSao6o/PjJPVaE9lXU69/5cEFlP3eimIIUDzUV5w3715I oErkBt8TVAYd+R1QuJx2Gj3ZNo5hvnVKIby427RY= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Mathieu Poirier , Suzuki K Poulose Subject: [PATCH 5.2 030/144] coresight: Fix DEBUG_LOCKS_WARN_ON for uninitialized attribute Date: Wed, 14 Aug 2019 18:59:46 +0200 Message-Id: <20190814165801.098115389@linuxfoundation.org> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190814165759.466811854@linuxfoundation.org> References: <20190814165759.466811854@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Suzuki K Poulose commit 5511c0c309db4c526a6e9f8b2b8a1483771574bc upstream. While running the linux-next with CONFIG_DEBUG_LOCKS_ALLOC enabled, I get the following splat. BUG: key ffffcb5636929298 has not been registered! ------------[ cut here ]------------ DEBUG_LOCKS_WARN_ON(1) WARNING: CPU: 1 PID: 53 at kernel/locking/lockdep.c:3669 lockdep_init_map+0x164/0x1f0 CPU: 1 PID: 53 Comm: kworker/1:1 Tainted: G W 5.2.0-next-20190712-00015-g00ad4634222e-dirty #603 Workqueue: events amba_deferred_retry_func pstate: 60c00005 (nZCv daif +PAN +UAO) pc : lockdep_init_map+0x164/0x1f0 lr : lockdep_init_map+0x164/0x1f0 [ trimmed ] Call trace: lockdep_init_map+0x164/0x1f0 __kernfs_create_file+0x9c/0x158 sysfs_add_file_mode_ns+0xa8/0x1d0 sysfs_add_file_to_group+0x88/0xd8 etm_perf_add_symlink_sink+0xcc/0x138 coresight_register+0x110/0x280 tmc_probe+0x160/0x420 [ trimmed ] ---[ end trace ab4cc669615ba1b0 ]--- Fix this by initialising the dynamically allocated attribute properly. Cc: Mathieu Poirier Fixes: bb8e370bdc14 ("coresight: perf: Add "sinks" group to PMU directory") Cc: stable Signed-off-by: Suzuki K Poulose [Fixed a typograhic error in the changelog] Signed-off-by: Mathieu Poirier Link: https://lore.kernel.org/r/20190801172323.18359-2-mathieu.poirier@linaro.org Signed-off-by: Greg Kroah-Hartman --- drivers/hwtracing/coresight/coresight-etm-perf.c | 1 + 1 file changed, 1 insertion(+) --- a/drivers/hwtracing/coresight/coresight-etm-perf.c +++ b/drivers/hwtracing/coresight/coresight-etm-perf.c @@ -544,6 +544,7 @@ int etm_perf_add_symlink_sink(struct cor /* See function coresight_get_sink_by_id() to know where this is used */ hash = hashlen_hash(hashlen_string(NULL, name)); + sysfs_attr_init(&ea->attr.attr); ea->attr.attr.name = devm_kstrdup(pdev, name, GFP_KERNEL); if (!ea->attr.attr.name) return -ENOMEM; From patchwork Wed Aug 14 16:59:50 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Greg KH X-Patchwork-Id: 171318 Delivered-To: patch@linaro.org Received: by 2002:a92:d204:0:0:0:0:0 with SMTP id y4csp1093378ily; Wed, 14 Aug 2019 10:04:32 -0700 (PDT) X-Google-Smtp-Source: APXvYqzdce+XXLGkoqsDnLAA9CQ8YWwZdchgIqe82rI4kIBBjthxoALm0cFxmdkNLHch9UbOQtsx X-Received: by 2002:a63:1d2:: with SMTP id 201mr146620pgb.307.1565802272741; Wed, 14 Aug 2019 10:04:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1565802272; cv=none; d=google.com; s=arc-20160816; b=JiK7jd3ID+ag+L07dRS2Rwxwoy5i0Jo9VIxc6LVN9NdDlzIsKBmJW3TpBHJ4Xi8kVb 9S3yyJsRpyxTroxMwNdN6gpVInBMLC1agFS7SANwcGNRmmaYnlaGNNtR57raB9z3XEKu XA/9lL0eIJX+6PF3Ifn15cW6FH0U3AZil/rOf0fDP7RS7Igo9sQttyFkuRtv3draaEy1 oE34GOjfmxMXr6v37mm8rGn5x0wDG4U7aIfqYsFDBLC5Wvfq+umbe3Gp8NaOLYJaE7y9 K1H/V+R0MxfaMufWrqkBeEpmsQpCstTcAuzxeqPuQOGEe4SUyqi+fy9RZ2y7FV6Dip1U kd0w== 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:message-id:date:subject:cc:to :from:dkim-signature; bh=p5YGFbPtrCMqu0viPkkRuqEMIpz8hqfaG3nqPoPTNII=; b=prX7wtb4CrlG0bkPfkaCBxPBPxhhFjs4MlN26M4aGIBbP/HcU0u1nP54jWhIdDa3d2 SEBRiYXbe1Pog/ztZ3YnYRZh2OAJ3GUt2dG2KB5yix70jsm5cdoNVU+sWQljv1v0pMuJ FiCRmLh64P3CxVz0BYkx82+gbQUJciDSFw1yS4QVNt2vJKEgr9SN6mRK2Lagn+YolGia FA+ZCRCiHSb8VxRMHtTCfI3sA2wcHc6PGOT0hLzkGzVK3rbudbSLICxj6ob9JtzpiUFL eGYPWg0QEdYq5PsIxJrrRA6pSOmZ7icaXtq+9+9LbT2qHxuagUH4heTzZzD9xbztbEuH HNIw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=XgyQh4kS; spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-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 s21si66677pfe.204.2019.08.14.10.04.32; Wed, 14 Aug 2019 10:04:32 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=XgyQh4kS; spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729197AbfHNREb (ORCPT + 14 others); Wed, 14 Aug 2019 13:04:31 -0400 Received: from mail.kernel.org ([198.145.29.99]:53326 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729215AbfHNREa (ORCPT ); Wed, 14 Aug 2019 13:04:30 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 73BBD2084D; Wed, 14 Aug 2019 17:04:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1565802269; bh=uxRHKqm3l87w3jcDPFoFAyfY8jEP22imeRNuXpLfmAc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=XgyQh4kSZHzgGPjlow8OE3v4kmI9AL1ah+iIl9szq5ujNREAC507o+f9Lt5I0SvD+ IQlOH+G56FukKuujEOHD+E90YTUs+PxPKQGcT126gE9wkI7N64p2ZvPezVVieCqWZL Si69p0jBxN21FMJYni7PWecdyb0AS9fVJZvR7UN0= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Vaibhav Rustagi , Alistair Delva , Nick Desaulniers , Thomas Gleixner , Manoj Gupta Subject: [PATCH 5.2 034/144] x86/purgatory: Do not use __builtin_memcpy and __builtin_memset Date: Wed, 14 Aug 2019 18:59:50 +0200 Message-Id: <20190814165801.255920942@linuxfoundation.org> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190814165759.466811854@linuxfoundation.org> References: <20190814165759.466811854@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Nick Desaulniers commit 4ce97317f41d38584fb93578e922fcd19e535f5b upstream. Implementing memcpy and memset in terms of __builtin_memcpy and __builtin_memset is problematic. GCC at -O2 will replace calls to the builtins with calls to memcpy and memset (but will generate an inline implementation at -Os). Clang will replace the builtins with these calls regardless of optimization level. $ llvm-objdump -dr arch/x86/purgatory/string.o | tail 0000000000000339 memcpy: 339: 48 b8 00 00 00 00 00 00 00 00 movabsq $0, %rax 000000000000033b: R_X86_64_64 memcpy 343: ff e0 jmpq *%rax 0000000000000345 memset: 345: 48 b8 00 00 00 00 00 00 00 00 movabsq $0, %rax 0000000000000347: R_X86_64_64 memset 34f: ff e0 Such code results in infinite recursion at runtime. This is observed when doing kexec. Instead, reuse an implementation from arch/x86/boot/compressed/string.c. This requires to implement a stub function for warn(). Also, Clang may lower memcmp's that compare against 0 to bcmp's, so add a small definition, too. See also: commit 5f074f3e192f ("lib/string.c: implement a basic bcmp") Fixes: 8fc5b4d4121c ("purgatory: core purgatory functionality") Reported-by: Vaibhav Rustagi Debugged-by: Vaibhav Rustagi Debugged-by: Manoj Gupta Suggested-by: Alistair Delva Signed-off-by: Nick Desaulniers Signed-off-by: Thomas Gleixner Tested-by: Vaibhav Rustagi Cc: stable@vger.kernel.org Link: https://bugs.chromium.org/p/chromium/issues/detail?id=984056 Link: https://lkml.kernel.org/r/20190807221539.94583-1-ndesaulniers@google.com Signed-off-by: Greg Kroah-Hartman --- arch/x86/boot/string.c | 8 ++++++++ arch/x86/purgatory/Makefile | 3 +++ arch/x86/purgatory/purgatory.c | 6 ++++++ arch/x86/purgatory/string.c | 23 ----------------------- 4 files changed, 17 insertions(+), 23 deletions(-) --- a/arch/x86/boot/string.c +++ b/arch/x86/boot/string.c @@ -37,6 +37,14 @@ int memcmp(const void *s1, const void *s return diff; } +/* + * Clang may lower `memcmp == 0` to `bcmp == 0`. + */ +int bcmp(const void *s1, const void *s2, size_t len) +{ + return memcmp(s1, s2, len); +} + int strcmp(const char *str1, const char *str2) { const unsigned char *s1 = (const unsigned char *)str1; --- a/arch/x86/purgatory/Makefile +++ b/arch/x86/purgatory/Makefile @@ -6,6 +6,9 @@ purgatory-y := purgatory.o stack.o setup targets += $(purgatory-y) PURGATORY_OBJS = $(addprefix $(obj)/,$(purgatory-y)) +$(obj)/string.o: $(srctree)/arch/x86/boot/compressed/string.c FORCE + $(call if_changed_rule,cc_o_c) + $(obj)/sha256.o: $(srctree)/lib/sha256.c FORCE $(call if_changed_rule,cc_o_c) --- a/arch/x86/purgatory/purgatory.c +++ b/arch/x86/purgatory/purgatory.c @@ -68,3 +68,9 @@ void purgatory(void) } copy_backup_region(); } + +/* + * Defined in order to reuse memcpy() and memset() from + * arch/x86/boot/compressed/string.c + */ +void warn(const char *msg) {} --- a/arch/x86/purgatory/string.c +++ /dev/null @@ -1,23 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-only -/* - * Simple string functions. - * - * Copyright (C) 2014 Red Hat Inc. - * - * Author: - * Vivek Goyal - */ - -#include - -#include "../boot/string.c" - -void *memcpy(void *dst, const void *src, size_t len) -{ - return __builtin_memcpy(dst, src, len); -} - -void *memset(void *dst, int c, size_t len) -{ - return __builtin_memset(dst, c, len); -}