Received: by 2002:a05:6a10:413:0:0:0:0 with SMTP id 19csp805669pxp; Fri, 11 Mar 2022 15:38:08 -0800 (PST) X-Google-Smtp-Source: ABdhPJwAQMA4S9bxai5Mnp9a8/ZlprwzknGY3l4l4OGtJPw/Hw1/SsWYHT4D/abuRx4a0mEDSjgS X-Received: by 2002:a17:902:8f94:b0:14f:d9b3:52c2 with SMTP id z20-20020a1709028f9400b0014fd9b352c2mr12657337plo.103.1647041888353; Fri, 11 Mar 2022 15:38:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1647041888; cv=none; d=google.com; s=arc-20160816; b=r48Q8V8udjRjq/8t71lvvVlnlfKkRmT4b3i+D26c+XFixtFVN4xxzXmWb5g5a89+70 VCz0aymiUR00IuYkJ8BdWTwYV+LPXe5ytnK6iGovoCK4hKC3URv+v5weIrDyj3vRiZdC GdGNjnPE6Uwwn8NBt3ZdcINuj4qkP8H79mdgh4fXhAw3hJ6AdAXJJovY3VRhl1GUb048 W5XXdEPmHaHmDhmmbX8TTfxmcSsR45v58vYjSf+g1cpzfm63NR8XJQXzqGsB4M6m6/0E m2kU5shE19Z30AZJ3RGXSGxwIqX+iUH12V5vAuUxw5Ncp0vjfZnDY7kekLXwz8hNF7DG enBQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:subject :from:references:cc:to:content-language:user-agent:mime-version:date :message-id:dkim-signature; bh=GE6M8iddtvgrIEKZgstUTxttVoqwz6Rl93puSOkGxt0=; b=kOQhI8S7rEKU4h9u6+ccq+uToN+Er91WdSaLi3cOpAyxCG1LUfepr6IGvUDbiBIDJI qw38Xg5U90C5FX8JpN2mcDP7Q6hBoGsMKC+bLnhTW/lSPJkCGpu+hzntFaQYx6Cu2rDP smVO9ZxU0XcluGfqgDD1fsNv0jK00RnD3aMgvFYcghMzuyP68USwiz0kvbMo4gHgxnwl NCgvznsuTs9ORGMenvI5bYxjMk4Q+bcYo8yU+NTpteL0OWa4MWLCc/+OmwVNnK64RFAt Og7GuATVC/b7i0acVRN14CVh8AeT95dog/x8ndW3h5U6dPrJ3+s+ptgLEPz9KLXImirW OiiQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=jg8y5cmT; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [2620:137:e000::1:18]) by mx.google.com with ESMTPS id w185-20020a6382c2000000b0037c942d0e50si8899183pgd.503.2022.03.11.15.38.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 11 Mar 2022 15:38:08 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) client-ip=2620:137:e000::1:18; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=jg8y5cmT; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 3E3FC24ED3F; Fri, 11 Mar 2022 14:51:34 -0800 (PST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229814AbiCKWwc (ORCPT + 99 others); Fri, 11 Mar 2022 17:52:32 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40354 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229994AbiCKWwU (ORCPT ); Fri, 11 Mar 2022 17:52:20 -0500 Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CC9AF1409D0 for ; Fri, 11 Mar 2022 14:30:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1647037844; x=1678573844; h=message-id:date:mime-version:to:cc:references:from: subject:in-reply-to:content-transfer-encoding; bh=rCFdGeOoGSRoO6cqnYj1xlhLSbsmex/R1MQnhd4g/08=; b=jg8y5cmTl1wwieyISJTwlswXFVrJj7kRE8y1KbzcHbAUwbrSPTBnSRxq 3bjQUd9dQ44FqA+HjPp5Zcm+JJXwGAq+5XH9pM5vY+F+lYMFTV5x8eeg4 0tJTZcvYVYxcUG+CxqgzC6dORL3SHjZ4TapfxiDNsM5EA6Z/ew1XQbVmD WllvGJL8vUmLjpyC9jidFoED9DmtWEqfUgLk2ZEo5HYwNeblnyB3kvtJC fMRYRh7WkYDx7eMhWR88eGPpgIOyhf+elR2DrEexnijWWmcBCo5UsULuz ccocd1H9bURjOL8FQM/BYIRfAL3+F8zODuXXqLlWDAuV/U2l/HV04XkLF w==; X-IronPort-AV: E=McAfee;i="6200,9189,10283"; a="255604311" X-IronPort-AV: E=Sophos;i="5.90,174,1643702400"; d="scan'208";a="255604311" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Mar 2022 13:23:33 -0800 X-IronPort-AV: E=Sophos;i="5.90,174,1643702400"; d="scan'208";a="645060406" Received: from cpeirce-mobl1.amr.corp.intel.com (HELO [10.212.128.243]) ([10.212.128.243]) by orsmga004-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Mar 2022 13:23:32 -0800 Message-ID: <103853ef-3afb-bb94-5ffd-8318d1a1d1a0@intel.com> Date: Fri, 11 Mar 2022 13:23:26 -0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.5.0 Content-Language: en-US To: Nadav Amit Cc: Linux-MM , Linux Kernel Mailing List , Andrew Morton , Andrea Arcangeli , Andrew Cooper , Andy Lutomirski , Dave Hansen , Peter Xu , Peter Zijlstra , Thomas Gleixner , Will Deacon , Yu Zhao , Nick Piggin , "x86@kernel.org" References: <20220311190749.338281-1-namit@vmware.com> <20220311190749.338281-3-namit@vmware.com> <70e08bd5-187a-daee-2822-1d9a437a9cff@intel.com> From: Dave Hansen Subject: Re: [RESEND PATCH v3 2/5] x86/mm: check exec permissions on fault In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.5 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,NICE_REPLY_A,RDNS_NONE,SPF_HELO_NONE, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 3/11/22 13:16, Nadav Amit wrote: >> This is really about checking the sanity of the "hardware"-provided >> error code. Let's just do it in handle_page_fault(), maybe hidden in a >> function like: >> >> void check_error_code_sanity(unsigned long error_code) >> { >> WARN_ON_ONCE(...); >> } >> >> You can leave the X86_PF_PK check in place for now. It's probably going >> away soon anyway. > Done. Thanks. But note that removing the check from access_error() means > that if the assertion is broken, userspace might crash inadvertently > (in contrast to the version I sent, which would have potentially led to > infinite stream of page-faults). I don’t know which behavior is better, > so let’s go with your version and just hope it doesn’t happen. Actually, crashing sounds much nicer to me than infinite page faults. It's a lot easier to debug, *especially* with a warning on dmesg.