Received: by 10.223.185.116 with SMTP id b49csp3116280wrg; Mon, 5 Mar 2018 14:31:43 -0800 (PST) X-Google-Smtp-Source: AG47ELuATP2u/3n2tefdRSXp9215vSs32aIKYqaHrgw+HQbyfgFID0o0w3q2iosQziBLq2mvdhUE X-Received: by 2002:a17:902:e85:: with SMTP id 5-v6mr14510382plx.420.1520289103823; Mon, 05 Mar 2018 14:31:43 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1520289103; cv=none; d=google.com; s=arc-20160816; b=Vw0LHLd8wzieZ0UhmYxLS4wh9BcTKeKICKLAw7ZVgR9n0rV9wFxYypS6HXHtfy2aR3 KdghLfNXpSP5u/ltoihyKPLMFsXrJ4UmSg+wboke8gFMI70bh2qfwueBElmqDqjGpK5M tbGey7DPx/9HMULWJFgydxrRU6Vrh1cal4zIlxgTf6fWStUCMQAm3YgbKVFm7w4bu5Vr GQAQbh40m1ej9hnvS/9HWWmrvMaAAL9+sl+i5cVNWjcHkivDE0HqQe8UiiwFB0Nzci1D U6WPF8A+kUzog6kEFKpx3QCGb8K+MSTk/8sawP+IWCoQiqFn78NXqKKCJiHT/bcWtWzA JaPg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dmarc-filter:arc-authentication-results; bh=TTGXRi/exa5bZjVHafra9L7vtI6ITgk2GYSJ9fw5xSY=; b=gsvWRftjnfFsfkNMN2AlD+GWlFy8tptYUDOn3IhjbypQpOmXCAUHkWZlfZoWYX7u0B zvNXieH/OiVp9AQfx5GuFQNUdPHYHz5BahdNVuy6NWsHR7JVYXiXKvrs4XWPN4JnNqAK gOAOLumbd77IHNf7mSQ2p3r3dUy+WmgIOHqner7L6JC8ZWQGRJueHsVHkMu1782hPg8B BQm6Pj/G6FsmuiVu7J7yvFyIVE1OjvmyrLQUS0vs7plqWy5KCMhzXB86Q/fGkbQJfAS6 UQQ5hJLwCS4V1McOjm3bdVSXeVJtilpbgIUf7wZKn7sTP3jhiEt3MkGKob0xkNHKLwrw jdlA== 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 h62si8870313pge.13.2018.03.05.14.31.29; Mon, 05 Mar 2018 14:31:43 -0800 (PST) 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 S1752931AbeCEW2z (ORCPT + 99 others); Mon, 5 Mar 2018 17:28:55 -0500 Received: from mail.kernel.org ([198.145.29.99]:60930 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753708AbeCEW2X (ORCPT ); Mon, 5 Mar 2018 17:28:23 -0500 Received: from localhost (unknown [69.71.4.158]) (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 86F8721486; Mon, 5 Mar 2018 22:28:22 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 86F8721486 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=helgaas@kernel.org Date: Mon, 5 Mar 2018 16:28:21 -0600 From: Bjorn Helgaas To: Logan Gunthorpe Cc: linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, linux-nvme@lists.infradead.org, linux-rdma@vger.kernel.org, linux-nvdimm@lists.01.org, linux-block@vger.kernel.org, Stephen Bates , Christoph Hellwig , Jens Axboe , Keith Busch , Sagi Grimberg , Bjorn Helgaas , Jason Gunthorpe , Max Gurtovoy , Dan Williams , =?iso-8859-1?B?Suly9G1l?= Glisse , Benjamin Herrenschmidt , Alex Williamson Subject: Re: [PATCH v2 04/10] PCI/P2PDMA: Clear ACS P2P flags for all devices behind switches Message-ID: <20180305222821.GA33706@bhelgaas-glaptop.roam.corp.google.com> References: <20180228234006.21093-1-logang@deltatee.com> <20180228234006.21093-5-logang@deltatee.com> <20180301180257.GH13722@bhelgaas-glaptop.roam.corp.google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.9.2 (2017-12-15) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Mar 01, 2018 at 12:13:10PM -0700, Logan Gunthorpe wrote: > > > On 01/03/18 11:02 AM, Bjorn Helgaas wrote: > > > void pci_enable_acs(struct pci_dev *dev) > > > { > > > + if (pci_p2pdma_disable_acs(dev)) > > > + return; > > > > This doesn't read naturally to me. I do see that when > > CONFIG_PCI_P2PDMA is not set, pci_p2pdma_disable_acs() does nothing > > and returns 0, so we'll go ahead and try to enable ACS as before. > > > > But I think it would be clearer to have an #ifdef CONFIG_PCI_P2PDMA > > right here so it's more obvious that we only disable ACS when it's > > selected. > > I could do this... however, I wrote it this way because I've read Linus > dislikes using #ifdef's inside function bodies and I personally agree with > that sentiment. I try to avoid #ifdefs too, but in this case the plain reading of the code makes no sense (we're in a function called "enable_acs()", and the first thing we do is call a function to "disable_acs()". Disabling ACS is scary for all the security reasons mentioned elsewhere, so a reader who knows what ACS does and cares about virtualization and security *has* to go look up the definition of pci_p2pdma_disable_acs(). If you put the #ifdef right here, then it's easier to read because we can see that "oh, this is a special and uncommon case that I can probably ignore". Bjorn