Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp535963pxk; Thu, 24 Sep 2020 11:32:41 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxRR/IX4yACKxebONG1wWwhZ7+exfWGiiCF1iOh+1iozg9UrMEBZIG6fYwvVYhEdRCM2/3t X-Received: by 2002:a17:906:8c1:: with SMTP id o1mr1332575eje.478.1600972360910; Thu, 24 Sep 2020 11:32:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1600972360; cv=none; d=google.com; s=arc-20160816; b=xeBC6pmO5b06fbffi7t0X4UWULfPlZhlx0KmlraJqDon+J0MiopDeEtOkIimrR+Y9S in+h5WtGvKVv+O4GahzphhO0oEnFK6/eivLZsKRnjyifH+nXoSHMWVWpMOnLv8ULCMuy 5Ch3My6j6dyqewFFed09XvUv/Ci/yJmbDPTrVQ8j0sQNecl2vtwKtVGhpYXfZFwyv3O6 j0o2yQVU22O0bWDwscxVeG0KyvD/Zfbscl5+MHgZyD/vF0IxI+dAEj2H6/xlFUdmkCNB 8Q0l3p9Rv2L5ynXhJoRSefNTejRCBBdRJvR5boOvLkt0Guh3XyLXM228AsT9CaDZAKt6 XVzA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :organization:references:in-reply-to:message-id:subject:cc:to:from :date:ironport-sdr:ironport-sdr; bh=qO3lKOoblxTi08evLpoFi4Oywij37NJ/IjHtu0VealY=; b=SPQy4iWnND/qaUhn+Cxl6QGfiy3OscQJ8E09fan00FD3qZLpwIQwzxFWP5SkX4dV8/ kqFmLW5F8Iw3qJL/xJZ7XSzAhSsUjVJG0LFPHO1iOWBYBiBiL73AYxgGA7IbiVsJ5ifl agPkweILnd9TMcSfrqkzUXtdaqXbvsgmRc8oLdkNnOK5Z823WPVwSvECm37ZhgF++JIb 5KbUVVL9xcDBJzh4xKX3sc225GXTIQov71NHS4vUOCC7iKoFAWqrC8oosk5/5F4TDg2x g2uM+lY3gK2HxEN2bHkwlRepLbxialqOjHHhRM7hkGJHSQMsFIf/MI/4epUMxs5sSJ0f QKzQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id a23si252092ejk.229.2020.09.24.11.32.15; Thu, 24 Sep 2020 11:32:40 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728731AbgIXS3C (ORCPT + 99 others); Thu, 24 Sep 2020 14:29:02 -0400 Received: from mga04.intel.com ([192.55.52.120]:48021 "EHLO mga04.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728648AbgIXS3C (ORCPT ); Thu, 24 Sep 2020 14:29:02 -0400 IronPort-SDR: 3yHXE7IWj/mNP2XtIecF696qX/sC2D8FeHqmLOE4DXhANdI7BE9u3JAhmAR0loOGNXrI5eMDxu OXlrALCGD9Qw== X-IronPort-AV: E=McAfee;i="6000,8403,9754"; a="158685276" X-IronPort-AV: E=Sophos;i="5.77,298,1596524400"; d="scan'208";a="158685276" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Sep 2020 11:29:01 -0700 IronPort-SDR: QXlCgJfZs4NQkVasYkmAuphEPC/dg9mtM1psTJODac5uq50sWC7/wkE/AoLsNbcbtEeyi2hQ5f p9K5dySYZ1Ww== X-IronPort-AV: E=Sophos;i="5.77,298,1596524400"; d="scan'208";a="305931568" Received: from jacob-builder.jf.intel.com (HELO jacob-builder) ([10.7.199.155]) by orsmga003-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Sep 2020 11:29:01 -0700 Date: Thu, 24 Sep 2020 11:31:07 -0700 From: Jacob Pan To: Joerg Roedel Cc: Jacob Pan , iommu@lists.linux-foundation.org, LKML , Alex Williamson , Lu Baolu , David Woodhouse , Jonathan Corbet , Jean-Philippe Brucker , Eric Auger , Yi Liu , "Tian, Kevin" , Raj Ashok , Wu Hao , Yi Sun , jacob.jun.pan@linux.intel.com Subject: Re: [PATCH v9 3/7] iommu/uapi: Introduce enum type for PASID data format Message-ID: <20200924113107.75379e6e@jacob-builder> In-Reply-To: <20200924084015.GC27174@8bytes.org> References: <1599861476-53416-1-git-send-email-jacob.jun.pan@linux.intel.com> <1599861476-53416-4-git-send-email-jacob.jun.pan@linux.intel.com> <20200918094450.GP31590@8bytes.org> <20200918101108.672c2f5a@jacob-builder> <20200924084015.GC27174@8bytes.org> Organization: OTC X-Mailer: Claws Mail 3.13.2 (GTK+ 2.24.30; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Joerg, On Thu, 24 Sep 2020 10:40:16 +0200, Joerg Roedel wrote: > > On Fri, 18 Sep 2020 11:44:50 +0200, Joerg Roedel > > wrote: > > > On Fri, Sep 11, 2020 at 02:57:52PM -0700, Jacob Pan wrote: > > > > There can be multiple vendor-specific PASID data formats used in > > > > UAPI structures. This patch adds enum type with a last entry which > > > > makes range checking much easier. > > > > > > But it also makes it much easier to screw up the numbers (which are > > > ABI) by inserting a new value into the middle. I prefer defines here, > > > or alternativly BUILD_BUG_ON() checks for the numbers. > > > > > I am not following, the purpose of IOMMU_PASID_FORMAT_LAST *is* for > > preparing the future insertion of new value into the middle. > > The checking against IOMMU_PASID_FORMAT_LAST is to protect ABI > > compatibility by making sure that out of range format are rejected in > > all versions of the ABI. > > But with the enum you could have: > > enum { > VTD_FOO, > SMMU_FOO, > LAST, > }; > > which makes VTD_FOO==0 and SMMU_FOO==1, and when in the next version > someone adds: > > enum { > VTD_FOO, > VTD_BAR, > SMMU_FOO, > LAST, > }; > > then SMMU_FOO will become 2 and break ABI. So I'd like to have this > checked somewhere. Got your point, will change to defines. Thanks, Jacob