From patchwork Wed Nov 7 16:43:38 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Long X-Patchwork-Id: 150415 Delivered-To: patches@linaro.org Received: by 2002:a2e:299d:0:0:0:0:0 with SMTP id p29-v6csp5387075ljp; Wed, 7 Nov 2018 08:44:06 -0800 (PST) X-Received: by 2002:a0c:8ae3:: with SMTP id 32mr966674qvw.27.1541609045930; Wed, 07 Nov 2018 08:44:05 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1541609045; cv=none; d=google.com; s=arc-20160816; b=wX/rBsbjkGUF3AyCLmOrW9AREvB7HjeA0nCtS0SDAG2L9/l0v4k9KGnVe1m8x/BdLV 1HHf5OmxnG6ocveQJN1Snx1IwFGPjdKS7OmlgrinXc4kOO0kXGbei4I8cLr2rZg0UpMu ENHAnVJ82Iy+MHc3HJ8ZhNhx+1IdjXdx9ahIU++6j/vOie0fBOGwQQL3QO0Dcsa/WN2n 3sb5j1nUmI51AvsJD9n1krlc2NU8Gm2LG4k74P4hu5Of2ttU2gJGn2xDeA/dsF3OCxOU mmhyRdQWimRm/17S/9Jt2aAFSc0aGIp+we2K9ygKOvXAWeE1hNI/mDp7eaUclCLh/Zlc ZNKQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=message-id:date:subject:cc:to:from:dkim-signature; bh=jR/RfsWdQaA3S2MPrrmR5rwubRn9HOF+hYn5PrAIJ1M=; b=JGyaBg1uG1BfUpNz8Xe/0Z5wXnx+ltQgAYlPel+q1477fV3ptttLnSctD6o5rmOzpq pZEx30m04O0XjesbOIbXjM2888h76pWlGsg9EEWv/9E+Yy7X7rHRqtJlfQ6CjelWzEbd ry/dj2zLsQ5/RmtO96542f/INZKT7R59H6TWlHRUsckl8xr2GgWKA38gzfMGq96MxUOl ycSagYS0Adawt3oW/QUSikpYxDSpqtXVbnxIuU3ctCL4yeRPx0Z+olLHrKEUMk4TdeA0 Aqi4maZDqsoCOpvKDahSIssdrXHe9jqpq9xAzGfCgB3CaFvOtY6zLkI7i8hStIqd1EoX nWog== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=XisPF95g; spf=pass (google.com: domain of dave.long@linaro.org designates 209.85.220.65 as permitted sender) smtp.mailfrom=dave.long@linaro.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from mail-sor-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id l56sor1207036qvc.26.2018.11.07.08.44.05 for (Google Transport Security); Wed, 07 Nov 2018 08:44:05 -0800 (PST) Received-SPF: pass (google.com: domain of dave.long@linaro.org designates 209.85.220.65 as permitted sender) client-ip=209.85.220.65; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=XisPF95g; spf=pass (google.com: domain of dave.long@linaro.org designates 209.85.220.65 as permitted sender) smtp.mailfrom=dave.long@linaro.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id; bh=jR/RfsWdQaA3S2MPrrmR5rwubRn9HOF+hYn5PrAIJ1M=; b=XisPF95gNao0+gk7u3DnznEmKpBxyfxD53WlOv6JlGwzxlsmCutB/mB6TES37eHkwa TgSfv0FwuJeAvK/lqJy8Fs5VTsjZs3/5ZHzSLOZvP3EPEBMr+1BZEHbxRpHZx8W/zSyq sVF+bxjiUghhYiQO6Lej8NQ73J+L8eUTTEaHs= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=jR/RfsWdQaA3S2MPrrmR5rwubRn9HOF+hYn5PrAIJ1M=; b=pAvGaB0FCPA9Y0biHf+gxAAqAkYNSB12We7ORnZS9W+/+P+qaQkDVePjIBP2hzYdFL xwCMy3scspGtWRXIoImt/VCChOBGrvnMsJVR+6hEkDWvSZMDe1Oa71f2yp4rVcxNKlZd J6IOLEOk1xCxXkHbhpiUwoPb/PRJmS27xpIunGR8TzDmgO3Oq8zDxRwW3D090nKTWbSV exKt5H40cNaE7qpG2oYLMHCO7UduanYNLwhf+HPeTn8iv3uON1gJGANyLEuS+Wge8U/u hhKoSNVVveyjq6JQqYRYLTkNk26FVHBw3khwTHn6/ZXIBOAXRd08PalASETmueLo8qg/ 7yXQ== X-Gm-Message-State: AGRZ1gKBpeJVfUkfDkhoTZS0Qa2PMYX/8wuUHe4mi08lErWjiXrexXNN UOrU/r7zOrBpu/aw89IXVA8+UtDwvZRtbw== X-Google-Smtp-Source: AJdET5dzqAcgLV0fucL7yARTBK3wxDH9aTODwZqfPM7bW123WtNJpEEUyqDh5ij2vVM5NbVnhS034g== X-Received: by 2002:a0c:b509:: with SMTP id d9-v6mr1011029qve.184.1541609045059; Wed, 07 Nov 2018 08:44:05 -0800 (PST) Return-Path: Received: from localhost.localdomain (pool-72-71-243-63.cncdnh.fast00.myfairpoint.net. [72.71.243.63]) by smtp.googlemail.com with ESMTPSA id 96-v6sm681817qtc.56.2018.11.07.08.44.03 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 07 Nov 2018 08:44:04 -0800 (PST) From: David Long To: stable@vger.kernel.org, Russell King - ARM Linux , Florian Fainelli , Tony Lindgren , Marc Zyngier , Mark Rutland Cc: Greg KH , Mark Brown Subject: [PATCH 4.9 V2 00/24] V4.9 backport of 32-bit arm spectre patches Date: Wed, 7 Nov 2018 11:43:38 -0500 Message-Id: <20181107164402.9380-1-dave.long@linaro.org> X-Mailer: git-send-email 2.17.1 From: "David A. Long" V4.9 backport of spectre patches from Russell M. King's spectre branch. Patches not yet in upstream are excluded. Changes in V2: 1) Fixed bad merge in #11/24 in hyp-entry.S. 2) Incorporated upstream patch to earlier patch where wrong ENDPROC call was done in hypervisor code in proc-v7.S. Marc Zyngier (2): ARM: KVM: invalidate BTB on guest exit for Cortex-A12/A17 ARM: KVM: invalidate icache on guest exit for Cortex-A15 Russell King (22): ARM: add more CPU part numbers for Cortex and Brahma B15 CPUs ARM: bugs: prepare processor bug infrastructure ARM: bugs: hook processor bug checking into SMP and suspend paths ARM: bugs: add support for per-processor bug checking ARM: spectre: add Kconfig symbol for CPUs vulnerable to Spectre ARM: spectre-v2: harden branch predictor on context switches ARM: spectre-v2: add Cortex A8 and A15 validation of the IBE bit ARM: spectre-v2: harden user aborts in kernel space ARM: spectre-v2: add firmware based hardening ARM: spectre-v2: warn about incorrect context switching functions ARM: spectre-v2: KVM: invalidate icache on guest exit for Brahma B15 ARM: KVM: Add SMCCC_ARCH_WORKAROUND_1 fast handling ARM: KVM: report support for SMCCC_ARCH_WORKAROUND_1 ARM: spectre-v1: add speculation barrier (csdb) macros ARM: spectre-v1: add array_index_mask_nospec() implementation ARM: spectre-v1: fix syscall entry ARM: signal: copy registers using __copy_from_user() ARM: vfp: use __copy_from_user() when restoring VFP state ARM: oabi-compat: copy semops using __copy_from_user() ARM: use __inttype() in get_user() ARM: spectre-v1: use get_user() for __get_user() ARM: spectre-v1: mitigate user accesses arch/arm/include/asm/assembler.h | 12 ++ arch/arm/include/asm/barrier.h | 32 ++++++ arch/arm/include/asm/bugs.h | 6 +- arch/arm/include/asm/cp15.h | 3 + arch/arm/include/asm/cputype.h | 8 ++ arch/arm/include/asm/kvm_asm.h | 2 - arch/arm/include/asm/kvm_host.h | 14 ++- arch/arm/include/asm/kvm_mmu.h | 23 +++- arch/arm/include/asm/proc-fns.h | 4 + arch/arm/include/asm/system_misc.h | 15 +++ arch/arm/include/asm/thread_info.h | 4 +- arch/arm/include/asm/uaccess.h | 26 +++-- arch/arm/kernel/Makefile | 1 + arch/arm/kernel/bugs.c | 18 +++ arch/arm/kernel/entry-common.S | 18 ++- arch/arm/kernel/entry-header.S | 25 +++++ arch/arm/kernel/signal.c | 55 ++++----- arch/arm/kernel/smp.c | 4 + arch/arm/kernel/suspend.c | 2 + arch/arm/kernel/sys_oabi-compat.c | 8 +- arch/arm/kvm/hyp/hyp-entry.S | 112 ++++++++++++++++++- arch/arm/lib/copy_from_user.S | 9 ++ arch/arm/mm/Kconfig | 23 ++++ arch/arm/mm/Makefile | 2 +- arch/arm/mm/fault.c | 3 + arch/arm/mm/proc-macros.S | 3 +- arch/arm/mm/proc-v7-2level.S | 6 - arch/arm/mm/proc-v7-bugs.c | 174 +++++++++++++++++++++++++++++ arch/arm/mm/proc-v7.S | 154 +++++++++++++++++++------ arch/arm/vfp/vfpmodule.c | 17 ++- 30 files changed, 674 insertions(+), 109 deletions(-) create mode 100644 arch/arm/kernel/bugs.c create mode 100644 arch/arm/mm/proc-v7-bugs.c -- 2.17.1